| OLD | NEW |
| 1 # Copyright (c) 2006-2009 Mitch Garnaat http://garnaat.org/ | 1 # Copyright (c) 2006-2009 Mitch Garnaat http://garnaat.org/ |
| 2 # | 2 # |
| 3 # Permission is hereby granted, free of charge, to any person obtaining a | 3 # Permission is hereby granted, free of charge, to any person obtaining a |
| 4 # copy of this software and associated documentation files (the | 4 # copy of this software and associated documentation files (the |
| 5 # "Software"), to deal in the Software without restriction, including | 5 # "Software"), to deal in the Software without restriction, including |
| 6 # without limitation the rights to use, copy, modify, merge, publish, dis- | 6 # without limitation the rights to use, copy, modify, merge, publish, dis- |
| 7 # tribute, sublicense, and/or sell copies of the Software, and to permit | 7 # tribute, sublicense, and/or sell copies of the Software, and to permit |
| 8 # persons to whom the Software is furnished to do so, subject to the fol- | 8 # persons to whom the Software is furnished to do so, subject to the fol- |
| 9 # lowing conditions: | 9 # lowing conditions: |
| 10 # | 10 # |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 from boto.sqs.attributes import Attributes | 26 from boto.sqs.attributes import Attributes |
| 27 from boto.exception import SQSError | 27 from boto.exception import SQSError |
| 28 | 28 |
| 29 | 29 |
| 30 class SQSConnection(AWSQueryConnection): | 30 class SQSConnection(AWSQueryConnection): |
| 31 """ | 31 """ |
| 32 A Connection to the SQS Service. | 32 A Connection to the SQS Service. |
| 33 """ | 33 """ |
| 34 DefaultRegionName = 'us-east-1' | 34 DefaultRegionName = 'us-east-1' |
| 35 DefaultRegionEndpoint = 'queue.amazonaws.com' | 35 DefaultRegionEndpoint = 'queue.amazonaws.com' |
| 36 APIVersion = '2009-02-01' | 36 APIVersion = '2011-10-01' |
| 37 DefaultContentType = 'text/plain' | 37 DefaultContentType = 'text/plain' |
| 38 ResponseError = SQSError | 38 ResponseError = SQSError |
| 39 | 39 |
| 40 def __init__(self, aws_access_key_id=None, aws_secret_access_key=None, | 40 def __init__(self, aws_access_key_id=None, aws_secret_access_key=None, |
| 41 is_secure=True, port=None, proxy=None, proxy_port=None, | 41 is_secure=True, port=None, proxy=None, proxy_port=None, |
| 42 proxy_user=None, proxy_pass=None, debug=0, | 42 proxy_user=None, proxy_pass=None, debug=0, |
| 43 https_connection_factory=None, region=None, path='/', | 43 https_connection_factory=None, region=None, path='/', |
| 44 security_token=None): | 44 security_token=None): |
| 45 if not region: | 45 if not region: |
| 46 region = SQSRegionInfo(self, self.DefaultRegionName, | 46 region = SQSRegionInfo(self, self.DefaultRegionName, |
| 47 self.DefaultRegionEndpoint) | 47 self.DefaultRegionEndpoint) |
| 48 self.region = region | 48 self.region = region |
| 49 AWSQueryConnection.__init__(self, aws_access_key_id, | 49 AWSQueryConnection.__init__(self, aws_access_key_id, |
| (...skipping 28 matching lines...) Expand all Loading... |
| 78 :param visibility_timeout: The default visibility timeout for all | 78 :param visibility_timeout: The default visibility timeout for all |
| 79 messages written in the queue. This can | 79 messages written in the queue. This can |
| 80 be overridden on a per-message. | 80 be overridden on a per-message. |
| 81 | 81 |
| 82 :rtype: :class:`boto.sqs.queue.Queue` | 82 :rtype: :class:`boto.sqs.queue.Queue` |
| 83 :return: The newly created queue. | 83 :return: The newly created queue. |
| 84 | 84 |
| 85 """ | 85 """ |
| 86 params = {'QueueName': queue_name} | 86 params = {'QueueName': queue_name} |
| 87 if visibility_timeout: | 87 if visibility_timeout: |
| 88 params['DefaultVisibilityTimeout'] = '%d' % (visibility_timeout,) | 88 params['Attribute.1.Name'] = 'VisibilityTimeout' |
| 89 params['Attribute.1.Value'] = int(visibility_timeout) |
| 89 return self.get_object('CreateQueue', params, Queue) | 90 return self.get_object('CreateQueue', params, Queue) |
| 90 | 91 |
| 91 def delete_queue(self, queue, force_deletion=False): | 92 def delete_queue(self, queue, force_deletion=False): |
| 92 """ | 93 """ |
| 93 Delete an SQS Queue. | 94 Delete an SQS Queue. |
| 94 | 95 |
| 95 :type queue: A Queue object | 96 :type queue: A Queue object |
| 96 :param queue: The SQS queue to be deleted | 97 :param queue: The SQS queue to be deleted |
| 97 | 98 |
| 98 :type force_deletion: Boolean | 99 :type force_deletion: Boolean |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 | 204 |
| 204 :type receipt_handle: str | 205 :type receipt_handle: str |
| 205 :param receipt_handle: The receipt handle for the message | 206 :param receipt_handle: The receipt handle for the message |
| 206 | 207 |
| 207 :rtype: bool | 208 :rtype: bool |
| 208 :return: True if successful, False otherwise. | 209 :return: True if successful, False otherwise. |
| 209 """ | 210 """ |
| 210 params = {'ReceiptHandle' : receipt_handle} | 211 params = {'ReceiptHandle' : receipt_handle} |
| 211 return self.get_status('DeleteMessage', params, queue.id) | 212 return self.get_status('DeleteMessage', params, queue.id) |
| 212 | 213 |
| 213 def send_message(self, queue, message_content): | 214 def send_message(self, queue, message_content, delay_seconds=None): |
| 214 params = {'MessageBody' : message_content} | 215 params = {'MessageBody' : message_content} |
| 216 if delay_seconds: |
| 217 params['DelaySeconds'] = int(delay_seconds) |
| 215 return self.get_object('SendMessage', params, Message, | 218 return self.get_object('SendMessage', params, Message, |
| 216 queue.id, verb='POST') | 219 queue.id, verb='POST') |
| 217 | 220 |
| 218 def change_message_visibility(self, queue, receipt_handle, | 221 def change_message_visibility(self, queue, receipt_handle, |
| 219 visibility_timeout): | 222 visibility_timeout): |
| 220 """ | 223 """ |
| 221 Extends the read lock timeout for the specified message from | 224 Extends the read lock timeout for the specified message from |
| 222 the specified queue to the specified value. | 225 the specified queue to the specified value. |
| 223 | 226 |
| 224 :type queue: A :class:`boto.sqs.queue.Queue` object | 227 :type queue: A :class:`boto.sqs.queue.Queue` object |
| 225 :param queue: The Queue from which messages are read. | 228 :param queue: The Queue from which messages are read. |
| 226 | 229 |
| 227 :type receipt_handle: str | 230 :type receipt_handle: str |
| 228 :param queue: The receipt handle associated with the message whose | 231 :param queue: The receipt handle associated with the message whose |
| 229 visibility timeout will be changed. | 232 visibility timeout will be changed. |
| 230 | 233 |
| 231 :type visibility_timeout: int | 234 :type visibility_timeout: int |
| 232 :param visibility_timeout: The new value of the message's visibility | 235 :param visibility_timeout: The new value of the message's visibility |
| 233 timeout in seconds. | 236 timeout in seconds. |
| 234 """ | 237 """ |
| 235 params = {'ReceiptHandle' : receipt_handle, | 238 params = {'ReceiptHandle' : receipt_handle, |
| 236 'VisibilityTimeout' : visibility_timeout} | 239 'VisibilityTimeout' : visibility_timeout} |
| 237 return self.get_status('ChangeMessageVisibility', params, queue.id) | 240 return self.get_status('ChangeMessageVisibility', params, queue.id) |
| 238 | 241 |
| 239 def get_all_queues(self, prefix=''): | 242 def get_all_queues(self, prefix=''): |
| 240 params = {} | 243 params = {} |
| 241 if prefix: | 244 if prefix: |
| 242 params['QueueNamePrefix'] = prefix | 245 params['QueueNamePrefix'] = prefix |
| 243 return self.get_list('ListQueues', params, [('QueueUrl', Queue)]) | 246 return self.get_list('ListQueues', params, [('QueueUrl', Queue)]) |
| 244 | 247 |
| 245 def get_queue(self, queue_name): | 248 def get_queue(self, queue_name): |
| 246 rs = self.get_all_queues(queue_name) | 249 rs = self.get_all_queues(queue_name) |
| 247 for q in rs: | 250 for q in rs: |
| 248 if q.url.endswith(queue_name): | 251 if q.url.endswith(queue_name): |
| 249 return q | 252 return q |
| 250 return None | 253 return None |
| 251 | 254 |
| 252 lookup = get_queue | 255 lookup = get_queue |
| 253 | 256 |
| 254 # | 257 # |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 298 :type label: str or unicode | 301 :type label: str or unicode |
| 299 :param label: The unique label associated with the permission | 302 :param label: The unique label associated with the permission |
| 300 being removed. | 303 being removed. |
| 301 | 304 |
| 302 :rtype: bool | 305 :rtype: bool |
| 303 :return: True if successful, False otherwise. | 306 :return: True if successful, False otherwise. |
| 304 """ | 307 """ |
| 305 params = {'Label': label} | 308 params = {'Label': label} |
| 306 return self.get_status('RemovePermission', params, queue.id) | 309 return self.get_status('RemovePermission', params, queue.id) |
| 307 | 310 |
| 308 | |
| 309 | |
| 310 | 311 |
| 311 | 312 |
| 313 |
| 314 |
| OLD | NEW |