)]}'
{"nova/policy.py":[{"author":{"_account_id":8911,"name":"Sergey Vilgelm","email":"sergey@vilgelm.info","username":"sergey.vilgelm"},"change_message_id":"af863edb75120c4e74ee0f50a28d09b37798b8f8","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        return _ENFORCER.rules"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"def parse_rules(rules, default_rule\u003dNone):"},{"line_number":147,"context_line":"    if isinstance(rules, dict):"},{"line_number":148,"context_line":"        return policy.Rules.from_dict(rules,"},{"line_number":149,"context_line":"                                      default_rule\u003ddefault_rule)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_333f1cb6","line":146,"updated":"2015-08-04 05:54:25.000000000","message":"Ok. I have reviewed your patch and not found, where do we need parse rules from json? I found that everywhere we can replace this function with policy.Rules.from_dict()","commit_id":"8894c1403364c2d43332ea29e586d63d6966a3ee"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"5139a84dd2580c2d3718124fb20af3205eb93016","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        return _ENFORCER.rules"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"def parse_rules(rules, default_rule\u003dNone):"},{"line_number":147,"context_line":"    if isinstance(rules, dict):"},{"line_number":148,"context_line":"        return policy.Rules.from_dict(rules,"},{"line_number":149,"context_line":"                                      default_rule\u003ddefault_rule)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_50f6ad8f","line":146,"in_reply_to":"1a4dcd0f_333f1cb6","updated":"2015-09-06 09:33:28.000000000","message":"Yes, u r right. I will fix this.","commit_id":"8894c1403364c2d43332ea29e586d63d6966a3ee"}],"nova/tests/unit/api/ec2/test_cloud.py":[{"author":{"_account_id":8911,"name":"Sergey Vilgelm","email":"sergey@vilgelm.info","username":"sergey.vilgelm"},"change_message_id":"002818e602ded362d10c0540bcb3fafb3880b649","unresolved":false,"context_lines":[{"line_number":523,"context_line":""},{"line_number":524,"context_line":"    def test_delete_security_group_policy_not_allowed(self):"},{"line_number":525,"context_line":"        rules \u003d {\u0027compute_extension:security_groups\u0027:"},{"line_number":526,"context_line":"                     \u0027project_id:%(project_id)s\u0027}"},{"line_number":527,"context_line":"        policy.set_rules(oslo_policy.Rules.from_dict(rules))"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"        with mock.patch.object(self.cloud.security_group_api,"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_0d0a4520","line":526,"updated":"2015-09-07 10:44:16.000000000","message":"the space you added is redundant","commit_id":"6aae4500d034e083809d89ee663eb5c2405db071"}],"nova/tests/unit/test_policy.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e7b17335d4aba7dd0a1703341e57ee40e08353ca","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        result \u003d policy.enforce(self.context, action, self.target)"},{"line_number":100,"context_line":"        self.assertEqual(result, True)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    @requests_mock.mock()"},{"line_number":103,"context_line":"    def test_enforce_http_true(self, req_mock):"},{"line_number":104,"context_line":"        req_mock.post(\u0027http://www.example.com/\u0027,"},{"line_number":105,"context_line":"                      text\u003d\u0027True\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a8ffd7b_a41b8a1a","line":102,"updated":"2015-11-26 05:10:06.000000000","message":"this change, and the one below, seem unrelated to the policy change","commit_id":"a4b2ade4794d5952527181abf1ee482dd16b8295"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"a43005a608de09d04100b5b8e7e86bd047f0fca9","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        result \u003d policy.enforce(self.context, action, self.target)"},{"line_number":100,"context_line":"        self.assertEqual(result, True)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    @requests_mock.mock()"},{"line_number":103,"context_line":"    def test_enforce_http_true(self, req_mock):"},{"line_number":104,"context_line":"        req_mock.post(\u0027http://www.example.com/\u0027,"},{"line_number":105,"context_line":"                      text\u003d\u0027True\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a8ffd7b_84644649","line":102,"in_reply_to":"9a8ffd7b_a41b8a1a","updated":"2015-11-26 05:25:47.000000000","message":"no. This is necessary.\n\nIn the `nova` code, HttpCheck use urlrequest[0]. In the latest oslo.policy, HttpCheck use the `requests`[1].\n\nSo the mock should be changed. \n\n[0] https://github.com/openstack/nova/blob/3c67982f7c8c95da335310348fda41e2cf996f3a/nova/openstack/common/policy.py#L927\n[1] https://github.com/openstack/oslo.policy/blob/master/oslo_policy/_checks.py#L274","commit_id":"a4b2ade4794d5952527181abf1ee482dd16b8295"}],"setup.cfg":[{"author":{"_account_id":8911,"name":"Sergey Vilgelm","email":"sergey@vilgelm.info","username":"sergey.vilgelm"},"change_message_id":"10d78212a8fbca5c99bf0e82bc2be7a786e99f2f","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    nova.openstack.common.eventlet_backdoor \u003d nova.openstack.common.eventlet_backdoor:list_opts"},{"line_number":39,"context_line":"    nova.openstack.common.memorycache \u003d nova.openstack.common.memorycache:list_opts"},{"line_number":40,"context_line":"    nova.openstack.common.periodic_task \u003d nova.openstack.common.periodic_task:list_opts"},{"line_number":41,"context_line":"    nova.openstack.common.policy \u003d nova.openstack.common.policy:list_opts"},{"line_number":42,"context_line":"    nova.openstack.common.sslutils \u003d nova.openstack.common.sslutils:list_opts"},{"line_number":43,"context_line":"    nova.openstack.common.versionutils \u003d nova.openstack.common.versionutils:list_opts"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"ba3cc151_be658e1e","line":41,"updated":"2015-07-09 07:36:00.000000000","message":"remove this line","commit_id":"a733fc9d01fc39d09f05faf28877cea269e0a4bb"},{"author":{"_account_id":8911,"name":"Sergey Vilgelm","email":"sergey@vilgelm.info","username":"sergey.vilgelm"},"change_message_id":"002818e602ded362d10c0540bcb3fafb3880b649","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"[entry_points]"},{"line_number":29,"context_line":"oslo.config.opts \u003d"},{"line_number":30,"context_line":"    oslo.policy \u003d oslo_policy.opts:list_opts"},{"line_number":31,"context_line":"    nova \u003d nova.opts:list_opts"},{"line_number":32,"context_line":"    nova.api \u003d nova.api.opts:list_opts"},{"line_number":33,"context_line":"    nova.cells \u003d nova.cells.opts:list_opts"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"da20952f_cd868db8","line":30,"updated":"2015-09-07 10:44:16.000000000","message":"Remove this, It\u0027s already added at the nova-config-generator.conf file","commit_id":"6aae4500d034e083809d89ee663eb5c2405db071"}]}
