)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"96059d6215362b08f86846c6a05a568d23b43168","unresolved":false,"context_lines":[{"line_number":20,"context_line":"cinder/opts.py file.  The list_opts function there then surfaces all the"},{"line_number":21,"context_line":"configuration options to be put in the /etc/cinder/cinder.conf.sample"},{"line_number":22,"context_line":"file.  This approach is consistent with what other projects with many"},{"line_number":23,"context_line":"configuration options (nova and neutron) are planning to do."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"This commit also adds a new hacking rule that processes all"},{"line_number":26,"context_line":"CONF.register_opt()/CONF.register_opts() calls to ensure that the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"1a6ced46_1dbb39e6","line":23,"updated":"2015-03-24 12:46:49.000000000","message":"as an oslo liaison for neutron, I need to admit I haven\u0027t heard about any plans or decision to do anything with that in neutron. We don\u0027t use oslo configuration generator at all, so in our case it will be not a switch to a new implementation, but an adoption.","commit_id":"e1e1bcec03582d0f400ddd0c41b3a0d682b1d630"}],"cinder/hacking/checks.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"bb8ca54ad2430e7ab2bdda14f8b19a40c1147231","unresolved":false,"context_lines":[{"line_number":214,"context_line":"                       {\u0027option\u0027: option})"},{"line_number":215,"context_line":"                yield(0, msg)"},{"line_number":216,"context_line":"            elif imported not in CONFIG_IMPORT_LIST:"},{"line_number":217,"context_line":"                print(\"JSBRYANT: filename is: \", filename)"},{"line_number":218,"context_line":"                msg \u003d (\"C302: Config options defined in this file \""},{"line_number":219,"context_line":"                       \"but the module could not be found in \""},{"line_number":220,"context_line":"                       \"cinder/opts.py\")"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_eedac4e7","line":217,"updated":"2015-03-19 20:23:34.000000000","message":"really want JSBRYANT here?","commit_id":"09ec2c286b74d2de3bdc523a356fd396e48d9a5b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"f4d0cb705b6b4582402339ca1340cfc8c0926b89","unresolved":false,"context_lines":[{"line_number":214,"context_line":"                       {\u0027option\u0027: option})"},{"line_number":215,"context_line":"                yield(0, msg)"},{"line_number":216,"context_line":"            elif imported not in CONFIG_IMPORT_LIST:"},{"line_number":217,"context_line":"                print(\"JSBRYANT: filename is: \", filename)"},{"line_number":218,"context_line":"                msg \u003d (\"C302: Config options defined in this file \""},{"line_number":219,"context_line":"                       \"but the module could not be found in \""},{"line_number":220,"context_line":"                       \"cinder/opts.py\")"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_f1e62515","line":217,"in_reply_to":"9a80dd14_eedac4e7","updated":"2015-03-19 20:38:37.000000000","message":"No.  I thought I had removed this.  Thanks for catching!","commit_id":"09ec2c286b74d2de3bdc523a356fd396e48d9a5b"}],"cinder/opts.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"f10361b9bafa56220bc948e4b4add4b014a65235","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"# Option lists that cannot be extracted from other files"},{"line_number":124,"context_line":"# (I.E. lists that are dynamically generated) should be manually"},{"line_number":125,"context_line":"# defined here."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"base_san_opts \u003d ["},{"line_number":128,"context_line":"    cfg.StrOpt(\u0027fc_fabric_names\u0027, default\u003dNone,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a80dd14_646ecc65","line":125,"updated":"2015-03-20 18:31:08.000000000","message":"I think I would address this by putting a function in the driver that provides these options. That way this central place just has to know the driver will give it back values, and it doesn\u0027t have to know the details of the driver. I suggest having that function mirror the API of list_opts() so you can just include its output directly in the return value of the list_opts() here.","commit_id":"e1e1bcec03582d0f400ddd0c41b3a0d682b1d630"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"f10361b9bafa56220bc948e4b4add4b014a65235","unresolved":false,"context_lines":[{"line_number":178,"context_line":"    the file has been considered for inclusion but does not have"},{"line_number":179,"context_line":"    new configuration options to register."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    :returns: a list of (group_name, opts) tuples"},{"line_number":182,"context_line":"    \"\"\""},{"line_number":183,"context_line":"    return[(\u0027DEFAULT\u0027,"},{"line_number":184,"context_line":"            copy.deepcopy(api_common.api_common_opts) +"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a80dd14_e4e71ce1","line":181,"updated":"2015-03-20 18:31:08.000000000","message":"I don\u0027t think all of the expected groups are included here. It looks like everything is thrown into the single DEFAULT group, which means the output won\u0027t produce a correct file.","commit_id":"e1e1bcec03582d0f400ddd0c41b3a0d682b1d630"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"f10361b9bafa56220bc948e4b4add4b014a65235","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    :returns: a list of (group_name, opts) tuples"},{"line_number":182,"context_line":"    \"\"\""},{"line_number":183,"context_line":"    return[(\u0027DEFAULT\u0027,"},{"line_number":184,"context_line":"            copy.deepcopy(api_common.api_common_opts) +"},{"line_number":185,"context_line":"            copy.deepcopy(versions.versions_opts) +"},{"line_number":186,"context_line":"            [auth.use_forwarded_for_opt] +"},{"line_number":187,"context_line":"            [sizelimit.max_request_body_size_opt] +"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a80dd14_64a5ec9d","line":184,"updated":"2015-03-20 18:31:08.000000000","message":"The deepcopy() really isn\u0027t necessary, but if you want to be safe you could just call it once on the return value instead of on each list you add to the response.","commit_id":"e1e1bcec03582d0f400ddd0c41b3a0d682b1d630"}],"cinder/tests/test_hacking.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"d5af90d5c81c4c006962671d96c73e2fb9ed2c12","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        self.assertEqual(0, len(list(checks.validate_log_translations("},{"line_number":201,"context_line":"            \"LOG.exception(_LE(\u0027foo\u0027)\", \"foo.py\"))))"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def test_cofig_registration_in_opts(self):"},{"line_number":204,"context_line":"        # Successfully registered list:"},{"line_number":205,"context_line":"        self.assertEqual(0, len(list(checks.check_config_registration_in_opts("},{"line_number":206,"context_line":"            \"CONF.register_opts(ssh_opts)\", \"./cinder/ssh_utils.py\"))))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6ced46_eb8f3c28","line":203,"updated":"2015-03-26 09:44:17.000000000","message":"s/cofig/config","commit_id":"e1e1bcec03582d0f400ddd0c41b3a0d682b1d630"}]}
