bkjones / pyrabbit

A Python module to communicate w/ the RabbitMQ HTTP Management API
http://pyrabbit.readthedocs.org
BSD 3-Clause "New" or "Revised" License
97 stars 86 forks source link

Creating queue with 'auto_delete' also requires 'durable' and 'node' to be specified #6

Closed sergeio closed 11 years ago

sergeio commented 12 years ago
c = Client(...)
c.create_queue(queue_name, '/', node='s-rabbit3', auto_delete='true', durable='true')

The above code runs fine, but if you take out any 1 or 2 of the kwargs (node/auto_delete/durable), an exception will be raised:

In [35]: c.create_queue(queue_name, '/', node='s-rabbit3', auto_delete='true')
---------------------------------------------------------------------------
HTTPError                                 Traceback (most recent call last)
<ipython-input-35-07fe5a3f45ec> in <module>()
----> 1 c.create_queue(queue_name, '/', node='s-rabbit3', auto_delete='true')

/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pyrabbit/api.pyc in create_queue(self, name, vhost, auto_delete, durable, arguments, node)
    548                                  'PUT',
    549                                  body,
--> 550                                  headers=Client.json_headers)
    551
    552     def delete_queue(self, vhost, qname):

/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pyrabbit/http.pyc in do_call(self, path, reqtype, body, headers)
    103         # 'success' HTTP status codes are 200-206
    104         if resp.status < 200 or resp.status > 206:
--> 105             raise HTTPError(content, resp.status, resp.reason, path, body)
    106         else:
    107             if content:

HTTPError: 400 - Bad Request ([u'not_boolean', None]) (queues/%2F/reputation.workers.notification_worker.NotificationWorker) ('{"node": "s-rabbit3", "auto_delete": "true", "durable": null}')
bkjones commented 11 years ago

I was doing some stupid nonsense in there. I believe it should be fixed on master now. Please let me know.