Exemplo n.º 1
0
    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()
Exemplo n.º 2
0
    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()
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
    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
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
    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)
Exemplo n.º 9
0
 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)
Exemplo n.º 10
0
 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)
Exemplo n.º 11
0
 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)
Exemplo n.º 12
0
 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)
Exemplo n.º 13
0
    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)
Exemplo n.º 14
0
 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)
Exemplo n.º 15
0
    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)
Exemplo n.º 16
0
 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)
Exemplo n.º 17
0
    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
Exemplo n.º 18
0
 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)
Exemplo n.º 19
0
    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)
Exemplo n.º 20
0
    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)
Exemplo n.º 21
0
 def msg_format(self, **kwargs):
     res = self.msg_template.format(**kwargs)
     return utils.py3str2bytes(res)
Exemplo n.º 22
0
 def msg_format(self, **kwargs):
     res = self.msg_template.format(**kwargs)
     return utils.py3str2bytes(res)
Exemplo n.º 23
0
 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)
Exemplo n.º 24
0
 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)