Hi Gordon,
I was thinking about this thread earlier on today and something just struck me about the general tool "for creating, deleting and listing objects of any type" that you attached previously and is being discussed here.

I think that the general premise is that it provides a more "general" approach than say qpid-config because it's abstracting to the broker create and delete methods and given that type, name and other properties can be specified as a Map that gives a fair degree of generality - is my understanding correct?

If it is then the thing that struck me is that there was already a tool that provided this sort of behaviour (actually possibly even more general) - do you recall qpid-ctrl?

It's not necessarily in the most helpful location "qpid/cpp/src/tests" but it seems pretty similar to what you are describing here unless I've misunderstood. I remember qpid-ctrl because I wrote a Java port of it in my QMF bundle. It's been a little while since I looked at the python version, but digging out the JavaDoc I put in my Java one I note:

 * List the properties of the qmf.default.direct exchange:
 * <pre>QpidCtrl -c exchange -i qmf.default.direct listValues</pre>
 *
 * Create a queue called test with a flow-to-disk limit policy:
* <pre>QpidCtrl create "{type:queue,name:test,properties:{'qpid.policy_type':ring}}"</pre>
 *
 * Delete a queue called test:
 * <pre>QpidCtrl delete "{type:queue,name:test}"</pre>
 *
* Create a binding called bind1 between the amq.match exchange and the test queue matching the headers name=fadams
 * and gender=male:
* <pre>QpidCtrl create "{type:binding,name:'amq.match/test/bind1',properties:{x-match:all,name:fadams,gender:male}}"</pre>
 *
* Delete the binding called bind1 between the amq.match exchange and the test queue:
 * <pre>QpidCtrl delete "{type:binding,name:'amq.match/test/bind1'}"</pre>


Apologies if I've misunderstood the context, but I thought it was worth mentioning given that the main thrust of conversation was about a general way of controlling arbitrary objects.

Cheers,
Frase

On 21/03/13 15:47, Gordon Sim wrote:
On 03/21/2013 01:19 PM, Ken Giusti wrote:
Hmmmm... seems like there's not a strong opinion either way.

On reflection, I think I'm actually fine with your original proposal
(separate tool - very generic management tool).  As a developer, this
tool would really come in handy - it allows me to manage newly
developed objects without the need to create a dedicated tool. Very
useful.

That is indeed the rationale behind the tool. It always felt wrong to me that you need to add explicit code just to recognise another class of object in qpid-config. (I also dislike the fact that it defines its own names for options).

I think my overall unease is with the rather large number of
configuration tools that we support. I'm really not crazy about how
we tend to create a new feature-specific configuration tool every
time we add a new feature to the broker.  I'd rather see a single
"top level" broker configuration command that supports all the
configuration aspects of the broker.  Openssl and NSS (certutil) take
this approach.   I think it would tend towards unifying the
configuration experience (e.g. naming of common options would be
consistent, need for familiarity with only one command, etc).

I'm a bit biased. Guess I've found myself fixing the same defect
across multiple configuration tools a little too often (*cough*, SSL
configuration *cough*).  And I still keep having to remind myself
which option flag is used to specific a non-default broker address (?
is it "-a", or "-b"?).

I sympathise entirely. For me its less the number of tools per se and more that there is no clear, comprehensive, thought out strategy around them.

I don't want to make the situation worse. What I propose for 0.22 is to add this new script into cpp/src/tests and install it in libexec/qpid/tests along side other useful scripts and tools such as qpid-send and qpid-cpp-benchmark. I'll also make it clear in the usage text that the tool is experimental at this stage. That way its available for those who want it, particularly those exploring 1.0 based networks, but its status is clear.

Does that seem reasonable for now? We can then get some more time and feedback on which to base more long term decisions.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org

Reply via email to