Show Table of Contents
9.7. Create Command
The QMF
create command takes five arguments:
- type
- The type of object to be created, this can be a queue, exchange or binding.
- name
- The name of the object to be created. The
nameargument of a queue or exchange is a single value, for example a queue namedmy-queuesets the name argument to a string of that value. The name of a binding uses the pattern exchange/queue/key, for example:amq.topic/my-queue/my-keyidentifies a binding betweenmy-queueand the exchangeamq.topicwith the binding keymy-key. - properties
- The specific properties for the object to be created, value is a nested map.
- strict
- The strict argument takes a boolean value that is presently ignored. This value is intended to indicate whether the command will fail if any unrecognized properties have been specified.
- auto_delete_timeout
- Optional. If specified upon first declaring an auto-delete queue, specifies a delay, in seconds, after which the deletion will take place. Note: If the queue is re-declared after becoming eligible for deletion, but before the delay expires, then the queue will be not be deleted.
The following code example uses QMF to create a queue named
my-queue. In this example my-queue is configured to be auto-deleted after 10 seconds.
- Python
conn = Connection(opts.broker) try: conn.open() ssn = conn.session() snd = ssn.sender("qmf.default.direct/broker") reply_to = "reply-queue; {create:always, node:{x-declare:{auto-delete:true}}}" rcv = ssn.receiver(reply_to) content = { "_object_id": {"_object_name": "org.apache.qpid.broker:broker:amqp-broker"}, "_method_name": "create", "_arguments": {"type":"queue", "name":"my-queue", "properties":{"auto-delete":True, "qpid.auto_delete_timeout":10}} } request = Message(reply_to=reply_to, content=content) request.properties["x-amqp-0-10.app-id"] = "qmf2" request.properties["qmf.opcode"] = "_method_request" snd.send(request) try: response = rcv.fetch(timeout=opts.timeout) if response.properties['x-amqp-0-10.app-id'] == 'qmf2': if response.properties['qmf.opcode'] == '_method_response': return response.content['_arguments'] elif response.properties['qmf.opcode'] == '_exception': raise Exception("Error: %s" % response.content['_values']) else: raise Exception("Invalid response received, unexpected opcode: %s" % m) else: raise Exception("Invalid response received, not a qmfv2 method: %s" % m) except Empty: print "No response received!" except Exception, e: print e except ReceiverError, e: print e except KeyboardInterrupt: pass conn.close()

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.