)]}'
{"cloudkitty/common/policies/info.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"f1fa71e6c353dbcc9682bf6ad3cfd4f4b3aafc1b","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from oslo_policy import policy"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"info_policies \u003d ["},{"line_number":19,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":20,"context_line":"        name\u003d\u0027info:list_services_info\u0027,"},{"line_number":21,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":22,"context_line":"        description\u003d\u0027List available services information in Cloudkitty.\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_022ddba6","line":19,"range":{"start_line":19,"start_character":11,"end_line":19,"end_character":32},"updated":"2017-10-02 14:21:48.000000000","message":"++ thanks for using DocumentedRuleDefault!","commit_id":"9f2cf57e73e4d4448a41684ca02f4bc36039803f"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"f1fa71e6c353dbcc9682bf6ad3cfd4f4b3aafc1b","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":22,"context_line":"        description\u003d\u0027List available services information in Cloudkitty.\u0027,"},{"line_number":23,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v1/info/services\u0027,"},{"line_number":24,"context_line":"                     \u0027method\u0027: \u0027LIST\u0027}]),"},{"line_number":25,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":26,"context_line":"        name\u003d\u0027info:get_service_info\u0027,"},{"line_number":27,"context_line":"        check_str\u003d\u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_6215af48","line":24,"range":{"start_line":24,"start_character":32,"end_line":24,"end_character":36},"updated":"2017-10-02 14:21:48.000000000","message":"This isn\u0027t enforced by oslo.policy, but we originally intended this to be the HTTP request method (e.g. GET, PUT, POST, PATCH, DELETE).","commit_id":"9f2cf57e73e4d4448a41684ca02f4bc36039803f"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"0ac0335ecff4ea1e3a8018335e3023f86b7876f8","unresolved":false,"context_lines":[{"line_number":18,"context_line":"info_policies \u003d ["},{"line_number":19,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":20,"context_line":"        name\u003d\u0027info:list_services_info\u0027,"},{"line_number":21,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":22,"context_line":"        description\u003d\u0027List available services information in Cloudkitty.\u0027,"},{"line_number":23,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v1/info/services\u0027,"},{"line_number":24,"context_line":"                     \u0027method\u0027: \u0027LIST\u0027}]),"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_ee3f05d4","line":21,"range":{"start_line":21,"start_character":17,"end_line":21,"end_character":21},"updated":"2017-10-19 18:20:43.000000000","message":"This could be pulled into a common policy and used consistently across all policies. For example, we could do the following in base.py:\n\n  UNPROTECTED \u003d \u0027\u0027\n\nand then here we could use:\n\n  policy.DocumentedRuleDefault(\n      name\u003d\u0027info:list_services_info\u0027,\n      check_str\u003dbase.UNPROTECTED,\n      ...\n  )\n\nThat way \u0027\u0027 has a useful and reusable name.","commit_id":"55426bc311add4374650fe46813ffbafeb4b58bf"},{"author":{"_account_id":21797,"name":"Jeremy Liu","display_name":"Jeremy Liu","email":"liujiong.cc@gmail.com","username":"liujiong"},"change_message_id":"7d330eb34bdf58b4802809eed5090b288cf6b950","unresolved":false,"context_lines":[{"line_number":18,"context_line":"info_policies \u003d ["},{"line_number":19,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":20,"context_line":"        name\u003d\u0027info:list_services_info\u0027,"},{"line_number":21,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":22,"context_line":"        description\u003d\u0027List available services information in Cloudkitty.\u0027,"},{"line_number":23,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v1/info/services\u0027,"},{"line_number":24,"context_line":"                     \u0027method\u0027: \u0027LIST\u0027}]),"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_d0717be2","line":21,"range":{"start_line":21,"start_character":17,"end_line":21,"end_character":21},"in_reply_to":"3f4b6375_ee3f05d4","updated":"2017-10-20 02:03:29.000000000","message":"Done","commit_id":"55426bc311add4374650fe46813ffbafeb4b58bf"}],"cloudkitty/common/policy.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"811c9b11c1d2311342b23a20f82e2eb033b23fdd","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    if not _ENFORCER:"},{"line_number":61,"context_line":"        _ENFORCER \u003d policy.Enforcer(CONF)"},{"line_number":62,"context_line":"        register_rules(_ENFORCER)"},{"line_number":63,"context_line":"        _ENFORCER.load_rules()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    # Only the rules which are loaded from file may be changed."},{"line_number":66,"context_line":"    current_file_rules \u003d _ENFORCER.file_rules"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_ee602535","line":63,"range":{"start_line":63,"start_character":8,"end_line":63,"end_character":30},"updated":"2017-10-19 18:17:41.000000000","message":"I believe these get loaded when the ``enforce()`` method is invoked.","commit_id":"55426bc311add4374650fe46813ffbafeb4b58bf"},{"author":{"_account_id":21797,"name":"Jeremy Liu","display_name":"Jeremy Liu","email":"liujiong.cc@gmail.com","username":"liujiong"},"change_message_id":"7d330eb34bdf58b4802809eed5090b288cf6b950","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    if not _ENFORCER:"},{"line_number":61,"context_line":"        _ENFORCER \u003d policy.Enforcer(CONF)"},{"line_number":62,"context_line":"        register_rules(_ENFORCER)"},{"line_number":63,"context_line":"        _ENFORCER.load_rules()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    # Only the rules which are loaded from file may be changed."},{"line_number":66,"context_line":"    current_file_rules \u003d _ENFORCER.file_rules"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_50c22b35","line":63,"range":{"start_line":63,"start_character":8,"end_line":63,"end_character":30},"in_reply_to":"3f4b6375_ee602535","updated":"2017-10-20 02:03:29.000000000","message":"I can remove this if you insist.","commit_id":"55426bc311add4374650fe46813ffbafeb4b58bf"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"811c9b11c1d2311342b23a20f82e2eb033b23fdd","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    enforcer.register_defaults(policies.list_rules())"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"def get_enforcer():"},{"line_number":133,"context_line":"    # This method is for use by oslopolicy CLI scripts. Those scripts need the"},{"line_number":134,"context_line":"    # \u0027output-file\u0027 and \u0027namespace\u0027 options, but having those in sys.argv means"},{"line_number":135,"context_line":"    # loading the Cloudkitty config options will fail as those are not expected"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_2eccfd33","line":132,"range":{"start_line":132,"start_character":4,"end_line":132,"end_character":16},"updated":"2017-10-19 18:17:41.000000000","message":"Why not just use oslopolicy directly?","commit_id":"55426bc311add4374650fe46813ffbafeb4b58bf"},{"author":{"_account_id":21797,"name":"Jeremy Liu","display_name":"Jeremy Liu","email":"liujiong.cc@gmail.com","username":"liujiong"},"change_message_id":"7d330eb34bdf58b4802809eed5090b288cf6b950","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    enforcer.register_defaults(policies.list_rules())"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"def get_enforcer():"},{"line_number":133,"context_line":"    # This method is for use by oslopolicy CLI scripts. Those scripts need the"},{"line_number":134,"context_line":"    # \u0027output-file\u0027 and \u0027namespace\u0027 options, but having those in sys.argv means"},{"line_number":135,"context_line":"    # loading the Cloudkitty config options will fail as those are not expected"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f4b6375_30632f1d","line":132,"range":{"start_line":132,"start_character":4,"end_line":132,"end_character":16},"in_reply_to":"3f4b6375_2eccfd33","updated":"2017-10-20 02:03:29.000000000","message":"Hmm? Not sure what this means, everybody is using like this.","commit_id":"55426bc311add4374650fe46813ffbafeb4b58bf"}],"doc/source/configuration/policy.rst":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"811c9b11c1d2311342b23a20f82e2eb033b23fdd","unresolved":false,"context_lines":[{"line_number":5,"context_line":"Configuration"},{"line_number":6,"context_line":"~~~~~~~~~~~~~"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"The following is an overview of all available policies in Cloudkitty. For a sample"},{"line_number":9,"context_line":"configuration file."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":".. show-policy::"},{"line_number":12,"context_line":"      :config-file: ../../etc/oslo-policy-generator/cloudkitty.conf"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f4b6375_4ebe1966","line":9,"range":{"start_line":8,"start_character":70,"end_line":9,"end_character":18},"updated":"2017-10-19 18:17:41.000000000","message":"We could make this a link to the actual sample policy file like we did here - https://docs.openstack.org/keystone/latest/configuration/policy.html","commit_id":"55426bc311add4374650fe46813ffbafeb4b58bf"},{"author":{"_account_id":21797,"name":"Jeremy Liu","display_name":"Jeremy Liu","email":"liujiong.cc@gmail.com","username":"liujiong"},"change_message_id":"7d330eb34bdf58b4802809eed5090b288cf6b950","unresolved":false,"context_lines":[{"line_number":5,"context_line":"Configuration"},{"line_number":6,"context_line":"~~~~~~~~~~~~~"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"The following is an overview of all available policies in Cloudkitty. For a sample"},{"line_number":9,"context_line":"configuration file."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":".. show-policy::"},{"line_number":12,"context_line":"      :config-file: ../../etc/oslo-policy-generator/cloudkitty.conf"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f4b6375_f06c7709","line":9,"range":{"start_line":8,"start_character":70,"end_line":9,"end_character":18},"in_reply_to":"3f4b6375_4ebe1966","updated":"2017-10-20 02:03:29.000000000","message":"Done","commit_id":"55426bc311add4374650fe46813ffbafeb4b58bf"}],"setup.cfg":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"f1fa71e6c353dbcc9682bf6ad3cfd4f4b3aafc1b","unresolved":false,"context_lines":[{"line_number":32,"context_line":"wsgi_scripts \u003d"},{"line_number":33,"context_line":"    cloudkitty-api \u003d cloudkitty.api.app:build_wsgi_app"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"oslo.policy.enforcer \u003d"},{"line_number":36,"context_line":"    cloudkitty \u003d cloudkitty.common.policy:get_enforcer"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"oslo.policy.policies \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"7f515b1d_3d10fc4d","line":35,"range":{"start_line":35,"start_character":12,"end_line":35,"end_character":20},"updated":"2017-10-02 14:21:48.000000000","message":"Where does this get used?","commit_id":"9f2cf57e73e4d4448a41684ca02f4bc36039803f"},{"author":{"_account_id":21797,"name":"Jeremy Liu","display_name":"Jeremy Liu","email":"liujiong.cc@gmail.com","username":"liujiong"},"change_message_id":"9ec1faf32206fc0db88e27ca08347cc4ec8650da","unresolved":false,"context_lines":[{"line_number":32,"context_line":"wsgi_scripts \u003d"},{"line_number":33,"context_line":"    cloudkitty-api \u003d cloudkitty.api.app:build_wsgi_app"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"oslo.policy.enforcer \u003d"},{"line_number":36,"context_line":"    cloudkitty \u003d cloudkitty.common.policy:get_enforcer"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"oslo.policy.policies \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"7f515b1d_675d1a14","line":35,"range":{"start_line":35,"start_character":12,"end_line":35,"end_character":20},"in_reply_to":"7f515b1d_3d10fc4d","updated":"2017-10-09 03:26:18.000000000","message":"Currently, not used.","commit_id":"9f2cf57e73e4d4448a41684ca02f4bc36039803f"}]}
