def get_queues(region_name): sqs = boto.sqs.connect_to_region(region_name, **credentials) res = [] for queue in sqs.get_all_queues(): queue.set_message_class(RawMessage) q_scheme = {} # q_scheme = vars(queue) q_scheme['messages'] = get_messages(queue) q_scheme['name'] = queue.name res.append(q_scheme) return res
def get_sqs_policy(region): # SQS queue policies verbose("Getting SQS queue policies:") sqs = boto.sqs.connect_to_region(region) queue_info = [] queues = sqs.get_all_queues() for queue in queues: try: policy = sqs.get_queue_attributes(queue, "Policy")["Policy"] queue_info.append(config_line_policy(region + " sqs:queuepolicy", queue.url, "", policy)) except KeyError: queue_info.append(config_line(region + " sqs:queuepolicy", queue.url, "", "NoPolicy")) return sorted(queue_info)
def get_sqs_policy(region): # SQS queue policies verbose("Getting SQS queue policies:") sqs = boto.sqs.connect_to_region(region, aws_access_key_id=assume_role.credentials.access_key, aws_secret_access_key=assume_role.credentials.secret_key, security_token=assume_role.credentials.session_token) queue_info = [] queues = sqs.get_all_queues() for queue in queues: try: policy = sqs.get_queue_attributes(queue, "Policy")["Policy"] queue_info.append(config_line_policy(region + " sqs:queuepolicy", queue.url, "", policy)) except KeyError: queue_info.append(config_line(region + " sqs:queuepolicy", queue.url, "", "NoPolicy")) return sorted(queue_info)
def get_sqs_policy(region): # SQS queue policies verbose("Getting SQS queue policies:") sqs = boto.sqs.connect_to_region( region, aws_access_key_id=assume_role.credentials.access_key, aws_secret_access_key=assume_role.credentials.secret_key, security_token=assume_role.credentials.session_token) queue_info = [] queues = sqs.get_all_queues() for queue in queues: try: policy = sqs.get_queue_attributes(queue, "Policy")["Policy"] queue_info.append( config_line_policy(region + " sqs:queuepolicy", queue.url, "", policy)) except KeyError: queue_info.append( config_line(region + " sqs:queuepolicy", queue.url, "", "NoPolicy")) return sorted(queue_info)
def get_entities_for_region(self, region): sqs = boto.connect_sqs(self.access_key_id, self.secret_access_key, region=region) return sqs.get_all_queues()
self.response_queue = self.sqs.get_queue(RESPONSE_QUEUE) # Automatically decode and decrypt incoming messages self.response_queue.set_message_class(SecureMessage) def execute(self, action, *args): request_id = str(uuid.uuid4()) print "Sending request %s" % request_id self.request_queue.write(SecureMessage(body={'id': request_id, 'action': action, 'args': args})) tries = 3 while True: msgs = self.response_queue.get_messages(wait_time_seconds=20) if len(msgs) == 0: tries -= 1 continue msg = msgs[0] body = msg.get_body() msg.delete() if body['request_id'] == request_id: return body else: print "Mismatched message: %s" % body tries -= 1 if tries == 0: raise StandardError('Failed to execute request') if __name__ == '__main__': sqs = boto.sqs.connect_to_region('us-east-1', is_secure=True, validate_certs=True) print sqs.get_all_queues() print Client().execute('ping', ['hello'])