)]}'
{"config_tempest/main.py":[{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"9a0c520e1096dc11bb7bee136d502f86f9c0a2e9","unresolved":false,"context_lines":[{"line_number":65,"context_line":"from tempest.lib.services.image.v2 import images_client"},{"line_number":66,"context_line":"from tempest.lib.services.network import networks_client"},{"line_number":67,"context_line":"from tempest.lib.services.volume.v2 import services_client"},{"line_number":68,"context_line":"from tempest_conf import TempestConf"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"df7087c5_9acfaeaf","line":68,"updated":"2018-03-19 13:11:33.000000000","message":"Isn\u0027t this againg \"Do not import objects, only modules (*)\"? https://docs.openstack.org/hacking/latest/user/hacking.html","commit_id":"768a216e7fa745a74c57d089f95c92003d061346"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"cda657995facd2380e2112a7e69e39d8187f9d90","unresolved":false,"context_lines":[{"line_number":65,"context_line":"from tempest.lib.services.image.v2 import images_client"},{"line_number":66,"context_line":"from tempest.lib.services.network import networks_client"},{"line_number":67,"context_line":"from tempest.lib.services.volume.v2 import services_client"},{"line_number":68,"context_line":"from tempest_conf import TempestConf"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"df7087c5_e3c5d50b","line":68,"in_reply_to":"df7087c5_63db057d","updated":"2018-03-19 23:34:06.000000000","message":"Yes please; also in the other imports of the other files.\nOtherwise someone else will propose a fix later, so let\u0027s avoid an extra patch.","commit_id":"768a216e7fa745a74c57d089f95c92003d061346"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"1a86e141b26ac086e37952d877aecc7a5e7db89a","unresolved":false,"context_lines":[{"line_number":65,"context_line":"from tempest.lib.services.image.v2 import images_client"},{"line_number":66,"context_line":"from tempest.lib.services.network import networks_client"},{"line_number":67,"context_line":"from tempest.lib.services.volume.v2 import services_client"},{"line_number":68,"context_line":"from tempest_conf import TempestConf"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"df7087c5_63db057d","line":68,"in_reply_to":"df7087c5_9acfaeaf","updated":"2018-03-19 22:57:01.000000000","message":"hmm, maybe. I can change it to \u0027import tempest_conf\u0027 if you think it\u0027s better","commit_id":"768a216e7fa745a74c57d089f95c92003d061346"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"62f7405666ffc35423a3fc571dff925566cede65","unresolved":false,"context_lines":[{"line_number":65,"context_line":"from tempest.lib.services.image.v2 import images_client"},{"line_number":66,"context_line":"from tempest.lib.services.network import networks_client"},{"line_number":67,"context_line":"from tempest.lib.services.volume.v2 import services_client"},{"line_number":68,"context_line":"from tempest_conf import TempestConf"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"df7087c5_ccd6b8c4","line":68,"in_reply_to":"df7087c5_e3c5d50b","updated":"2018-03-20 08:42:20.000000000","message":"makes sense, fixed","commit_id":"768a216e7fa745a74c57d089f95c92003d061346"}],"config_tempest/tempest_conf.py":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"6a6d66fa7b0264d527bf15a3339c58aff271cb06","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import ConfigParser"},{"line_number":17,"context_line":"import logging"},{"line_number":18,"context_line":"import sys"},{"line_number":19,"context_line":"import tempest.config"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":22,"context_line":"LOG_FORMAT \u003d \u0027%(asctime)s - %(name)s - %(levelname)s - %(message)s\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_04818a4a","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":21},"updated":"2018-01-30 15:48:35.000000000","message":"keep third party imports seperate","commit_id":"679e4ce6c90227213b8d4833e4f8c075f304fed2"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"6a6d66fa7b0264d527bf15a3339c58aff271cb06","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        ConfigParser.SafeConfigParser.set(self, section, key, value)"},{"line_number":91,"context_line":"        return True"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def remove_values(self, args):"},{"line_number":94,"context_line":"        \"\"\"Remove values from configuration file specified in arguments."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        :param args - arguments object"},{"line_number":97,"context_line":"        \"\"\""},{"line_number":98,"context_line":"        for key_path in args.remove:"},{"line_number":99,"context_line":"            section, key \u003d key_path.split(\u0027.\u0027)"},{"line_number":100,"context_line":"            try:"},{"line_number":101,"context_line":"                conf_values \u003d self.get(section, key).split(\u0027,\u0027)"},{"line_number":102,"context_line":"                remove \u003d args.remove[key_path]"},{"line_number":103,"context_line":"                if len(remove) \u003d\u003d 0:"},{"line_number":104,"context_line":"                    # delete all values in section.key"},{"line_number":105,"context_line":"                    self.remove_option(section, key)"},{"line_number":106,"context_line":"                elif len(conf_values) \u003d\u003d 1:"},{"line_number":107,"context_line":"                    # make sure only the value specified by user"},{"line_number":108,"context_line":"                    # will be deleted if in the key is other value"},{"line_number":109,"context_line":"                    # than expected, ignore it"},{"line_number":110,"context_line":"                    if conf_values[0] in args.remove[key_path]:"},{"line_number":111,"context_line":"                        self.remove_option(section, key)"},{"line_number":112,"context_line":"                else:"},{"line_number":113,"context_line":"                    # exclude all unwanted values from the list"},{"line_number":114,"context_line":"                    # and preserve the original order of items"},{"line_number":115,"context_line":"                    conf_values \u003d [v for v in conf_values if v not in remove]"},{"line_number":116,"context_line":"                    self.set(section, key, \",\".join(conf_values))"},{"line_number":117,"context_line":"            except ConfigParser.NoOptionError:"},{"line_number":118,"context_line":"                # only inform a user, option specified by him doesn\u0027t exist"},{"line_number":119,"context_line":"                LOG.error(sys.exc_info()[1])"},{"line_number":120,"context_line":"            except ConfigParser.NoSectionError:"},{"line_number":121,"context_line":"                # only inform a user, section specified by him doesn\u0027t exist"},{"line_number":122,"context_line":"                LOG.error(sys.exc_info()[1])"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_e4a25efc","line":122,"range":{"start_line":93,"start_character":4,"end_line":122,"end_character":44},"updated":"2018-01-30 15:48:35.000000000","message":"Please remove the dependency of args here, Make it a generic function, so that we can use in refstack-client by callin this method directory and remove it.","commit_id":"679e4ce6c90227213b8d4833e4f8c075f304fed2"}],"config_tempest/tests/base.py":[{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"9a0c520e1096dc11bb7bee136d502f86f9c0a2e9","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from config_tempest import api_discovery as api"},{"line_number":24,"context_line":"from config_tempest import main as tool"},{"line_number":25,"context_line":"from config_tempest.tempest_conf import TempestConf"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class BaseConfigTempestTest(base.BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":10,"id":"df7087c5_556fa991","line":25,"updated":"2018-03-19 13:11:33.000000000","message":"see above for the import rule","commit_id":"768a216e7fa745a74c57d089f95c92003d061346"}]}
