Устройства хранения списка Python Boto, подключенные к экземпляру
Я использую Python 2.7 и Boto.latest.
Я создаю сценарий динамической инвентаризации, и я хотел бы перечислить устройства хранения, которые подключены к каждому экземпляру
Пример:
ID: i-3rblah
Storage:
- /dev/sda
- /dev/sdb
- /dev/sdc
Пытался:
for reservation in reservations:
for i in reservation.instances:
volumes = conn.get_all_volumes(filters={'attachment.instance-id': i.id})
print i.__dict__
print volumes.__dict__
Таким образом, у меня есть некоторая информация о томе, но не то, на что отображается VolumeID.
2 ответа
Я думаю, что вы хотите BlockDeviceMapping
для примера. Исходя из вашего примера выше, следующее должно найти block_device_mapping
для экземпляра, который является словарем. Каждый ключ в словаре является именем устройства, а значение - BlockDeviceType
объект, который содержит информацию о блочном устройстве, связанном с этим именем устройства.
for reservation in reservations:
for instance in reservation.instances:
bdm = instance.block_device_mapping
for device in bdm:
print('Device: {}'.format(device)
bdt = bdm[device]
print('\tVolumeID: {}'.format(bdt.volume_id))
print('\tVolume Status: {}'.format(bd.volume_status))
Это должно напечатать что-то вроде:
Device: /dev/sda1
VolumeID: vol-1d011806
Volume Size: attached
Есть другие поля в BlockDeviceType
объект. Вы должны быть в состоянии найти больше информации об этом в документации Boto.
Чтобы получить все идентификаторы тома с помощью instance-:
inst=conn.get_all_instances()
for reservation in inst:
for i in reservation.instances:
volumes = conn.get_all_volumes(filters={'attachment.instance-id': i.id})
print "This instance:",i.id," is attached to ", volumes