Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 547743

Summary: Add ability to create queues, exchanges and bindings between them via QMFv2
Product: Red Hat Enterprise MRG Reporter: Gordon Sim <gsim>
Component: qpid-cppAssignee: Gordon Sim <gsim>
Status: CLOSED ERRATA QA Contact: Petr Matousek <pematous>
Severity: medium Docs Contact:
Priority: medium    
Version: 1.1.6CC: freznice, iboverma, jneedle, mhusnain, pematous, tross
Target Milestone: 2.0Keywords: FutureFeature
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: qpid-cpp-mrg-0.9.1073306-1 Doc Type: Enhancement
Doc Text:
Cause: The messaging API does not deal with creation and deletion of broker entities such as queues, exchange and bindings between them. Consequence: Some applications still want to dynamically create and delete these. They are forced to use older APIs or to use the addressing in unnatural ways. Change: There are now management methods exposed to create and delete these entities on the broker via QMF. With QMFv2 this can be accomplished by sending a message f a defined format to a specified address. Result: Applications that need to dynamically (re)configure the broker can do so more naturally and in a more future proof fashion. Release Note Entry: Previously, application had to resort to using older APIs and workarounds to dynamically create and delete broker entities because the messaging API was unable to perform these actions on entities such as queues, exchanges and their bindings. QMF can now deal with the creation and deletion of broker entities and QMFv2 can perform the same actions by sending a message of a defined format to a specified address.
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-06-23 15:47:37 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 570201, 683600    
Bug Blocks:    
Attachments:
Description Flags
Proposed patch for the QMF modeling of the solution to this bug none

Description Gordon Sim 2009-12-15 15:10:15 UTC

Comment 1 Ted Ross 2009-12-21 21:24:11 UTC
Created attachment 379714 [details]
Proposed patch for the QMF modeling of the solution to this bug

The attached patch contains the QMF schema updates to expose the methods needed to support the required functionality.

Comment 3 Gordon Sim 2010-12-15 18:24:48 UTC
I would like to see something a little more future proof I think. Perhaps something that would mesh well with addressing in the messaging API as well (at least in the future).

Comment 4 Gordon Sim 2011-03-02 16:58:17 UTC
There are now two new methods in the schema for the broker, create and delete:

  Method: create
    Argument    Type          Direction  Unit  Description
    ===========================================================================================================
    type        short-string  I                The type of object to create
    name        short-string  I                The name of the object to create
    properties  field-table   I                Type specific object properties
    strict      boolean       I                If specified, treat unrecognised object properties as an error

  Method: delete
    Argument  Type          Direction  Unit  Description
    ====================================================================================
    type      short-string  I                The type of object to delete
    name      short-string  I                The name of the object to delete
    options   field-table   I                Type specific object options for deletion

Note that the strict option is actually unimplemented at present.

The valid types are queue, exchange and binding (topic is available as an alias for exchange). For exchanges the exchange type can be set via a property named 'exchange-type', e.g. in qpid-tool[1]:

qpid: call 113 create exchange my-fanout-exchange {'exchange-type':'fanout'} False

otherwise the properties are available via the 'intuitive' names e.g.:

qpid: call 113 create queue my-queue {'alternate-exchange':'my-fanout-exchange','qpid.priorities':10} False

bindings are named as <exchange>/<queue>/<key> with key being optional, e.g.:

qpid: call 113 create binding amq.topic/my-queue/RHAT.* {} False
qpid: call 113 create binding amq.fanout/my-queue {} False

[1] qpid-tool requires fix for https://issues.apache.org/jira/browse/QPID-3101 to be able to process maps

Comment 5 Gordon Sim 2011-03-07 14:55:38 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause:
The messaging API does not deal with creation and deletion of broker entities such as queues, exchange and bindings between them.

Consequence:
Some applications still want to dynamically create and delete these. They are forced to use older APIs or to use the addressing in unnatural ways.

Change:
There are now management methods exposed to create and delete these entities on the broker via QMF. With QMFv2 this can be accomplished by sending a message f a defined format to a specified address.

Result:
Applications that need to dynamically (re)configure the broker can do so more naturally and in a more future proof fashion.

Comment 7 Petr Matousek 2011-03-31 16:38:25 UTC
This functionality was implemented.

Verified on RHEL6.1, RHEL5.6, RHEL4.9
architectures: x86_64, i386 

installed packages:
python-qpid-qmf-0.10-2.el4
qpid-qmf-0.10-2.el4
qpid-qmf-devel-0.10-2.el4


-> Waiting for documentation.

Comment 9 Petr Matousek 2011-05-23 15:39:56 UTC
Documentation for this feature is available in the following document:
Programming in Apache Qpid (Revision 0.1-3)

The documentation is correct and up2date.

-> VERIFIED

Comment 10 Misha H. Ali 2011-05-31 05:44:51 UTC
    Technical note updated. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    Diffed Contents:
@@ -8,4 +8,9 @@
 There are now management methods exposed to create and delete these entities on the broker via QMF. With QMFv2 this can be accomplished by sending a message f a defined format to a specified address.
 
 Result:
-Applications that need to dynamically (re)configure the broker can do so more naturally and in a more future proof fashion.+Applications that need to dynamically (re)configure the broker can do so more naturally and in a more future proof fashion.
+
+
+Release Note Entry:
+
+Previously, application had to resort to using older APIs and workarounds to dynamically create and delete broker entities because the messaging API was unable to perform these actions on entities such as queues, exchanges and their bindings. QMF can now deal with the creation and deletion of broker entities and QMFv2 can perform the same actions by sending a message of a defined format to a specified address.

Comment 11 Misha H. Ali 2011-06-06 03:14:53 UTC
Technical note can be viewed in the release notes for 2.0 at the documentation stage here:

http://documentation-stage.bne.redhat.com/docs/en-US/Red_Hat_Enterprise_MRG/2.0/html-single/MRG_Release_Notes/index.html#tabl-MRG_Release_Notes-RHM_Update_Notes-RHM_Update_Notes

Comment 12 errata-xmlrpc 2011-06-23 15:47:37 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHEA-2011-0890.html