gpt4 book ai didi

python - azure-sdk-for-python : get the LUN of a disk

转载 作者:行者123 更新时间:2023-12-01 00:31:03 25 4
gpt4 key购买 nike

如何获取磁盘的LUN?我当前的代码如下所示:

compute_client = get_client_from_cli_profile(ComputeManagementClient)
virtual_machines = compute_client.virtual_machines

# Search VMs for the one I'm looking for
machines = virtual_machines.list_all()
for machine in machines:
if machine.vm_id == my_vm_id:
managed_id = machine.id
break

# Search disks for those matching my VM
disks = compute_client.disks.list()
disks = filter(lambda disk : \
disk.managed_by and disk.managed_by.lower() == managed_id.lower(), \
disks)
return disks

问题是这会产生一个 Disk 的列表对象,其中包含一些有用的信息,但不包含磁盘 LUN 等内容。

我看到 DataDisk对象包含 LUN,但我不知道如何获取它。

如何获取磁盘列表及其名称和 LUN?

(顺便说一句,除了有条不紊地搜索我的订阅中的所有虚拟机和所有磁盘之外,是否有更好的方法从虚拟机 ID 或虚拟机的附加磁盘列表获取虚拟机?)

最佳答案

How can I get a list of disks with their names and LUNs?

实际上,lun是VM磁盘的属性,而不是磁盘的属性。所以需要通过VM信息获取数据盘lun和name。示例代码如下:

compute_client = ComputeManagementClient(credential, Subscription_Id)

vm = compute_client.virtual_machines.get(vmGroup, vmName)
dataDisks = vm.storage_profile.data_disks
for disk in dataDisks:
print(disk.lun)

有关更多详细信息,请参阅 StorageProfile class虚拟机的。

如果您想获取所有附加到虚拟机的磁盘,我认为您只需要获取虚拟机信息,然后从中获取虚拟机磁盘。这是建议。而且您还需要搜索订阅中的所有虚拟机,除非您只想搜索特殊的虚拟机。

关于python - azure-sdk-for-python : get the LUN of a disk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58176436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com