Author: aconway Date: Fri Sep 26 15:38:02 2014 New Revision: 1627811 URL: http://svn.apache.org/r1627811 Log: QPID-6118: Add qmf shutdown command to the broker
QMF shutdown command implemented on broker. - ACL to control shutdown: acl deny all access method name=shutdown - Added "qpid-config shutdown" command to shut down the broker. Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp qpid/trunk/qpid/cpp/src/qpid/broker/management-schema.xml qpid/trunk/qpid/tools/src/py/qpid-config Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp?rev=1627811&r1=1627810&r2=1627811&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp (original) +++ qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp Fri Sep 26 15:38:02 2014 @@ -689,6 +689,11 @@ Manageable::status_t Broker::ManagementM status = queueRedirect(srcQueue, tgtQueue, getCurrentPublisher()); break; } + case _qmf::Broker::METHOD_SHUTDOWN : + { + QPID_LOG (info, "Broker received shutdown command"); + shutdown(); + } default: QPID_LOG (debug, "Broker ManagementMethod not implemented: id=" << methodId << "]"); status = Manageable::STATUS_NOT_IMPLEMENTED; @@ -1289,7 +1294,6 @@ void Broker::queueRedirectDestroy(Queue: } } - const Broker::TransportInfo& Broker::getTransportInfo(const std::string& name) const { static TransportInfo nullTransportInfo; TransportMap::const_iterator i Modified: qpid/trunk/qpid/cpp/src/qpid/broker/management-schema.xml URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/management-schema.xml?rev=1627811&r1=1627810&r2=1627811&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/broker/management-schema.xml (original) +++ qpid/trunk/qpid/cpp/src/qpid/broker/management-schema.xml Fri Sep 26 15:38:02 2014 @@ -194,6 +194,9 @@ <arg name="targetQueue" dir="I" type="sstr" desc="Redirect target queue. Blank disables redirect."/> </method> + <method name="shutdown" desc="Shutdown the broker"> + </method> + </class> <!-- Modified: qpid/trunk/qpid/tools/src/py/qpid-config URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/tools/src/py/qpid-config?rev=1627811&r1=1627810&r2=1627811&view=diff ============================================================================== --- qpid/trunk/qpid/tools/src/py/qpid-config (original) +++ qpid/trunk/qpid/tools/src/py/qpid-config Fri Sep 26 15:38:02 2014 @@ -28,7 +28,7 @@ import locale home = os.environ.get("QPID_TOOLS_HOME", os.path.normpath("/usr/share/qpid-tools")) sys.path.append(os.path.join(home, "python")) -from qpid.messaging import Connection +from qpid.messaging import Connection, ConnectionError from qpidtoollibs import BrokerAgent from qpidtoollibs import Display, Header @@ -47,7 +47,8 @@ Usage: qpid-config [OPTIONS] qpid-config [OPTIONS] reload-acl qpid-config [OPTIONS] add <type> <name> [--argument <property-name>=<property-value>] qpid-config [OPTIONS] del <type> <name> - qpid-config [OPTIONS] list <type> [--show-property <property-name>]""" + qpid-config [OPTIONS] list <type> [--show-property <property-name>] + qpid-config [OPTIONS] shutdown""" description = """ Examples: @@ -813,7 +814,12 @@ def main(argv=None): headers = [Header(a) for a in desired] rows = [tuple([_clean_ref(o.get(a, "n/a")) for a in desired]) for o in objects] display.formattedTable("Objects of type '%s'" % modifier, headers, rows) - + elif cmd == "shutdown": + try: + bm.broker._method("shutdown", {}) + except ConnectionError: + pass # Normal, the broker has been shut down! + bm.conn = None # Don't try to close again else: Usage() except KeyboardInterrupt: @@ -846,5 +852,5 @@ def main(argv=None): if __name__ == "__main__": - sys.exit(main()) + sys.exit(main()) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org