def tearDown(self): """Delete created objects.""" attrs = [] attrs.append( pymqi.CFST(Parameter=pymqi.CMQCFC.MQCACH_CHANNEL_NAME, String=utils.py3str2bytes(self.tls_channel_name))) attrs.append( pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACF_CHLAUTH_TYPE, Value=pymqi.CMQCFC.MQCAUT_USERMAP)) attrs.append( pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACF_ACTION, Value=pymqi.CMQCFC.MQACT_REMOVEALL)) self.delete_auth_rec(attrs) attrs = [] attrs.append( pymqi.CFST(Parameter=pymqi.CMQCFC.MQCACH_CHANNEL_NAME, String=utils.py3str2bytes(self.tls_channel_name))) attrs.append( pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACF_CHLAUTH_TYPE, Value=pymqi.CMQCFC.MQCAUT_BLOCKUSER)) attrs.append( pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACF_ACTION, Value=pymqi.CMQCFC.MQACT_REMOVEALL)) self.delete_auth_rec(attrs) self.delete_channel(self.tls_channel_name) super(TestTLS, self).tearDown()
def tearDown(self): """Delete created objects.""" args = { pymqi.CMQCFC.MQCACH_CHANNEL_NAME: utils.py3str2bytes(self.tls_channel_name), pymqi.CMQCFC.MQIACF_CHLAUTH_TYPE: pymqi.CMQCFC.MQCAUT_USERMAP, pymqi.CMQCFC.MQIACF_ACTION: pymqi.CMQCFC.MQACT_REMOVEALL } self.delete_auth_rec(args) args = { pymqi.CMQCFC.MQCACH_CHANNEL_NAME: utils.py3str2bytes(self.tls_channel_name), pymqi.CMQCFC.MQIACF_CHLAUTH_TYPE: pymqi.CMQCFC.MQCAUT_BLOCKUSER, pymqi.CMQCFC.MQIACF_ACTION: pymqi.CMQCFC.MQACT_REMOVEALL } self.delete_auth_rec(args) self.delete_channel(self.tls_channel_name) super(TestTLS, self).tearDown()
def create_admin_subscription(self, destination_class, subname, queue_name, topic_string): pcf = pymqi.PCFExecute(self.qmgr) args = {pymqi.CMQCFC.MQCACF_SUB_NAME: utils.py3str2bytes(subname), pymqi.CMQC.MQCA_TOPIC_STRING: utils.py3str2bytes(topic_string), pymqi.CMQCFC.MQIACF_DESTINATION_CLASS: destination_class} if destination_class is pymqi.CMQC.MQDC_PROVIDED: args[pymqi.CMQCFC.MQCACF_DESTINATION] = utils.py3str2bytes(queue_name) pcf.MQCMD_CREATE_SUBSCRIPTION(args)
def create_channel(self, channel_name, args=None): if args: args[pymqi.CMQCFC.MQCACH_CHANNEL_NAME] = utils.py3str2bytes(channel_name) else: args = {pymqi.CMQCFC.MQCACH_CHANNEL_NAME: utils.py3str2bytes(channel_name), pymqi.CMQCFC.MQIACH_CHANNEL_TYPE: pymqi.CMQC.MQCHT_SVRCONN, pymqi.CMQCFC.MQIACF_REPLACE: pymqi.CMQCFC.MQRP_YES} pcf = pymqi.PCFExecute(self.qmgr) pcf.MQCMD_CREATE_CHANNEL(args)
def create_queue(self, queue_name, max_depth=5000, args=None): if args: args[pymqi.CMQC.MQCA_Q_NAME] = utils.py3str2bytes(queue_name) else: args = {pymqi.CMQC.MQCA_Q_NAME: utils.py3str2bytes(queue_name), pymqi.CMQC.MQIA_Q_TYPE: pymqi.CMQC.MQQT_LOCAL, pymqi.CMQC.MQIA_MAX_Q_DEPTH: max_depth, pymqi.CMQCFC.MQIACF_REPLACE: pymqi.CMQCFC.MQRP_YES} pcf = pymqi.PCFExecute(self.qmgr) pcf.MQCMD_CREATE_Q(args)
def create_queue(self, queue_name): queue_type = pymqi.CMQC.MQQT_LOCAL max_depth = 5000 args = { pymqi.CMQC.MQCA_Q_NAME: utils.py3str2bytes(queue_name), pymqi.CMQC.MQIA_Q_TYPE: queue_type, pymqi.CMQC.MQCA_Q_DESC: utils.py3str2bytes('PCF testing'), pymqi.CMQCFC.MQIACF_REPLACE: pymqi.CMQCFC.MQRP_YES } pcf = pymqi.PCFExecute(self.qmgr) pcf.MQCMD_CREATE_Q(args) pcf.disconnect
def setUp(self): """Initialize test environment.""" super(TestTLS, self).setUp() attrs = [] attrs.append(pymqi.CFST(Parameter=pymqi.CMQCFC.MQCACH_CHANNEL_NAME, String=utils.py3str2bytes(self.tls_channel_name))) attrs.append(pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACH_CHANNEL_TYPE, Value=pymqi.CMQC.MQCHT_SVRCONN)) attrs.append(pymqi.CFST(Parameter=pymqi.CMQCFC.MQCACH_SSL_CIPHER_SPEC, String=self.cypher_spec)) attrs.append(pymqi.CFST(Parameter=pymqi.CMQCFC.MQCACH_SSL_PEER_NAME, String=self.client_dn)) attrs.append(pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACH_SSL_CLIENT_AUTH, Value=pymqi.CMQXC.MQSCA_OPTIONAL)) attrs.append(pymqi.CFST(Parameter=pymqi.CMQC.MQCA_CERT_LABEL, String=self.certificate_label_qmgr)) attrs.append(pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACF_REPLACE, Value=pymqi.CMQCFC.MQRP_YES)) self.create_channel(self.tls_channel_name, attrs) attrs = [] attrs.append(pymqi.CFST(Parameter=pymqi.CMQCFC.MQCACH_CHANNEL_NAME, String=utils.py3str2bytes(self.tls_channel_name))) attrs.append(pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACF_CHLAUTH_TYPE, Value=pymqi.CMQCFC.MQCAUT_USERMAP)) attrs.append(pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACF_ACTION, Value=pymqi.CMQCFC.MQACT_REPLACE)) attrs.append(pymqi.CFST(Parameter=pymqi.CMQCFC.MQCACH_CLIENT_USER_ID, String=utils.py3str2bytes(self.user))) attrs.append(pymqi.CFIN(Parameter=pymqi.CMQC.MQIA_CHECK_CLIENT_BINDING, Value=pymqi.CMQCFC.MQCHK_REQUIRED_ADMIN)) attrs.append(pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACH_USER_SOURCE, Value=pymqi.CMQC.MQUSRC_MAP)) attrs.append(pymqi.CFST(Parameter=pymqi.CMQCFC.MQCACH_MCA_USER_ID, String=b'mqm')) self.create_auth_rec(attrs) attrs = [] attrs.append(pymqi.CFST(Parameter=pymqi.CMQCFC.MQCACH_CHANNEL_NAME, String=utils.py3str2bytes(self.tls_channel_name))) attrs.append(pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACF_CHLAUTH_TYPE, Value=pymqi.CMQCFC.MQCAUT_BLOCKUSER)) attrs.append(pymqi.CFST(Parameter=pymqi.CMQCFC.MQCACH_MCA_USER_ID_LIST, String=b'nobody')) attrs.append(pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACH_WARNING, Value=pymqi.CMQC.MQWARN_NO)) attrs.append(pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACF_ACTION, Value=pymqi.CMQCFC.MQACT_REPLACE)) self.create_auth_rec(attrs)
def setUp(self): """Initialize test environment.""" super(TestTLS, self).setUp() args = { pymqi.CMQCFC.MQCACH_CHANNEL_NAME: utils.py3str2bytes(self.tls_channel_name), pymqi.CMQCFC.MQIACH_CHANNEL_TYPE: pymqi.CMQC.MQCHT_SVRCONN, pymqi.CMQCFC.MQCACH_SSL_CIPHER_SPEC: self.cypher_spec, pymqi.CMQCFC.MQCACH_SSL_PEER_NAME: self.client_dn, pymqi.CMQCFC.MQIACH_SSL_CLIENT_AUTH: pymqi.CMQXC.MQSCA_OPTIONAL, pymqi.CMQC.MQCA_CERT_LABEL: self.cert_label_qmgr, pymqi.CMQCFC.MQIACF_REPLACE: pymqi.CMQCFC.MQRP_YES } self.create_channel(self.tls_channel_name, args) args = { pymqi.CMQCFC.MQCACH_CHANNEL_NAME: utils.py3str2bytes(self.tls_channel_name), pymqi.CMQCFC.MQIACF_CHLAUTH_TYPE: pymqi.CMQCFC.MQCAUT_USERMAP, pymqi.CMQCFC.MQIACF_ACTION: pymqi.CMQCFC.MQACT_REPLACE, pymqi.CMQCFC.MQCACH_CLIENT_USER_ID: self.user, pymqi.CMQC.MQIA_CHECK_CLIENT_BINDING: pymqi.CMQCFC.MQCHK_REQUIRED_ADMIN, pymqi.CMQCFC.MQIACH_USER_SOURCE: pymqi.CMQC.MQUSRC_CHANNEL } self.create_auth_rec(args) args = { pymqi.CMQCFC.MQCACH_CHANNEL_NAME: utils.py3str2bytes(self.tls_channel_name), pymqi.CMQCFC.MQIACF_CHLAUTH_TYPE: pymqi.CMQCFC.MQCAUT_BLOCKUSER, pymqi.CMQCFC.MQCACH_MCA_USER_ID_LIST: 'nobody', pymqi.CMQCFC.MQIACH_WARNING: pymqi.CMQC.MQWARN_NO, pymqi.CMQCFC.MQIACF_ACTION: pymqi.CMQCFC.MQACT_REPLACE } self.create_auth_rec(args)
def delete_queue(self, queue_name): pcf = pymqi.PCFExecute(self.qmgr) args = { pymqi.CMQC.MQCA_Q_NAME: utils.py3str2bytes(queue_name), pymqi.CMQCFC.MQIACF_PURGE: pymqi.CMQCFC.MQPO_YES } pcf.MQCMD_DELETE_Q(args)
def delete_queue(self, sub_desc, queue_name): # must be unmanaged if not sub_desc["Options"] & pymqi.CMQC.MQSO_MANAGED: pcf = pymqi.PCFExecute(self.qmgr) args = {pymqi.CMQC.MQCA_Q_NAME: utils.py3str2bytes(queue_name), pymqi.CMQCFC.MQIACF_PURGE: pymqi.CMQCFC.MQPO_YES} pcf.MQCMD_DELETE_Q(args)
def delete_channel(self, channel_name): """Delete channel.""" pcf = pymqi.PCFExecute(self.qmgr) attrs = [] attrs.append( pymqi.CFST(Parameter=pymqi.CMQCFC.MQCACH_CHANNEL_NAME, String=utils.py3str2bytes(channel_name))) pcf.MQCMD_DELETE_CHANNEL(attrs)
def delete_queue(self, queue_name): """Delete queue.""" attrs = [] attrs.append(pymqi.CFST(Parameter=pymqi.CMQC.MQCA_Q_NAME, String=utils.py3str2bytes(queue_name))) attrs.append(pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACF_PURGE, Value=pymqi.CMQCFC.MQPO_YES)) self.pcf.MQCMD_DELETE_Q(attrs)
def create_queue(self, queue_name): queue_type = pymqi.CMQC.MQQT_LOCAL max_depth = 123456 args = {pymqi.CMQC.MQCA_Q_NAME: utils.py3str2bytes(queue_name), pymqi.CMQC.MQIA_Q_TYPE: queue_type, pymqi.CMQC.MQIA_MAX_Q_DEPTH: max_depth} pcf = pymqi.PCFExecute(self.qmgr) pcf.MQCMD_CREATE_Q(args)
def test_inquire(self): qmgr = pymqi.QueueManager(None) qmgr.connect_tcp_client( self.qm_name, pymqi.cd(), self.channel, self.conn_info, user=self.user, password=self.password) attribute = pymqi.CMQC.MQCA_Q_MGR_NAME expected_value = utils.py3str2bytes(self.qm_name) attribute_value = qmgr.inquire(attribute) self.assertEqual(len(attribute_value), pymqi.CMQC.MQ_Q_MGR_NAME_LENGTH) self.assertEqual(attribute_value.strip(), expected_value)
def setUp(self): self.msg_prop_name = utils.py3str2bytes("test_name") self.msg_prop_value = utils.py3str2bytes("test_valuetest_valuetest_valuetest_valuetest_value") # max length of queue names is 48 characters self.queue_name = "{prefix}.MSG.PROP.QUEUE".format(prefix=config.MQ.QUEUE.PREFIX) self.queue_manager = config.MQ.QM.NAME self.channel = config.MQ.QM.CHANNEL self.host = config.MQ.QM.HOST self.port = config.MQ.QM.PORT self.user = config.MQ.QM.USER self.password = config.MQ.QM.PASSWORD self.conn_info = "{0}({1})".format(self.host, self.port) self.qmgr = pymqi.QueueManager(None) self.qmgr.connectTCPClient(self.queue_manager, pymqi.CD(), self.channel, self.conn_info, self.user, self.password) self.create_queue(self.queue_name)
def create_channel(self, channel_name, attrs=None): """Create channle.""" if not attrs: attrs = [] attrs.append(pymqi.CFST(Parameter=pymqi.CMQCFC.MQCACH_CHANNEL_NAME, String=utils.py3str2bytes(channel_name))) attrs.append(pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACH_CHANNEL_TYPE, Value=pymqi.CMQC.MQCHT_SVRCONN)) attrs.append(pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACF_REPLACE, Value=pymqi.CMQCFC.MQRP_YES)) self.pcf.MQCMD_CREATE_CHANNEL(attrs)
def create_queue(self, queue_name): queue_type = pymqi.CMQC.MQQT_LOCAL max_depth = 5000 args = { pymqi.CMQC.MQCA_Q_NAME: utils.py3str2bytes(queue_name), pymqi.CMQC.MQIA_Q_TYPE: queue_type, pymqi.CMQC.MQIA_MAX_Q_DEPTH: max_depth, pymqi.CMQCFC.MQIACF_REPLACE: pymqi.CMQCFC.MQRP_YES } pcf = pymqi.PCFExecute(self.qmgr, response_wait_interval=120000) pcf.MQCMD_CREATE_Q(args) pcf.disconnect
def test_inquire(self): qmgr = pymqi.QueueManager(None) qmgr.connect_tcp_client(self.qm_name, pymqi.cd(), self.channel, self.conn_info, user=self.user, password=self.password) attribute = pymqi.CMQC.MQCA_Q_MGR_NAME expected_value = utils.py3str2bytes(self.qm_name) attribute_value = qmgr.inquire(attribute) self.assertEqual(len(attribute_value), pymqi.CMQC.MQ_Q_MGR_NAME_LENGTH) self.assertEqual(attribute_value.strip(), expected_value)
def create_queue(self, queue_name, max_depth=5000, attrs=None): """Create queue.""" if not attrs: attrs = [] attrs.append(pymqi.CFST(Parameter=pymqi.CMQC.MQCA_Q_NAME, String=utils.py3str2bytes(queue_name))) attrs.append(pymqi.CFIN(Parameter=pymqi.CMQC.MQIA_Q_TYPE, Value=pymqi.CMQC.MQQT_LOCAL)) attrs.append(pymqi.CFIN(Parameter=pymqi.CMQC.MQIA_MAX_Q_DEPTH, Value=max_depth)) attrs.append(pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACF_REPLACE, Value=pymqi.CMQCFC.MQRP_YES)) self.pcf.MQCMD_CREATE_Q(attrs)
def test_object_inquire_multiple_attributes(self): attrs = { pymqi.CMQC.MQCA_Q_NAME: utils.py3str2bytes(self.queue_name), pymqi.CMQC.MQIA_Q_TYPE: pymqi.CMQC.MQQT_LOCAL, pymqi.CMQCFC.MQIACF_Q_ATTRS: [pymqi.CMQC.MQIA_CURRENT_Q_DEPTH, pymqi.CMQC.MQCA_Q_DESC] } pcf = pymqi.PCFExecute(self.qmgr) results = pcf.MQCMD_INQUIRE_Q(attrs) pcf.disconnect queue_inquired = False for result in results: if result.get(pymqi.CMQC.MQCA_Q_NAME).decode().strip( ) == self.queue_name: if pymqi.CMQC.MQIA_CURRENT_Q_DEPTH in result and pymqi.CMQC.MQCA_Q_DESC in result: queue_inquired = True self.assertEqual(True, queue_inquired)
def msg_format(self, **kwargs): res = self.msg_template.format(**kwargs) return utils.py3str2bytes(res)
def delete_channel(self, channel_name): """Delete channel.""" pcf = pymqi.PCFExecute(self.qmgr) args = {pymqi.CMQCFC.MQCACH_CHANNEL_NAME: utils.py3str2bytes(channel_name)} pcf.MQCMD_DELETE_CHANNEL(args)
def test_inquire(self): attribute = pymqi.CMQC.MQCA_Q_MGR_NAME expected_value = utils.py3str2bytes(self.queue_manager) attribute_value = self.qmgr.inquire(attribute) self.assertEqual(len(attribute_value), pymqi.CMQC.MQ_Q_MGR_NAME_LENGTH) self.assertEqual(attribute_value.strip(), expected_value)