aws_region_name = boto.config.get('Environments', 'aws_region_name'); job_output_file = boto.config.get('Environments', 'job_output_file'); log('Set up SNS and SQS.'); sns_region = RegionInfo(name = aws_region_name, endpoint = 'sns.' + aws_region_name + '.amazonaws.com'); sns_con = SNSConnection(aws_access_key_id = aws_access_key_id, aws_secret_access_key = aws_secret_access_key, region = sns_region); sns_topic = sns_con.create_topic('empty_vault-topic'); # SQS endpoint URL (sqs.xxx.amazonaws.com) doesn't work in boto 2.8.0 due to certification error. # sqs_region = RegionInfo(name = aws_region_name, endpoint = 'sqs.' + aws_region_name + '.amazonaws.com') # sqs_con = SQSConnection(aws_access_key_id = aws_access_key_id, aws_secret_access_key = aws_secret_access_key, region = sqs_region); sqs_con = SQSConnection(aws_access_key_id = aws_access_key_id, aws_secret_access_key = aws_secret_access_key); sqs_queue = sqs_con.create_queue('empty_vault-queue'); sns_topic_arn = sns_topic['CreateTopicResponse']['CreateTopicResult']['TopicArn']; sns_con.subscribe_sqs_queue(sns_topic_arn, sqs_queue); log('Point to Glacier vault.'); glacier_layer1 = Layer1(aws_access_key_id = aws_access_key_id, aws_secret_access_key = aws_secret_access_key, region_name = aws_region_name); glacier_layer1.describe_vault(vault_name); log('Kick Glacier job.'); job_data = dict(Description = 'Retrieve archive info to empty vault.', Format = 'JSON', SNSTopic = sns_topic_arn, Type = 'inventory-retrieval'); job_info = glacier_layer1.initiate_job(vault_name, job_data); job_id = job_info['JobId']; glacier_layer1.describe_job(vault_name, job_id); log('Wait for Glacier job completion.'); confirmed = False; while confirmed == False: log('Sleep for a while...');