簡體   English   中英

Perl vSphere 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM