You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by mc...@apache.org on 2013/02/07 21:24:34 UTC

git commit: refs/heads/vim51_win8 - Fix a bug in converting Enum type to String.

Updated Branches:
  refs/heads/vim51_win8 105bf7134 -> 640fa6be7


Fix a bug in converting Enum type to String.

Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/640fa6be
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/640fa6be
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/640fa6be

Branch: refs/heads/vim51_win8
Commit: 640fa6be760177d11bca2d03805462a9bdf41e8e
Parents: 105bf71
Author: Min Chen <mi...@citrix.com>
Authored: Thu Feb 7 12:23:57 2013 -0800
Committer: Min Chen <mi...@citrix.com>
Committed: Thu Feb 7 12:23:57 2013 -0800

----------------------------------------------------------------------
 .../vmware/manager/VmwareStorageManagerImpl.java   |    4 +-
 .../hypervisor/vmware/resource/VmwareResource.java |    6 ++--
 .../cloud/hypervisor/vmware/mo/HttpNfcLeaseMO.java |   22 ++++++++++++++-
 .../hypervisor/vmware/mo/VirtualMachineMO.java     |   14 +++++-----
 .../cloud/hypervisor/vmware/util/VmwareHelper.java |   10 +++---
 5 files changed, 38 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/640fa6be/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java
index 435db74..fd3afe8 100644
--- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java
@@ -192,7 +192,7 @@ public class VmwareStorageManagerImpl implements VmwareStorageManager {
 						workerVMName = hostService.getWorkerName(context, cmd, 0);
 
 						// attach a volume to dummay wrapper VM for taking snapshot and exporting the VM for backup
-						if (!hyperHost.createBlankVm(workerVMName, 1, 512, 0, false, 4, 0, VirtualMachineGuestOsIdentifier.OTHER_GUEST.toString(), morDs, false)) {
+						if (!hyperHost.createBlankVm(workerVMName, 1, 512, 0, false, 4, 0, VirtualMachineGuestOsIdentifier.OTHER_GUEST.value(), morDs, false)) {
 							String msg = "Unable to create worker VM to execute BackupSnapshotCommand";
 							s_logger.error(msg);
 							throw new Exception(msg);
@@ -804,7 +804,7 @@ public class VmwareStorageManagerImpl implements VmwareStorageManager {
                 vmConfig.setName(workerVmName);
                 vmConfig.setMemoryMB((long) 4);
                 vmConfig.setNumCPUs(1);
-                vmConfig.setGuestId(VirtualMachineGuestOsIdentifier.OTHER_GUEST.toString());
+                vmConfig.setGuestId(VirtualMachineGuestOsIdentifier.OTHER_GUEST.value());
                 VirtualMachineFileInfo fileInfo = new VirtualMachineFileInfo();
                 fileInfo.setVmPathName(String.format("[%s]", dsMo.getName()));
                 vmConfig.setFiles(fileInfo);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/640fa6be/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
index 51b463e..21f1732 100755
--- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
@@ -2094,7 +2094,7 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
 
                     if (!hyperHost.createBlankVm(vmName, vmSpec.getCpus(), vmSpec.getSpeed().intValue(),
                             getReserveCpuMHz(vmSpec.getSpeed().intValue()), vmSpec.getLimitCpuUse(), ramMb, getReserveMemMB(ramMb),
-                            translateGuestOsIdentifier(vmSpec.getArch(), vmSpec.getOs()).toString(), rootDiskDataStoreDetails.first(), false)) {
+                            translateGuestOsIdentifier(vmSpec.getArch(), vmSpec.getOs()).value(), rootDiskDataStoreDetails.first(), false)) {
                         throw new Exception("Failed to create VM. vmName: " + vmName);
                     }
                 }
@@ -2126,7 +2126,7 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
             int ramMb = (int) (vmSpec.getMinRam() / (1024 * 1024));
             VmwareHelper.setBasicVmConfig(vmConfigSpec, vmSpec.getCpus(), vmSpec.getSpeed().intValue(),
                     getReserveCpuMHz(vmSpec.getSpeed().intValue()), ramMb, getReserveMemMB(ramMb),
-                    translateGuestOsIdentifier(vmSpec.getArch(), vmSpec.getOs()).toString(), vmSpec.getLimitCpuUse());
+                    translateGuestOsIdentifier(vmSpec.getArch(), vmSpec.getOs()).value(), vmSpec.getLimitCpuUse());
 
             VirtualDeviceConfigSpec[] deviceConfigSpecArray = new VirtualDeviceConfigSpec[totalChangeDevices];
             int i = 0;
@@ -3935,7 +3935,7 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
         vmConfig.setName(vmName);
         vmConfig.setMemoryMB((long) 4); // vmware request minimum of 4 MB
         vmConfig.setNumCPUs(1);
-        vmConfig.setGuestId(VirtualMachineGuestOsIdentifier.OTHER_GUEST.toString());
+        vmConfig.setGuestId(VirtualMachineGuestOsIdentifier.OTHER_GUEST.value());
         VirtualMachineFileInfo fileInfo = new VirtualMachineFileInfo();
         fileInfo.setVmPathName(String.format("[%s]", dsMo.getName()));
         vmConfig.setFiles(fileInfo);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/640fa6be/vmware-base/src/com/cloud/hypervisor/vmware/mo/HttpNfcLeaseMO.java
----------------------------------------------------------------------
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HttpNfcLeaseMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HttpNfcLeaseMO.java
index 1198b33..ca36280 100755
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HttpNfcLeaseMO.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HttpNfcLeaseMO.java
@@ -20,17 +20,23 @@ import java.io.BufferedReader;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.rmi.RemoteException;
+import java.util.Arrays;
 import java.util.List;
 
 import org.apache.log4j.Logger;
+import org.w3c.dom.Element;
 
 import com.cloud.hypervisor.vmware.util.VmwareContext;
 import com.vmware.vim25.HttpNfcLeaseInfo;
 import com.vmware.vim25.HttpNfcLeaseManifestEntry;
 import com.vmware.vim25.HttpNfcLeaseState;
 import com.vmware.vim25.ManagedObjectReference;
+import com.vmware.vim25.ObjectSpec;
 import com.vmware.vim25.OvfCreateImportSpecResult;
 import com.vmware.vim25.OvfFileItem;
+import com.vmware.vim25.PropertyFilterSpec;
+import com.vmware.vim25.PropertySpec;
 
 public class HttpNfcLeaseMO extends BaseMO {
     private static final Logger s_logger = Logger.getLogger(HttpNfcLeaseMO.class);
@@ -44,7 +50,19 @@ public class HttpNfcLeaseMO extends BaseMO {
 	}
 
 	public HttpNfcLeaseState getState() throws Exception {
-		return (HttpNfcLeaseState)_context.getVimClient().getDynamicProperty(_mor, "state");
+        Object stateProp = _context.getVimClient().getDynamicProperty(_mor, "state");
+        // Due to some issue in JAX-WS De-serialization getting the information
+        // from the nodes
+        assert (stateProp.toString().contains("val: null"));
+        String stateVal = null;
+        Element stateElement = (Element) stateProp;
+        if (stateElement != null && stateElement.getFirstChild() != null) {
+            stateVal = stateElement.getFirstChild().getTextContent();
+        }
+        if (stateVal != null) {
+            return HttpNfcLeaseState.fromValue(stateVal);
+        }
+        return HttpNfcLeaseState.ERROR;
 	}
 
 	public HttpNfcLeaseState waitState(HttpNfcLeaseState[] states) throws Exception {
@@ -59,6 +77,8 @@ public class HttpNfcLeaseMO extends BaseMO {
 		}
 	}
 
+
+
 	public HttpNfcLeaseInfo getLeaseInfo() throws Exception {
 		return (HttpNfcLeaseInfo)_context.getVimClient().getDynamicProperty(_mor, "info");
 	}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/640fa6be/vmware-base/src/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java
----------------------------------------------------------------------
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java
index 6f836c4..2b07f9a 100644
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java
@@ -571,14 +571,14 @@ public class VirtualMachineMO extends BaseMO {
                 VirtualMachineRelocateSpecDiskLocator loc = new VirtualMachineRelocateSpecDiskLocator();
             	loc.setDatastore(morDs);
             	loc.setDiskId(independentDisks[i].getKey());
-            	loc.setDiskMoveType(VirtualMachineRelocateDiskMoveOptions.MOVE_ALL_DISK_BACKINGS_AND_DISALLOW_SHARING.toString());
+            	loc.setDiskMoveType(VirtualMachineRelocateDiskMoveOptions.MOVE_ALL_DISK_BACKINGS_AND_DISALLOW_SHARING.value());
             	diskLocator.add(loc);
             }
 
-            rSpec.setDiskMoveType(VirtualMachineRelocateDiskMoveOptions.CREATE_NEW_CHILD_DISK_BACKING.toString());
+            rSpec.setDiskMoveType(VirtualMachineRelocateDiskMoveOptions.CREATE_NEW_CHILD_DISK_BACKING.value());
             rSpec.getDisk().addAll(diskLocator);
         } else {
-        	rSpec.setDiskMoveType(VirtualMachineRelocateDiskMoveOptions.CREATE_NEW_CHILD_DISK_BACKING.toString());
+        	rSpec.setDiskMoveType(VirtualMachineRelocateDiskMoveOptions.CREATE_NEW_CHILD_DISK_BACKING.value());
         }
         rSpec.setPool(morResourcePool);
 
@@ -868,7 +868,7 @@ public class VirtualMachineMO extends BaseMO {
 			|| diskType == VirtualDiskType.EAGER_ZEROED_THICK) {
 
 			VirtualDiskFlatVer2BackingInfo backingInfo = new VirtualDiskFlatVer2BackingInfo();
-	        backingInfo.setDiskMode(diskMode.PERSISTENT.toString());
+	        backingInfo.setDiskMode(diskMode.PERSISTENT.value());
 	        if(diskType == VirtualDiskType.THIN) {
                 backingInfo.setThinProvisioned(true);
             } else {
@@ -894,7 +894,7 @@ public class VirtualMachineMO extends BaseMO {
 	        }
 	        backingInfo.setDeviceName(rdmDeviceName);
 	        if(diskType == VirtualDiskType.RDM) {
-	        	backingInfo.setDiskMode(diskMode.PERSISTENT.toString());
+	        	backingInfo.setDiskMode(diskMode.PERSISTENT.value());
 	        }
 
 	        backingInfo.setDatastore(morDs);
@@ -1894,10 +1894,10 @@ public class VirtualMachineMO extends BaseMO {
 	}
 
 	public int tryGetIDEDeviceControllerKey() throws Exception {
-	    VirtualDevice[] devices = (VirtualDevice [])_context.getVimClient().
+	    List<VirtualDevice> devices = (List<VirtualDevice>)_context.getVimClient().
     		getDynamicProperty(_mor, "config.hardware.device");
 
-	    if(devices != null && devices.length > 0) {
+	    if(devices != null && devices.size() > 0) {
 	    	for(VirtualDevice device : devices) {
 	    		if(device instanceof VirtualIDEController) {
 	    			return ((VirtualIDEController)device).getKey();

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/640fa6be/vmware-base/src/com/cloud/hypervisor/vmware/util/VmwareHelper.java
----------------------------------------------------------------------
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/util/VmwareHelper.java b/vmware-base/src/com/cloud/hypervisor/vmware/util/VmwareHelper.java
index 8e6947f..32e36a6 100644
--- a/vmware-base/src/com/cloud/hypervisor/vmware/util/VmwareHelper.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/util/VmwareHelper.java
@@ -169,7 +169,7 @@ public class VmwareHelper {
 		VirtualDisk disk = new VirtualDisk();
 
 		VirtualDiskFlatVer2BackingInfo backingInfo = new VirtualDiskFlatVer2BackingInfo();
-        backingInfo.setDiskMode(VirtualDiskMode.PERSISTENT.toString());
+        backingInfo.setDiskMode(VirtualDiskMode.PERSISTENT.value());
     	backingInfo.setThinProvisioned(true);
     	backingInfo.setEagerlyScrub(false);
         backingInfo.setDatastore(morDs);
@@ -273,7 +273,7 @@ public class VmwareHelper {
 		VirtualDiskFlatVer2BackingInfo backingInfo = new VirtualDiskFlatVer2BackingInfo();
         backingInfo.setDatastore(morDs);
         backingInfo.setFileName(vmdkDatastorePathChain[0]);
-        backingInfo.setDiskMode(VirtualDiskMode.PERSISTENT.toString());
+        backingInfo.setDiskMode(VirtualDiskMode.PERSISTENT.value());
         if(vmdkDatastorePathChain.length > 1) {
         	String[] parentDisks = new String[vmdkDatastorePathChain.length - 1];
         	for(int i = 0; i < vmdkDatastorePathChain.length - 1; i++)
@@ -313,7 +313,7 @@ public class VmwareHelper {
 		VirtualDiskFlatVer2BackingInfo backingInfo = new VirtualDiskFlatVer2BackingInfo();
         backingInfo.setDatastore(vmdkDatastorePathChain[0].second());
         backingInfo.setFileName(vmdkDatastorePathChain[0].first());
-        backingInfo.setDiskMode(VirtualDiskMode.PERSISTENT.toString());
+        backingInfo.setDiskMode(VirtualDiskMode.PERSISTENT.value());
         if(vmdkDatastorePathChain.length > 1) {
         	Pair<String, ManagedObjectReference>[] parentDisks = new Pair[vmdkDatastorePathChain.length - 1];
         	for(int i = 0; i < vmdkDatastorePathChain.length - 1; i++)
@@ -346,7 +346,7 @@ public class VmwareHelper {
 
 		VirtualDiskFlatVer2BackingInfo parentBacking = new VirtualDiskFlatVer2BackingInfo();
 		parentBacking.setDatastore(morDs);
-		parentBacking.setDiskMode(VirtualDiskMode.PERSISTENT.toString());
+		parentBacking.setDiskMode(VirtualDiskMode.PERSISTENT.value());
 
 		if(parentDatastorePathList.length > 1) {
 			String[] nextDatastorePathList = new String[parentDatastorePathList.length -1];
@@ -364,7 +364,7 @@ public class VmwareHelper {
 
 		VirtualDiskFlatVer2BackingInfo parentBacking = new VirtualDiskFlatVer2BackingInfo();
 		parentBacking.setDatastore(parentDatastorePathList[0].second());
-		parentBacking.setDiskMode(VirtualDiskMode.PERSISTENT.toString());
+		parentBacking.setDiskMode(VirtualDiskMode.PERSISTENT.value());
 
 		if(parentDatastorePathList.length > 1) {
 			Pair<String, ManagedObjectReference>[] nextDatastorePathList = new Pair[parentDatastorePathList.length -1];