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-cpp | Assignee: | Gordon Sim <gsim> | ||||
| Status: | CLOSED ERRATA | QA Contact: | Petr Matousek <pematous> | ||||
| Severity: | medium | Docs Contact: | |||||
| Priority: | medium | ||||||
| Version: | 1.1.6 | CC: | freznice, iboverma, jneedle, mhusnain, pematous, tross | ||||
| Target Milestone: | 2.0 | Keywords: | 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
Gordon Sim
2009-12-15 15:10:15 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.
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). 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
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.
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. 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
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.
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 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 |