Qmf broker proxy method create() does not handle keyword arguments, only 
regular parameters
-------------------------------------------------------------------------------------------

                 Key: QPID-3348
                 URL: https://issues.apache.org/jira/browse/QPID-3348
             Project: Qpid
          Issue Type: Bug
            Reporter: Kim van der Riet
            Priority: Minor


The Qmf management methods defined in the management-schema.xml file are 
implemented through the console Object class __getattr__() method. This calls 
Object.invoke(), which in turn calls Object._sendMethodRequest().

However, the implementation of _sendMethodRequest() accounts only for regular 
arguments in the args parameter, and ignores the kwargs parameter. Hence, the 
call to the create() call:

    <method name="create" desc="Create an object of the specified type">
      <arg name="type" dir="I" type="sstr" desc="The type of object to create"/>
      <arg name="name" dir="I" type="sstr" desc="The name of the object to 
create"/> 
      <arg name="properties" dir="I" type="map" desc="Type specific object 
properties"/> 
      <arg name="strict" dir="I" type="bool" desc="If specified, treat 
unrecognised object properties as an error"/> 
    </method>

as follows:

broker_proxy.create("exchange", name, props, True)

will work, but

broker_proxy.create(type="exchange", name=name, properties=props, strict=True)

will fail (Exception: Incorrect number of arguments: expected 4, got 0).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to