接上回,繼續整理針對虛擬機的各種操作。
7、跨主機克隆虛擬機
網上資料比較少,當時費了很大勁才成功的,與同一臺主機上的虛擬機克隆有區別。
???public?void?Deploy()???{?????????????????string?templatePath?=?"DataCenter/vm/template100";?????ManagedObjectReference?templateRef?=?m_Service.FindByInventoryPath(m_Content.searchIndex,?templatePath);?????ManagedObjectReference?folderRef?=?m_Service.FindByInventoryPath(m_Content.searchIndex,?"DataCenter/vm");?????ManagedObjectReference?poolRef?=?m_Service.FindByInventoryPath(m_Content.searchIndex,?"DataCenter/host/host10/Resources");????????????????ManagedObjectReference?hostRef?=?m_Service.FindByInventoryPath(m_Content.searchIndex,?"DataCenter/host/host10/host10");????????????????ObjectContent[]?contents?=?RetrievePropertiesForSingleObject(hostRef,?new?string[]?{?"datastore"?});?????ManagedObjectReference[]?datastores?=?(ManagedObjectReference[])contents[0].propSet[0].val;?????ManagedObjectReference?dataRef?=?datastores[0];???????????VirtualMachineRelocateSpec?vmRelocSpec?=?new?VirtualMachineRelocateSpec();?????vmRelocSpec.pool?=?poolRef;?????vmRelocSpec.datastore?=?dataRef;????????vmRelocSpec.transform?=?VirtualMachineRelocateTransformation.sparse;???????????VirtualMachineCloneSpec?vmCloneSpec?=?new?VirtualMachineCloneSpec();?????vmCloneSpec.template?=?true;?????vmCloneSpec.location?=?vmRelocSpec;?????vmCloneSpec.powerOn?=?true;???????????ManagedObjectReference?taskRef?=?m_Service.CloneVM_Task(templateRef,?folderRef,?destName,?vmCloneSpec);?}??????????private?ObjectContent[]?RetrievePropertiesForSingleObject(ManagedObjectReference?obj,?string[]?properties)?{?????PropertySpec[]?pSpec?=?new?PropertySpec[]?{?new?PropertySpec()?};?????pSpec[0].type?=?obj.type;?????pSpec[0].all?=?false;?????pSpec[0].pathSet?=?properties;??????ObjectSpec[]?obSpec?=?new?ObjectSpec[]?{?new?ObjectSpec()?};?????obSpec[0].obj?=?obj;?????obSpec[0].skip?=?true;??????PropertyFilterSpec?spec?=?new?PropertyFilterSpec();?????spec.propSet?=?pSpec;?????spec.objectSet?=?obSpec;??????ObjectContent[]?contents?=?m_Service.RetrieveProperties(m_Collector,?new?PropertyFilterSpec[]?{?spec?});??????return?contents;?}?
未完待續……
?
轉載于:https://blog.51cto.com/boytnt/1031743
總結
以上是生活随笔為你收集整理的利用VMware Infrastructure SDK编程控制虚拟机集群(3)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。