)]}'
{"etc/policy.json":[{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"184cf1b89b3d0a8e811e39d40a9eabb7179eba97","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    \"create_router:external_gateway_info:enable_snat\": \"rule_admin_only\","},{"line_number":59,"context_line":"    \"update_router:external_gateway_info:enable_snat\": \"rule_admin_only\","},{"line_number":60,"context_line":" "},{"line_number":61,"context_line":"    \"extension:service_type:view_extended\": \"rule:admin_only\","},{"line_number":62,"context_line":"    \"create_service_type\": \"rule:admin_only\","},{"line_number":63,"context_line":"    \"update_service_type\": \"rule:admin_only\","}],"source_content_type":"application/json","patch_set":4,"id":"AAAAPX%2F%2FoOE%3D","line":60,"updated":"2013-06-13 23:48:47.000000000","message":"extra space!","commit_id":"a0b7db594fce796f836db7690299b1f919976612"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"1b759ad437832df32fedd806cbaf766f8c7ae676","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    \"create_router:external_gateway_info:enable_snat\": \"rule_admin_only\","},{"line_number":59,"context_line":"    \"update_router:external_gateway_info:enable_snat\": \"rule_admin_only\","},{"line_number":60,"context_line":" "},{"line_number":61,"context_line":"    \"extension:service_type:view_extended\": \"rule:admin_only\","},{"line_number":62,"context_line":"    \"create_service_type\": \"rule:admin_only\","},{"line_number":63,"context_line":"    \"update_service_type\": \"rule:admin_only\","}],"source_content_type":"application/json","patch_set":4,"id":"AAAAPX%2F%2FmxI%3D","line":60,"in_reply_to":"AAAAPX%2F%2FoOE%3D","updated":"2013-06-14 14:46:57.000000000","message":"Done","commit_id":"a0b7db594fce796f836db7690299b1f919976612"},{"author":{"_account_id":1038,"name":"Jack McCann","username":"jack-mccann"},"unresolved":false,"context_lines":[{"line_number":56,"context_line":"    \"delete_port\": \"rule:admin_or_owner\","},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    \"create_router:external_gateway_info:enable_snat\": \"rule_admin_only\","},{"line_number":59,"context_line":"    \"update_router:external_gateway_info:enable_snat\": \"rule_admin_only\","},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    \"extension:service_type:view_extended\": \"rule:admin_only\","},{"line_number":62,"context_line":"    \"create_service_type\": \"rule:admin_only\","}],"source_content_type":"application/json","patch_set":6,"id":"AAAAPn%2F%2Fctg%3D","line":59,"updated":"2013-07-01 18:53:38.000000000","message":"in the two lines above, should that be \"rule:admin_only\"?","commit_id":"8039da719349d4b175b5d60e6f659277b8f8c57d"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"8580f690d79eb170c9f527776b7d7699ff6de2bb","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    \"delete_port\": \"rule:admin_or_owner\","},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    \"create_router:external_gateway_info:enable_snat\": \"rule_admin_only\","},{"line_number":59,"context_line":"    \"update_router:external_gateway_info:enable_snat\": \"rule_admin_only\","},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    \"extension:service_type:view_extended\": \"rule:admin_only\","},{"line_number":62,"context_line":"    \"create_service_type\": \"rule:admin_only\","}],"source_content_type":"application/json","patch_set":6,"id":"AAAAP3%2F%2FnK4%3D","line":59,"in_reply_to":"AAAAPn%2F%2Fctg%3D","updated":"2013-07-15 20:54:16.000000000","message":"Done","commit_id":"8039da719349d4b175b5d60e6f659277b8f8c57d"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"538f12702f0dfa0278553f2236152762e83e6860","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    \"create_router:external_gateway_info:enable_snat\": \"rule:admin_only\","},{"line_number":59,"context_line":"    \"update_router:external_gateway_info:enable_snat\": \"rule:admin_only\","},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    \"extension:service_type:view_extended\": \"rule:admin_only\","},{"line_number":62,"context_line":"    \"create_service_type\": \"rule:admin_only\","},{"line_number":63,"context_line":"    \"update_service_type\": \"rule:admin_only\","},{"line_number":64,"context_line":"    \"delete_service_type\": \"rule:admin_only\","}],"source_content_type":"application/json","patch_set":7,"id":"AAAAP3%2F%2FlZc%3D","line":61,"updated":"2013-07-16 08:44:27.000000000","message":"I think it is unrelated to this patch.","commit_id":"ed0d2c1d4311d555cdba6f2dc09bd547a50b1f2d"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":58,"context_line":"    \"create_router:external_gateway_info:enable_snat\": \"rule:admin_only\","},{"line_number":59,"context_line":"    \"update_router:external_gateway_info:enable_snat\": \"rule:admin_only\","},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    \"extension:service_type:view_extended\": \"rule:admin_only\","},{"line_number":62,"context_line":"    \"create_service_type\": \"rule:admin_only\","},{"line_number":63,"context_line":"    \"update_service_type\": \"rule:admin_only\","},{"line_number":64,"context_line":"    \"delete_service_type\": \"rule:admin_only\","}],"source_content_type":"application/json","patch_set":7,"id":"AAAAP3%2F%2Fjto%3D","line":61,"in_reply_to":"AAAAP3%2F%2FlZc%3D","updated":"2013-07-16 15:50:10.000000000","message":"Right - rebase error","commit_id":"ed0d2c1d4311d555cdba6f2dc09bd547a50b1f2d"}],"quantum/policy.py":[{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"unresolved":false,"context_lines":[{"line_number":201,"context_line":"                        validate \u003d attribute.get(\u0027validate\u0027)"},{"line_number":202,"context_line":"                        if (validate and any([k.startswith(\u0027type:dict\u0027) and v"},{"line_number":203,"context_line":"                                              for (k, v) in"},{"line_number":204,"context_line":"                                              validate.iteritems()])):"},{"line_number":205,"context_line":"                            attr_rule \u003d policy.AndCheck("},{"line_number":206,"context_line":"                                [attr_rule, _build_subattr_match_rule("},{"line_number":207,"context_line":"                                    attribute_name, attribute,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FhgI%3D","line":204,"updated":"2013-06-28 15:20:27.000000000","message":"while we all are waiting for python3, I wander through reviews and leave comments about changing \u0027iteritems\u0027 to \u0027items\u0027","commit_id":"8039da719349d4b175b5d60e6f659277b8f8c57d"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"8580f690d79eb170c9f527776b7d7699ff6de2bb","unresolved":false,"context_lines":[{"line_number":201,"context_line":"                        validate \u003d attribute.get(\u0027validate\u0027)"},{"line_number":202,"context_line":"                        if (validate and any([k.startswith(\u0027type:dict\u0027) and v"},{"line_number":203,"context_line":"                                              for (k, v) in"},{"line_number":204,"context_line":"                                              validate.iteritems()])):"},{"line_number":205,"context_line":"                            attr_rule \u003d policy.AndCheck("},{"line_number":206,"context_line":"                                [attr_rule, _build_subattr_match_rule("},{"line_number":207,"context_line":"                                    attribute_name, attribute,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAP3%2F%2FnKU%3D","line":204,"in_reply_to":"AAAAPn%2F%2FfnE%3D","updated":"2013-07-15 20:54:16.000000000","message":"If you want me to use items just say so - I have no strong opinion","commit_id":"8039da719349d4b175b5d60e6f659277b8f8c57d"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"unresolved":false,"context_lines":[{"line_number":201,"context_line":"                        validate \u003d attribute.get(\u0027validate\u0027)"},{"line_number":202,"context_line":"                        if (validate and any([k.startswith(\u0027type:dict\u0027) and v"},{"line_number":203,"context_line":"                                              for (k, v) in"},{"line_number":204,"context_line":"                                              validate.iteritems()])):"},{"line_number":205,"context_line":"                            attr_rule \u003d policy.AndCheck("},{"line_number":206,"context_line":"                                [attr_rule, _build_subattr_match_rule("},{"line_number":207,"context_line":"                                    attribute_name, attribute,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FfnE%3D","line":204,"in_reply_to":"AAAAPn%2F%2FgTc%3D","updated":"2013-06-29 14:25:11.000000000","message":"This is a known disadvantage of \u0027items\u0027 and it\u0027s a cost of making code py3 compatible.","commit_id":"8039da719349d4b175b5d60e6f659277b8f8c57d"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":201,"context_line":"                        validate \u003d attribute.get(\u0027validate\u0027)"},{"line_number":202,"context_line":"                        if (validate and any([k.startswith(\u0027type:dict\u0027) and v"},{"line_number":203,"context_line":"                                              for (k, v) in"},{"line_number":204,"context_line":"                                              validate.iteritems()])):"},{"line_number":205,"context_line":"                            attr_rule \u003d policy.AndCheck("},{"line_number":206,"context_line":"                                [attr_rule, _build_subattr_match_rule("},{"line_number":207,"context_line":"                                    attribute_name, attribute,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FgTc%3D","line":204,"in_reply_to":"AAAAPn%2F%2FhgI%3D","updated":"2013-06-28 22:27:15.000000000","message":"Except for items in py2 returns lists instead of a generator.  Considering he\u0027s using an any here, a generator is more appropriate.","commit_id":"8039da719349d4b175b5d60e6f659277b8f8c57d"}],"quantum/tests/unit/test_policy.py":[{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"488565cd7728bb83fb733b6f493bebe8e6119fc0","unresolved":false,"context_lines":[{"line_number":358,"context_line":"                                                \u0027sub_attr_2\u0027: \u0027y\u0027}}"},{"line_number":359,"context_line":"        self.assertRaises(exceptions.PolicyNotAuthorized, policy.enforce,"},{"line_number":360,"context_line":"                          self.context, action, target, None)"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"    def test_enforce_regularuser_on_read(self):"},{"line_number":363,"context_line":"        action \u003d \"get_network\""},{"line_number":364,"context_line":"        target \u003d {\u0027shared\u0027: True, \u0027tenant_id\u0027: \u0027somebody_else\u0027}"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2Fh%2FY%3D","line":361,"updated":"2013-06-28 13:00:52.000000000","message":"Please also add case for lacking type validator case.","commit_id":"8039da719349d4b175b5d60e6f659277b8f8c57d"}]}
