)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"43b2dcd9ec1451ebcbeb692e1aebdc5b8c60d1b9","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add spec on implementing oslo.policy"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Presently, neither monasca-api nor monasca-log-api use oslo.policy. Instead,"},{"line_number":10,"context_line":"they contain their own policy enforcement code. Without oslo.policy they will"},{"line_number":11,"context_line":"not be able to implement the policy in code community goal for Queens, which"},{"line_number":12,"context_line":"requires the use of oslo mechanisms for defining and enforcing policy. This"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ff82abbf_f12536c3","line":9,"range":{"start_line":9,"start_character":72,"end_line":9,"end_character":76},"updated":"2017-11-27 09:02:42.000000000","message":"nits: keep it \u003c80 chars","commit_id":"08352c420a48b750fa263921987569646366cddb"}],"specs/queens/approved/implement-oslo-policy.rst":[{"author":{"_account_id":26733,"name":"Amir Mofakhar","email":"amir@mofakhar.info","username":"amofakhar"},"change_message_id":"39d55a124765527bbe9529b0864b5019de3915fe","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Presently, neither monasca-api nor monasca-log-api use `oslo.policy`. Instead,"},{"line_number":14,"context_line":"they contain their own policy enforcement code. Without `oslo.policy` they will"},{"line_number":15,"context_line":"not be able to implement the policy in code community goal for Queens[0], which"},{"line_number":16,"context_line":"requires the use of oslo mechanisms for defining and enforcing policy."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_2d6b6785","line":16,"updated":"2017-10-25 07:29:40.000000000","message":"and enforcing the policy.","commit_id":"77b89716760b611fb5415123e374381de64f41e4"},{"author":{"_account_id":12542,"name":"Johannes Grassler","email":"jgr-launchpad@btw23.de","username":"jgrassler"},"change_message_id":"14fd8bfc476ee04ba5eb211a2d41f051d767b5dd","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Presently, neither monasca-api nor monasca-log-api use `oslo.policy`. Instead,"},{"line_number":14,"context_line":"they contain their own policy enforcement code. Without `oslo.policy` they will"},{"line_number":15,"context_line":"not be able to implement the policy in code community goal for Queens[0], which"},{"line_number":16,"context_line":"requires the use of oslo mechanisms for defining and enforcing policy."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_4eaaab19","line":16,"in_reply_to":"3f4b6375_2d6b6785","updated":"2017-10-30 09:20:52.000000000","message":"Done","commit_id":"77b89716760b611fb5415123e374381de64f41e4"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"7e3a98ec17fd6a3b363e22e739b4c258f7176f9d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"   code."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"2) All default policy rules will be available in a standard format to all"},{"line_number":37,"context_line":"   interested parties, which fullfils the community goal"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"3) Operators will be able to override the Monasca API and Monasca Log API"},{"line_number":40,"context_line":"   default policies using `policy.json` files and run command line tools to"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_092c5800","line":37,"range":{"start_line":37,"start_character":52,"end_line":37,"end_character":56},"updated":"2017-10-23 14:24:04.000000000","message":"Period at the end of sentence missing.","commit_id":"77b89716760b611fb5415123e374381de64f41e4"},{"author":{"_account_id":12542,"name":"Johannes Grassler","email":"jgr-launchpad@btw23.de","username":"jgrassler"},"change_message_id":"14fd8bfc476ee04ba5eb211a2d41f051d767b5dd","unresolved":false,"context_lines":[{"line_number":34,"context_line":"   code."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"2) All default policy rules will be available in a standard format to all"},{"line_number":37,"context_line":"   interested parties, which fullfils the community goal"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"3) Operators will be able to override the Monasca API and Monasca Log API"},{"line_number":40,"context_line":"   default policies using `policy.json` files and run command line tools to"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_2ea76f52","line":37,"range":{"start_line":37,"start_character":52,"end_line":37,"end_character":56},"in_reply_to":"3f4b6375_092c5800","updated":"2017-10-30 09:20:52.000000000","message":"Done","commit_id":"77b89716760b611fb5415123e374381de64f41e4"},{"author":{"_account_id":26733,"name":"Amir Mofakhar","email":"amir@mofakhar.info","username":"amofakhar"},"change_message_id":"39d55a124765527bbe9529b0864b5019de3915fe","unresolved":false,"context_lines":[{"line_number":34,"context_line":"   code."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"2) All default policy rules will be available in a standard format to all"},{"line_number":37,"context_line":"   interested parties, which fullfils the community goal"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"3) Operators will be able to override the Monasca API and Monasca Log API"},{"line_number":40,"context_line":"   default policies using `policy.json` files and run command line tools to"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_cd34d395","line":37,"range":{"start_line":37,"start_character":52,"end_line":37,"end_character":56},"in_reply_to":"3f4b6375_092c5800","updated":"2017-10-25 07:29:40.000000000","message":"fullfils -\u003e fulfils","commit_id":"77b89716760b611fb5415123e374381de64f41e4"},{"author":{"_account_id":12542,"name":"Johannes Grassler","email":"jgr-launchpad@btw23.de","username":"jgrassler"},"change_message_id":"14fd8bfc476ee04ba5eb211a2d41f051d767b5dd","unresolved":false,"context_lines":[{"line_number":34,"context_line":"   code."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"2) All default policy rules will be available in a standard format to all"},{"line_number":37,"context_line":"   interested parties, which fullfils the community goal"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"3) Operators will be able to override the Monasca API and Monasca Log API"},{"line_number":40,"context_line":"   default policies using `policy.json` files and run command line tools to"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_ee66f729","line":37,"range":{"start_line":37,"start_character":52,"end_line":37,"end_character":56},"in_reply_to":"3f4b6375_cd34d395","updated":"2017-10-30 09:20:52.000000000","message":"Done","commit_id":"77b89716760b611fb5415123e374381de64f41e4"},{"author":{"_account_id":26733,"name":"Amir Mofakhar","email":"amir@mofakhar.info","username":"amofakhar"},"change_message_id":"39d55a124765527bbe9529b0864b5019de3915fe","unresolved":false,"context_lines":[{"line_number":56,"context_line":"   and monasca-log-api and exposes them to the enforcement engine. Nova\u0027s"},{"line_number":57,"context_line":"   approach of having a `list_rules()` method[2] should work just fine for us."},{"line_number":58,"context_line":"   We can either copy Nova\u0027s approach of aggregating individual endpoints\u0027"},{"line_number":59,"context_line":"   policies in a that central module[3] or just have them in there directly."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"3. Modify existing policy enforcement code in monasca-api and monasca-log-api"},{"line_number":62,"context_line":"   by code that uses the enforcement engine\u0027s `authorize()` method to both"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_6d96ff4e","line":59,"updated":"2017-10-25 07:29:40.000000000","message":"policies in that central module","commit_id":"77b89716760b611fb5415123e374381de64f41e4"},{"author":{"_account_id":12542,"name":"Johannes Grassler","email":"jgr-launchpad@btw23.de","username":"jgrassler"},"change_message_id":"14fd8bfc476ee04ba5eb211a2d41f051d767b5dd","unresolved":false,"context_lines":[{"line_number":56,"context_line":"   and monasca-log-api and exposes them to the enforcement engine. Nova\u0027s"},{"line_number":57,"context_line":"   approach of having a `list_rules()` method[2] should work just fine for us."},{"line_number":58,"context_line":"   We can either copy Nova\u0027s approach of aggregating individual endpoints\u0027"},{"line_number":59,"context_line":"   policies in a that central module[3] or just have them in there directly."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"3. Modify existing policy enforcement code in monasca-api and monasca-log-api"},{"line_number":62,"context_line":"   by code that uses the enforcement engine\u0027s `authorize()` method to both"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_ce6b3bef","line":59,"in_reply_to":"3f4b6375_6d96ff4e","updated":"2017-10-30 09:20:52.000000000","message":"Done","commit_id":"77b89716760b611fb5415123e374381de64f41e4"},{"author":{"_account_id":26733,"name":"Amir Mofakhar","email":"amir@mofakhar.info","username":"amofakhar"},"change_message_id":"74a7646a0f246c2f3b7289fedce1dbb7808c1824","unresolved":false,"context_lines":[{"line_number":59,"context_line":"   policies in a that central module[3] or just have them in there directly."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"3. Modify existing policy enforcement code in monasca-api and monasca-log-api"},{"line_number":62,"context_line":"   by code that uses the enforcement engine\u0027s `authorize()` method to both"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"4. Add monasca-api-policy and monasca-log-api-policy command line entry points"},{"line_number":65,"context_line":"   that allow the user to generate a policy.json file for both APIs."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_33e4e43b","line":62,"updated":"2017-10-25 08:40:42.000000000","message":"A dot at the end of the sentence is missed!","commit_id":"77b89716760b611fb5415123e374381de64f41e4"},{"author":{"_account_id":12542,"name":"Johannes Grassler","email":"jgr-launchpad@btw23.de","username":"jgrassler"},"change_message_id":"14fd8bfc476ee04ba5eb211a2d41f051d767b5dd","unresolved":false,"context_lines":[{"line_number":59,"context_line":"   policies in a that central module[3] or just have them in there directly."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"3. Modify existing policy enforcement code in monasca-api and monasca-log-api"},{"line_number":62,"context_line":"   by code that uses the enforcement engine\u0027s `authorize()` method to both"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"4. Add monasca-api-policy and monasca-log-api-policy command line entry points"},{"line_number":65,"context_line":"   that allow the user to generate a policy.json file for both APIs."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_ae70ffdd","line":62,"in_reply_to":"3f4b6375_33e4e43b","updated":"2017-10-30 09:20:52.000000000","message":"Done","commit_id":"77b89716760b611fb5415123e374381de64f41e4"},{"author":{"_account_id":26733,"name":"Amir Mofakhar","email":"amir@mofakhar.info","username":"amofakhar"},"change_message_id":"39d55a124765527bbe9529b0864b5019de3915fe","unresolved":false,"context_lines":[{"line_number":62,"context_line":"   by code that uses the enforcement engine\u0027s `authorize()` method to both"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"4. Add monasca-api-policy and monasca-log-api-policy command line entry points"},{"line_number":65,"context_line":"   that allow the user to generate a policy.json file for both APIs."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Alternatives"},{"line_number":68,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_ed8b0f1c","line":65,"updated":"2017-10-25 07:29:40.000000000","message":"that allows","commit_id":"77b89716760b611fb5415123e374381de64f41e4"},{"author":{"_account_id":12542,"name":"Johannes Grassler","email":"jgr-launchpad@btw23.de","username":"jgrassler"},"change_message_id":"14fd8bfc476ee04ba5eb211a2d41f051d767b5dd","unresolved":false,"context_lines":[{"line_number":62,"context_line":"   by code that uses the enforcement engine\u0027s `authorize()` method to both"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"4. Add monasca-api-policy and monasca-log-api-policy command line entry points"},{"line_number":65,"context_line":"   that allow the user to generate a policy.json file for both APIs."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Alternatives"},{"line_number":68,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_8e7543cf","line":65,"in_reply_to":"3f4b6375_ed8b0f1c","updated":"2017-10-30 09:20:52.000000000","message":"Done","commit_id":"77b89716760b611fb5415123e374381de64f41e4"},{"author":{"_account_id":26733,"name":"Amir Mofakhar","email":"amir@mofakhar.info","username":"amofakhar"},"change_message_id":"39d55a124765527bbe9529b0864b5019de3915fe","unresolved":false,"context_lines":[{"line_number":147,"context_line":"----------"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"1. Add policy enforcement module to `monasca-common`. It might be a good idea"},{"line_number":150,"context_line":"   to have a an extension mechanism for the policy\u0027s target analogous to this"},{"line_number":151,"context_line":"   one[1] in Magnum to account for the different role variables from the"},{"line_number":152,"context_line":"   configuration file needed by `monasca-api` and `monasca-log-api`,"},{"line_number":153,"context_line":"   respectively. That way a generic policy enforcer can be made flexible to the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_8d9b7b64","line":150,"updated":"2017-10-25 07:29:40.000000000","message":"to have an extension","commit_id":"77b89716760b611fb5415123e374381de64f41e4"},{"author":{"_account_id":12542,"name":"Johannes Grassler","email":"jgr-launchpad@btw23.de","username":"jgrassler"},"change_message_id":"14fd8bfc476ee04ba5eb211a2d41f051d767b5dd","unresolved":false,"context_lines":[{"line_number":147,"context_line":"----------"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"1. Add policy enforcement module to `monasca-common`. It might be a good idea"},{"line_number":150,"context_line":"   to have a an extension mechanism for the policy\u0027s target analogous to this"},{"line_number":151,"context_line":"   one[1] in Magnum to account for the different role variables from the"},{"line_number":152,"context_line":"   configuration file needed by `monasca-api` and `monasca-log-api`,"},{"line_number":153,"context_line":"   respectively. That way a generic policy enforcer can be made flexible to the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_6e7207e6","line":150,"in_reply_to":"3f4b6375_8d9b7b64","updated":"2017-10-30 09:20:52.000000000","message":"Done","commit_id":"77b89716760b611fb5415123e374381de64f41e4"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"7e3a98ec17fd6a3b363e22e739b4c258f7176f9d","unresolved":false,"context_lines":[{"line_number":194,"context_line":"References"},{"line_number":195,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"[0] https://governance.openstack.org/tc/goals/queens/policy-in-code.html"},{"line_number":198,"context_line":"[1] https://github.com/openstack/nova/blob/master/nova/policy.py"},{"line_number":199,"context_line":"[2] https://github.com/openstack/nova/blob/master/nova/policy.py#L207"},{"line_number":200,"context_line":"[3] https://github.com/openstack/nova/blob/master/nova/policies/__init__.py"},{"line_number":201,"context_line":"[2] https://github.com/openstack/magnum/blob/master/magnum/common/policy.py#L102"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"History"},{"line_number":204,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_097a18f0","line":201,"range":{"start_line":197,"start_character":0,"end_line":201,"end_character":80},"updated":"2017-10-23 14:24:04.000000000","message":"The lines are wrongly formatted in output.","commit_id":"77b89716760b611fb5415123e374381de64f41e4"},{"author":{"_account_id":12542,"name":"Johannes Grassler","email":"jgr-launchpad@btw23.de","username":"jgrassler"},"change_message_id":"14fd8bfc476ee04ba5eb211a2d41f051d767b5dd","unresolved":false,"context_lines":[{"line_number":194,"context_line":"References"},{"line_number":195,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"[0] https://governance.openstack.org/tc/goals/queens/policy-in-code.html"},{"line_number":198,"context_line":"[1] https://github.com/openstack/nova/blob/master/nova/policy.py"},{"line_number":199,"context_line":"[2] https://github.com/openstack/nova/blob/master/nova/policy.py#L207"},{"line_number":200,"context_line":"[3] https://github.com/openstack/nova/blob/master/nova/policies/__init__.py"},{"line_number":201,"context_line":"[2] https://github.com/openstack/magnum/blob/master/magnum/common/policy.py#L102"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"History"},{"line_number":204,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f4b6375_0e4b9387","line":201,"range":{"start_line":197,"start_character":0,"end_line":201,"end_character":80},"in_reply_to":"3f4b6375_097a18f0","updated":"2017-10-30 09:20:52.000000000","message":"Added empty lines now. That should do it...","commit_id":"77b89716760b611fb5415123e374381de64f41e4"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1205a1d5e9572b25b57b3da217361fb4f3198eab","unresolved":false,"context_lines":[{"line_number":39,"context_line":"3) Operators will be able to override the Monasca API and Monasca Log API"},{"line_number":40,"context_line":"   default policies using `policy.json` files and run command line tools to"},{"line_number":41,"context_line":"   generate a full `policy.json` for either service (e.g. for auditing"},{"line_number":42,"context_line":"   purposes)."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Proposed change"},{"line_number":45,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_5c966b95","line":42,"updated":"2017-11-27 19:29:44.000000000","message":"Another use case is the ability to use new tooling in oslo.policy that let\u0027s developers deprecate or change policy defaults in a way operators can consume [0].\n\n[0] https://github.com/openstack/oslo.policy/commit/d3ea093c18a2c9e83ae9dcb3a3f5f3deae213bf8","commit_id":"08352c420a48b750fa263921987569646366cddb"},{"author":{"_account_id":26733,"name":"Amir Mofakhar","email":"amir@mofakhar.info","username":"amofakhar"},"change_message_id":"333c81f95f9734c4f1fbd3aa305d8a9791f5e6dd","unresolved":false,"context_lines":[{"line_number":39,"context_line":"3) Operators will be able to override the Monasca API and Monasca Log API"},{"line_number":40,"context_line":"   default policies using `policy.json` files and run command line tools to"},{"line_number":41,"context_line":"   generate a full `policy.json` for either service (e.g. for auditing"},{"line_number":42,"context_line":"   purposes)."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Proposed change"},{"line_number":45,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_66b3ae4e","line":42,"in_reply_to":"ff82abbf_5c966b95","updated":"2018-03-13 13:38:57.000000000","message":"Done","commit_id":"08352c420a48b750fa263921987569646366cddb"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1205a1d5e9572b25b57b3da217361fb4f3198eab","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"2. Define a module that contains the default policy rules in both `monasca-api`"},{"line_number":56,"context_line":"   and `monasca-log-api` and exposes them to the enforcement engine (in"},{"line_number":57,"context_line":"   `monasca-events-api` there is such a module already). Nova\u0027s approach of"},{"line_number":58,"context_line":"   having a `list_rules()` method[2] should work just fine for us."},{"line_number":59,"context_line":"   We can either copy Nova\u0027s approach of aggregating individual endpoints\u0027"},{"line_number":60,"context_line":"   policies in that central module[3] or just have them in there directly."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_fce3bf32","line":58,"range":{"start_line":57,"start_character":57,"end_line":58,"end_character":25},"updated":"2017-11-27 19:29:44.000000000","message":"++ yep - this bit should be consistent across more projects than just nova.","commit_id":"08352c420a48b750fa263921987569646366cddb"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"c16642d9b9ec6284f2fcdae2c7a1e7e38e46f04d","unresolved":false,"context_lines":[{"line_number":64,"context_line":"   `monasca-common`."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"4. Add monasca-api-policy and monasca-log-api-policy command line entry points"},{"line_number":67,"context_line":"   that allows the user to generate a policy.json file for both APIs."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Alternatives"},{"line_number":70,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df87a7cf_5718fdd1","line":67,"range":{"start_line":67,"start_character":8,"end_line":67,"end_character":14},"updated":"2017-12-14 16:04:51.000000000","message":"allow","commit_id":"08352c420a48b750fa263921987569646366cddb"},{"author":{"_account_id":26733,"name":"Amir Mofakhar","email":"amir@mofakhar.info","username":"amofakhar"},"change_message_id":"333c81f95f9734c4f1fbd3aa305d8a9791f5e6dd","unresolved":false,"context_lines":[{"line_number":64,"context_line":"   `monasca-common`."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"4. Add monasca-api-policy and monasca-log-api-policy command line entry points"},{"line_number":67,"context_line":"   that allows the user to generate a policy.json file for both APIs."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Alternatives"},{"line_number":70,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_2654d6fe","line":67,"range":{"start_line":67,"start_character":8,"end_line":67,"end_character":14},"in_reply_to":"df87a7cf_5718fdd1","updated":"2018-03-13 13:38:57.000000000","message":"Done","commit_id":"08352c420a48b750fa263921987569646366cddb"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"c16642d9b9ec6284f2fcdae2c7a1e7e38e46f04d","unresolved":false,"context_lines":[{"line_number":99,"context_line":"* `agent_authorized_roles`, `default_authorized_roles`,"},{"line_number":100,"context_line":"  `delegate_authorized_roles` and `read_only_authorized_roles` for `monasca-api`"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* `default_roles`, `agent_roles`, for `monasca-log-api`"},{"line_number":103,"context_line":" "},{"line_number":104,"context_line":"The only difference is that a different implementation"},{"line_number":105,"context_line":"(`monasca.common.policy`) will use them now."}],"source_content_type":"text/x-rst","patch_set":3,"id":"df87a7cf_f7cfd126","line":102,"range":{"start_line":102,"start_character":32,"end_line":102,"end_character":33},"updated":"2017-12-14 16:04:51.000000000","message":"and `delegate_roles`","commit_id":"08352c420a48b750fa263921987569646366cddb"},{"author":{"_account_id":26733,"name":"Amir Mofakhar","email":"amir@mofakhar.info","username":"amofakhar"},"change_message_id":"333c81f95f9734c4f1fbd3aa305d8a9791f5e6dd","unresolved":false,"context_lines":[{"line_number":99,"context_line":"* `agent_authorized_roles`, `default_authorized_roles`,"},{"line_number":100,"context_line":"  `delegate_authorized_roles` and `read_only_authorized_roles` for `monasca-api`"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* `default_roles`, `agent_roles`, for `monasca-log-api`"},{"line_number":103,"context_line":" "},{"line_number":104,"context_line":"The only difference is that a different implementation"},{"line_number":105,"context_line":"(`monasca.common.policy`) will use them now."}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_a63a26c9","line":102,"range":{"start_line":102,"start_character":32,"end_line":102,"end_character":33},"in_reply_to":"df87a7cf_f7cfd126","updated":"2018-03-13 13:38:57.000000000","message":"Done","commit_id":"08352c420a48b750fa263921987569646366cddb"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"43b2dcd9ec1451ebcbeb692e1aebdc5b8c60d1b9","unresolved":false,"context_lines":[{"line_number":100,"context_line":"  `delegate_authorized_roles` and `read_only_authorized_roles` for `monasca-api`"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* `default_roles`, `agent_roles`, for `monasca-log-api`"},{"line_number":103,"context_line":" "},{"line_number":104,"context_line":"The only difference is that a different implementation"},{"line_number":105,"context_line":"(`monasca.common.policy`) will use them now."},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_b12b2e93","line":103,"range":{"start_line":103,"start_character":0,"end_line":103,"end_character":1},"updated":"2017-11-27 09:02:42.000000000","message":"nit: whitespace","commit_id":"08352c420a48b750fa263921987569646366cddb"},{"author":{"_account_id":26733,"name":"Amir Mofakhar","email":"amir@mofakhar.info","username":"amofakhar"},"change_message_id":"333c81f95f9734c4f1fbd3aa305d8a9791f5e6dd","unresolved":false,"context_lines":[{"line_number":100,"context_line":"  `delegate_authorized_roles` and `read_only_authorized_roles` for `monasca-api`"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* `default_roles`, `agent_roles`, for `monasca-log-api`"},{"line_number":103,"context_line":" "},{"line_number":104,"context_line":"The only difference is that a different implementation"},{"line_number":105,"context_line":"(`monasca.common.policy`) will use them now."},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_a611c654","line":103,"range":{"start_line":103,"start_character":0,"end_line":103,"end_character":1},"in_reply_to":"ff82abbf_b12b2e93","updated":"2018-03-13 13:38:57.000000000","message":"Done","commit_id":"08352c420a48b750fa263921987569646366cddb"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"c16642d9b9ec6284f2fcdae2c7a1e7e38e46f04d","unresolved":false,"context_lines":[{"line_number":102,"context_line":"* `default_roles`, `agent_roles`, for `monasca-log-api`"},{"line_number":103,"context_line":" "},{"line_number":104,"context_line":"The only difference is that a different implementation"},{"line_number":105,"context_line":"(`monasca.common.policy`) will use them now."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Additionally, the policy enforcer will allow operators to create a"},{"line_number":108,"context_line":"`policy.json` file for each API service that overrides the in-code defaults."}],"source_content_type":"text/x-rst","patch_set":3,"id":"df87a7cf_77fc213e","line":105,"range":{"start_line":105,"start_character":9,"end_line":105,"end_character":10},"updated":"2017-12-14 16:04:51.000000000","message":"_","commit_id":"08352c420a48b750fa263921987569646366cddb"},{"author":{"_account_id":26733,"name":"Amir Mofakhar","email":"amir@mofakhar.info","username":"amofakhar"},"change_message_id":"333c81f95f9734c4f1fbd3aa305d8a9791f5e6dd","unresolved":false,"context_lines":[{"line_number":102,"context_line":"* `default_roles`, `agent_roles`, for `monasca-log-api`"},{"line_number":103,"context_line":" "},{"line_number":104,"context_line":"The only difference is that a different implementation"},{"line_number":105,"context_line":"(`monasca.common.policy`) will use them now."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Additionally, the policy enforcer will allow operators to create a"},{"line_number":108,"context_line":"`policy.json` file for each API service that overrides the in-code defaults."}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_6b02970d","line":105,"range":{"start_line":105,"start_character":9,"end_line":105,"end_character":10},"in_reply_to":"df87a7cf_77fc213e","updated":"2018-03-13 13:38:57.000000000","message":"Done","commit_id":"08352c420a48b750fa263921987569646366cddb"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"c16642d9b9ec6284f2fcdae2c7a1e7e38e46f04d","unresolved":false,"context_lines":[{"line_number":143,"context_line":"-----------"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Primary assignee:"},{"line_number":146,"context_line":"  tbd"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Work Items"},{"line_number":149,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df87a7cf_777f41ab","line":146,"range":{"start_line":146,"start_character":2,"end_line":146,"end_character":5},"updated":"2017-12-14 16:04:51.000000000","message":"Amir Mofakhar? what\u0027s your IRC nickname?","commit_id":"08352c420a48b750fa263921987569646366cddb"},{"author":{"_account_id":26733,"name":"Amir Mofakhar","email":"amir@mofakhar.info","username":"amofakhar"},"change_message_id":"333c81f95f9734c4f1fbd3aa305d8a9791f5e6dd","unresolved":false,"context_lines":[{"line_number":143,"context_line":"-----------"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Primary assignee:"},{"line_number":146,"context_line":"  tbd"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Work Items"},{"line_number":149,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_cb3883ef","line":146,"range":{"start_line":146,"start_character":2,"end_line":146,"end_character":5},"in_reply_to":"df87a7cf_777f41ab","updated":"2018-03-13 13:38:57.000000000","message":"Done","commit_id":"08352c420a48b750fa263921987569646366cddb"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"5f12a5cf5f227118057e85ffb94f2ba36ab16053","unresolved":false,"context_lines":[{"line_number":162,"context_line":"2. Retire policy enforcement code in `monasca-events-api` in favour of the"},{"line_number":163,"context_line":"   policy enforcement module in `monasca-common`."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"2. Add policy registration code to `monasca-api`."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"3. Use policy enforcement module in `monasca_api.v2.reference.helpers.validate_authorization()`"},{"line_number":168,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df7087c5_f0de346b","line":165,"range":{"start_line":165,"start_character":0,"end_line":165,"end_character":2},"updated":"2018-03-16 13:37:49.000000000","message":"nit: use # for enumeration [1].\n\n[1] https://docs.openstack.org/doc-contrib-guide/rst-conv/lists.html#enumerated-lists","commit_id":"e63f02db36b1155cefe39e1914e2a9561bbf5f05"},{"author":{"_account_id":26733,"name":"Amir Mofakhar","email":"amir@mofakhar.info","username":"amofakhar"},"change_message_id":"430c8d7db2eb80111166b4978c28549812c9d328","unresolved":false,"context_lines":[{"line_number":162,"context_line":"2. Retire policy enforcement code in `monasca-events-api` in favour of the"},{"line_number":163,"context_line":"   policy enforcement module in `monasca-common`."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"2. Add policy registration code to `monasca-api`."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"3. Use policy enforcement module in `monasca_api.v2.reference.helpers.validate_authorization()`"},{"line_number":168,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df7087c5_90e557df","line":165,"range":{"start_line":165,"start_character":0,"end_line":165,"end_character":2},"in_reply_to":"df7087c5_f0de346b","updated":"2018-03-19 08:36:58.000000000","message":"Done","commit_id":"e63f02db36b1155cefe39e1914e2a9561bbf5f05"}]}
