cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ahu...@apache.org
Subject [05/50] [abbrv] SolidFire plug-in and related changes
Date Mon, 01 Jul 2013 21:24:49 GMT
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/99227f7b/ui/scripts/sharedFunctions.js
----------------------------------------------------------------------
diff --git a/ui/scripts/sharedFunctions.js b/ui/scripts/sharedFunctions.js
index dd9a7d6..bf6464c 100644
--- a/ui/scripts/sharedFunctions.js
+++ b/ui/scripts/sharedFunctions.js
@@ -321,8 +321,8 @@ cloudStack.converters = {
   toBooleanText: function(booleanValue) {
     if(booleanValue == true)
       return "Yes";
-    else if(booleanValue == false)
-      return "No";
+
+    return "No";
   },
   convertHz: function(hz) {
     if (hz == null)

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/99227f7b/ui/scripts/storage.js
----------------------------------------------------------------------
diff --git a/ui/scripts/storage.js b/ui/scripts/storage.js
index 2c03d39..ad0965a 100644
--- a/ui/scripts/storage.js
+++ b/ui/scripts/storage.js
@@ -132,6 +132,16 @@
                         else {
                           $diskSize.hide();
                         }
+                        var $minIops = $form.find('.form-item[rel=minIops]');
+                        var $maxIops = $form.find('.form-item[rel=maxIops]');
+                        if (selectedDiskOfferingObj.iscustomizediops == true) {
+                          $minIops.css('display', 'inline-block');
+                          $maxIops.css('display', 'inline-block');
+                        }
+                        else {
+                          $minIops.hide();
+                          $maxIops.hide();
+                        }
                       });
                     }
                   }
@@ -141,7 +151,19 @@
                     label: 'label.disk.size.gb',
                     validation: { required: true, number: true },
                     isHidden: true
-                  }
+                  },
+                  
+                  minIops: {
+                    label: 'label.disk.iops.min',
+                    validation: { required: false, number: true },
+                    isHidden: true
+                  },
+                  
+                  maxIops: {
+                    label: 'label.disk.iops.max',
+                    validation: { required: false, number: true },
+                    isHidden: true
+                  },
 
                 }
               },
@@ -159,6 +181,20 @@
 									  size: args.data.diskSize
 									});
                 }
+                
+                if (selectedDiskOfferingObj.iscustomizediops == true) {
+                    if (args.data.minIops != "" && args.data.minIops > 0) {
+								  $.extend(data, {
+									  miniops: args.data.minIops
+									});
+					}
+				    
+				    if (args.data.maxIops != "" && args.data.maxIops > 0) {
+								  $.extend(data, {
+									  maxiops: args.data.maxIops
+									});
+					}
+                }
 
                 $.ajax({
                   url: createURL('createVolume'),
@@ -1228,6 +1264,24 @@
                           return cloudStack.converters.convertBytes(args);
                       }
                     },
+                    miniops: {
+                      label: 'label.disk.iops.min',
+                      converter: function(args) {
+                        if(args == null || args == 0)
+                          return "";
+                        else
+                          return args;
+                      }
+                    },
+                    maxiops: {
+                      label: 'label.disk.iops.max',
+                      converter: function(args) {
+                        if(args == null || args == 0)
+                          return "";
+                        else
+                          return args;
+                      }
+                    },
                     virtualmachineid: {
                       label: 'VM ID',
                       converter: function(args) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/99227f7b/ui/scripts/system.js
----------------------------------------------------------------------
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index 92faf5e..135307b 100644
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@ -12745,11 +12745,11 @@
                   {
                     id: { label: 'label.id' },
                     state: { label: 'label.state' },
-										tags: {
-										  label: 'label.storage.tags',
-											isEditable: true
-										},
-										podname: { label: 'label.pod' },
+					tags: {
+						label: 'label.storage.tags',
+						isEditable: true
+					},
+					podname: { label: 'label.pod' },
                     clustername: { label: 'label.cluster' },
                     type: { label: 'label.type' },
                     ipaddress: { label: 'label.ip.address' },
@@ -12771,6 +12771,15 @@
                         else
                           return cloudStack.converters.convertBytes(args);
                       }
+                    },
+                    capacityiops: {
+                      label: 'label.disk.iops.total',
+                      converter: function(args) {
+                        if (args == null || args == 0)
+                          return "";
+                        else
+                          return args;
+                      }
                     }
                   }
                 ],

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/99227f7b/utils/src/com/cloud/utils/StringUtils.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/StringUtils.java b/utils/src/com/cloud/utils/StringUtils.java
index 359b169..db32dd4 100644
--- a/utils/src/com/cloud/utils/StringUtils.java
+++ b/utils/src/com/cloud/utils/StringUtils.java
@@ -49,6 +49,14 @@ public class StringUtils {
         return org.apache.commons.lang.StringUtils.join(components, delimiter);
     }
 
+    public static boolean isNotBlank(String str) {
+        if (str != null && str.trim().length() > 0) {
+            return true;
+        }
+
+        return false;
+    }
+
     /**
      * @param tags
      * @return List of tags

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/99227f7b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostDatastoreSystemMO.java
----------------------------------------------------------------------
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostDatastoreSystemMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostDatastoreSystemMO.java
index 3dcd724..7c548ff 100755
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostDatastoreSystemMO.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostDatastoreSystemMO.java
@@ -26,14 +26,16 @@ import com.vmware.vim25.CustomFieldStringValue;
 import com.vmware.vim25.DatastoreInfo;
 import com.vmware.vim25.DynamicProperty;
 import com.vmware.vim25.HostNasVolumeSpec;
+import com.vmware.vim25.HostScsiDisk;
 import com.vmware.vim25.ManagedObjectReference;
 import com.vmware.vim25.NasDatastoreInfo;
 import com.vmware.vim25.ObjectContent;
 import com.vmware.vim25.ObjectSpec;
 import com.vmware.vim25.PropertyFilterSpec;
 import com.vmware.vim25.PropertySpec;
-import com.vmware.vim25.SelectionSpec;
 import com.vmware.vim25.TraversalSpec;
+import com.vmware.vim25.VmfsDatastoreCreateSpec;
+import com.vmware.vim25.VmfsDatastoreOption;
 
 public class HostDatastoreSystemMO extends BaseMO {
 
@@ -122,6 +124,22 @@ public class HostDatastoreSystemMO extends BaseMO {
 		return null;
 	}
 
+	public List<HostScsiDisk> queryAvailableDisksForVmfs() throws Exception {
+		return _context.getService().queryAvailableDisksForVmfs(_mor, null);
+	}
+
+	public ManagedObjectReference createVmfsDatastore(String datastoreName, HostScsiDisk hostScsiDisk)
throws Exception {
+		// just grab the first instance of VmfsDatastoreOption
+		VmfsDatastoreOption vmfsDatastoreOption = _context.getService().queryVmfsDatastoreCreateOptions(_mor,
hostScsiDisk.getDevicePath(), 4).get(0);
+
+		VmfsDatastoreCreateSpec vmfsDatastoreCreateSpec = (VmfsDatastoreCreateSpec)vmfsDatastoreOption.getSpec();
+
+		// set the name of the datastore to be created
+		vmfsDatastoreCreateSpec.getVmfs().setVolumeName(datastoreName);
+
+		return _context.getService().createVmfsDatastore(_mor, vmfsDatastoreCreateSpec);
+	}
+
 	public boolean deleteDatastore(String name) throws Exception {
 		ManagedObjectReference morDatastore = findDatastore(name);
 		if(morDatastore != null) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/99227f7b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostMO.java
----------------------------------------------------------------------
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostMO.java
index a866fdc..e7fd922 100755
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostMO.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostMO.java
@@ -149,6 +149,13 @@ public class HostMO extends BaseMO implements VmwareHypervisorHost {
 		throw new Exception("Could not find host default gateway, host is not properly configured?");
 	}
 
+	public HostStorageSystemMO getHostStorageSystemMO() throws Exception {
+		return new HostStorageSystemMO(_context,
+			(ManagedObjectReference)_context.getVimClient().getDynamicProperty(
+				_mor, "configManager.storageSystem")
+		);
+	}
+
 	public HostDatastoreSystemMO getHostDatastoreSystemMO() throws Exception {
 		return new HostDatastoreSystemMO(_context,
 			(ManagedObjectReference)_context.getVimClient().getDynamicProperty(
@@ -797,14 +804,14 @@ public class HostMO extends BaseMO implements VmwareHypervisorHost {
 	}
 
 	@Override
-	public void unmountDatastore(String poolUuid) throws Exception {
+	public void unmountDatastore(String uuid) throws Exception {
 
 	    if(s_logger.isTraceEnabled())
-			s_logger.trace("vCenter API trace - unmountDatastore(). target MOR: " + _mor.getValue()
+ ", poolUuid: " + poolUuid);
+			s_logger.trace("vCenter API trace - unmountDatastore(). target MOR: " + _mor.getValue()
+ ", uuid: " + uuid);
 
     	HostDatastoreSystemMO hostDatastoreSystemMo = getHostDatastoreSystemMO();
-    	if(!hostDatastoreSystemMo.deleteDatastore(poolUuid)) {
-    		String msg = "Unable to unmount datastore. uuid: " + poolUuid;
+    	if(!hostDatastoreSystemMo.deleteDatastore(uuid)) {
+    		String msg = "Unable to unmount datastore. uuid: " + uuid;
     		s_logger.error(msg);
 
     		if(s_logger.isTraceEnabled())

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/99227f7b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostStorageSystemMO.java
----------------------------------------------------------------------
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostStorageSystemMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostStorageSystemMO.java
new file mode 100644
index 0000000..d400185
--- /dev/null
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostStorageSystemMO.java
@@ -0,0 +1,51 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.hypervisor.vmware.mo;
+
+import java.util.List;
+
+import com.cloud.hypervisor.vmware.util.VmwareContext;
+
+import com.vmware.vim25.HostInternetScsiHbaStaticTarget;
+import com.vmware.vim25.HostStorageDeviceInfo;
+import com.vmware.vim25.ManagedObjectReference;
+
+public class HostStorageSystemMO extends BaseMO {
+	public HostStorageSystemMO(VmwareContext context, ManagedObjectReference morHostDatastore)
{
+		super(context, morHostDatastore);
+	}
+
+	public HostStorageSystemMO(VmwareContext context, String morType, String morValue) {
+		super(context, morType, morValue);
+	}
+	
+	public HostStorageDeviceInfo getStorageDeviceInfo() throws Exception {
+		return (HostStorageDeviceInfo)_context.getVimClient().getDynamicProperty(_mor, "storageDeviceInfo");
+	}
+	
+	public void addInternetScsiStaticTargets(String iScsiHbaDevice, List<HostInternetScsiHbaStaticTarget>
lstTargets) throws Exception {
+		_context.getService().addInternetScsiStaticTargets(_mor, iScsiHbaDevice, lstTargets);
+	}
+	
+	public void removeInternetScsiStaticTargets(String iScsiHbaDevice, List<HostInternetScsiHbaStaticTarget>
lstTargets) throws Exception {
+		_context.getService().removeInternetScsiStaticTargets(_mor, iScsiHbaDevice, lstTargets);
+	}
+	
+	public void rescanHba(String iScsiHbaDevice) throws Exception {
+		_context.getService().rescanHba(_mor, iScsiHbaDevice);
+	}
+}


Mime
View raw message