コード例 #1
0
ファイル: empty_vault.py プロジェクト: hamburgerkid/helloaws
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...');