![](/img/trans.png)
[英]Difference between vSphere Automation SDK for Perl and vSphere Perl SDK
[英]Perl vSphere SDK adding multiple disks soap error:
我可以像下面這樣線性添加磁盤:
my $vmSpec = VirtualMachineConfigSpec->new(deviceChange => [$devSpecs[0]]);
$vmView->ReconfigVM(spec => $vmSpec);
my $vmSpec = VirtualMachineConfigSpec->new(deviceChange => [$devSpecs[1]]);
$vmView->ReconfigVM(spec => $vmSpec);
my $vmSpec = VirtualMachineConfigSpec->new(deviceChange => [$devSpecs[2]]);
$vmView->ReconfigVM(spec => $vmSpec);
但是,當我嘗試一次添加所有磁盤時,出現SOAP錯誤
my $vmSpec = VirtualMachineConfigSpec->new(deviceChange => \@devSpecs);
$vmView->ReconfigVM(spec => $vmSpec);
錯誤:
SOAP Fault:
-----------
Fault string: Cannot complete the operation because the file or folder
/vmfs/volumes/ba5e81fe-201a6c4e/paul-vm1/paul-vm1_0_3.vmdk already exists
Fault detail: FileAlreadyExists
是否有人以VSphere / VMware的方式明智地知道發生了什么事?
編輯:在運行代碼之前或之后,該文件絕對不存在。
我找到了解決方案。 顯然,您需要為每個虛擬機配置指定自己的密鑰,即使它為負數也是如此。 對於后代
$disk->key = UNIQUE NEGATIVE NUMBER
然后設置您的配置規格
$devSpec = VirtualDeviceConfigSpec->new(
operation => $devSpec->operation,
fileOperation => $devSpec->fileOperation,
device => $disk,
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.