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/05 02:43:46 UTC
[7/9] Upgrade to use Vsphere 5.1 SDK jar,
fixed all compilation error with new wrapper class VmwareClient.
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/481f4804/vmware-base/src/com/cloud/hypervisor/vmware/mo/ClusterMO.java
----------------------------------------------------------------------
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/ClusterMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/ClusterMO.java
index 2ce6695..1026554 100755
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/ClusterMO.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/ClusterMO.java
@@ -26,7 +26,6 @@ import org.apache.log4j.Logger;
import com.cloud.hypervisor.vmware.util.VmwareContext;
import com.cloud.utils.Pair;
import com.google.gson.Gson;
-import com.vmware.apputils.vim25.ServiceUtil;
import com.vmware.vim25.ArrayOfHostIpRouteEntry;
import com.vmware.vim25.ClusterComputeResourceSummary;
import com.vmware.vim25.ClusterConfigInfoEx;
@@ -47,24 +46,25 @@ import com.vmware.vim25.ObjectSpec;
import com.vmware.vim25.OptionValue;
import com.vmware.vim25.PropertyFilterSpec;
import com.vmware.vim25.PropertySpec;
-import com.vmware.vim25.SelectionSpec;
import com.vmware.vim25.TraversalSpec;
import com.vmware.vim25.VirtualMachineConfigSpec;
+import edu.emory.mathcs.backport.java.util.Arrays;
+
//
// interface. This has changed as ClusterMO no longer works as a special host anymore. Need to refactor accordingly
//
public class ClusterMO extends BaseMO implements VmwareHypervisorHost {
private static final Logger s_logger = Logger.getLogger(ClusterMO.class);
-
+
public ClusterMO(VmwareContext context, ManagedObjectReference morCluster) {
super(context, morCluster);
}
-
+
public ClusterMO(VmwareContext context, String morType, String morValue) {
super(context, morType, morValue);
}
-
+
@Override
public String getHyperHostName() throws Exception {
return getName();
@@ -73,40 +73,39 @@ public class ClusterMO extends BaseMO implements VmwareHypervisorHost {
@Override
public ClusterDasConfigInfo getDasConfig() throws Exception {
// Note getDynamicProperty() with "configurationEx.dasConfig" does not work here because of that dasConfig is a property in subclass
- ClusterConfigInfoEx configInfo = (ClusterConfigInfoEx)_context.getServiceUtil().getDynamicProperty(_mor, "configurationEx");
+ ClusterConfigInfoEx configInfo = (ClusterConfigInfoEx)_context.getVimClient().getDynamicProperty(_mor, "configurationEx");
return configInfo.getDasConfig();
}
-
+
@Override
public ManagedObjectReference getHyperHostDatacenter() throws Exception {
Pair<DatacenterMO, String> dcPair = DatacenterMO.getOwnerDatacenter(getContext(), getMor());
assert(dcPair != null);
return dcPair.first().getMor();
}
-
+
@Override
public ManagedObjectReference getHyperHostOwnerResourcePool() throws Exception {
- ServiceUtil serviceUtil = _context.getServiceUtil();
- return (ManagedObjectReference)serviceUtil.getDynamicProperty(getMor(), "resourcePool");
+ return (ManagedObjectReference)_context.getVimClient().getDynamicProperty(getMor(), "resourcePool");
}
-
+
@Override
public ManagedObjectReference getHyperHostCluster() throws Exception {
return _mor;
}
-
+
@Override
public VirtualMachineMO findVmOnHyperHost(String name) throws Exception {
ObjectContent[] ocs = getVmPropertiesOnHyperHost(new String[] { "name" });
return HypervisorHostHelper.findVmFromObjectContent(_context, ocs, name);
}
-
+
@Override
public VirtualMachineMO findVmOnPeerHyperHost(String name) throws Exception {
ObjectContent[] ocs = getVmPropertiesOnHyperHost(new String[] { "name" });
if(ocs != null && ocs.length > 0) {
for(ObjectContent oc : ocs) {
- DynamicProperty[] props = oc.getPropSet();
+ List<DynamicProperty> props = oc.getPropSet();
if(props != null) {
for(DynamicProperty prop : props) {
if(prop.getVal().toString().equals(name))
@@ -117,54 +116,54 @@ public class ClusterMO extends BaseMO implements VmwareHypervisorHost {
}
return null;
}
-
+
@Override
public ObjectContent[] getVmPropertiesOnHyperHost(String[] propertyPaths) throws Exception {
if(s_logger.isTraceEnabled())
- s_logger.trace("vCenter API trace - retrieveProperties() for VM properties. target MOR: " + _mor.get_value() + ", properties: " + new Gson().toJson(propertyPaths));
-
+ s_logger.trace("vCenter API trace - retrieveProperties() for VM properties. target MOR: " + _mor.getValue() + ", properties: " + new Gson().toJson(propertyPaths));
+
PropertySpec pSpec = new PropertySpec();
pSpec.setType("VirtualMachine");
- pSpec.setPathSet(propertyPaths);
+ pSpec.getPathSet().addAll(Arrays.asList(propertyPaths));
TraversalSpec host2VmFolderTraversal = new TraversalSpec();
host2VmFolderTraversal.setType("HostSystem");
host2VmFolderTraversal.setPath("vm");
host2VmFolderTraversal.setName("host2VmFolderTraversal");
-
+
TraversalSpec cluster2HostFolderTraversal = new TraversalSpec();
cluster2HostFolderTraversal.setType("ClusterComputeResource");
cluster2HostFolderTraversal.setPath("host");
cluster2HostFolderTraversal.setName("cluster2HostFolderTraversal");
- cluster2HostFolderTraversal.setSelectSet(new SelectionSpec[] { host2VmFolderTraversal });
-
+ cluster2HostFolderTraversal.getSelectSet().add(host2VmFolderTraversal);
+
ObjectSpec oSpec = new ObjectSpec();
oSpec.setObj(getMor());
oSpec.setSkip(Boolean.TRUE);
- oSpec.setSelectSet(new SelectionSpec[] { cluster2HostFolderTraversal });
-
+ oSpec.getSelectSet().add(cluster2HostFolderTraversal);
+
PropertyFilterSpec pfSpec = new PropertyFilterSpec();
- pfSpec.setPropSet(new PropertySpec[] { pSpec });
- pfSpec.setObjectSet(new ObjectSpec[] { oSpec });
-
- ObjectContent[] properties = _context.getService().retrieveProperties(
- _context.getServiceContent().getPropertyCollector(),
- new PropertyFilterSpec[] { pfSpec });
-
+ pfSpec.getPropSet().add(pSpec);
+ pfSpec.getObjectSet().add(oSpec);
+ List<PropertyFilterSpec> pfSpecArr = new ArrayList<PropertyFilterSpec>();
+ pfSpecArr.add(pfSpec);
+
+ List<ObjectContent> properties = _context.getService().retrieveProperties(_context.getPropertyCollector(), pfSpecArr);
+
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - retrieveProperties() done");
- return properties;
+ return properties.toArray(new ObjectContent[properties.size()]);
}
@Override
public ObjectContent[] getDatastorePropertiesOnHyperHost(String[] propertyPaths) throws Exception {
if(s_logger.isTraceEnabled())
- s_logger.trace("vCenter API trace - retrieveProperties() on Datastore properties. target MOR: " + _mor.get_value() + ", properties: " + new Gson().toJson(propertyPaths));
-
+ s_logger.trace("vCenter API trace - retrieveProperties() on Datastore properties. target MOR: " + _mor.getValue() + ", properties: " + new Gson().toJson(propertyPaths));
+
PropertySpec pSpec = new PropertySpec();
pSpec.setType("Datastore");
- pSpec.setPathSet(propertyPaths);
-
+ pSpec.getPathSet().addAll(Arrays.asList(propertyPaths));
+
TraversalSpec cluster2DatastoreTraversal = new TraversalSpec();
cluster2DatastoreTraversal.setType("ClusterComputeResource");
cluster2DatastoreTraversal.setPath("datastore");
@@ -173,29 +172,30 @@ public class ClusterMO extends BaseMO implements VmwareHypervisorHost {
ObjectSpec oSpec = new ObjectSpec();
oSpec.setObj(_mor);
oSpec.setSkip(Boolean.TRUE);
- oSpec.setSelectSet(new SelectionSpec[] { cluster2DatastoreTraversal });
+ oSpec.getSelectSet().add(cluster2DatastoreTraversal);
PropertyFilterSpec pfSpec = new PropertyFilterSpec();
- pfSpec.setPropSet(new PropertySpec[] { pSpec });
- pfSpec.setObjectSet(new ObjectSpec[] { oSpec });
-
- ObjectContent[] properties = _context.getService().retrieveProperties(
- _context.getServiceContent().getPropertyCollector(),
- new PropertyFilterSpec[] { pfSpec });
-
+ pfSpec.getPropSet().add(pSpec);
+ pfSpec.getObjectSet().add(oSpec);
+ List<PropertyFilterSpec> pfSpecArr = new ArrayList<PropertyFilterSpec>();
+ pfSpecArr.add(pfSpec);
+
+ List<ObjectContent> properties = _context.getService().retrieveProperties(
+ _context.getPropertyCollector(), pfSpecArr);
+
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - retrieveProperties() done");
- return properties;
+ return properties.toArray(new ObjectContent[properties.size()]);
}
-
+
private ObjectContent[] getHostPropertiesOnCluster(String[] propertyPaths) throws Exception {
if(s_logger.isTraceEnabled())
- s_logger.trace("vCenter API trace - retrieveProperties() on Host properties. target MOR: " + _mor.get_value() + ", properties: " + new Gson().toJson(propertyPaths));
+ s_logger.trace("vCenter API trace - retrieveProperties() on Host properties. target MOR: " + _mor.getValue() + ", properties: " + new Gson().toJson(propertyPaths));
PropertySpec pSpec = new PropertySpec();
pSpec.setType("HostSystem");
- pSpec.setPathSet(propertyPaths);
-
+ pSpec.getPathSet().addAll(Arrays.asList(propertyPaths));
+
TraversalSpec cluster2HostTraversal = new TraversalSpec();
cluster2HostTraversal.setType("ClusterComputeResource");
cluster2HostTraversal.setPath("host");
@@ -204,63 +204,65 @@ public class ClusterMO extends BaseMO implements VmwareHypervisorHost {
ObjectSpec oSpec = new ObjectSpec();
oSpec.setObj(_mor);
oSpec.setSkip(Boolean.TRUE);
- oSpec.setSelectSet(new SelectionSpec[] { cluster2HostTraversal });
+ oSpec.getSelectSet().add(cluster2HostTraversal);
PropertyFilterSpec pfSpec = new PropertyFilterSpec();
- pfSpec.setPropSet(new PropertySpec[] { pSpec });
- pfSpec.setObjectSet(new ObjectSpec[] { oSpec });
-
- ObjectContent[] properties = _context.getService().retrieveProperties(
- _context.getServiceContent().getPropertyCollector(),
- new PropertyFilterSpec[] { pfSpec });
+ pfSpec.getPropSet().add(pSpec);
+ pfSpec.getObjectSet().add(oSpec);
+
+ List<PropertyFilterSpec> pfSpecArr = new ArrayList<PropertyFilterSpec>();
+ pfSpecArr.add(pfSpec);
+
+ List<ObjectContent> properties = _context.getService().retrieveProperties(
+ _context.getPropertyCollector(), pfSpecArr);
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - retrieveProperties() done");
- return properties;
+ return properties.toArray(new ObjectContent[properties.size()]);
}
@Override
public boolean createVm(VirtualMachineConfigSpec vmSpec) throws Exception {
if(s_logger.isTraceEnabled())
- s_logger.trace("vCenter API trace - createVM_Task(). target MOR: " + _mor.get_value() + ", VirtualMachineConfigSpec: " + new Gson().toJson(vmSpec));
-
+ s_logger.trace("vCenter API trace - createVM_Task(). target MOR: " + _mor.getValue() + ", VirtualMachineConfigSpec: " + new Gson().toJson(vmSpec));
+
assert(vmSpec != null);
DatacenterMO dcMo = new DatacenterMO(_context, getHyperHostDatacenter());
ManagedObjectReference morPool = getHyperHostOwnerResourcePool();
-
- ManagedObjectReference morTask = _context.getService().createVM_Task(
+
+ ManagedObjectReference morTask = _context.getService().createVMTask(
dcMo.getVmFolder(), vmSpec, morPool, null);
- String result = _context.getServiceUtil().waitForTask(morTask);
-
- if(result.equals("sucess")) {
+ boolean result = _context.getVimClient().waitForTask(morTask);
+
+ if(result) {
_context.waitForTaskProgressDone(morTask);
-
+
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - createVM_Task() done(successfully)");
return true;
} else {
s_logger.error("VMware createVM_Task failed due to " + TaskMO.getTaskFailureInfo(_context, morTask));
}
-
+
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - createVM_Task() done(failed)");
return false;
}
-
+
@Override
public void importVmFromOVF(String ovfFilePath, String vmName, DatastoreMO dsMo, String diskOption) throws Exception {
if(s_logger.isTraceEnabled())
- s_logger.trace("vCenter API trace - importVmFromOVF(). target MOR: " + _mor.get_value() + ", ovfFilePath: " + ovfFilePath + ", vmName: " + vmName
- + ", datastore: " + dsMo.getMor().get_value() + ", diskOption: " + diskOption);
+ s_logger.trace("vCenter API trace - importVmFromOVF(). target MOR: " + _mor.getValue() + ", ovfFilePath: " + ovfFilePath + ", vmName: " + vmName
+ + ", datastore: " + dsMo.getMor().getValue() + ", diskOption: " + diskOption);
ManagedObjectReference morRp = getHyperHostOwnerResourcePool();
assert(morRp != null);
-
+
if(s_logger.isTraceEnabled())
- s_logger.trace("vCenter API trace - importVmFromOVF(). resource pool: " + morRp.get_value());
-
+ s_logger.trace("vCenter API trace - importVmFromOVF(). resource pool: " + morRp.getValue());
+
HypervisorHostHelper.importVmFromOVF(this, ovfFilePath, vmName, dsMo, diskOption, morRp, null);
-
+
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - importVmFromOVF() done");
}
@@ -268,83 +270,83 @@ public class ClusterMO extends BaseMO implements VmwareHypervisorHost {
@Override
public boolean createBlankVm(String vmName, int cpuCount, int cpuSpeedMHz, int cpuReservedMHz, boolean limitCpuUse, int memoryMB, int memoryReserveMB,
String guestOsIdentifier, ManagedObjectReference morDs, boolean snapshotDirToParent) throws Exception {
-
+
if(s_logger.isTraceEnabled())
- s_logger.trace("vCenter API trace - createBlankVm(). target MOR: " + _mor.get_value() + ", vmName: " + vmName + ", cpuCount: " + cpuCount
- + ", cpuSpeedMhz: " + cpuSpeedMHz + ", cpuReservedMHz: " + cpuReservedMHz + ", limitCpu: " + limitCpuUse + ", memoryMB: " + memoryMB
- + ", guestOS: " + guestOsIdentifier + ", datastore: " + morDs.get_value() + ", snapshotDirToParent: " + snapshotDirToParent);
-
+ s_logger.trace("vCenter API trace - createBlankVm(). target MOR: " + _mor.getValue() + ", vmName: " + vmName + ", cpuCount: " + cpuCount
+ + ", cpuSpeedMhz: " + cpuSpeedMHz + ", cpuReservedMHz: " + cpuReservedMHz + ", limitCpu: " + limitCpuUse + ", memoryMB: " + memoryMB
+ + ", guestOS: " + guestOsIdentifier + ", datastore: " + morDs.getValue() + ", snapshotDirToParent: " + snapshotDirToParent);
+
boolean result = HypervisorHostHelper.createBlankVm(this, vmName, cpuCount, cpuSpeedMHz, cpuReservedMHz, limitCpuUse,
memoryMB, memoryReserveMB, guestOsIdentifier, morDs, snapshotDirToParent);
-
+
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - createBlankVm() done");
-
+
return result;
}
@Override
- public ManagedObjectReference mountDatastore(boolean vmfsDatastore, String poolHostAddress,
+ public ManagedObjectReference mountDatastore(boolean vmfsDatastore, String poolHostAddress,
int poolHostPort, String poolPath, String poolUuid) throws Exception {
if(s_logger.isTraceEnabled())
- s_logger.trace("vCenter API trace - mountDatastore(). target MOR: " + _mor.get_value() + ", vmfs: " + vmfsDatastore + ", poolHost: " + poolHostAddress
+ s_logger.trace("vCenter API trace - mountDatastore(). target MOR: " + _mor.getValue() + ", vmfs: " + vmfsDatastore + ", poolHost: " + poolHostAddress
+ ", poolHostPort: " + poolHostPort + ", poolPath: " + poolPath + ", poolUuid: " + poolUuid);
-
+
ManagedObjectReference morDs = null;
ManagedObjectReference morDsFirst = null;
- ManagedObjectReference[] hosts = (ManagedObjectReference[])_context.getServiceUtil().getDynamicProperty(_mor, "host");
+ ManagedObjectReference[] hosts = (ManagedObjectReference[])_context.getVimClient().getDynamicProperty(_mor, "host");
if(hosts != null && hosts.length > 0) {
for(ManagedObjectReference morHost : hosts) {
HostMO hostMo = new HostMO(_context, morHost);
morDs = hostMo.mountDatastore(vmfsDatastore, poolHostAddress, poolHostPort, poolPath, poolUuid);
if(morDsFirst == null)
morDsFirst = morDs;
-
+
// assume datastore is in scope of datacenter
- assert(morDsFirst.get_value().equals(morDs.get_value()));
+ assert(morDsFirst.getValue().equals(morDs.getValue()));
}
}
-
+
if(morDs == null) {
String msg = "Failed to mount datastore in all hosts within the cluster";
s_logger.error(msg);
-
+
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - mountDatastore() done(failed)");
throw new Exception(msg);
}
-
+
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - mountDatastore() done(successfully)");
-
+
return morDs;
}
-
+
@Override
public void unmountDatastore(String poolUuid) throws Exception {
if(s_logger.isTraceEnabled())
- s_logger.trace("vCenter API trace - unmountDatastore(). target MOR: " + _mor.get_value() + ", poolUuid: " + poolUuid);
-
- ManagedObjectReference[] hosts = (ManagedObjectReference[])_context.getServiceUtil().getDynamicProperty(_mor, "host");
+ s_logger.trace("vCenter API trace - unmountDatastore(). target MOR: " + _mor.getValue() + ", poolUuid: " + poolUuid);
+
+ ManagedObjectReference[] hosts = (ManagedObjectReference[])_context.getVimClient().getDynamicProperty(_mor, "host");
if(hosts != null && hosts.length > 0) {
for(ManagedObjectReference morHost : hosts) {
HostMO hostMo = new HostMO(_context, morHost);
hostMo.unmountDatastore(poolUuid);
}
}
-
+
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - unmountDatastore() done");
}
-
+
@Override
public ManagedObjectReference findDatastore(String poolUuid) throws Exception {
if(s_logger.isTraceEnabled())
- s_logger.trace("vCenter API trace - findDatastore(). target MOR: " + _mor.get_value() + ", poolUuid: " + poolUuid);
-
- CustomFieldsManagerMO cfmMo = new CustomFieldsManagerMO(_context,
+ s_logger.trace("vCenter API trace - findDatastore(). target MOR: " + _mor.getValue() + ", poolUuid: " + poolUuid);
+
+ CustomFieldsManagerMO cfmMo = new CustomFieldsManagerMO(_context,
_context.getServiceContent().getCustomFieldsManager());
int key = cfmMo.getCustomFieldKey("Datastore", CustomFieldConstants.CLOUD_UUID);
assert(key != 0);
@@ -352,16 +354,16 @@ public class ClusterMO extends BaseMO implements VmwareHypervisorHost {
ObjectContent[] ocs = getDatastorePropertiesOnHyperHost(new String[] {"name", String.format("value[%d]", key)});
if(ocs != null) {
for(ObjectContent oc : ocs) {
- if(oc.getPropSet(0).getVal().equals(poolUuid))
+ if(oc.getPropSet().get(0).getVal().equals(poolUuid))
return oc.getObj();
-
- if(oc.getPropSet().length > 1) {
- DynamicProperty prop = oc.getPropSet(1);
+
+ if(oc.getPropSet().size() > 1) {
+ DynamicProperty prop = oc.getPropSet().get(1);
if(prop != null && prop.getVal() != null) {
if(prop.getVal() instanceof CustomFieldStringValue) {
String val = ((CustomFieldStringValue)prop.getVal()).getValue();
if(val.equalsIgnoreCase(poolUuid)) {
-
+
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - findDatastore() done(successfully)");
return oc.getObj();
@@ -371,31 +373,31 @@ public class ClusterMO extends BaseMO implements VmwareHypervisorHost {
}
}
}
-
+
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - findDatastore() done(failed)");
return null;
}
-
+
@Override
public ManagedObjectReference findDatastoreByExportPath(String exportPath) throws Exception {
if(s_logger.isTraceEnabled())
- s_logger.trace("vCenter API trace - findDatastoreByExportPath(). target MOR: " + _mor.get_value() + ", exportPath: " + exportPath);
-
+ s_logger.trace("vCenter API trace - findDatastoreByExportPath(). target MOR: " + _mor.getValue() + ", exportPath: " + exportPath);
+
ObjectContent[] ocs = getDatastorePropertiesOnHyperHost(new String[] {"info"});
if(ocs != null && ocs.length > 0) {
for(ObjectContent oc : ocs) {
- DatastoreInfo dsInfo = (DatastoreInfo)oc.getPropSet(0).getVal();
+ DatastoreInfo dsInfo = (DatastoreInfo)oc.getPropSet().get(0).getVal();
if(dsInfo != null && dsInfo instanceof NasDatastoreInfo) {
NasDatastoreInfo info = (NasDatastoreInfo)dsInfo;
if(info != null) {
String vmwareUrl = info.getUrl();
if(vmwareUrl.charAt(vmwareUrl.length() - 1) == '/')
vmwareUrl = vmwareUrl.substring(0, vmwareUrl.length() - 1);
-
+
URI uri = new URI(vmwareUrl);
if(uri.getPath().equals("/" + exportPath)) {
-
+
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - findDatastoreByExportPath() done(successfully)");
return oc.getObj();
@@ -404,49 +406,49 @@ public class ClusterMO extends BaseMO implements VmwareHypervisorHost {
}
}
}
-
+
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - findDatastoreByExportPath() done(failed)");
return null;
}
-
+
@Override
public ManagedObjectReference findMigrationTarget(VirtualMachineMO vmMo) throws Exception {
if(s_logger.isTraceEnabled())
- s_logger.trace("vCenter API trace - findMigrationTarget(). target MOR: " + _mor.get_value() + ", vm: " + vmMo.getName());
+ s_logger.trace("vCenter API trace - findMigrationTarget(). target MOR: " + _mor.getValue() + ", vm: " + vmMo.getName());
- ClusterHostRecommendation[] candidates = recommendHostsForVm(vmMo);
- if(candidates != null && candidates.length > 0) {
+ List<ClusterHostRecommendation> candidates = recommendHostsForVm(vmMo);
+ if(candidates != null && candidates.size() > 0) {
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - findMigrationTarget() done(successfully)");
- return candidates[0].getHost();
+ return candidates.get(0).getHost();
}
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - findMigrationTarget() done(failed)");
return null;
}
-
+
@Override
public boolean isHyperHostConnected() throws Exception {
ObjectContent[] ocs = getHostPropertiesOnCluster(new String[] {"runtime"});
if(ocs != null && ocs.length > 0) {
for(ObjectContent oc : ocs) {
- HostRuntimeInfo runtimeInfo = (HostRuntimeInfo)oc.getPropSet(0).getVal();
- // as long as we have one host connected, we assume the cluster is up
- if(runtimeInfo.getConnectionState() == HostSystemConnectionState.connected)
+ HostRuntimeInfo runtimeInfo = (HostRuntimeInfo)oc.getPropSet().get(0).getVal();
+ // as long as we have one host connected, we assume the cluster is up
+ if(runtimeInfo.getConnectionState() == HostSystemConnectionState.CONNECTED)
return true;
}
}
return false;
}
-
+
@Override
public String getHyperHostDefaultGateway() throws Exception {
ObjectContent[] ocs = getHostPropertiesOnCluster(new String[] {"config.network.routeTableInfo.ipRoute"});
if(ocs != null && ocs.length > 0) {
for(ObjectContent oc : ocs) {
- ArrayOfHostIpRouteEntry entries = (ArrayOfHostIpRouteEntry)oc.getPropSet(0).getVal();
+ ArrayOfHostIpRouteEntry entries = (ArrayOfHostIpRouteEntry)oc.getPropSet().get(0).getVal();
if(entries != null) {
for(HostIpRouteEntry entry : entries.getHostIpRouteEntry()) {
if(entry.getNetwork().equalsIgnoreCase("0.0.0.0"))
@@ -455,28 +457,28 @@ public class ClusterMO extends BaseMO implements VmwareHypervisorHost {
}
}
}
-
+
throw new Exception("Could not find host default gateway, host is not properly configured?");
}
-
+
@Override
public VmwareHypervisorHostResourceSummary getHyperHostResourceSummary() throws Exception {
if(s_logger.isTraceEnabled())
- s_logger.trace("vCenter API trace - getHyperHostResourceSummary(). target MOR: " + _mor.get_value());
+ s_logger.trace("vCenter API trace - getHyperHostResourceSummary(). target MOR: " + _mor.getValue());
VmwareHypervisorHostResourceSummary summary = new VmwareHypervisorHostResourceSummary();
-
- ComputeResourceSummary vmwareSummary = (ComputeResourceSummary)_context.getServiceUtil().getDynamicProperty(
+
+ ComputeResourceSummary vmwareSummary = (ComputeResourceSummary)_context.getVimClient().getDynamicProperty(
_mor, "summary");
-
- // TODO, need to use traversal to optimize retrieve of
+
+ // TODO, need to use traversal to optimize retrieve of
int cpuNumInCpuThreads = 1;
- ManagedObjectReference[] hosts = (ManagedObjectReference[])_context.getServiceUtil().getDynamicProperty(_mor, "host");
+ ManagedObjectReference[] hosts = (ManagedObjectReference[])_context.getVimClient().getDynamicProperty(_mor, "host");
if(hosts != null && hosts.length > 0) {
for(ManagedObjectReference morHost : hosts) {
HostMO hostMo = new HostMO(_context, morHost);
HostHardwareSummary hardwareSummary = hostMo.getHostHardwareSummary();
-
+
if(hardwareSummary.getNumCpuCores()*hardwareSummary.getNumCpuThreads() > cpuNumInCpuThreads)
cpuNumInCpuThreads = hardwareSummary.getNumCpuCores()*hardwareSummary.getNumCpuThreads();
}
@@ -484,74 +486,74 @@ public class ClusterMO extends BaseMO implements VmwareHypervisorHost {
summary.setCpuCount(cpuNumInCpuThreads);
summary.setCpuSpeed(vmwareSummary.getTotalCpu());
summary.setMemoryBytes(vmwareSummary.getTotalMemory());
-
+
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - getHyperHostResourceSummary() done");
return summary;
}
-
+
@Override
public VmwareHypervisorHostNetworkSummary getHyperHostNetworkSummary(String esxServiceConsolePort) throws Exception {
if(s_logger.isTraceEnabled())
- s_logger.trace("vCenter API trace - getHyperHostNetworkSummary(). target MOR: " + _mor.get_value() + ", mgmtPortgroup: " + esxServiceConsolePort);
-
- ManagedObjectReference[] hosts = (ManagedObjectReference[])_context.getServiceUtil().getDynamicProperty(_mor, "host");
+ s_logger.trace("vCenter API trace - getHyperHostNetworkSummary(). target MOR: " + _mor.getValue() + ", mgmtPortgroup: " + esxServiceConsolePort);
+
+ ManagedObjectReference[] hosts = (ManagedObjectReference[])_context.getVimClient().getDynamicProperty(_mor, "host");
if(hosts != null && hosts.length > 0) {
VmwareHypervisorHostNetworkSummary summary = new HostMO(_context, hosts[0]).getHyperHostNetworkSummary(esxServiceConsolePort);
-
+
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - getHyperHostResourceSummary() done(successfully)");
return summary;
}
-
+
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - getHyperHostResourceSummary() done(failed)");
return null;
}
-
+
@Override
public ComputeResourceSummary getHyperHostHardwareSummary() throws Exception {
if(s_logger.isTraceEnabled())
- s_logger.trace("vCenter API trace - getHyperHostHardwareSummary(). target MOR: " + _mor.get_value());
+ s_logger.trace("vCenter API trace - getHyperHostHardwareSummary(). target MOR: " + _mor.getValue());
ClusterComputeResourceSummary hardwareSummary = (ClusterComputeResourceSummary)
- _context.getServiceUtil().getDynamicProperty(_mor, "summary");
+ _context.getVimClient().getDynamicProperty(_mor, "summary");
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - getHyperHostHardwareSummary() done");
return hardwareSummary;
}
- public ClusterHostRecommendation[] recommendHostsForVm(VirtualMachineMO vmMo) throws Exception {
- return _context.getService().recommendHostsForVm(_mor, vmMo.getMor(),
+ public List<ClusterHostRecommendation> recommendHostsForVm(VirtualMachineMO vmMo) throws Exception {
+ return _context.getService().recommendHostsForVm(_mor, vmMo.getMor(),
getHyperHostOwnerResourcePool());
}
-
+
public List<Pair<ManagedObjectReference, String>> getClusterHosts() throws Exception {
List<Pair<ManagedObjectReference, String>> hosts = new ArrayList<Pair<ManagedObjectReference, String>>();
-
+
ObjectContent[] ocs = getHostPropertiesOnCluster(new String[] {"name"});
if(ocs != null) {
for(ObjectContent oc : ocs) {
ManagedObjectReference morHost = oc.getObj();
- String name = (String)oc.getPropSet(0).getVal();
-
+ String name = (String)oc.getPropSet().get(0).getVal();
+
hosts.add(new Pair<ManagedObjectReference, String>(morHost, name));
}
}
return hosts;
}
-
+
public HashMap<String, Integer> getVmVncPortsOnCluster() throws Exception {
ObjectContent[] ocs = getVmPropertiesOnHyperHost(
new String[] { "name", "config.extraConfig[\"RemoteDisplay.vnc.port\"]" }
);
-
+
HashMap<String, Integer> portInfo = new HashMap<String, Integer>();
if(ocs != null && ocs.length > 0) {
for(ObjectContent oc : ocs) {
- DynamicProperty[] objProps = oc.getPropSet();
+ List<DynamicProperty> objProps = oc.getPropSet();
if(objProps != null) {
String name = null;
String value = null;
@@ -561,16 +563,16 @@ public class ClusterMO extends BaseMO implements VmwareHypervisorHost {
} else {
OptionValue optValue = (OptionValue)objProp.getVal();
value = (String)optValue.getValue();
- }
+ }
}
-
+
if(name != null && value != null) {
portInfo.put(name, Integer.parseInt(value));
}
}
}
}
-
+
return portInfo;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/481f4804/vmware-base/src/com/cloud/hypervisor/vmware/mo/CustomFieldsManagerMO.java
----------------------------------------------------------------------
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/CustomFieldsManagerMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/CustomFieldsManagerMO.java
index 44de683..08932c5 100644
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/CustomFieldsManagerMO.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/CustomFieldsManagerMO.java
@@ -26,32 +26,32 @@ public class CustomFieldsManagerMO extends BaseMO {
public CustomFieldsManagerMO(VmwareContext context, ManagedObjectReference mor) {
super(context, mor);
}
-
+
public CustomFieldsManagerMO(VmwareContext context, String morType, String morValue) {
super(context, morType, morValue);
}
-
- public CustomFieldDef addCustomerFieldDef(String fieldName, String morType,
+
+ public CustomFieldDef addCustomerFieldDef(String fieldName, String morType,
PrivilegePolicyDef fieldDefPolicy, PrivilegePolicyDef fieldPolicy) throws Exception {
return _context.getService().addCustomFieldDef(getMor(), fieldName, morType, fieldDefPolicy, fieldPolicy);
}
-
+
public void removeCustomFieldDef(int key) throws Exception {
_context.getService().removeCustomFieldDef(getMor(), key);
}
-
+
public void renameCustomFieldDef(int key, String name) throws Exception {
_context.getService().renameCustomFieldDef(getMor(), key, name);
}
-
+
public void setField(ManagedObjectReference morEntity, int key, String value) throws Exception {
_context.getService().setField(getMor(), morEntity, key, value);
}
-
+
public CustomFieldDef[] getFields() throws Exception {
- return (CustomFieldDef[])_context.getServiceUtil().getDynamicProperty(getMor(), "field");
+ return (CustomFieldDef[])_context.getVimClient().getDynamicProperty(getMor(), "field");
}
-
+
public int getCustomFieldKey(String morType, String fieldName) throws Exception {
CustomFieldDef[] fields = getFields();
if(fields != null) {
@@ -62,12 +62,12 @@ public class CustomFieldsManagerMO extends BaseMO {
}
return 0;
}
-
+
public int ensureCustomFieldDef(String morType, String fieldName) throws Exception {
int key = getCustomFieldKey(morType, fieldName);
if(key > 0)
return key;
-
+
try {
CustomFieldDef field = addCustomerFieldDef(fieldName, morType, null, null);
return field.getKey();
@@ -75,10 +75,10 @@ public class CustomFieldsManagerMO extends BaseMO {
// assuming that someone is adding it
key = getCustomFieldKey(morType, fieldName);
}
-
+
if(key == 0)
throw new Exception("Unable to setup custom field facility for " + morType + ":" + fieldName);
-
+
return key;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/481f4804/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatacenterMO.java
----------------------------------------------------------------------
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatacenterMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatacenterMO.java
index eb10e16..4cb0a61 100755
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatacenterMO.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatacenterMO.java
@@ -22,7 +22,6 @@ import java.util.List;
import com.cloud.hypervisor.vmware.util.VmwareContext;
import com.cloud.utils.Pair;
-import com.vmware.apputils.vim25.ServiceUtil;
import com.vmware.vim25.CustomFieldStringValue;
import com.vmware.vim25.DVPortgroupConfigInfo;
import com.vmware.vim25.DistributedVirtualSwitchPortConnection;
@@ -34,59 +33,58 @@ import com.vmware.vim25.PropertyFilterSpec;
import com.vmware.vim25.PropertySpec;
import com.vmware.vim25.SelectionSpec;
import com.vmware.vim25.TraversalSpec;
-import com.vmware.vim25.VirtualDeviceBackingInfo;
import com.vmware.vim25.VirtualEthernetCardDistributedVirtualPortBackingInfo;
-import com.vmware.vim25.VirtualEthernetCardNetworkBackingInfo;
+import edu.emory.mathcs.backport.java.util.Arrays;
public class DatacenterMO extends BaseMO {
-
+
public DatacenterMO(VmwareContext context, ManagedObjectReference morDc) {
super(context, morDc);
}
-
+
public DatacenterMO(VmwareContext context, String morType, String morValue) {
super(context, morType, morValue);
}
-
+
public DatacenterMO(VmwareContext context, String dcName) throws Exception {
super(context, null);
-
- _mor = _context.getServiceUtil().getDecendentMoRef(_context.getRootFolder(), "Datacenter", dcName);
+
+ _mor = _context.getVimClient().getDecendentMoRef(_context.getRootFolder(), "Datacenter", dcName);
assert(_mor != null);
}
-
- public String getName() throws Exception {
- return (String)_context.getServiceUtil().getDynamicProperty(_mor, "name");
+
+ @Override
+ public String getName() throws Exception {
+ return (String)_context.getVimClient().getDynamicProperty(_mor, "name");
}
-
- public void registerTemplate(ManagedObjectReference morHost, String datastoreName,
+
+ public void registerTemplate(ManagedObjectReference morHost, String datastoreName,
String templateName, String templateFileName) throws Exception {
-
- ServiceUtil serviceUtil = _context.getServiceUtil();
-
- ManagedObjectReference morFolder = (ManagedObjectReference)serviceUtil.getDynamicProperty(
+
+
+ ManagedObjectReference morFolder = (ManagedObjectReference)_context.getVimClient().getDynamicProperty(
_mor, "vmFolder");
assert(morFolder != null);
-
- ManagedObjectReference morTask = _context.getService().registerVM_Task(
- morFolder,
+
+ ManagedObjectReference morTask = _context.getService().registerVMTask(
+ morFolder,
String.format("[%s] %s/%s", datastoreName, templateName, templateFileName),
- templateName, true,
+ templateName, true,
null, morHost);
-
- String result = serviceUtil.waitForTask(morTask);
- if (!result.equalsIgnoreCase("Sucess")) {
+
+ boolean result = _context.getVimClient().waitForTask(morTask);
+ if (!result) {
throw new Exception("Unable to register template due to " + TaskMO.getTaskFailureInfo(_context, morTask));
} else {
_context.waitForTaskProgressDone(morTask);
}
}
-
+
public VirtualMachineMO findVm(String vmName) throws Exception {
- ObjectContent[] ocs = getVmPropertiesOnDatacenterVmFolder(new String[] { "name" });
- if(ocs != null && ocs.length > 0) {
+ List<ObjectContent> ocs = getVmPropertiesOnDatacenterVmFolder(new String[] { "name" });
+ if(ocs != null && ocs.size() > 0) {
for(ObjectContent oc : ocs) {
- DynamicProperty[] props = oc.getPropSet();
+ List<DynamicProperty> props = oc.getPropSet();
if(props != null) {
for(DynamicProperty prop : props) {
if(prop.getVal().toString().equals(vmName))
@@ -97,19 +95,19 @@ public class DatacenterMO extends BaseMO {
}
return null;
}
-
+
public List<VirtualMachineMO> findVmByNameAndLabel(String vmLabel) throws Exception {
- CustomFieldsManagerMO cfmMo = new CustomFieldsManagerMO(_context,
+ CustomFieldsManagerMO cfmMo = new CustomFieldsManagerMO(_context,
_context.getServiceContent().getCustomFieldsManager());
int key = cfmMo.getCustomFieldKey("VirtualMachine", CustomFieldConstants.CLOUD_UUID);
assert(key != 0);
-
+
List<VirtualMachineMO> list = new ArrayList<VirtualMachineMO>();
-
- ObjectContent[] ocs = getVmPropertiesOnDatacenterVmFolder(new String[] { "name", String.format("value[%d]", key)});
- if(ocs != null && ocs.length > 0) {
+
+ List<ObjectContent> ocs = getVmPropertiesOnDatacenterVmFolder(new String[] { "name", String.format("value[%d]", key)});
+ if(ocs != null && ocs.size() > 0) {
for(ObjectContent oc : ocs) {
- DynamicProperty[] props = oc.getPropSet();
+ List<DynamicProperty> props = oc.getPropSet();
if(props != null) {
for(DynamicProperty prop : props) {
if(prop.getVal() != null) {
@@ -135,209 +133,217 @@ public class DatacenterMO extends BaseMO {
public List<Pair<ManagedObjectReference, String>> getAllVmsOnDatacenter() throws Exception {
List<Pair<ManagedObjectReference, String>> vms = new ArrayList<Pair<ManagedObjectReference, String>>();
-
- ObjectContent[] ocs = getVmPropertiesOnDatacenterVmFolder(new String[] { "name" });
+
+ List<ObjectContent> ocs = getVmPropertiesOnDatacenterVmFolder(new String[] { "name" });
if(ocs != null) {
for(ObjectContent oc : ocs) {
- String vmName = oc.getPropSet(0).getVal().toString();
+ String vmName = oc.getPropSet().get(0).getVal().toString();
vms.add(new Pair<ManagedObjectReference, String>(oc.getObj(), vmName));
}
}
-
+
return vms;
- }
-
+ }
+
public ManagedObjectReference findDatastore(String name) throws Exception {
assert(name != null);
-
- ObjectContent[] ocs = getDatastorePropertiesOnDatacenter(new String[] { "name" });
+
+ List<ObjectContent> ocs = getDatastorePropertiesOnDatacenter(new String[] { "name" });
if(ocs != null) {
for(ObjectContent oc : ocs) {
- if(oc.getPropSet(0).getVal().toString().equals(name)) {
+ if(oc.getPropSet().get(0).getVal().toString().equals(name)) {
return oc.getObj();
}
}
}
return null;
}
-
+
public ManagedObjectReference findHost(String name) throws Exception {
- ObjectContent[] ocs= getHostPropertiesOnDatacenterHostFolder(new String[] { "name" });
-
+ List<ObjectContent> ocs= getHostPropertiesOnDatacenterHostFolder(new String[] { "name" });
+
if(ocs != null) {
for(ObjectContent oc : ocs) {
- if(oc.getPropSet(0).getVal().toString().equals(name)) {
+ if(oc.getPropSet().get(0).getVal().toString().equals(name)) {
return oc.getObj();
}
}
}
return null;
}
-
+
public ManagedObjectReference getVmFolder() throws Exception {
- return (ManagedObjectReference)_context.getServiceUtil().getDynamicProperty(_mor, "vmFolder");
+ return (ManagedObjectReference)_context.getVimClient().getDynamicProperty(_mor, "vmFolder");
}
-
- public ObjectContent[] getHostPropertiesOnDatacenterHostFolder(String[] propertyPaths) throws Exception {
+
+ public List<ObjectContent> getHostPropertiesOnDatacenterHostFolder(String[] propertyPaths) throws Exception {
PropertySpec pSpec = new PropertySpec();
pSpec.setType("HostSystem");
- pSpec.setPathSet(propertyPaths);
-
+ pSpec.getPathSet().addAll(Arrays.asList(propertyPaths));
+
TraversalSpec computeResource2HostTraversal = new TraversalSpec();
computeResource2HostTraversal.setType("ComputeResource");
computeResource2HostTraversal.setPath("host");
computeResource2HostTraversal.setName("computeResource2HostTraversal");
-
+
SelectionSpec recurseFolders = new SelectionSpec();
recurseFolders.setName("folder2childEntity");
-
+
TraversalSpec folder2childEntity = new TraversalSpec();
folder2childEntity.setType("Folder");
folder2childEntity.setPath("childEntity");
folder2childEntity.setName(recurseFolders.getName());
- folder2childEntity.setSelectSet(new SelectionSpec[] { recurseFolders, computeResource2HostTraversal });
-
+ folder2childEntity.getSelectSet().add(recurseFolders);
+ folder2childEntity.getSelectSet().add(computeResource2HostTraversal);
+
TraversalSpec dc2HostFolderTraversal = new TraversalSpec();
dc2HostFolderTraversal.setType("Datacenter");
dc2HostFolderTraversal.setPath("hostFolder");
dc2HostFolderTraversal.setName("dc2HostFolderTraversal");
- dc2HostFolderTraversal.setSelectSet(new SelectionSpec[] { folder2childEntity } );
-
+ dc2HostFolderTraversal.getSelectSet().add(folder2childEntity);
+
ObjectSpec oSpec = new ObjectSpec();
oSpec.setObj(_mor);
oSpec.setSkip(Boolean.TRUE);
- oSpec.setSelectSet(new SelectionSpec[] { dc2HostFolderTraversal });
+ oSpec.getSelectSet().add(dc2HostFolderTraversal);
PropertyFilterSpec pfSpec = new PropertyFilterSpec();
- pfSpec.setPropSet(new PropertySpec[] { pSpec });
- pfSpec.setObjectSet(new ObjectSpec[] { oSpec });
-
- return _context.getService().retrieveProperties(
- _context.getServiceContent().getPropertyCollector(),
- new PropertyFilterSpec[] { pfSpec });
+ pfSpec.getPropSet().add(pSpec);
+ pfSpec.getObjectSet().add(oSpec);
+ List<PropertyFilterSpec> pfSpecArr = new ArrayList<PropertyFilterSpec>();
+ pfSpecArr.add(pfSpec);
+
+ return _context.getService().retrieveProperties(_context.getPropertyCollector(), pfSpecArr);
+
}
-
- public ObjectContent[] getDatastorePropertiesOnDatacenter(String[] propertyPaths) throws Exception {
-
+
+ public List<ObjectContent> getDatastorePropertiesOnDatacenter(String[] propertyPaths) throws Exception {
+
PropertySpec pSpec = new PropertySpec();
pSpec.setType("Datastore");
- pSpec.setPathSet(propertyPaths);
-
+ pSpec.getPathSet().addAll(Arrays.asList(propertyPaths));
+
TraversalSpec dc2DatastoreTraversal = new TraversalSpec();
dc2DatastoreTraversal.setType("Datacenter");
dc2DatastoreTraversal.setPath("datastore");
dc2DatastoreTraversal.setName("dc2DatastoreTraversal");
-
+
ObjectSpec oSpec = new ObjectSpec();
oSpec.setObj(_mor);
oSpec.setSkip(Boolean.TRUE);
- oSpec.setSelectSet(new SelectionSpec[] { dc2DatastoreTraversal });
+ oSpec.getSelectSet().add(dc2DatastoreTraversal);
PropertyFilterSpec pfSpec = new PropertyFilterSpec();
- pfSpec.setPropSet(new PropertySpec[] { pSpec });
- pfSpec.setObjectSet(new ObjectSpec[] { oSpec });
-
- return _context.getService().retrieveProperties(
- _context.getServiceContent().getPropertyCollector(),
- new PropertyFilterSpec[] { pfSpec });
+ pfSpec.getPropSet().add(pSpec);
+ pfSpec.getObjectSet().add(oSpec);
+ List<PropertyFilterSpec> pfSpecArr = new ArrayList<PropertyFilterSpec>();
+ pfSpecArr.add(pfSpec);
+
+ return _context.getService().retrieveProperties(_context.getPropertyCollector(), pfSpecArr);
+
}
-
- public ObjectContent[] getVmPropertiesOnDatacenterVmFolder(String[] propertyPaths) throws Exception {
+
+ public List<ObjectContent> getVmPropertiesOnDatacenterVmFolder(String[] propertyPaths) throws Exception {
PropertySpec pSpec = new PropertySpec();
pSpec.setType("VirtualMachine");
- pSpec.setPathSet(propertyPaths);
-
+ pSpec.getPathSet().addAll(Arrays.asList(propertyPaths));
+
TraversalSpec dc2VmFolderTraversal = new TraversalSpec();
dc2VmFolderTraversal.setType("Datacenter");
dc2VmFolderTraversal.setPath("vmFolder");
dc2VmFolderTraversal.setName("dc2VmFolderTraversal");
-
+
+
SelectionSpec recurseFolders = new SelectionSpec();
recurseFolders.setName("folder2childEntity");
-
+
TraversalSpec folder2childEntity = new TraversalSpec();
folder2childEntity.setType("Folder");
folder2childEntity.setPath("childEntity");
folder2childEntity.setName(recurseFolders.getName());
- folder2childEntity.setSelectSet(new SelectionSpec[] { recurseFolders });
- dc2VmFolderTraversal.setSelectSet(new SelectionSpec[] { folder2childEntity } );
+ folder2childEntity.getSelectSet().add(recurseFolders);
+ dc2VmFolderTraversal.getSelectSet().add(folder2childEntity);
ObjectSpec oSpec = new ObjectSpec();
oSpec.setObj(_mor);
oSpec.setSkip(Boolean.TRUE);
- oSpec.setSelectSet(new SelectionSpec[] { dc2VmFolderTraversal });
+ oSpec.getSelectSet().add(dc2VmFolderTraversal);
PropertyFilterSpec pfSpec = new PropertyFilterSpec();
- pfSpec.setPropSet(new PropertySpec[] { pSpec });
- pfSpec.setObjectSet(new ObjectSpec[] { oSpec });
-
- return _context.getService().retrieveProperties(
- _context.getServiceContent().getPropertyCollector(),
- new PropertyFilterSpec[] { pfSpec });
+ pfSpec.getPropSet().add(pSpec);
+ pfSpec.getObjectSet().add(oSpec);
+ List<PropertyFilterSpec> pfSpecArr = new ArrayList<PropertyFilterSpec>();
+ pfSpecArr.add(pfSpec);
+
+ return _context.getService().retrieveProperties(_context.getPropertyCollector(), pfSpecArr);
}
-
- public static Pair<DatacenterMO, String> getOwnerDatacenter(VmwareContext context,
+
+ public static Pair<DatacenterMO, String> getOwnerDatacenter(VmwareContext context,
ManagedObjectReference morEntity) throws Exception {
-
+
PropertySpec pSpec = new PropertySpec();
pSpec.setType("Datacenter");
- pSpec.setPathSet(new String[] { "name" });
-
+ pSpec.getPathSet().add("name");
+
TraversalSpec entityParentTraversal = new TraversalSpec();
entityParentTraversal.setType("ManagedEntity");
entityParentTraversal.setPath("parent");
entityParentTraversal.setName("entityParentTraversal");
- entityParentTraversal.setSelectSet(new SelectionSpec[] { new SelectionSpec(null, null, "entityParentTraversal") });
+ SelectionSpec selSpec = new SelectionSpec();
+ selSpec.setName("entityParentTraversal");
+ entityParentTraversal.getSelectSet().add(selSpec);
ObjectSpec oSpec = new ObjectSpec();
oSpec.setObj(morEntity);
oSpec.setSkip(Boolean.TRUE);
- oSpec.setSelectSet(new SelectionSpec[] { entityParentTraversal });
+ oSpec.getSelectSet().add(entityParentTraversal);
PropertyFilterSpec pfSpec = new PropertyFilterSpec();
- pfSpec.setPropSet(new PropertySpec[] { pSpec });
- pfSpec.setObjectSet(new ObjectSpec[] { oSpec });
-
- ObjectContent[] ocs = context.getService().retrieveProperties(
- context.getServiceContent().getPropertyCollector(),
- new PropertyFilterSpec[] { pfSpec });
-
- assert(ocs != null);
- assert(ocs[0].getObj() != null);
- assert(ocs[0].getPropSet(0) != null);
- assert(ocs[0].getPropSet(0).getVal() != null);
-
- String dcName = ocs[0].getPropSet(0).getVal().toString();
- return new Pair<DatacenterMO, String>(new DatacenterMO(context, ocs[0].getObj()), dcName);
+ pfSpec.getPropSet().add(pSpec);
+ pfSpec.getObjectSet().add(oSpec);
+ List<PropertyFilterSpec> pfSpecArr = new ArrayList<PropertyFilterSpec>();
+ pfSpecArr.add(pfSpec);
+
+ List<ObjectContent> ocs = context.getService().retrieveProperties(
+ context.getPropertyCollector(), pfSpecArr);
+
+ assert(ocs != null && ocs.size() > 0);
+ assert(ocs.get(0).getObj() != null);
+ assert(ocs.get(0).getPropSet().get(0) != null);
+ assert(ocs.get(0).getPropSet().get(0).getVal() != null);
+
+ String dcName = ocs.get(0).getPropSet().get(0).getVal().toString();
+ return new Pair<DatacenterMO, String>(new DatacenterMO(context, ocs.get(0).getObj()), dcName);
}
-
+
public ManagedObjectReference getDvPortGroupMor(String dvPortGroupName) throws Exception {
PropertySpec pSpec = new PropertySpec();
pSpec.setType("DistributedVirtualPortgroup");
- pSpec.setPathSet(new String[] {"name"});
-
+ pSpec.getPathSet().add("name");
+
TraversalSpec datacenter2DvPortGroupTraversal = new TraversalSpec();
datacenter2DvPortGroupTraversal.setType("Datacenter");
datacenter2DvPortGroupTraversal.setPath("network");
datacenter2DvPortGroupTraversal.setName("datacenter2DvPortgroupTraversal");
-
+
ObjectSpec oSpec = new ObjectSpec();
oSpec.setObj(_mor);
oSpec.setSkip(Boolean.TRUE);
- oSpec.setSelectSet(new SelectionSpec[] { datacenter2DvPortGroupTraversal });
+ oSpec.getSelectSet().add(datacenter2DvPortGroupTraversal);
PropertyFilterSpec pfSpec = new PropertyFilterSpec();
- pfSpec.setPropSet(new PropertySpec[] { pSpec });
- pfSpec.setObjectSet(new ObjectSpec[] { oSpec });
-
- ObjectContent[] ocs = _context.getService().retrieveProperties(
- _context.getServiceContent().getPropertyCollector(),
- new PropertyFilterSpec[] { pfSpec });
-
+ pfSpec.getPropSet().add(pSpec);
+ pfSpec.getObjectSet().add(oSpec);
+ List<PropertyFilterSpec> pfSpecArr = new ArrayList<PropertyFilterSpec>();
+ pfSpecArr.add(pfSpec);
+
+ List<ObjectContent> ocs = _context.getService().retrieveProperties(
+ _context.getPropertyCollector(), pfSpecArr);
+
if(ocs != null) {
for(ObjectContent oc : ocs) {
- DynamicProperty[] props = oc.getPropSet();
+ List<DynamicProperty> props = oc.getPropSet();
if(props != null) {
for(DynamicProperty prop : props) {
if(prop.getVal().equals(dvPortGroupName))
@@ -347,22 +353,23 @@ public class DatacenterMO extends BaseMO {
}
}
return null;
- }
+ }
public boolean hasDvPortGroup(String dvPortGroupName) throws Exception {
ManagedObjectReference morNetwork = getDvPortGroupMor(dvPortGroupName);
if(morNetwork != null)
return true;
- return false;
+ return false;
}
-
+
public DVPortgroupConfigInfo getDvPortGroupSpec(String dvPortGroupName) throws Exception {
DVPortgroupConfigInfo configSpec = null;
String nameProperty = null;
PropertySpec pSpec = new PropertySpec();
pSpec.setType("DistributedVirtualPortgroup");
- pSpec.setPathSet(new String[] {"name", "config"});
-
+ pSpec.getPathSet().add("name");
+ pSpec.getPathSet().add("config");
+
TraversalSpec datacenter2DvPortGroupTraversal = new TraversalSpec();
datacenter2DvPortGroupTraversal.setType("Datacenter");
datacenter2DvPortGroupTraversal.setPath("network");
@@ -371,21 +378,22 @@ public class DatacenterMO extends BaseMO {
ObjectSpec oSpec = new ObjectSpec();
oSpec.setObj(_mor);
oSpec.setSkip(Boolean.TRUE);
- oSpec.setSelectSet(new SelectionSpec[] { datacenter2DvPortGroupTraversal });
+ oSpec.getSelectSet().add(datacenter2DvPortGroupTraversal);
PropertyFilterSpec pfSpec = new PropertyFilterSpec();
- pfSpec.setPropSet(new PropertySpec[] { pSpec });
- pfSpec.setObjectSet(new ObjectSpec[] { oSpec });
-
- ObjectContent[] ocs = _context.getService().retrieveProperties(
- _context.getServiceContent().getPropertyCollector(),
- new PropertyFilterSpec[] { pfSpec });
-
+ pfSpec.getPropSet().add(pSpec);
+ pfSpec.getObjectSet().add(oSpec);
+ List<PropertyFilterSpec> pfSpecArr = new ArrayList<PropertyFilterSpec>();
+ pfSpecArr.add(pfSpec);
+
+ List<ObjectContent> ocs = _context.getService().retrieveProperties(
+ _context.getPropertyCollector(), pfSpecArr);
+
if(ocs != null) {
for(ObjectContent oc : ocs) {
- DynamicProperty[] props = oc.getPropSet();
+ List<DynamicProperty> props = oc.getPropSet();
if(props != null) {
- assert(props.length == 2);
+ assert(props.size() == 2);
for(DynamicProperty prop : props) {
if(prop.getName().equals("config")) {
configSpec = (DVPortgroupConfigInfo) prop.getVal();
@@ -395,7 +403,7 @@ public class DatacenterMO extends BaseMO {
}
}
if(nameProperty.equalsIgnoreCase(dvPortGroupName)) {
- return configSpec;
+ return configSpec;
}
}
}
@@ -408,7 +416,8 @@ public class DatacenterMO extends BaseMO {
ManagedObjectReference dvSwitchMor = null;
PropertySpec pSpec = new PropertySpec();
pSpec.setType("DistributedVirtualPortgroup");
- pSpec.setPathSet(new String[] { "key", "config.distributedVirtualSwitch" });
+ pSpec.getPathSet().add("key");
+ pSpec.getPathSet().add("config.distributedVirtualSwitch");
TraversalSpec datacenter2DvPortGroupTraversal = new TraversalSpec();
datacenter2DvPortGroupTraversal.setType("Datacenter");
@@ -418,21 +427,22 @@ public class DatacenterMO extends BaseMO {
ObjectSpec oSpec = new ObjectSpec();
oSpec.setObj(_mor);
oSpec.setSkip(Boolean.TRUE);
- oSpec.setSelectSet(new SelectionSpec[] { datacenter2DvPortGroupTraversal });
+ oSpec.getSelectSet().add(datacenter2DvPortGroupTraversal);
PropertyFilterSpec pfSpec = new PropertyFilterSpec();
- pfSpec.setPropSet(new PropertySpec[] { pSpec });
- pfSpec.setObjectSet(new ObjectSpec[] { oSpec });
+ pfSpec.getPropSet().add(pSpec);
+ pfSpec.getObjectSet().add(oSpec);
+ List<PropertyFilterSpec> pfSpecArr = new ArrayList<PropertyFilterSpec>();
+ pfSpecArr.add(pfSpec);
- ObjectContent[] ocs = _context.getService().retrieveProperties(
- _context.getServiceContent().getPropertyCollector(),
- new PropertyFilterSpec[] { pfSpec });
+ List<ObjectContent> ocs = _context.getService().retrieveProperties(
+ _context.getPropertyCollector(), pfSpecArr);
if (ocs != null) {
for (ObjectContent oc : ocs) {
- DynamicProperty[] props = oc.getPropSet();
+ List<DynamicProperty> props = oc.getPropSet();
if (props != null) {
- assert (props.length == 2);
+ assert (props.size() == 2);
for (DynamicProperty prop : props) {
if (prop.getName().equals("key")) {
dvPortGroupKey = (String) prop.getVal();
@@ -441,7 +451,7 @@ public class DatacenterMO extends BaseMO {
dvSwitchMor = (ManagedObjectReference) prop.getVal();
}
}
- if ((dvPortGroupKey != null) && dvPortGroupKey.equals(dvPortGroupMor.get_value())) {
+ if ((dvPortGroupKey != null) && dvPortGroupKey.equals(dvPortGroupMor.getValue())) {
return dvSwitchMor;
}
}
@@ -452,7 +462,7 @@ public class DatacenterMO extends BaseMO {
public String getDvSwitchUuid(ManagedObjectReference dvSwitchMor) throws Exception {
assert (dvSwitchMor != null);
- return (String) _context.getServiceUtil().getDynamicProperty(dvSwitchMor, "uuid");
+ return (String) _context.getVimClient().getDynamicProperty(dvSwitchMor, "uuid");
}
public VirtualEthernetCardDistributedVirtualPortBackingInfo getDvPortBackingInfo(Pair<ManagedObjectReference, String> networkInfo)
@@ -464,7 +474,7 @@ public class DatacenterMO extends BaseMO {
ManagedObjectReference dvsMor = getDvSwitchMor(networkInfo.first());
String dvSwitchUuid = getDvSwitchUuid(dvsMor);
dvPortConnection.setSwitchUuid(dvSwitchUuid);
- dvPortConnection.setPortgroupKey(networkInfo.first().get_value());
+ dvPortConnection.setPortgroupKey(networkInfo.first().getValue());
dvPortBacking.setPort(dvPortConnection);
System.out.println("Plugging NIC device into network " + networkInfo.second() + " backed by dvSwitch: "
+ dvSwitchUuid);
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/481f4804/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatastoreMO.java
----------------------------------------------------------------------
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatastoreMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatastoreMO.java
index 57e83b9..c79605d 100755
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatastoreMO.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatastoreMO.java
@@ -36,95 +36,98 @@ import com.vmware.vim25.TraversalSpec;
public class DatastoreMO extends BaseMO {
private static final Logger s_logger = Logger.getLogger(DatastoreMO.class);
-
- private String _name;
- private Pair<DatacenterMO, String> _ownerDc;
-
+
+ private String _name;
+ private Pair<DatacenterMO, String> _ownerDc;
+
public DatastoreMO(VmwareContext context, ManagedObjectReference morDatastore) {
super(context, morDatastore);
}
-
+
public DatastoreMO(VmwareContext context, String morType, String morValue) {
super(context, morType, morValue);
}
public String getName() throws Exception {
- if(_name == null)
- _name = (String)_context.getServiceUtil().getDynamicProperty(_mor, "name");
-
+ if(_name == null)
+ _name = (String)_context.getVimClient().getDynamicProperty(_mor, "name");
+
return _name;
}
-
+
public DatastoreSummary getSummary() throws Exception {
- return (DatastoreSummary)_context.getServiceUtil().getDynamicProperty(_mor, "summary");
+ return (DatastoreSummary)_context.getVimClient().getDynamicProperty(_mor, "summary");
}
-
+
public HostDatastoreBrowserMO getHostDatastoreBrowserMO() throws Exception {
- return new HostDatastoreBrowserMO(_context,
- (ManagedObjectReference)_context.getServiceUtil().getDynamicProperty(_mor, "browser"));
+ return new HostDatastoreBrowserMO(_context,
+ (ManagedObjectReference)_context.getVimClient().getDynamicProperty(_mor, "browser"));
}
-
+
public String getInventoryPath() throws Exception {
Pair<DatacenterMO, String> dcInfo = getOwnerDatacenter();
return dcInfo.second() + "/" + getName();
}
-
+
public Pair<DatacenterMO, String> getOwnerDatacenter() throws Exception {
if(_ownerDc != null)
return _ownerDc;
-
+
PropertySpec pSpec = new PropertySpec();
pSpec.setType("Datacenter");
- pSpec.setPathSet(new String[] { "name" });
-
+ pSpec.getPathSet().add("name");
+
TraversalSpec folderParentTraversal = new TraversalSpec();
folderParentTraversal.setType("Folder");
folderParentTraversal.setPath("parent");
folderParentTraversal.setName("folderParentTraversal");
- folderParentTraversal.setSelectSet(new SelectionSpec[] { new SelectionSpec(null, null, "folderParentTraversal") });
-
+ SelectionSpec sSpec = new SelectionSpec();
+ sSpec.setName("folderParentTraversal");
+ folderParentTraversal.getSelectSet().add(sSpec);
+
TraversalSpec dsParentTraversal = new TraversalSpec();
dsParentTraversal.setType("Datastore");
dsParentTraversal.setPath("parent");
dsParentTraversal.setName("dsParentTraversal");
- dsParentTraversal.setSelectSet(new SelectionSpec[] { folderParentTraversal });
+ dsParentTraversal.getSelectSet().add(folderParentTraversal);
ObjectSpec oSpec = new ObjectSpec();
oSpec.setObj(getMor());
oSpec.setSkip(Boolean.TRUE);
- oSpec.setSelectSet(new SelectionSpec[] { dsParentTraversal });
+ oSpec.getSelectSet().add(dsParentTraversal);
PropertyFilterSpec pfSpec = new PropertyFilterSpec();
- pfSpec.setPropSet(new PropertySpec[] { pSpec });
- pfSpec.setObjectSet(new ObjectSpec[] { oSpec });
-
- ObjectContent[] ocs = _context.getService().retrieveProperties(
- _context.getServiceContent().getPropertyCollector(),
- new PropertyFilterSpec[] { pfSpec });
-
- assert(ocs != null);
- assert(ocs[0].getObj() != null);
- assert(ocs[0].getPropSet() != null);
- String dcName = ocs[0].getPropSet()[0].getVal().toString();
- _ownerDc = new Pair<DatacenterMO, String>(new DatacenterMO(_context, ocs[0].getObj()), dcName);
+ pfSpec.getPropSet().add(pSpec);
+ pfSpec.getObjectSet().add(oSpec);
+ List<PropertyFilterSpec> pfSpecArr = new ArrayList<PropertyFilterSpec>();
+ pfSpecArr.add(pfSpec);
+
+ List<ObjectContent> ocs = _context.getService().retrieveProperties(
+ _context.getPropertyCollector(), pfSpecArr);
+
+ assert(ocs != null && ocs.size() > 0);
+ assert(ocs.get(0).getObj() != null);
+ assert(ocs.get(0).getPropSet() != null);
+ String dcName = ocs.get(0).getPropSet().get(0).getVal().toString();
+ _ownerDc = new Pair<DatacenterMO, String>(new DatacenterMO(_context, ocs.get(0).getObj()), dcName);
return _ownerDc;
}
-
+
public void makeDirectory(String path, ManagedObjectReference morDc) throws Exception {
String datastoreName = getName();
ManagedObjectReference morFileManager = _context.getServiceContent().getFileManager();
-
+
String fullPath = path;
- if(!DatastoreFile.isFullDatastorePath(fullPath))
+ if(!DatastoreFile.isFullDatastorePath(fullPath))
fullPath = String.format("[%s] %s", datastoreName, path);
-
+
_context.getService().makeDirectory(morFileManager, fullPath, morDc, true);
}
-
+
public boolean deleteFile(String path, ManagedObjectReference morDc, boolean testExistence) throws Exception {
String datastoreName = getName();
ManagedObjectReference morFileManager = _context.getServiceContent().getFileManager();
-
+
String fullPath = path;
if(!DatastoreFile.isFullDatastorePath(fullPath))
fullPath = String.format("[%s] %s", datastoreName, path);
@@ -136,12 +139,11 @@ public class DatastoreMO extends BaseMO {
s_logger.info("Unable to test file existence due to exception " + e.getClass().getName() + ", skip deleting of it");
return true;
}
-
- ManagedObjectReference morTask = _context.getService().deleteDatastoreFile_Task(morFileManager,
- fullPath, morDc);
-
- String result = _context.getServiceUtil().waitForTask(morTask);
- if(result.equals("sucess")) {
+
+ ManagedObjectReference morTask = _context.getService().deleteDatastoreFileTask(morFileManager, fullPath, morDc);
+
+ boolean result = _context.getVimClient().waitForTask(morTask);
+ if(result) {
_context.waitForTaskProgressDone(morTask);
return true;
} else {
@@ -149,29 +151,29 @@ public class DatastoreMO extends BaseMO {
}
return false;
}
-
+
public boolean copyDatastoreFile(String srcFilePath, ManagedObjectReference morSrcDc,
- ManagedObjectReference morDestDs, String destFilePath, ManagedObjectReference morDestDc,
+ ManagedObjectReference morDestDs, String destFilePath, ManagedObjectReference morDestDc,
boolean forceOverwrite) throws Exception {
-
+
String srcDsName = getName();
DatastoreMO destDsMo = new DatastoreMO(_context, morDestDs);
String destDsName = destDsMo.getName();
-
+
ManagedObjectReference morFileManager = _context.getServiceContent().getFileManager();
String srcFullPath = srcFilePath;
if(!DatastoreFile.isFullDatastorePath(srcFullPath))
srcFullPath = String.format("[%s] %s", srcDsName, srcFilePath);
-
+
String destFullPath = destFilePath;
if(!DatastoreFile.isFullDatastorePath(destFullPath))
destFullPath = String.format("[%s] %s", destDsName, destFilePath);
-
- ManagedObjectReference morTask = _context.getService().copyDatastoreFile_Task(morFileManager,
+
+ ManagedObjectReference morTask = _context.getService().copyDatastoreFileTask(morFileManager,
srcFullPath, morSrcDc, destFullPath, morDestDc, forceOverwrite);
-
- String result = _context.getServiceUtil().waitForTask(morTask);
- if(result.equals("sucess")) {
+
+ boolean result = _context.getVimClient().waitForTask(morTask);
+ if(result) {
_context.waitForTaskProgressDone(morTask);
return true;
} else {
@@ -179,29 +181,29 @@ public class DatastoreMO extends BaseMO {
}
return false;
}
-
+
public boolean moveDatastoreFile(String srcFilePath, ManagedObjectReference morSrcDc,
- ManagedObjectReference morDestDs, String destFilePath, ManagedObjectReference morDestDc,
+ ManagedObjectReference morDestDs, String destFilePath, ManagedObjectReference morDestDc,
boolean forceOverwrite) throws Exception {
-
+
String srcDsName = getName();
DatastoreMO destDsMo = new DatastoreMO(_context, morDestDs);
String destDsName = destDsMo.getName();
-
+
ManagedObjectReference morFileManager = _context.getServiceContent().getFileManager();
String srcFullPath = srcFilePath;
if(!DatastoreFile.isFullDatastorePath(srcFullPath))
srcFullPath = String.format("[%s] %s", srcDsName, srcFilePath);
-
+
String destFullPath = destFilePath;
if(!DatastoreFile.isFullDatastorePath(destFullPath))
destFullPath = String.format("[%s] %s", destDsName, destFilePath);
-
- ManagedObjectReference morTask = _context.getService().moveDatastoreFile_Task(morFileManager,
+
+ ManagedObjectReference morTask = _context.getService().moveDatastoreFileTask(morFileManager,
srcFullPath, morSrcDc, destFullPath, morDestDc, forceOverwrite);
-
- String result = _context.getServiceUtil().waitForTask(morTask);
- if(result.equals("sucess")) {
+
+ boolean result = _context.getVimClient().waitForTask(morTask);
+ if(result) {
_context.waitForTaskProgressDone(morTask);
return true;
} else {
@@ -209,23 +211,23 @@ public class DatastoreMO extends BaseMO {
}
return false;
}
-
+
public String[] getVmdkFileChain(String rootVmdkDatastoreFullPath) throws Exception {
Pair<DatacenterMO, String> dcPair = getOwnerDatacenter();
-
+
List<String> files = new ArrayList<String>();
files.add(rootVmdkDatastoreFullPath);
-
+
String currentVmdkFullPath = rootVmdkDatastoreFullPath;
while(true) {
String url = getContext().composeDatastoreBrowseUrl(dcPair.second(), currentVmdkFullPath);
byte[] content = getContext().getResourceContent(url);
if(content == null || content.length == 0)
break;
-
+
VmdkFileDescriptor descriptor = new VmdkFileDescriptor();
descriptor.parse(content);
-
+
String parentFileName = descriptor.getParentFileName();
if(parentFileName == null)
break;
@@ -239,8 +241,8 @@ public class DatastoreMO extends BaseMO {
dir = dir.substring(0, dir.lastIndexOf('/'));
else
dir = "";
-
- currentVmdkFullPath = new DatastoreFile(dsFile.getDatastoreName(), dir,
+
+ currentVmdkFullPath = new DatastoreFile(dsFile.getDatastoreName(), dir,
parentFileName.substring(parentFileName.lastIndexOf('/') + 1)).getPath();
files.add(currentVmdkFullPath);
} else {
@@ -248,7 +250,7 @@ public class DatastoreMO extends BaseMO {
files.add(currentVmdkFullPath);
}
}
-
+
return files.toArray(new String[0]);
}
@@ -257,59 +259,59 @@ public class DatastoreMO extends BaseMO {
String fullPath = path;
if(!DatastoreFile.isFullDatastorePath(fullPath))
fullPath = String.format("[%s] %s", getName(), fullPath);
-
+
Pair<DatacenterMO, String> dcPair = getOwnerDatacenter();
String url = getContext().composeDatastoreBrowseUrl(dcPair.second(), fullPath);
-
+
// TODO, VMware currently does not have a formal API to list Datastore directory content,
// folloing hacking may have performance hit if datastore has a large number of files
return _context.listDatastoreDirContent(url);
}
-
+
public boolean fileExists(String fileFullPath) throws Exception {
DatastoreFile file = new DatastoreFile(fileFullPath);
DatastoreFile dirFile = new DatastoreFile(file.getDatastoreName(), file.getDir());
-
+
HostDatastoreBrowserMO browserMo = getHostDatastoreBrowserMO();
-
+
s_logger.info("Search file " + file.getFileName() + " on " + dirFile.getPath());
HostDatastoreBrowserSearchResults results = browserMo.searchDatastore(dirFile.getPath(), file.getFileName(), true);
if(results != null) {
- FileInfo[] info = results.getFile();
- if(info != null && info.length > 0) {
+ List<FileInfo> info = results.getFile();
+ if(info != null && info.size() > 0) {
s_logger.info("File " + fileFullPath + " exists on datastore");
return true;
}
}
-
+
s_logger.info("File " + fileFullPath + " does not exist on datastore");
return false;
-/*
+/*
String[] fileNames = listDirContent(dirFile.getPath());
-
+
String fileName = file.getFileName();
for(String name : fileNames) {
if(name.equalsIgnoreCase(fileName))
return true;
- }
-
+ }
+
return false;
-*/
+*/
}
-
+
public boolean folderExists(String folderParentDatastorePath, String folderName) throws Exception {
HostDatastoreBrowserMO browserMo = getHostDatastoreBrowserMO();
-
+
HostDatastoreBrowserSearchResults results = browserMo.searchDatastore(folderParentDatastorePath, folderName, true);
if(results != null) {
- FileInfo[] info = results.getFile();
- if(info != null && info.length > 0) {
+ List<FileInfo> info = results.getFile();
+ if(info != null && info.size() > 0) {
s_logger.info("Folder " + folderName + " exists on datastore");
return true;
}
}
-
+
s_logger.info("Folder " + folderName + " does not exist on datastore");
return false;
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/481f4804/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostDatastoreBrowserMO.java
----------------------------------------------------------------------
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostDatastoreBrowserMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostDatastoreBrowserMO.java
index ec0a181..59e754c 100644
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostDatastoreBrowserMO.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostDatastoreBrowserMO.java
@@ -24,39 +24,39 @@ import com.vmware.vim25.HostDatastoreBrowserSearchSpec;
import com.vmware.vim25.ManagedObjectReference;
public class HostDatastoreBrowserMO extends BaseMO {
-
+
private static final Logger s_logger = Logger.getLogger(HostDatastoreBrowserMO.class);
-
+
public HostDatastoreBrowserMO(VmwareContext context, ManagedObjectReference morHostDatastoreBrowser) {
super(context, morHostDatastoreBrowser);
}
-
+
public HostDatastoreBrowserMO(VmwareContext context, String morType, String morValue) {
super(context, morType, morValue);
}
-
+
public void DeleteFile(String datastoreFullPath) throws Exception {
if(s_logger.isTraceEnabled())
- s_logger.trace("vCenter API trace - deleteFile(). target mor: " + _mor.get_value() + ", file datastore path: " + datastoreFullPath);
-
+ s_logger.trace("vCenter API trace - deleteFile(). target mor: " + _mor.getValue() + ", file datastore path: " + datastoreFullPath);
+
_context.getService().deleteFile(_mor, datastoreFullPath);
-
+
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - deleteFile() done");
}
-
+
public HostDatastoreBrowserSearchResults searchDatastore(String datastorePath, HostDatastoreBrowserSearchSpec searchSpec) throws Exception {
if(s_logger.isTraceEnabled())
- s_logger.trace("vCenter API trace - searchDatastore(). target mor: " + _mor.get_value() + ", file datastore path: " + datastorePath);
+ s_logger.trace("vCenter API trace - searchDatastore(). target mor: " + _mor.getValue() + ", file datastore path: " + datastorePath);
try {
- ManagedObjectReference morTask = _context.getService().searchDatastore_Task(_mor, datastorePath, searchSpec);
-
- String result = _context.getServiceUtil().waitForTask(morTask);
- if(result.equals("sucess")) {
+ ManagedObjectReference morTask = _context.getService().searchDatastoreTask(_mor, datastorePath, searchSpec);
+
+ boolean result = _context.getVimClient().waitForTask(morTask);
+ if(result) {
_context.waitForTaskProgressDone(morTask);
-
- return (HostDatastoreBrowserSearchResults)_context.getServiceUtil().getDynamicProperty(morTask, "info.result");
+
+ return (HostDatastoreBrowserSearchResults)_context.getVimClient().getDynamicProperty(morTask, "info.result");
} else {
s_logger.error("VMware searchDaastore_Task failed due to " + TaskMO.getTaskFailureInfo(_context, morTask));
}
@@ -64,30 +64,30 @@ public class HostDatastoreBrowserMO extends BaseMO {
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - searchDatastore() done");
}
-
+
return null;
}
-
+
public HostDatastoreBrowserSearchResults searchDatastore(String datastorePath, String fileName, boolean caseInsensitive) throws Exception {
HostDatastoreBrowserSearchSpec spec = new HostDatastoreBrowserSearchSpec();
spec.setSearchCaseInsensitive(caseInsensitive);
- spec.setMatchPattern(new String[] { fileName });
+ spec.getMatchPattern().add(fileName);
return searchDatastore(datastorePath, spec);
}
-
+
public HostDatastoreBrowserSearchResults searchDatastoreSubFolders(String datastorePath, HostDatastoreBrowserSearchSpec searchSpec) throws Exception {
if(s_logger.isTraceEnabled())
- s_logger.trace("vCenter API trace - searchDatastoreSubFolders(). target mor: " + _mor.get_value() + ", file datastore path: " + datastorePath);
+ s_logger.trace("vCenter API trace - searchDatastoreSubFolders(). target mor: " + _mor.getValue() + ", file datastore path: " + datastorePath);
try {
- ManagedObjectReference morTask = _context.getService().searchDatastoreSubFolders_Task(_mor, datastorePath, searchSpec);
-
- String result = _context.getServiceUtil().waitForTask(morTask);
- if(result.equals("sucess")) {
+ ManagedObjectReference morTask = _context.getService().searchDatastoreSubFoldersTask(_mor, datastorePath, searchSpec);
+
+ boolean result = _context.getVimClient().waitForTask(morTask);
+ if(result) {
_context.waitForTaskProgressDone(morTask);
-
- return (HostDatastoreBrowserSearchResults)_context.getServiceUtil().getDynamicProperty(morTask, "info.result");
+
+ return (HostDatastoreBrowserSearchResults)_context.getVimClient().getDynamicProperty(morTask, "info.result");
} else {
s_logger.error("VMware searchDaastoreSubFolders_Task failed due to " + TaskMO.getTaskFailureInfo(_context, morTask));
}
@@ -95,14 +95,14 @@ public class HostDatastoreBrowserMO extends BaseMO {
if(s_logger.isTraceEnabled())
s_logger.trace("vCenter API trace - searchDatastore() done");
}
-
+
return null;
}
-
+
public HostDatastoreBrowserSearchResults searchDatastoreSubFolders(String datastorePath, String folderName, boolean caseInsensitive) throws Exception {
HostDatastoreBrowserSearchSpec spec = new HostDatastoreBrowserSearchSpec();
spec.setSearchCaseInsensitive(caseInsensitive);
- spec.setMatchPattern(new String[] { folderName });
+ spec.getMatchPattern().add(folderName);
return searchDatastore(datastorePath, spec);
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/481f4804/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 d94102b..7d967a9 100755
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostDatastoreSystemMO.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostDatastoreSystemMO.java
@@ -17,6 +17,9 @@
package com.cloud.hypervisor.vmware.mo;
import java.net.URI;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
import com.cloud.hypervisor.vmware.util.VmwareContext;
import com.vmware.vim25.CustomFieldStringValue;
@@ -37,27 +40,27 @@ public class HostDatastoreSystemMO extends BaseMO {
public HostDatastoreSystemMO(VmwareContext context, ManagedObjectReference morHostDatastore) {
super(context, morHostDatastore);
}
-
+
public HostDatastoreSystemMO(VmwareContext context, String morType, String morValue) {
super(context, morType, morValue);
}
-
+
public ManagedObjectReference findDatastore(String name) throws Exception {
// added cloud.com specific name convention, we will use custom field "cloud.uuid" as datastore name as well
- CustomFieldsManagerMO cfmMo = new CustomFieldsManagerMO(_context,
+ CustomFieldsManagerMO cfmMo = new CustomFieldsManagerMO(_context,
_context.getServiceContent().getCustomFieldsManager());
int key = cfmMo.getCustomFieldKey("Datastore", CustomFieldConstants.CLOUD_UUID);
assert(key != 0);
- ObjectContent[] ocs = getDatastorePropertiesOnHostDatastoreSystem(
+ List<ObjectContent> ocs = getDatastorePropertiesOnHostDatastoreSystem(
new String[] { "name", String.format("value[%d]", key) });
if(ocs != null) {
for(ObjectContent oc : ocs) {
- if(oc.getPropSet(0).getVal().equals(name))
+ if(oc.getPropSet().get(0).getVal().equals(name))
return oc.getObj();
-
- if(oc.getPropSet().length > 1) {
- DynamicProperty prop = oc.getPropSet(1);
+
+ if(oc.getPropSet().size() > 1) {
+ DynamicProperty prop = oc.getPropSet().get(1);
if(prop != null && prop.getVal() != null) {
if(prop.getVal() instanceof CustomFieldStringValue) {
String val = ((CustomFieldStringValue)prop.getVal()).getValue();
@@ -70,11 +73,11 @@ public class HostDatastoreSystemMO extends BaseMO {
}
return null;
}
-
+
// storeUrl in nfs://host/exportpath format
public ManagedObjectReference findDatastoreByUrl(String storeUrl) throws Exception {
assert(storeUrl != null);
-
+
ManagedObjectReference[] datastores = getDatastores();
if(datastores != null && datastores.length > 0) {
for(ManagedObjectReference morDatastore : datastores) {
@@ -87,7 +90,7 @@ public class HostDatastoreSystemMO extends BaseMO {
}
}
}
-
+
return null;
}
@@ -95,30 +98,30 @@ public class HostDatastoreSystemMO extends BaseMO {
// we should be able to find the datastore by name
public ManagedObjectReference findDatastoreByExportPath(String exportPath) throws Exception {
assert(exportPath != null);
-
+
ManagedObjectReference[] datastores = getDatastores();
if(datastores != null && datastores.length > 0) {
for(ManagedObjectReference morDatastore : datastores) {
DatastoreMO dsMo = new DatastoreMO(_context, morDatastore);
- if(dsMo.getInventoryPath().equals(exportPath))
+ if(dsMo.getInventoryPath().equals(exportPath))
return morDatastore;
-
+
NasDatastoreInfo info = getNasDatastoreInfo(morDatastore);
if(info != null) {
String vmwareUrl = info.getUrl();
if(vmwareUrl.charAt(vmwareUrl.length() - 1) == '/')
vmwareUrl = vmwareUrl.substring(0, vmwareUrl.length() - 1);
-
+
URI uri = new URI(vmwareUrl);
if(uri.getPath().equals("/" + exportPath))
return morDatastore;
}
}
}
-
+
return null;
}
-
+
public boolean deleteDatastore(String name) throws Exception {
ManagedObjectReference morDatastore = findDatastore(name);
if(morDatastore != null) {
@@ -127,59 +130,60 @@ public class HostDatastoreSystemMO extends BaseMO {
}
return false;
}
-
- public ManagedObjectReference createNfsDatastore(String host, int port,
+
+ public ManagedObjectReference createNfsDatastore(String host, int port,
String exportPath, String uuid) throws Exception {
-
+
HostNasVolumeSpec spec = new HostNasVolumeSpec();
spec.setRemoteHost(host);
spec.setRemotePath(exportPath);
spec.setType("nfs");
spec.setLocalPath(uuid);
-
+
// readOnly/readWrite
spec.setAccessMode("readWrite");
return _context.getService().createNasDatastore(_mor, spec);
}
-
+
public ManagedObjectReference[] getDatastores() throws Exception {
- return (ManagedObjectReference[])_context.getServiceUtil().getDynamicProperty(
+ return (ManagedObjectReference[])_context.getVimClient().getDynamicProperty(
_mor, "datastore");
}
-
+
public DatastoreInfo getDatastoreInfo(ManagedObjectReference morDatastore) throws Exception {
- return (DatastoreInfo)_context.getServiceUtil().getDynamicProperty(morDatastore, "info");
+ return (DatastoreInfo)_context.getVimClient().getDynamicProperty(morDatastore, "info");
}
-
+
public NasDatastoreInfo getNasDatastoreInfo(ManagedObjectReference morDatastore) throws Exception {
- DatastoreInfo info = (DatastoreInfo)_context.getServiceUtil().getDynamicProperty(morDatastore, "info");
+ DatastoreInfo info = (DatastoreInfo)_context.getVimClient().getDynamicProperty(morDatastore, "info");
if(info instanceof NasDatastoreInfo)
return (NasDatastoreInfo)info;
return null;
}
-
- public ObjectContent[] getDatastorePropertiesOnHostDatastoreSystem(String[] propertyPaths) throws Exception {
-
+
+ public List<ObjectContent> getDatastorePropertiesOnHostDatastoreSystem(String[] propertyPaths) throws Exception {
+
PropertySpec pSpec = new PropertySpec();
pSpec.setType("Datastore");
- pSpec.setPathSet(propertyPaths);
-
+ pSpec.getPathSet().addAll(Arrays.asList(propertyPaths));
+
TraversalSpec hostDsSys2DatastoreTraversal = new TraversalSpec();
hostDsSys2DatastoreTraversal.setType("HostDatastoreSystem");
hostDsSys2DatastoreTraversal.setPath("datastore");
hostDsSys2DatastoreTraversal.setName("hostDsSys2DatastoreTraversal");
-
+
ObjectSpec oSpec = new ObjectSpec();
oSpec.setObj(_mor);
oSpec.setSkip(Boolean.TRUE);
- oSpec.setSelectSet(new SelectionSpec[] { hostDsSys2DatastoreTraversal });
+ oSpec.getSelectSet().add(hostDsSys2DatastoreTraversal);
PropertyFilterSpec pfSpec = new PropertyFilterSpec();
- pfSpec.setPropSet(new PropertySpec[] { pSpec });
- pfSpec.setObjectSet(new ObjectSpec[] { oSpec });
-
+ pfSpec.getPropSet().add(pSpec);
+ pfSpec.getObjectSet().add(oSpec);
+ List<PropertyFilterSpec> pfSpecArr = new ArrayList<PropertyFilterSpec>();
+ pfSpecArr.add(pfSpec);
+
return _context.getService().retrieveProperties(
- _context.getServiceContent().getPropertyCollector(),
- new PropertyFilterSpec[] { pfSpec });
+ _context.getPropertyCollector(), pfSpecArr);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/481f4804/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostFirewallSystemMO.java
----------------------------------------------------------------------
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostFirewallSystemMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostFirewallSystemMO.java
index 2d2b353..df15926 100755
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostFirewallSystemMO.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostFirewallSystemMO.java
@@ -29,27 +29,27 @@ public class HostFirewallSystemMO extends BaseMO {
public HostFirewallSystemMO(VmwareContext context, ManagedObjectReference morFirewallSystem) {
super(context, morFirewallSystem);
}
-
+
public HostFirewallSystemMO(VmwareContext context, String morType, String morValue) {
super(context, morType, morValue);
}
-
+
public HostFirewallInfo getFirewallInfo() throws Exception {
- return (HostFirewallInfo)_context.getServiceUtil().getDynamicProperty(_mor, "firewallInfo");
+ return (HostFirewallInfo)_context.getVimClient().getDynamicProperty(_mor, "firewallInfo");
}
-
+
public void updateDefaultPolicy(HostFirewallDefaultPolicy policy) throws Exception {
_context.getService().updateDefaultPolicy(_mor, policy);
}
-
+
public void enableRuleset(String rulesetName) throws Exception {
_context.getService().enableRuleset(_mor, rulesetName);
}
-
+
public void disableRuleset(String rulesetName) throws Exception {
_context.getService().disableRuleset(_mor, rulesetName);
}
-
+
public void refreshFirewall() throws Exception {
_context.getService().refreshFirewall(_mor);
}