Package sqs :: Module service
[hide private]
[frames] | no frames]

Source Code for Module sqs.service

 1  from sqs.connection import SQSConnection 
 2  from sqs.objects import SQSQueue 
 3  from sqs.parsers import parseQueueList, parseQueueCreation 
 4   
5 -class SQSService(object):
6 """ 7 SQS Service class 8 """
9 - def __init__(self, pub_key, priv_key):
10 self._sqs_conn = SQSConnection(pub_key, priv_key)
11
12 - def get(self, name):
13 """ 14 Get queue with the exact name 15 16 @param name: The name of the queue 17 @type name: string 18 @return: Queue if exists, else None 19 @rtype: SQSQueue or None 20 """ 21 queues = self.list(name) 22 for queue in queues: 23 if queue.name == name: 24 return queue 25 return None
26 27
28 - def list(self, prefix=''):
29 """ 30 List queues: 31 32 @param prefix: Queue name prefix. 33 @type prefix: string 34 @return: List of queues that begin with prefix 35 @rtype: list 36 """ 37 if prefix: 38 params = {'QueueNamePrefix' : prefix } 39 else: 40 params = {} 41 response = self._sqs_conn.clone().get(params=params) 42 return parseQueueList(response.read(), self._sqs_conn)
43 44
45 - def create(self, name):
46 """ 47 Create a queue 48 49 @param name: Name for the new queue 50 @type name: string 51 @return: Returns the newly created queue 52 @rtype: SQSQueue 53 """ 54 response = self._sqs_conn.clone().post(params={'QueueName' : name}) 55 return parseQueueCreation(response.read(), self._sqs_conn)
56 57
58 - def delete(self, name):
59 """ 60 Deletes a queue 61 62 @param name: Name of the queue that should be deleted 63 @type name: string 64 """ 65 q = self.get(name) 66 self._sqs_conn.clone().delete(queue=q.id)
67