1 from sqs.connection import SQSConnection
2 from sqs.objects import SQSQueue
3 from sqs.parsers import parseQueueList, parseQueueCreation
4
6 """
7 SQS Service class
8 """
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
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
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