diff --git a/code/pymqi/__init__.py b/code/pymqi/__init__.py index 4d8f16f4a172b153b91acd41f859e0403702304c_Y29kZS9weW1xaS9fX2luaXRfXy5weQ==..c7846163b23ac23122396900a8c97f126bc89f9f_Y29kZS9weW1xaS9fX2luaXRfXy5weQ== 100644 --- a/code/pymqi/__init__.py +++ b/code/pymqi/__init__.py @@ -2703,8 +2703,8 @@ message = message + pcf_filter.pack() command_queue = Queue(self.__pcf.qm, - self.__pcf._command_queue_name, + self.__pcf.command_queue_name, CMQC.MQOO_OUTPUT) put_md = MD(Format=CMQC.MQFMT_ADMIN, MsgType=CMQC.MQMT_REQUEST, @@ -2707,6 +2707,6 @@ CMQC.MQOO_OUTPUT) put_md = MD(Format=CMQC.MQFMT_ADMIN, MsgType=CMQC.MQMT_REQUEST, - ReplyToQ=self.__pcf._reply_queue_name, + ReplyToQ=self.__pcf.reply_queue_name, Feedback=CMQC.MQFB_NONE, @@ -2712,5 +2712,5 @@ Feedback=CMQC.MQFB_NONE, - Expiry=self.__pcf.response_wait_interval, + Expiry=self.__pcf.response_wait_interval // 100, Report=CMQC.MQRO_PASS_DISCARD_AND_EXPIRY | CMQC.MQRO_DISCARD_MSG) put_opts = PMO(Options=CMQC.MQPMO_NO_SYNCPOINT) @@ -2732,7 +2732,7 @@ ress = [] while True: - message = self.__pcf._reply_queue.get(None, get_md, get_opts) + message = self.__pcf.reply_queue.get(None, get_md, get_opts) res, control = self.__pcf.unpack(message) ress.append(res) @@ -2754,11 +2754,6 @@ its used. PCF commands are executed by calling a CMQC defined MQCMD_* method on the object. """ - _reply_queue = None # type: Queue - _reply_queue_name = None # type: str - _command_queue_name = b'SYSTEM.ADMIN.COMMAND.QUEUE' # type: bytes - response_wait_interval = 0 - qm = None # type: Optional[QueueManager] iaStringDict = _MQConst2String(CMQC, 'MQIA_') @@ -2768,6 +2763,6 @@ disconnect_on_exit=True, model_queue_name=b'SYSTEM.DEFAULT.MODEL.QUEUE', dynamic_queue_name=b'PYMQPCF.*', - command_queue_name=b'', - response_wait_interval=100, + command_queue_name=b'SYSTEM.ADMIN.COMMAND.QUEUE', + response_wait_interval=5000, convert=False): @@ -2773,8 +2768,8 @@ convert=False): - # type: (Any, bool, bytes, bytes, bytes) -> None + # type: (Any, bool, bytes, bytes, bytes, int, bool) -> None """PCFExecute(name = '') Connect to the Queue Manager 'name' (default value '') ready for a PCF command. If name is a QueueManager instance, it is used for the connection, otherwise a new connection is made """ @@ -2775,14 +2770,13 @@ """PCFExecute(name = '') Connect to the Queue Manager 'name' (default value '') ready for a PCF command. If name is a QueueManager instance, it is used for the connection, otherwise a new connection is made """ - self.response_wait_interval = response_wait_interval - self.convert = convert - - if command_queue_name: - self._command_queue_name = command_queue_name + self.__command_queue_name = command_queue_name + self.__convert = convert + self.__response_wait_interval = response_wait_interval + if isinstance(name, QueueManager): self.qm = name @@ -2791,13 +2785,31 @@ self.qm = None super(PCFExecute, self).__init__(name) - if not self._reply_queue and not self._reply_queue_name: - od = OD(ObjectName=model_queue_name, - DynamicQName=dynamic_queue_name) - - self._reply_queue = Queue(self.qm, od, CMQC.MQOO_INPUT_EXCLUSIVE) - self._reply_queue_name = od.ObjectName.strip() - + od = OD(ObjectName=model_queue_name, + DynamicQName=dynamic_queue_name) + + self.__reply_queue = Queue(self.qm, od, CMQC.MQOO_INPUT_EXCLUSIVE) + self.__reply_queue_name = od.ObjectName.strip() + + @property + def command_queue_name(self): + return self.__command_queue_name + + @property + def convert(self): + return self.__convert + + @property + def reply_queue(self): + return self.__reply_queue + + @property + def reply_queue_name(self): + return self.__reply_queue_name + + @property + def response_wait_interval(self): + return self.__response_wait_interval def __getattr__(self, name): """MQCMD_*(attrDict) @@ -2849,8 +2861,8 @@ """ Disconnect from reply_queue """ try: - if self._reply_queue and self._reply_queue.get_handle(): - self._reply_queue.close() + if self._reply_queue and self.__reply_queue.get_handle(): + self.__reply_queue.close() except MQMIError as ex: pass finally: @@ -2854,8 +2866,8 @@ except MQMIError as ex: pass finally: - self._reply_queue = None - self._reply_queue_name = None + self.__reply_queue = None + self.__reply_queue_name = None @staticmethod def unpack(message): # type: (bytes) -> dict @@ -2872,6 +2884,6 @@ if mqcfh.CompCode: raise MQMIError(mqcfh.CompCode, mqcfh.Reason) - res = {} + res = {} # type: Dict[str, Union[int, str, bool, Dict]] index = mqcfh.ParameterCount cursor = CMQCFC.MQCFH_STRUC_LENGTH @@ -2876,7 +2888,7 @@ index = mqcfh.ParameterCount cursor = CMQCFC.MQCFH_STRUC_LENGTH - parameter = None # type: Optional[MQOpts] - group = None + parameter = None # type: Optional[MQOpts] + group = None # type: Union[None, Dict[str, Union[str, int, bool]]] group_count = 0 while (index > 0): diff --git a/code/tests/test_pcf.py b/code/tests/test_pcf.py index 4d8f16f4a172b153b91acd41f859e0403702304c_Y29kZS90ZXN0cy90ZXN0X3BjZi5weQ==..c7846163b23ac23122396900a8c97f126bc89f9f_Y29kZS90ZXN0cy90ZXN0X3BjZi5weQ== 100644 --- a/code/tests/test_pcf.py +++ b/code/tests/test_pcf.py @@ -347,9 +347,9 @@ pcf = pymqi.PCFExecute(self.qmgr) - self.assertTrue(pcf._reply_queue) - self.assertTrue(pcf._reply_queue_name) + self.assertTrue(pcf.reply_queue) + self.assertTrue(pcf.reply_queue_name) pcf.disconnect() self.assertTrue(self.qmgr) @@ -352,9 +352,9 @@ pcf.disconnect() self.assertTrue(self.qmgr) - self.assertFalse(pcf._reply_queue) - self.assertFalse(pcf._reply_queue_name) + self.assertFalse(pcf.reply_queue) + self.assertFalse(pcf.reply_queue_name) if __name__ == "__main__": main(module="test_pcf")