diff options
Diffstat (limited to 'qpid/python/qmf/test/console_test.py')
-rw-r--r-- | qpid/python/qmf/test/console_test.py | 79 |
1 files changed, 57 insertions, 22 deletions
diff --git a/qpid/python/qmf/test/console_test.py b/qpid/python/qmf/test/console_test.py index e649b2b8e4..6db515dc99 100644 --- a/qpid/python/qmf/test/console_test.py +++ b/qpid/python/qmf/test/console_test.py @@ -4,7 +4,7 @@ from threading import Semaphore from qpid.messaging import * -from qmfCommon import (Notifier, QmfQuery) +from qmfCommon import (Notifier, QmfQuery, MsgKey, SchemaClassId, SchemaClass) from qmfConsole import Console @@ -16,18 +16,18 @@ class ExampleNotifier(Notifier): self._sema4.release() def waitForWork(self): - logging.error("Waiting for event...") + print("Waiting for event...") self._sema4.acquire() - logging.error("...event present") + print("...event present") logging.getLogger().setLevel(logging.INFO) -logging.info( "Starting Connection" ) +print( "Starting Connection" ) _c = Connection("localhost") _c.connect() -logging.info( "Starting Console" ) +print( "Starting Console" ) _notifier = ExampleNotifier() _myConsole = Console(notifier=_notifier) @@ -40,30 +40,65 @@ _myConsole.addConnection( _c ) _query = {QmfQuery._TARGET: {QmfQuery._TARGET_AGENT:None}, QmfQuery._PREDICATE: - {QmfQuery._LOGIC_AND: - [{QmfQuery._CMP_EQ: ["vendor", "redhat.com"]}, - {QmfQuery._CMP_EQ: ["product", "qmf"]}]}} + {QmfQuery._CMP_EQ: ["_name", "qmf.testAgent"]}} _query = QmfQuery(_query) _myConsole.enableAgentDiscovery(_query) _done = False while not _done: - try: - _notifier.waitForWork() - - _wi = _myConsole.get_next_workitem(timeout=0) - while _wi: - print("!!! work item received %d:%s" % (_wi.getType(), str(_wi.getParams()))) - _wi = _myConsole.get_next_workitem(timeout=0) - except: - logging.info( "shutting down..." ) - _done = True - -logging.info( "Removing connection" ) +# try: + _notifier.waitForWork() + + _wi = _myConsole.getNextWorkItem(timeout=0) + while _wi: + print("!!! work item received %d:%s" % (_wi.getType(), + str(_wi.getParams()))) + + + if _wi.getType() == _wi.AGENT_ADDED: + _agent = _wi.getParams().get("agent") + if not _agent: + print("!!!! AGENT IN REPLY IS NULL !!! ") + + _query = QmfQuery( {QmfQuery._TARGET: + {QmfQuery._TARGET_PACKAGES:None}} ) + + _reply = _myConsole.doQuery(_agent, _query) + + package_list = _reply.get(MsgKey.package_info) + for pname in package_list: + print("!!! Querying for schema from package: %s" % pname) + _query = QmfQuery({QmfQuery._TARGET: + {QmfQuery._TARGET_SCHEMA_ID:None}, + QmfQuery._PREDICATE: + {QmfQuery._CMP_EQ: + [SchemaClassId.KEY_PACKAGE, pname]}}) + + _reply = _myConsole.doQuery(_agent, _query) + + schema_id_list = _reply.get(MsgKey.schema_id) + for sid_map in schema_id_list: + _query = QmfQuery({QmfQuery._TARGET: + {QmfQuery._TARGET_SCHEMA:None}, + QmfQuery._PREDICATE: + {QmfQuery._CMP_EQ: + [SchemaClass.KEY_SCHEMA_ID, sid_map]}}) + + _reply = _myConsole.doQuery(_agent, _query) + + + + _myConsole.releaseWorkItem(_wi) + _wi = _myConsole.getNextWorkItem(timeout=0) +# except: +# logging.info( "shutting down..." ) +# _done = True + +print( "Removing connection" ) _myConsole.removeConnection( _c, 10 ) -logging.info( "Destroying console:" ) +print( "Destroying console:" ) _myConsole.destroy( 10 ) -logging.info( "******** console test done ********" ) +print( "******** console test done ********" ) |