У меня есть код, который создает моментальный снимок, а затем проверяет, выполнено ли это, я написал следующий код, но по какой-то причине он не обновляет переменную , а циклы while продолжают печатать То же самое, даже если снимок был completed
в то время как петля застряла в том же состоянии
Ниже приведен код:
def call_creater():
regions = ['eu-central-1']
for region in regions:
ec2 = boto3.resource('ec2', region, aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY,)
snapshot = ec2.create_snapshot(VolumeId='vol-f9e7d220', Description='fra01-he-trial-ansible01')
while snapshot.state != 'completed':
print snapshot.state
print "Snapshot under creation"
time.sleep(10)
else:
print "snapshot READY"
ВЫВОД:
pending
Snapshot under creation
pending
Snapshot under creation
pending
Snapshot under creation
pending
Snapshot under creation
Это просто продолжает печатать "Snapshot under creation"
, хотя моментальный снимок завершается. Причина этого в том, что я не могу обновить свое состояние variable
, я верю, пожалуйста, помогите мне как?
Можете ли вы также распечатать snapshot.state для каждой итерации. Я хотел бы узнать, является ли его значение «завершено» или что-то еще. –
Хорошо, я редактирую код и печатаю новый вывод, пожалуйста, проверьте – Kittystone
Слишком много заявлений на печать сбивают с толку. Можете ли вы просто распечатать snapshot.state внутри цикла while, но вне if-else. Также вы можете добавить оператор break внутри if condition. –