use of com.vmware.vim25.mo.VirtualMachine in project cloudstack by apache.
the class HostMO method loadVmCache.
private void loadVmCache() throws Exception {
if (s_logger.isDebugEnabled())
s_logger.debug("load VM cache on host");
_vmCache.clear();
int key = getCustomFieldKey("VirtualMachine", CustomFieldConstants.CLOUD_VM_INTERNAL_NAME);
if (key == 0) {
s_logger.warn("Custom field " + CustomFieldConstants.CLOUD_VM_INTERNAL_NAME + " is not registered ?!");
}
// name is the name of the VM as it appears in vCenter. The CLOUD_VM_INTERNAL_NAME custom
// field value contains the name of the VM as it is maintained internally by cloudstack (i-x-y).
ObjectContent[] ocs = getVmPropertiesOnHyperHost(new String[] { "name", "value[" + key + "]" });
if (ocs != null && ocs.length > 0) {
for (ObjectContent oc : ocs) {
List<DynamicProperty> props = oc.getPropSet();
if (props != null) {
String vmVcenterName = null;
String vmInternalCSName = null;
for (DynamicProperty prop : props) {
if (prop.getName().equals("name")) {
vmVcenterName = prop.getVal().toString();
} else if (prop.getName().startsWith("value[")) {
if (prop.getVal() != null)
vmInternalCSName = ((CustomFieldStringValue) prop.getVal()).getValue();
}
}
String vmName = null;
if (vmInternalCSName != null && isUserVMInternalCSName(vmInternalCSName)) {
vmName = vmInternalCSName;
} else {
vmName = vmVcenterName;
}
if (s_logger.isTraceEnabled())
s_logger.trace("put " + vmName + " into host cache");
_vmCache.put(vmName, new VirtualMachineMO(_context, oc.getObj()));
}
}
}
}
use of com.vmware.vim25.mo.VirtualMachine in project cloudstack by apache.
the class HostMO method getVmVncPortsOnHost.
public HashMap<String, Integer> getVmVncPortsOnHost() throws Exception {
int key = getCustomFieldKey("VirtualMachine", CustomFieldConstants.CLOUD_VM_INTERNAL_NAME);
if (key == 0) {
s_logger.warn("Custom field " + CustomFieldConstants.CLOUD_VM_INTERNAL_NAME + " is not registered ?!");
}
ObjectContent[] ocs = getVmPropertiesOnHyperHost(new String[] { "name", "config.extraConfig[\"RemoteDisplay.vnc.port\"]", "value[" + key + "]" });
HashMap<String, Integer> portInfo = new HashMap<String, Integer>();
if (ocs != null && ocs.length > 0) {
for (ObjectContent oc : ocs) {
List<DynamicProperty> objProps = oc.getPropSet();
if (objProps != null) {
String vmName = null;
String value = null;
String vmInternalCSName = null;
for (DynamicProperty objProp : objProps) {
if (objProp.getName().equals("name")) {
vmName = (String) objProp.getVal();
} else if (objProp.getName().startsWith("value[")) {
if (objProp.getVal() != null)
vmInternalCSName = ((CustomFieldStringValue) objProp.getVal()).getValue();
} else {
OptionValue optValue = (OptionValue) objProp.getVal();
value = (String) optValue.getValue();
}
}
if (vmInternalCSName != null && isUserVMInternalCSName(vmInternalCSName))
vmName = vmInternalCSName;
if (vmName != null && value != null) {
portInfo.put(vmName, Integer.parseInt(value));
}
}
}
}
return portInfo;
}
use of com.vmware.vim25.mo.VirtualMachine in project cloudstack by apache.
the class VirtualMachineMO method getFileLayout.
public VirtualMachineFileLayoutEx getFileLayout() throws Exception {
VirtualMachineFileLayoutEx fileLayout = null;
PropertySpec pSpec = new PropertySpec();
pSpec.setType("VirtualMachine");
pSpec.getPathSet().add("layoutEx");
ObjectSpec oSpec = new ObjectSpec();
oSpec.setObj(_mor);
oSpec.setSkip(Boolean.FALSE);
PropertyFilterSpec pfSpec = new PropertyFilterSpec();
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) {
List<DynamicProperty> props = oc.getPropSet();
if (props != null) {
for (DynamicProperty prop : props) {
if (prop.getName().equals("layoutEx")) {
fileLayout = (VirtualMachineFileLayoutEx) prop.getVal();
break;
}
}
}
}
}
return fileLayout;
}
use of com.vmware.vim25.mo.VirtualMachine in project SimianArmy by Netflix.
the class VSphereClient method describeAutoScalingGroups.
@Override
public List<AutoScalingGroup> describeAutoScalingGroups(String... names) {
final VSphereGroups groups = new VSphereGroups();
try {
connection.connect();
for (VirtualMachine virtualMachine : connection.describeVirtualMachines()) {
String instanceId = virtualMachine.getName();
String groupName = virtualMachine.getParent().getName();
boolean shouldAddNamedGroup = true;
if (names != null) {
// TODO need to implement this feature!!!
throw new RuntimeException("This feature (selecting groups by name) is not implemented yet");
}
if (shouldAddNamedGroup) {
groups.addInstance(instanceId, groupName);
}
}
} finally {
connection.disconnect();
}
return groups.asList();
}
use of com.vmware.vim25.mo.VirtualMachine in project SimianArmy by Netflix.
the class VSphereClient method terminateInstance.
@Override
public /**
* reinstall the given instance. If it is powered down this will be ignored and the
* reinstall occurs the next time the machine is powered up.
*/
void terminateInstance(String instanceId) {
try {
connection.connect();
VirtualMachine virtualMachine = connection.getVirtualMachineById(instanceId);
this.terminationStrategy.terminate(virtualMachine);
} catch (RemoteException e) {
throw new AmazonServiceException("cannot destroy & recreate " + instanceId, e);
} finally {
connection.disconnect();
}
}
Aggregations