)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"69c8bea49318755aa68586889b4d513052953f7d","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Till patch set 2, there is test code to simulate the error observed"},{"line_number":14,"context_line":"From patch set 3 onwards, adding test to make sure that both CONF"},{"line_number":15,"context_line":"handle maintains the same config values."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I18d3c8850c71aa8f991e88af5ce0859a3bec2d6d"},{"line_number":18,"context_line":"Closes-Bug: #1518510"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a8ffd7b_52cc1c89","line":15,"updated":"2015-11-25 07:45:52.000000000","message":"These are implementation details and probably won\u0027t be too relevant when browsing the code through git only. This could be added as a comment in the CR but I don\u0027t think it\u0027s relevant here.","commit_id":"755910f74c7a0e69107312d16d0fd5d595b889cd"}],"barbican/common/config.py":[{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"dccaaacac8900908ed86bcf9f1f5a9434c759ac9","unresolved":false,"context_lines":[{"line_number":163,"context_line":"    conf.pydev_debug_port \u003d os.environ.get(\u0027PYDEV_DEBUG_PORT\u0027)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"def new_config():"},{"line_number":167,"context_line":"    conf \u003d cfg.ConfigOpts()"},{"line_number":168,"context_line":"    log.register_options(conf)"},{"line_number":169,"context_line":"    conf.register_opts(context_opts)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_29cf8580","line":166,"updated":"2015-12-01 21:44:58.000000000","message":"Saw your comment below, what if you said here:\nconf \u003d cfg.CONF\n?","commit_id":"755910f74c7a0e69107312d16d0fd5d595b889cd"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"24572f0d3c271c97a407f482fe3d3975cd7e73d9","unresolved":false,"context_lines":[{"line_number":163,"context_line":"    conf.pydev_debug_port \u003d os.environ.get(\u0027PYDEV_DEBUG_PORT\u0027)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"def new_config():"},{"line_number":167,"context_line":"    conf \u003d cfg.ConfigOpts()"},{"line_number":168,"context_line":"    log.register_options(conf)"},{"line_number":169,"context_line":"    conf.register_opts(context_opts)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_69126d64","line":166,"in_reply_to":"9a8ffd7b_29cf8580","updated":"2015-12-01 22:59:15.000000000","message":"I looked into liberty change https://review.openstack.org/#/c/187297/3/barbican/common/config.py,cm (Line 28) where there was refactoring done around similar line mentioned above.\n\nAs discussed in chat, will make this change,","commit_id":"755910f74c7a0e69107312d16d0fd5d595b889cd"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"cddccb077603f75b044da2d5bc7b2a2b06c4c6f9","unresolved":false,"context_lines":[{"line_number":163,"context_line":"    conf.pydev_debug_port \u003d os.environ.get(\u0027PYDEV_DEBUG_PORT\u0027)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"def new_config():"},{"line_number":167,"context_line":"    conf \u003d cfg.ConfigOpts()"},{"line_number":168,"context_line":"    log.register_options(conf)"},{"line_number":169,"context_line":"    conf.register_opts(context_opts)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_c029e38a","line":166,"in_reply_to":"9a8ffd7b_69126d64","updated":"2015-12-02 02:18:31.000000000","message":"Okay. I tried using conf \u003d cfg.CONF approach and it gave following error.\n\n  File \"/home/arun/.virtualenvs/barbican/lib/python2.7/site-packages/paste/deploy/loadwsgi.py\", line 450, in get_context\n    global_additions\u003dglobal_additions)\n  File \"/home/arun/.virtualenvs/barbican/lib/python2.7/site-packages/paste/deploy/loadwsgi.py\", line 559, in _pipeline_app_context\n    APP, pipeline[-1], global_conf)\n  File \"/home/arun/.virtualenvs/barbican/lib/python2.7/site-packages/paste/deploy/loadwsgi.py\", line 458, in get_context\n    section)\n  File \"/home/arun/.virtualenvs/barbican/lib/python2.7/site-packages/paste/deploy/loadwsgi.py\", line 517, in _context_from_explicit\n    value \u003d import_string(found_expr)\n  File \"/home/arun/.virtualenvs/barbican/lib/python2.7/site-packages/paste/deploy/loadwsgi.py\", line 22, in import_string\n    return pkg_resources.EntryPoint.parse(\"x\u003d\" + s).load(False)\n  File \"/home/arun/.virtualenvs/barbican/lib/python2.7/site-packages/pkg_resources/__init__.py\", line 2355, in load\n    return self.resolve()\n  File \"/home/arun/.virtualenvs/barbican/lib/python2.7/site-packages/pkg_resources/__init__.py\", line 2361, in resolve\n    module \u003d __import__(self.module_name, fromlist\u003d[\u0027__name__\u0027], level\u003d0)\n  File \"/home/arun/myFolder/myWork/openstack/barbican/barbican/api/app.py\", line 31, in \u003cmodule\u003e\n    from barbican.api.controllers import versions\n  File \"/home/arun/myFolder/myWork/openstack/barbican/barbican/api/controllers/versions.py\", line 18, in \u003cmodule\u003e\n    from barbican.api.controllers import cas\n  File \"/home/arun/myFolder/myWork/openstack/barbican/barbican/api/controllers/cas.py\", line 22, in \u003cmodule\u003e\n    from barbican.common import quota\n  File \"/home/arun/myFolder/myWork/openstack/barbican/barbican/common/quota.py\", line 21, in \u003cmodule\u003e\n    from barbican.common import resources as res\n  File \"/home/arun/myFolder/myWork/openstack/barbican/barbican/common/resources.py\", line 20, in \u003cmodule\u003e\n    from barbican.model import models\n  File \"/home/arun/myFolder/myWork/openstack/barbican/barbican/model/models.py\", line 34, in \u003cmodule\u003e\n    from barbican.plugin.interface import secret_store\n  File \"/home/arun/myFolder/myWork/openstack/barbican/barbican/plugin/interface/secret_store.py\", line 31, in \u003cmodule\u003e\n    CONF \u003d config.new_config()\n  File \"/home/arun/myFolder/myWork/openstack/barbican/barbican/common/config.py\", line 169, in new_config\n    log.register_options(conf)\n  File \"/home/arun/.virtualenvs/barbican/lib/python2.7/site-packages/oslo_log/log.py\", line 235, in register_options\n    conf.register_cli_opts(_options.common_cli_opts)\n  File \"/home/arun/.virtualenvs/barbican/lib/python2.7/site-packages/oslo_config/cfg.py\", line 1906, in __inner\n    result \u003d f(self, *args, **kwargs)\n  File \"/home/arun/.virtualenvs/barbican/lib/python2.7/site-packages/oslo_config/cfg.py\", line 2088, in register_cli_opts\n    self.register_cli_opt(opt, group, clear_cache\u003dFalse)\n  File \"/home/arun/.virtualenvs/barbican/lib/python2.7/site-packages/oslo_config/cfg.py\", line 1910, in __inner\n    return f(self, *args, **kwargs)\n  File \"/home/arun/.virtualenvs/barbican/lib/python2.7/site-packages/oslo_config/cfg.py\", line 2080, in register_cli_opt\n    raise ArgsAlreadyParsedError(\"cannot register CLI option\")\noslo_config.cfg.ArgsAlreadyParsedError: arguments already parsed: cannot register CLI option","commit_id":"755910f74c7a0e69107312d16d0fd5d595b889cd"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"bae173427009d066e604c46be88571f65f00ba2f","unresolved":false,"context_lines":[{"line_number":163,"context_line":"    conf.pydev_debug_port \u003d os.environ.get(\u0027PYDEV_DEBUG_PORT\u0027)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"def new_config():"},{"line_number":167,"context_line":"    conf \u003d cfg.ConfigOpts()"},{"line_number":168,"context_line":"    log.register_options(conf)"},{"line_number":169,"context_line":"    conf.register_opts(context_opts)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_e090a797","line":166,"in_reply_to":"9a8ffd7b_c029e38a","updated":"2015-12-02 02:23:25.000000000","message":"To addres above issue, will need to move log config registration to module scope.\n\nRegistering option multiple times does not create issue or raise DuplicateOptError as long as different Opt is not registered with same name (naming conflict error). \n\nhttps://github.com/openstack/oslo.config/blob/master/oslo_config/cfg.py#L585","commit_id":"755910f74c7a0e69107312d16d0fd5d595b889cd"},{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"d1cdb8daf64e6afc557fd2fb38ea186e2fcb4479","unresolved":false,"context_lines":[{"line_number":216,"context_line":"parse_args(CONF)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"# Make oslo config CONF handle same as barbican one"},{"line_number":219,"context_line":"cfg.CONF \u003d CONF"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_667cdc72","line":219,"updated":"2015-12-01 21:19:02.000000000","message":"I can see how this will work if you\u0027re only using Barbican, but what if you have other projects that also use cfg.CONF that are being deployed at the same time?  Does it mess up the other project\u0027s configurations?","commit_id":"755910f74c7a0e69107312d16d0fd5d595b889cd"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"1548c600681c5ae066d861ee3a0fca00b5fa7f70","unresolved":false,"context_lines":[{"line_number":216,"context_line":"parse_args(CONF)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"# Make oslo config CONF handle same as barbican one"},{"line_number":219,"context_line":"cfg.CONF \u003d CONF"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_66d13ccd","line":219,"in_reply_to":"9a8ffd7b_667cdc72","updated":"2015-12-01 21:32:26.000000000","message":"This module variable scope is limited to barbican python interpreter only (barbican process) and its done at barbican initialization time when it starts. \n\nAs reported in bug, the CONF variable above and cfg.CONF are different and creates issue when other components are referencing it.","commit_id":"755910f74c7a0e69107312d16d0fd5d595b889cd"}],"barbican/tests/common/test_utils.py":[{"author":{"_account_id":16046,"name":"Fernando Diaz","email":"diazjf@us.ibm.com","username":"diazjf"},"change_message_id":"d61dd4942e9a1512aace24d2fbd3197cce960c0b","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        barbican.common.config.CONF."},{"line_number":141,"context_line":"        \"\"\""},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        import oslo_config"},{"line_number":144,"context_line":"        # Currently there i"},{"line_number":145,"context_line":"        instance \u003d test_utils.LocalizedConfigLoading(override_oslo_copy\u003dFalse)"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_4ae9e419","line":143,"updated":"2015-11-24 17:29:56.000000000","message":"Can you put this input at the top of the file, I know its only used here, but it seems cleaner to include at top since I have not seen this being done anywhere else.","commit_id":"886890498c481db9d66c5be5e0a1a00e889a9d54"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"149c916ab303c3d14055c3234258ac9e34067e3d","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        barbican.common.config.CONF."},{"line_number":141,"context_line":"        \"\"\""},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        import oslo_config"},{"line_number":144,"context_line":"        # Currently there i"},{"line_number":145,"context_line":"        instance \u003d test_utils.LocalizedConfigLoading(override_oslo_copy\u003dFalse)"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_39187884","line":143,"in_reply_to":"9a8ffd7b_4ae9e419","updated":"2015-11-24 18:49:17.000000000","message":"Its done this way as need to limit the loading (scope) of module as its used here only.\n\nIn next patch, I will make some changes as so far the code is for simulating the related bug only.","commit_id":"886890498c481db9d66c5be5e0a1a00e889a9d54"},{"author":{"_account_id":16046,"name":"Fernando Diaz","email":"diazjf@us.ibm.com","username":"diazjf"},"change_message_id":"d61dd4942e9a1512aace24d2fbd3197cce960c0b","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        \"\"\""},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        import oslo_config"},{"line_number":144,"context_line":"        # Currently there i"},{"line_number":145,"context_line":"        instance \u003d test_utils.LocalizedConfigLoading(override_oslo_copy\u003dFalse)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        # look for \u0027admin_role\u0027 value from barbican_config"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_6aa068f5","line":144,"updated":"2015-11-24 17:29:56.000000000","message":"Not sure what this means.","commit_id":"886890498c481db9d66c5be5e0a1a00e889a9d54"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"149c916ab303c3d14055c3234258ac9e34067e3d","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        \"\"\""},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        import oslo_config"},{"line_number":144,"context_line":"        # Currently there i"},{"line_number":145,"context_line":"        instance \u003d test_utils.LocalizedConfigLoading(override_oslo_copy\u003dFalse)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        # look for \u0027admin_role\u0027 value from barbican_config"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_f9fd106f","line":144,"in_reply_to":"9a8ffd7b_6aa068f5","updated":"2015-11-24 18:49:17.000000000","message":"I don\u0027t know as well :-)\n\nWill remove it.","commit_id":"886890498c481db9d66c5be5e0a1a00e889a9d54"},{"author":{"_account_id":16046,"name":"Fernando Diaz","email":"diazjf@us.ibm.com","username":"diazjf"},"change_message_id":"d61dd4942e9a1512aace24d2fbd3197cce960c0b","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        # barbican.common.config.CONF is same as oslo_config.cfg.CONF"},{"line_number":181,"context_line":"        self.assertEqual(\u0027admin\u0027, instance.barbican_config._get(\u0027admin_role\u0027))"},{"line_number":182,"context_line":"        self.assertEqual(\u0027admin\u0027, instance.barbican_config.admin_role)"},{"line_number":183,"context_line":"        self.assertEqual(\u0027barbican\u0027, instance.barbican_config.project)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        self.assertEqual(\u0027admin\u0027, instance.oslo_config._get(\u0027admin_role\u0027))"},{"line_number":186,"context_line":"        self.assertEqual(\u0027admin\u0027, instance.oslo_config.admin_role)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_8afcac3f","line":183,"updated":"2015-11-24 17:29:56.000000000","message":"remove this, it\u0027s already being checked in line 190","commit_id":"886890498c481db9d66c5be5e0a1a00e889a9d54"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"149c916ab303c3d14055c3234258ac9e34067e3d","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        # barbican.common.config.CONF is same as oslo_config.cfg.CONF"},{"line_number":181,"context_line":"        self.assertEqual(\u0027admin\u0027, instance.barbican_config._get(\u0027admin_role\u0027))"},{"line_number":182,"context_line":"        self.assertEqual(\u0027admin\u0027, instance.barbican_config.admin_role)"},{"line_number":183,"context_line":"        self.assertEqual(\u0027barbican\u0027, instance.barbican_config.project)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        self.assertEqual(\u0027admin\u0027, instance.oslo_config._get(\u0027admin_role\u0027))"},{"line_number":186,"context_line":"        self.assertEqual(\u0027admin\u0027, instance.oslo_config.admin_role)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_7434c7dd","line":183,"in_reply_to":"9a8ffd7b_8afcac3f","updated":"2015-11-24 18:49:17.000000000","message":"Will remove in next patch.","commit_id":"886890498c481db9d66c5be5e0a1a00e889a9d54"},{"author":{"_account_id":16046,"name":"Fernando Diaz","email":"diazjf@us.ibm.com","username":"diazjf"},"change_message_id":"d61dd4942e9a1512aace24d2fbd3197cce960c0b","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        self.assertEqual(\u0027admin\u0027, instance.oslo_config._get(\u0027admin_role\u0027))"},{"line_number":186,"context_line":"        self.assertEqual(\u0027admin\u0027, instance.oslo_config.admin_role)"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        # No error in getting \u0027project\u0027 value form both config reading"},{"line_number":189,"context_line":"        # mechanism"},{"line_number":190,"context_line":"        self.assertEqual(\u0027barbican\u0027, instance.barbican_config.project)"},{"line_number":191,"context_line":"        self.assertEqual(\u0027barbican\u0027, instance.oslo_config.project)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_8ac4ac40","line":188,"updated":"2015-11-24 17:29:56.000000000","message":"from both","commit_id":"886890498c481db9d66c5be5e0a1a00e889a9d54"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"149c916ab303c3d14055c3234258ac9e34067e3d","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        self.assertEqual(\u0027admin\u0027, instance.oslo_config._get(\u0027admin_role\u0027))"},{"line_number":186,"context_line":"        self.assertEqual(\u0027admin\u0027, instance.oslo_config.admin_role)"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        # No error in getting \u0027project\u0027 value form both config reading"},{"line_number":189,"context_line":"        # mechanism"},{"line_number":190,"context_line":"        self.assertEqual(\u0027barbican\u0027, instance.barbican_config.project)"},{"line_number":191,"context_line":"        self.assertEqual(\u0027barbican\u0027, instance.oslo_config.project)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_f46d17cd","line":188,"in_reply_to":"9a8ffd7b_8ac4ac40","updated":"2015-11-24 18:49:17.000000000","message":"will correct it","commit_id":"886890498c481db9d66c5be5e0a1a00e889a9d54"},{"author":{"_account_id":16046,"name":"Fernando Diaz","email":"diazjf@us.ibm.com","username":"diazjf"},"change_message_id":"605de0ed52b7b77ad90a5e332ad74d396373813a","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# limitations under the License."},{"line_number":15,"context_line":"import mock"},{"line_number":16,"context_line":"import six"},{"line_number":17,"context_line":"from oslo_config import cfg"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from barbican.common import config"},{"line_number":20,"context_line":"from barbican.common import utils"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_549e5e57","line":17,"updated":"2015-11-24 20:31:55.000000000","message":"Fix ordering.","commit_id":"43224ab7ba3712f9981b89c5af26cc2da35f77da"},{"author":{"_account_id":16046,"name":"Fernando Diaz","email":"diazjf@us.ibm.com","username":"diazjf"},"change_message_id":"605de0ed52b7b77ad90a5e332ad74d396373813a","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        self.oslo_config \u003d cfg.CONF"},{"line_number":140,"context_line":"        test_utils.BaseTestCase.setUp(self)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def test_barbican_conf_values_made_visible_to_oslo_conf(self):"},{"line_number":143,"context_line":"        \"\"\"In this, checking oslo CONF values are same as barbican config"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        This tests shows that after the change values referenced via"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_14f6968f","line":142,"updated":"2015-11-24 20:31:55.000000000","message":"Looks good!","commit_id":"43224ab7ba3712f9981b89c5af26cc2da35f77da"},{"author":{"_account_id":16046,"name":"Fernando Diaz","email":"diazjf@us.ibm.com","username":"diazjf"},"change_message_id":"7625d489ab6f48ae7b2aa14ba6387d60434e961d","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        self.assertEqual(\u0027admin\u0027, self.oslo_config._get(\u0027admin_role\u0027))"},{"line_number":156,"context_line":"        self.assertEqual(\u0027admin\u0027, self.oslo_config.admin_role)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        # No error in getting \u0027project\u0027 value form both config reading"},{"line_number":159,"context_line":"        # mechanism"},{"line_number":160,"context_line":"        self.assertEqual(\u0027barbican\u0027, self.barbican_config.project)"},{"line_number":161,"context_line":"        self.assertEqual(\u0027barbican\u0027, self.oslo_config.project)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_c5126762","line":158,"updated":"2015-11-25 16:40:04.000000000","message":"from instead of form","commit_id":"755910f74c7a0e69107312d16d0fd5d595b889cd"}],"barbican/tests/utils.py":[{"author":{"_account_id":16046,"name":"Fernando Diaz","email":"diazjf@us.ibm.com","username":"diazjf"},"change_message_id":"d61dd4942e9a1512aace24d2fbd3197cce960c0b","unresolved":false,"context_lines":[{"line_number":485,"context_line":"class LocalizedConfigLoading(object):"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"    def __init__(self, override_oslo_copy\u003dFalse):"},{"line_number":488,"context_line":"        from barbican.common import config"},{"line_number":489,"context_line":"        from oslo_config import cfg"},{"line_number":490,"context_line":"        self.barbican_config \u003d config.CONF"},{"line_number":491,"context_line":"        if override_oslo_copy:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_4deede8c","line":488,"updated":"2015-11-24 17:29:56.000000000","message":"I know these imports are only used here, but wouldn\u0027t it still be cleaner to have them at the top of the file?","commit_id":"886890498c481db9d66c5be5e0a1a00e889a9d54"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"149c916ab303c3d14055c3234258ac9e34067e3d","unresolved":false,"context_lines":[{"line_number":485,"context_line":"class LocalizedConfigLoading(object):"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"    def __init__(self, override_oslo_copy\u003dFalse):"},{"line_number":488,"context_line":"        from barbican.common import config"},{"line_number":489,"context_line":"        from oslo_config import cfg"},{"line_number":490,"context_line":"        self.barbican_config \u003d config.CONF"},{"line_number":491,"context_line":"        if override_oslo_copy:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_74fcc73e","line":488,"in_reply_to":"9a8ffd7b_4deede8c","updated":"2015-11-24 18:49:17.000000000","message":"This is done to limit the loading/scope of config module. If loaded in global scope, then barbican_config and oslo_config values will be confusing because of order the   LocalizedConfigLoading class instance is created.","commit_id":"886890498c481db9d66c5be5e0a1a00e889a9d54"}]}
