本文整理汇总了Java中com.vmware.vim25.VirtualMachineRelocateSpec.setDiskMoveType方法的典型用法代码示例。如果您正苦于以下问题:Java VirtualMachineRelocateSpec.setDiskMoveType方法的具体用法?Java VirtualMachineRelocateSpec.setDiskMoveType怎么用?Java VirtualMachineRelocateSpec.setDiskMoveType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.vmware.vim25.VirtualMachineRelocateSpec
的用法示例。
在下文中一共展示了VirtualMachineRelocateSpec.setDiskMoveType方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: configureRelocateSpec
import com.vmware.vim25.VirtualMachineRelocateSpec; //导入方法依赖的package包/类
private VirtualMachineRelocateSpec configureRelocateSpec(ResourcePool resourcePool, Datastore datastore, VirtualMachine master)
throws Exception, InvalidProperty, RuntimeFault, RemoteException {
VirtualMachineRelocateSpec rSpec = new VirtualMachineRelocateSpec();
if (cloningStrategy.equals("linked")) {
ArrayList<Integer> diskKeys = getIndependentVirtualDiskKeys(master);
if (diskKeys.size() > 0) {
Datastore[] dss = master.getDatastores();
VirtualMachineRelocateSpecDiskLocator[] diskLocator = new VirtualMachineRelocateSpecDiskLocator[diskKeys.size()];
int count = 0;
for (Integer key : diskKeys) {
diskLocator[count] = new VirtualMachineRelocateSpecDiskLocator();
diskLocator[count].setDatastore(dss[0].getMOR());
diskLocator[count]
.setDiskMoveType(VirtualMachineRelocateDiskMoveOptions.moveAllDiskBackingsAndDisallowSharing
.toString());
diskLocator[count].setDiskId(key);
count = count + 1;
}
rSpec.setDiskMoveType(VirtualMachineRelocateDiskMoveOptions.createNewChildDiskBacking.toString());
rSpec.setDisk(diskLocator);
} else {
rSpec.setDiskMoveType(VirtualMachineRelocateDiskMoveOptions.createNewChildDiskBacking.toString());
}
} else if (cloningStrategy.equals("full")) {
rSpec.setDatastore(datastore.getMOR());
rSpec.setPool(resourcePool.getMOR());
//rSpec.setHost();
} else
throw new Exception(String.format("Cloning strategy %s not supported", cloningStrategy));
return rSpec;
}
示例2: createInstanceFromSnapshot
import com.vmware.vim25.VirtualMachineRelocateSpec; //导入方法依赖的package包/类
public ComputeState createInstanceFromSnapshot() throws Exception {
String message = "";
if (this.ctx.snapshotMoRef == null) {
message = String.format("No MoRef found for the specified snapshot %s",
this.ctx.child.documentSelfLink);
logger.error(message);
this.ctx.fail(new IllegalStateException(message));
}
if (this.ctx.referenceComputeMoRef == null) {
if (this.ctx.snapshotMoRef == null) {
message = String.format("No MoRef found for the reference compute for linkedclone creation for %s.",
this.ctx.child.documentSelfLink);
logger.error(message);
this.ctx.fail(new IllegalStateException(message));
}
}
VirtualMachineRelocateSpec relocateSpec = new VirtualMachineRelocateSpec();
relocateSpec.setDiskMoveType(VirtualMachineRelocateDiskMoveOptions
.CREATE_NEW_CHILD_DISK_BACKING.value());
VirtualMachineCloneSpec cloneSpec = new VirtualMachineCloneSpec();
cloneSpec.setPowerOn(false);
cloneSpec.setLocation(relocateSpec);
cloneSpec.setSnapshot(this.ctx.snapshotMoRef);
cloneSpec.setTemplate(false);
ManagedObjectReference folder = getVmFolder();
String displayName = this.ctx.child.name;
ManagedObjectReference linkedCloneTask = getVimPort()
.cloneVMTask(this.ctx.referenceComputeMoRef, folder, displayName, cloneSpec);
TaskInfo info = waitTaskEnd(linkedCloneTask);
if (info.getState() == TaskInfoState.ERROR) {
MethodFault fault = info.getError().getFault();
if (fault instanceof FileAlreadyExists) {
// a .vmx file already exists, assume someone won the race to create the vm
return null;
} else {
return VimUtils.rethrow(info.getError());
}
}
ManagedObjectReference clonedVM = (ManagedObjectReference) info.getResult();
if (clonedVM == null) {
// vm was created by someone else
return null;
}
// store reference to created vm for further processing
this.vm = clonedVM;
customizeAfterClone();
ComputeState state = new ComputeState();
state.resourcePoolLink = VimUtils
.firstNonNull(this.ctx.child.resourcePoolLink, this.ctx.parent.resourcePoolLink);
return state;
}
示例3: cloneVm
import com.vmware.vim25.VirtualMachineRelocateSpec; //导入方法依赖的package包/类
private ManagedObjectReference cloneVm(ManagedObjectReference template) throws Exception {
ManagedObjectReference folder = getVmFolder();
List<VirtualMachineDefinedProfileSpec> pbmSpec = getPbmProfileSpec(this.bootDisk);
ManagedObjectReference datastore = getDataStoreForDisk(this.bootDisk, pbmSpec);
ManagedObjectReference resourcePool = getResourcePool();
Map<String, Object> props = this.get.entityProps(template, VimPath.vm_config_hardware_device);
ArrayOfVirtualDevice devices = (ArrayOfVirtualDevice) props
.get(VimPath.vm_config_hardware_device);
VirtualDisk vd = devices.getVirtualDevice().stream()
.filter(d -> d instanceof VirtualDisk)
.map(d -> (VirtualDisk) d).findFirst().orElse(null);
VirtualMachineRelocateSpec relocSpec = new VirtualMachineRelocateSpec();
relocSpec.setDatastore(datastore);
if (pbmSpec != null) {
pbmSpec.stream().forEach(spec -> {
relocSpec.getProfile().add(spec);
});
}
relocSpec.setFolder(folder);
relocSpec.setPool(resourcePool);
relocSpec.setDiskMoveType(computeDiskMoveType().value());
VirtualMachineCloneSpec cloneSpec = new VirtualMachineCloneSpec();
cloneSpec.setLocation(relocSpec);
//Set the provisioning type of the parent disk.
VirtualMachineRelocateSpecDiskLocator diskProvisionTypeLocator = setProvisioningType(vd, datastore,
pbmSpec);
if (diskProvisionTypeLocator != null) {
cloneSpec.getLocation().getDisk().add(diskProvisionTypeLocator);
}
cloneSpec.setPowerOn(false);
cloneSpec.setTemplate(false);
String displayName = this.ctx.child.name;
ManagedObjectReference cloneTask = getVimPort()
.cloneVMTask(template, folder, displayName, cloneSpec);
TaskInfo info = waitTaskEnd(cloneTask);
if (info.getState() == TaskInfoState.ERROR) {
MethodFault fault = info.getError().getFault();
if (fault instanceof FileAlreadyExists) {
// a .vmx file already exists, assume someone won the race to create the vm
return null;
} else {
return VimUtils.rethrow(info.getError());
}
}
return (ManagedObjectReference) info.getResult();
}
示例4: createLinkedClone
import com.vmware.vim25.VirtualMachineRelocateSpec; //导入方法依赖的package包/类
public boolean createLinkedClone(String cloneName, ManagedObjectReference morBaseSnapshot, ManagedObjectReference morFolder, ManagedObjectReference morResourcePool,
ManagedObjectReference morDs) throws Exception {
assert (morBaseSnapshot != null);
assert (morFolder != null);
assert (morResourcePool != null);
assert (morDs != null);
VirtualDisk[] independentDisks = getAllIndependentDiskDevice();
VirtualMachineRelocateSpec rSpec = new VirtualMachineRelocateSpec();
if (independentDisks.length > 0) {
List<VirtualMachineRelocateSpecDiskLocator> diskLocator = new ArrayList<VirtualMachineRelocateSpecDiskLocator>(independentDisks.length);
for (int i = 0; i < independentDisks.length; i++) {
VirtualMachineRelocateSpecDiskLocator loc = new VirtualMachineRelocateSpecDiskLocator();
loc.setDatastore(morDs);
loc.setDiskId(independentDisks[i].getKey());
loc.setDiskMoveType(VirtualMachineRelocateDiskMoveOptions.MOVE_ALL_DISK_BACKINGS_AND_DISALLOW_SHARING.value());
diskLocator.add(loc);
}
rSpec.setDiskMoveType(VirtualMachineRelocateDiskMoveOptions.CREATE_NEW_CHILD_DISK_BACKING.value());
rSpec.getDisk().addAll(diskLocator);
} else {
rSpec.setDiskMoveType(VirtualMachineRelocateDiskMoveOptions.CREATE_NEW_CHILD_DISK_BACKING.value());
}
rSpec.setPool(morResourcePool);
VirtualMachineCloneSpec cloneSpec = new VirtualMachineCloneSpec();
cloneSpec.setPowerOn(false);
cloneSpec.setTemplate(false);
cloneSpec.setLocation(rSpec);
cloneSpec.setSnapshot(morBaseSnapshot);
ManagedObjectReference morTask = _context.getService().cloneVMTask(_mor, morFolder, cloneName, cloneSpec);
boolean result = _context.getVimClient().waitForTask(morTask);
if (result) {
_context.waitForTaskProgressDone(morTask);
return true;
} else {
s_logger.error("VMware cloneVM_Task failed due to " + TaskMO.getTaskFailureInfo(_context, morTask));
}
return false;
}