2015-06-11 3 views
1

Я ищу способ получить статус записи (A-NAME), только что созданной с помощью route53. Это код:Проверить статус записи с помощью Boto Route53 после создания

changes = ResourceRecordSets(conn, "ZONEID") 
    change = changes.add_change("STRING FOR ADD NEW SUBDOMAIN") 
    change.add_value(MY_IP) 
    action = changes.commit() 
    j=json.loads(json.dumps(action)) 
    status = j['ChangeResourceRecordSetsResponse']['ChangeInfo']['Status'] 
    while status == 'PENDING': 
     time.sleep(5) 
     action.update() #THIS ACTION RETURN "NONE" and not update the previous state 

Очевидно, что если печать переменной состояния это результат всегда «ОЖИДАНИЕ»

Может кто-нибудь мне помочь? Заранее спасибо.

+0

Что такое '' action'' в фрагменте кода выше? Он нигде не определен. – garnaat

+0

Ops ... извините !!! Я обновил код. – Michele

+0

Может кто-нибудь мне помочь? – Michele

ответ

1

Я прошел через ту же проблему, и вот как я решил.

Предполагая, что у вас есть идентификатор запись и это C2T9LA0WQGXVUX в us-west-1 области, то мы имеем:

import boto.route53 
record_id = 'C2T9LA0WQGXVUX' 
REGION = 'us-west-1' 
AWS_S3_ACCESS_KEY_ID = 'my aws key' 
AWS_S3_SECRET_ACCESS_KEY = 'my secret key' 


connection = boto.route53.connect_to_region(REGION, 
    aws_access_key_id=AWS_S3_ACCESS_KEY_ID, 
    aws_secret_access_key=AWS_S3_SECRET_ACCESS_KEY 
) 

record_status = connection.get_change(change_id=record_id) 

Ответ будет что-то вроде:

{u'GetChangeResponse': {u'ChangeInfo': {u'Status': u'INSYNC', u'SubmittedAt': u'2017-07-10T13:05:29.350Z', u'Id': u'/change/C2T9LA0WQGXVUX'}}} 

Таким образом, вы может получить этот статус:

print record_status['GetChangeResponse']['ChangeInfo']['Status']