)]}'
{"cinder/tests/unit/volume/drivers/hpe/test_hpe3par.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"de1d3d8710e85a2c4f39ed135a4a4fa98ee3988a","unresolved":false,"context_lines":[{"line_number":5001,"context_line":"            mock_create_client.return_value \u003d mock_client"},{"line_number":5002,"context_line":"            common \u003d self.driver._login()"},{"line_number":5003,"context_line":"            common.config.hpe3par_unique_fqdn_network \u003d False"},{"line_number":5004,"context_line":"            iqn \u003d self.connector.get(\u0027initiator\u0027)"},{"line_number":5005,"context_line":"            iqn \u003d iqn.replace(\":\", \"-\")"},{"line_number":5006,"context_line":"            unique_name \u003d iqn[::-1]"},{"line_number":5007,"context_line":"            ret_name \u003d unique_name[:31]"},{"line_number":5008,"context_line":"            safe_host \u003d common._safe_hostname(long_hostname, self.connector)"},{"line_number":5009,"context_line":"            self.assertEqual(ret_name, safe_host)"},{"line_number":5010,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_f6c95878","line":5007,"range":{"start_line":5004,"start_character":1,"end_line":5007,"end_character":39},"updated":"2020-03-26 10:58:19.000000000","message":"-1: We should not test using the same code we are testing.  Set a hardcoded value for the initiator and then do the check against a hardcoded expected value.","commit_id":"a6e4fe429f4ef943a340ae05a05efdd6e52eb539"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"de1d3d8710e85a2c4f39ed135a4a4fa98ee3988a","unresolved":false,"context_lines":[{"line_number":5008,"context_line":"            safe_host \u003d common._safe_hostname(long_hostname, self.connector)"},{"line_number":5009,"context_line":"            self.assertEqual(ret_name, safe_host)"},{"line_number":5010,"context_line":""},{"line_number":5011,"context_line":"    @mock.patch(\u0027cinder.volume.drivers.hpe.hpe_3par_common.HPE3PARCommon.\u0027"},{"line_number":5012,"context_line":"                \u0027is_volume_group_snap_type\u0027)"},{"line_number":5013,"context_line":"    @mock.patch(\u0027cinder.volume.volume_utils.is_group_a_cg_snapshot_type\u0027)"},{"line_number":5014,"context_line":"    def test_create_group(self, cg_ss_enable, vol_ss_enable):"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_76ab8888","line":5011,"updated":"2020-03-26 10:58:19.000000000","message":"-1: We should have a test when we have unique_fqdn_network set to False and we don\u0027t have the \u0027initiator\u0027 key.","commit_id":"a6e4fe429f4ef943a340ae05a05efdd6e52eb539"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"fe2400cec2e2fc9c52ac717741e63a233a04b4ac","unresolved":false,"context_lines":[{"line_number":5010,"context_line":"            # if value of unique_fqdn_network is kept as it is,"},{"line_number":5011,"context_line":"            # then other TC fail."},{"line_number":5012,"context_line":"            # so reverting its value to default(True)"},{"line_number":5013,"context_line":"            self.CONF.unique_fqdn_network \u003d True"},{"line_number":5014,"context_line":"            self.assertEqual(ret_name, safe_host)"},{"line_number":5015,"context_line":""},{"line_number":5016,"context_line":"    def test__safe_hostname_unique_without_initiator(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"df33271e_ea6317db","line":5013,"updated":"2020-04-08 09:41:22.000000000","message":"nit: This is not a good idea, if other tests depend on this value, then one should use a mock instead, otherwise any code failure could prevent this from happening.","commit_id":"d1eb42cb0b1a9629e8e0f9bd01be24956170e3b6"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"fe2400cec2e2fc9c52ac717741e63a233a04b4ac","unresolved":false,"context_lines":[{"line_number":5028,"context_line":"            # if value of unique_fqdn_network is kept as it is,"},{"line_number":5029,"context_line":"            # then other TC fail."},{"line_number":5030,"context_line":"            # so reverting its value to default(True)"},{"line_number":5031,"context_line":"            self.CONF.unique_fqdn_network \u003d True"},{"line_number":5032,"context_line":"            self.assertEqual(fixed_hostname, safe_host)"},{"line_number":5033,"context_line":""},{"line_number":5034,"context_line":"    @mock.patch(\u0027cinder.volume.drivers.hpe.hpe_3par_common.HPE3PARCommon.\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"df33271e_ca5e1311","line":5031,"updated":"2020-04-08 09:41:22.000000000","message":"ditto","commit_id":"d1eb42cb0b1a9629e8e0f9bd01be24956170e3b6"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5639874db572ddf4eed9889b428ae72c00ce009a","unresolved":false,"context_lines":[{"line_number":5004,"context_line":"            my_connector[\u0027initiator\u0027] \u003d \u0027iqn.1993-08.org.debian:01:222:12345\u0027"},{"line_number":5005,"context_line":"            ret_name \u003d \u002754321-222-10-naibed.gro.80-3991\u0027"},{"line_number":5006,"context_line":"            safe_host \u003d common._safe_hostname(long_hostname, my_connector,"},{"line_number":5007,"context_line":"                                              unique_fqdn_network)"},{"line_number":5008,"context_line":"            self.assertEqual(ret_name, safe_host)"},{"line_number":5009,"context_line":""},{"line_number":5010,"context_line":"    def test__safe_hostname_unique_without_initiator(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4c43b2_cd684e23","line":5007,"updated":"2020-04-13 12:19:08.000000000","message":"-1: We shouldn\u0027t add a parameter just to make it easier to do the unit tests.\n\nThe proper way to do what I mentioned on patch 6 is:\n\n   self.addCleanup(CONF.clear_override, \u0027unique_fqdn_network\u0027)\n   CONF.set_override(\u0027unique_fqdn_network\u0027, False)\n\nWith that you change the value of the config option to False, and also ensure that it is reverted after this test method is completed, regardless of how the method finishes (coding error, exception raise, successfully...).","commit_id":"ec069ed5e2b342f0d6ac2b95bd3d08e55d83322c"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5639874db572ddf4eed9889b428ae72c00ce009a","unresolved":false,"context_lines":[{"line_number":5019,"context_line":"            my_connector \u003d self.connector.copy()"},{"line_number":5020,"context_line":"            del(my_connector[\u0027initiator\u0027])"},{"line_number":5021,"context_line":"            safe_host \u003d common._safe_hostname(long_hostname, my_connector,"},{"line_number":5022,"context_line":"                                              unique_fqdn_network)"},{"line_number":5023,"context_line":"            self.assertEqual(fixed_hostname, safe_host)"},{"line_number":5024,"context_line":""},{"line_number":5025,"context_line":"    @mock.patch(\u0027cinder.volume.drivers.hpe.hpe_3par_common.HPE3PARCommon.\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4c43b2_2d761208","line":5022,"updated":"2020-04-13 12:19:08.000000000","message":"ditto","commit_id":"ec069ed5e2b342f0d6ac2b95bd3d08e55d83322c"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"b7d348bbe67bd9b31cc9b4f9ab36dfb2e5689b9f","unresolved":false,"context_lines":[{"line_number":668,"context_line":"    standard_logout \u003d ["},{"line_number":669,"context_line":"        mock.call.logout()]"},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"    from oslo_config import cfg"},{"line_number":672,"context_line":"    CONF \u003d cfg.CONF"},{"line_number":673,"context_line":"    from cinder.volume import configuration as cvol_cfg"},{"line_number":674,"context_line":""},{"line_number":675,"context_line":"    class fake_volume_object(object):"},{"line_number":676,"context_line":"        def __init__(self, vol_id\u003d\u0027d03338a9-9115-48a3-8dfc-35cdfcdc15a7\u0027):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4c43b2_7e42ff3f","line":673,"range":{"start_line":671,"start_character":1,"end_line":673,"end_character":55},"updated":"2020-04-20 12:10:43.000000000","message":"-1: This goes at the top of the file.","commit_id":"9b85568f7704d4d1186dbd4fa394841799936e31"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"8527d1d83e72166af593d22a7fbcd1a2b972a2d9","unresolved":false,"context_lines":[{"line_number":668,"context_line":"    standard_logout \u003d ["},{"line_number":669,"context_line":"        mock.call.logout()]"},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"    from oslo_config import cfg"},{"line_number":672,"context_line":"    CONF \u003d cfg.CONF"},{"line_number":673,"context_line":"    from cinder.volume import configuration as cvol_cfg"},{"line_number":674,"context_line":""},{"line_number":675,"context_line":"    class fake_volume_object(object):"},{"line_number":676,"context_line":"        def __init__(self, vol_id\u003d\u0027d03338a9-9115-48a3-8dfc-35cdfcdc15a7\u0027):"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f493fa4_53bcdfba","line":673,"range":{"start_line":671,"start_character":1,"end_line":673,"end_character":55},"in_reply_to":"3f4c43b2_7e42ff3f","updated":"2020-04-21 07:14:13.000000000","message":"Done","commit_id":"9b85568f7704d4d1186dbd4fa394841799936e31"}],"cinder/tests/unit/volume/drivers/test_kaminario.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"b7d348bbe67bd9b31cc9b4f9ab36dfb2e5689b9f","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    driver \u003d None"},{"line_number":126,"context_line":"    conf \u003d None"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    from oslo_config import cfg"},{"line_number":129,"context_line":"    CONF \u003d cfg.CONF"},{"line_number":130,"context_line":"    from cinder.volume import configuration as cvol_cfg"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def setUp(self):"},{"line_number":133,"context_line":"        self._setup_config()"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4c43b2_3ea35702","line":130,"range":{"start_line":128,"start_character":0,"end_line":130,"end_character":55},"updated":"2020-04-20 12:10:43.000000000","message":"-1: This goes at the top of the file.","commit_id":"9b85568f7704d4d1186dbd4fa394841799936e31"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"8527d1d83e72166af593d22a7fbcd1a2b972a2d9","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    driver \u003d None"},{"line_number":126,"context_line":"    conf \u003d None"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    from oslo_config import cfg"},{"line_number":129,"context_line":"    CONF \u003d cfg.CONF"},{"line_number":130,"context_line":"    from cinder.volume import configuration as cvol_cfg"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def setUp(self):"},{"line_number":133,"context_line":"        self._setup_config()"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f493fa4_d3c74f45","line":130,"range":{"start_line":128,"start_character":0,"end_line":130,"end_character":55},"in_reply_to":"3f4c43b2_3ea35702","updated":"2020-04-21 07:14:13.000000000","message":"Done","commit_id":"9b85568f7704d4d1186dbd4fa394841799936e31"}],"cinder/volume/driver.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5639874db572ddf4eed9889b428ae72c00ce009a","unresolved":false,"context_lines":[{"line_number":352,"context_line":"CONF.register_opts(scst_opts)"},{"line_number":353,"context_line":"CONF.register_opts(backup_opts)"},{"line_number":354,"context_line":"CONF.register_opts(image_opts)"},{"line_number":355,"context_line":"CONF.register_opts(fqdn_opts)"},{"line_number":356,"context_line":"CONF.import_opt(\u0027backup_use_same_host\u0027, \u0027cinder.backup.api\u0027)"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4c43b2_adffc265","line":355,"updated":"2020-04-13 12:19:08.000000000","message":"-1: Please add this to the SHARED_CONF_GROUP instead to make it compatible with the one from Kaminario (we don\u0027t want to have the same conf option defined twice), and then remove the duplicated definition of the option from the Kaminario driver (`kaminario_common.py`), and add it to the Kaminario  `get_driver_options` like you did in the 3PAR driver, and also update your docs to specify that it can be defined in the `backend_defaults` section or the driver specific section, but not on the DEFAULT section.","commit_id":"ec069ed5e2b342f0d6ac2b95bd3d08e55d83322c"}],"cinder/volume/drivers/hpe/hpe_3par_common.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"de1d3d8710e85a2c4f39ed135a4a4fa98ee3988a","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                    \"(3) the 3PAR backend is prezoned with this \""},{"line_number":131,"context_line":"                    \"specific nsp only. For example if nsp is 2 1 2, the \""},{"line_number":132,"context_line":"                    \"format of the option\u0027s value is 2:1:2\"),"},{"line_number":133,"context_line":"    cfg.BoolOpt(\u0027hpe3par_unique_fqdn_network\u0027,"},{"line_number":134,"context_line":"                default\u003dTrue,"},{"line_number":135,"context_line":"                help\u003d\"Whether or not our private network has unique FQDN on \""},{"line_number":136,"context_line":"                     \"each initiator or not. For example networks with QA \""}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_d68c1481","line":133,"updated":"2020-03-26 10:58:19.000000000","message":"-1: Please move the unique_fqdn_network config option used by Kaminario by moving it into a common place.\n\nWe don\u0027t want to have this option N times, one for each individual driver.","commit_id":"a6e4fe429f4ef943a340ae05a05efdd6e52eb539"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"de1d3d8710e85a2c4f39ed135a4a4fa98ee3988a","unresolved":false,"context_lines":[{"line_number":1457,"context_line":"        \"\"\"We have to use a safe hostname length for 3PAR host names.\"\"\""},{"line_number":1458,"context_line":"        if(not self.config.hpe3par_unique_fqdn_network and connector):"},{"line_number":1459,"context_line":"            iqn \u003d connector.get(\u0027initiator\u0027)"},{"line_number":1460,"context_line":"            iqn \u003d iqn.replace(\":\", \"-\")"},{"line_number":1461,"context_line":"            unique_name \u003d iqn[::-1]"},{"line_number":1462,"context_line":""},{"line_number":1463,"context_line":"            index \u003d len(unique_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_16d5dc43","line":1460,"updated":"2020-03-26 10:58:19.000000000","message":"-1: This will break if we are using FC and the node where we are going to do the attach doesn\u0027t have the iSCSI initiator installed.\n\nIt will break because the initiator key may not be present and None doesn\u0027t have the replace method.","commit_id":"a6e4fe429f4ef943a340ae05a05efdd6e52eb539"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"de1d3d8710e85a2c4f39ed135a4a4fa98ee3988a","unresolved":false,"context_lines":[{"line_number":1458,"context_line":"        if(not self.config.hpe3par_unique_fqdn_network and connector):"},{"line_number":1459,"context_line":"            iqn \u003d connector.get(\u0027initiator\u0027)"},{"line_number":1460,"context_line":"            iqn \u003d iqn.replace(\":\", \"-\")"},{"line_number":1461,"context_line":"            unique_name \u003d iqn[::-1]"},{"line_number":1462,"context_line":""},{"line_number":1463,"context_line":"            index \u003d len(unique_name)"},{"line_number":1464,"context_line":"            if index \u003e 31:"},{"line_number":1465,"context_line":"                index \u003d 31"},{"line_number":1466,"context_line":""},{"line_number":1467,"context_line":"            ret_name \u003d unique_name[:index]"},{"line_number":1468,"context_line":"            return ret_name"},{"line_number":1469,"context_line":"        else:"},{"line_number":1470,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"df33271e_5644841b","line":1467,"range":{"start_line":1461,"start_character":0,"end_line":1467,"end_character":42},"updated":"2020-03-26 10:58:19.000000000","message":"-1: All this can be replaced with:\n\n  ret_name \u003d iqn[::-1][:31]","commit_id":"a6e4fe429f4ef943a340ae05a05efdd6e52eb539"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"fe2400cec2e2fc9c52ac717741e63a233a04b4ac","unresolved":false,"context_lines":[{"line_number":374,"context_line":"            \u0027san_ip\u0027, \u0027san_login\u0027, \u0027san_password\u0027, \u0027reserved_percentage\u0027,"},{"line_number":375,"context_line":"            \u0027max_over_subscription_ratio\u0027, \u0027replication_device\u0027, \u0027target_port\u0027,"},{"line_number":376,"context_line":"            \u0027san_ssh_port\u0027, \u0027ssh_conn_timeout\u0027, \u0027san_private_key\u0027,"},{"line_number":377,"context_line":"            \u0027target_ip_address\u0027)"},{"line_number":378,"context_line":"        return hpe3par_opts + additional_opts"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"    def check_flags(self, options, required_flags):"}],"source_content_type":"text/x-python","patch_set":6,"id":"df33271e_6a7ee76b","line":377,"updated":"2020-04-08 09:41:22.000000000","message":"-1: You should add the unique_fqdn_network option here","commit_id":"d1eb42cb0b1a9629e8e0f9bd01be24956170e3b6"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"fe2400cec2e2fc9c52ac717741e63a233a04b4ac","unresolved":false,"context_lines":[{"line_number":1454,"context_line":"    def _safe_hostname(self, hostname, connector\u003dNone):"},{"line_number":1455,"context_line":"        \"\"\"We have to use a safe hostname length for 3PAR host names.\"\"\""},{"line_number":1456,"context_line":"        if(not CONF.unique_fqdn_network and connector.get(\u0027initiator\u0027)):"},{"line_number":1457,"context_line":"            iqn \u003d connector.get(\u0027initiator\u0027)"},{"line_number":1458,"context_line":"            iqn \u003d iqn.replace(\":\", \"-\")"},{"line_number":1459,"context_line":"            return iqn[::-1][:31]"},{"line_number":1460,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df33271e_0aec7b27","line":1457,"updated":"2020-04-08 09:41:22.000000000","message":"nit: No need to use get, we can use [\u0027initiator\u0027]","commit_id":"d1eb42cb0b1a9629e8e0f9bd01be24956170e3b6"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"e247868e281a797f92a1177d1884f2d493a8e5b8","unresolved":false,"context_lines":[{"line_number":1454,"context_line":"    def _safe_hostname(self, hostname, connector\u003dNone):"},{"line_number":1455,"context_line":"        \"\"\"We have to use a safe hostname length for 3PAR host names.\"\"\""},{"line_number":1456,"context_line":"        if(not CONF.unique_fqdn_network and connector.get(\u0027initiator\u0027)):"},{"line_number":1457,"context_line":"            iqn \u003d connector.get(\u0027initiator\u0027)"},{"line_number":1458,"context_line":"            iqn \u003d iqn.replace(\":\", \"-\")"},{"line_number":1459,"context_line":"            return iqn[::-1][:31]"},{"line_number":1460,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df33271e_3d252a0a","line":1457,"in_reply_to":"df33271e_0aec7b27","updated":"2020-04-09 05:56:48.000000000","message":"if connector[\u0027initiator\u0027] is used then below TC fails:\ntest__safe_hostname_unique_without_initiator\nKeyError: \u0027initiator\u0027\n\nSo, keeping it as connector.get(\u0027initiator\u0027)","commit_id":"d1eb42cb0b1a9629e8e0f9bd01be24956170e3b6"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5639874db572ddf4eed9889b428ae72c00ce009a","unresolved":false,"context_lines":[{"line_number":1453,"context_line":"                    data\u003de.get_description())"},{"line_number":1454,"context_line":""},{"line_number":1455,"context_line":"    def _safe_hostname(self, hostname, connector\u003dNone,"},{"line_number":1456,"context_line":"                       unique_fqdn_network\u003dCONF.unique_fqdn_network):"},{"line_number":1457,"context_line":"        \"\"\"We have to use a safe hostname length for 3PAR host names.\"\"\""},{"line_number":1458,"context_line":"        if(not unique_fqdn_network and connector.get(\u0027initiator\u0027)):"},{"line_number":1459,"context_line":"            iqn \u003d connector.get(\u0027initiator\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4c43b2_4d18bed2","line":1456,"updated":"2020-04-13 12:19:08.000000000","message":"-1: This parameter seems to have been added only for the purpose of facilitating the wiring of the unit tests.\n\nI mention the proper way to do it in the unit tests.","commit_id":"ec069ed5e2b342f0d6ac2b95bd3d08e55d83322c"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"b7d348bbe67bd9b31cc9b4f9ab36dfb2e5689b9f","unresolved":false,"context_lines":[{"line_number":1454,"context_line":""},{"line_number":1455,"context_line":"    def _safe_hostname(self, hostname, connector\u003dNone):"},{"line_number":1456,"context_line":"        \"\"\"We have to use a safe hostname length for 3PAR host names.\"\"\""},{"line_number":1457,"context_line":"        SHARED_CONF_GROUP \u003d \u0027backend_defaults\u0027"},{"line_number":1458,"context_line":"        shared_backend_conf \u003d CONF._get(SHARED_CONF_GROUP)"},{"line_number":1459,"context_line":"        unique_fqdn_network \u003d shared_backend_conf.unique_fqdn_network"},{"line_number":1460,"context_line":"        if(not unique_fqdn_network and connector.get(\u0027initiator\u0027)):"},{"line_number":1461,"context_line":"            iqn \u003d connector.get(\u0027initiator\u0027)"},{"line_number":1462,"context_line":"            iqn \u003d iqn.replace(\":\", \"-\")"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4c43b2_5edbc37a","line":1459,"range":{"start_line":1457,"start_character":0,"end_line":1459,"end_character":69},"updated":"2020-04-20 12:10:43.000000000","message":"-1: This should not be necessary, the configuration should be available normally:\n\n   unique_fqdn_network \u003d self.configuration.unique_fqdn_network","commit_id":"9b85568f7704d4d1186dbd4fa394841799936e31"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"8527d1d83e72166af593d22a7fbcd1a2b972a2d9","unresolved":false,"context_lines":[{"line_number":1454,"context_line":""},{"line_number":1455,"context_line":"    def _safe_hostname(self, hostname, connector\u003dNone):"},{"line_number":1456,"context_line":"        \"\"\"We have to use a safe hostname length for 3PAR host names.\"\"\""},{"line_number":1457,"context_line":"        SHARED_CONF_GROUP \u003d \u0027backend_defaults\u0027"},{"line_number":1458,"context_line":"        shared_backend_conf \u003d CONF._get(SHARED_CONF_GROUP)"},{"line_number":1459,"context_line":"        unique_fqdn_network \u003d shared_backend_conf.unique_fqdn_network"},{"line_number":1460,"context_line":"        if(not unique_fqdn_network and connector.get(\u0027initiator\u0027)):"},{"line_number":1461,"context_line":"            iqn \u003d connector.get(\u0027initiator\u0027)"},{"line_number":1462,"context_line":"            iqn \u003d iqn.replace(\":\", \"-\")"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f493fa4_13d7f7ef","line":1459,"range":{"start_line":1457,"start_character":0,"end_line":1459,"end_character":69},"in_reply_to":"3f4c43b2_5edbc37a","updated":"2020-04-21 07:14:13.000000000","message":"Tried this suggestion; but it gave below error during testing ...\nAttributeError: \u0027HPE3PARCommon\u0027 object has no attribute \u0027configuration\u0027\n\nSo, keeping code as it is.","commit_id":"9b85568f7704d4d1186dbd4fa394841799936e31"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"c9bd929c9928f2d4a66ea66ebe4519f2b1217bfa","unresolved":false,"context_lines":[{"line_number":1457,"context_line":"        SHARED_CONF_GROUP \u003d \u0027backend_defaults\u0027"},{"line_number":1458,"context_line":"        shared_backend_conf \u003d CONF._get(SHARED_CONF_GROUP)"},{"line_number":1459,"context_line":"        unique_fqdn_network \u003d shared_backend_conf.unique_fqdn_network"},{"line_number":1460,"context_line":"        if(not unique_fqdn_network and connector.get(\u0027initiator\u0027)):"},{"line_number":1461,"context_line":"            iqn \u003d connector.get(\u0027initiator\u0027)"},{"line_number":1462,"context_line":"            iqn \u003d iqn.replace(\":\", \"-\")"},{"line_number":1463,"context_line":"            return iqn[::-1][:31]"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_3365f4b5","line":1460,"range":{"start_line":1460,"start_character":10,"end_line":1460,"end_character":11},"updated":"2020-06-29 12:49:20.000000000","message":"Not sure why this didn\u0027t get flagged by pep8.","commit_id":"f1cb8e5d8fcb09e656ba433cf764135603ab5ce1"}],"cinder/volume/drivers/kaminario/kaminario_common.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"b7d348bbe67bd9b31cc9b4f9ab36dfb2e5689b9f","unresolved":false,"context_lines":[{"line_number":839,"context_line":"        \"\"\""},{"line_number":840,"context_line":"        name \u003d connector.get(\u0027initiator\u0027,"},{"line_number":841,"context_line":"                             connector.get(\u0027wwnns\u0027, [\u0027\u0027])[0])[::-1]"},{"line_number":842,"context_line":"        SHARED_CONF_GROUP \u003d \u0027backend_defaults\u0027"},{"line_number":843,"context_line":"        shared_backend_conf \u003d CONF._get(SHARED_CONF_GROUP)"},{"line_number":844,"context_line":"        unique_fqdn_network \u003d shared_backend_conf.unique_fqdn_network"},{"line_number":845,"context_line":"        if unique_fqdn_network:"},{"line_number":846,"context_line":"            name \u003d connector.get(\u0027host\u0027, name)"},{"line_number":847,"context_line":"        return re.sub(\u0027[^0-9a-zA-Z-_]\u0027, \u0027_\u0027, name[:32])"},{"line_number":848,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4c43b2_fed3af5e","line":845,"range":{"start_line":842,"start_character":0,"end_line":845,"end_character":31},"updated":"2020-04-20 12:10:43.000000000","message":"-1: This change is not necessary, the old code should work.","commit_id":"9b85568f7704d4d1186dbd4fa394841799936e31"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"8527d1d83e72166af593d22a7fbcd1a2b972a2d9","unresolved":false,"context_lines":[{"line_number":839,"context_line":"        \"\"\""},{"line_number":840,"context_line":"        name \u003d connector.get(\u0027initiator\u0027,"},{"line_number":841,"context_line":"                             connector.get(\u0027wwnns\u0027, [\u0027\u0027])[0])[::-1]"},{"line_number":842,"context_line":"        SHARED_CONF_GROUP \u003d \u0027backend_defaults\u0027"},{"line_number":843,"context_line":"        shared_backend_conf \u003d CONF._get(SHARED_CONF_GROUP)"},{"line_number":844,"context_line":"        unique_fqdn_network \u003d shared_backend_conf.unique_fqdn_network"},{"line_number":845,"context_line":"        if unique_fqdn_network:"},{"line_number":846,"context_line":"            name \u003d connector.get(\u0027host\u0027, name)"},{"line_number":847,"context_line":"        return re.sub(\u0027[^0-9a-zA-Z-_]\u0027, \u0027_\u0027, name[:32])"},{"line_number":848,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1f493fa4_732abbe7","line":845,"range":{"start_line":842,"start_character":0,"end_line":845,"end_character":31},"in_reply_to":"3f4c43b2_fed3af5e","updated":"2020-04-21 07:14:13.000000000","message":"Reverted to old code; but it gave below error during testing ...\nAttributeError: Mock object has no attribute \u0027unique_fqdn_network\u0027\n\nSo, fetching unique_fqdn_network value via SHARED_CONF_GROUP.","commit_id":"9b85568f7704d4d1186dbd4fa394841799936e31"}]}
