)]}'
{"keystoneclient/tests/v3/test_endpoint_policy.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"9e5c173bbb2360645a5466e12fde83fbf6df21f8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_c73d59df","line":1,"updated":"2014-09-18 19:56:15.000000000","message":"unless you work for the foundation you shouldn\u0027t be assigning copyright to them.","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"2f0615ba302bc4ddac6a07c9d857d2b3a2b75978","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_61a49208","line":1,"in_reply_to":"fa98f980_c73d59df","updated":"2014-09-18 20:29:30.000000000","message":"oops","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"9e5c173bbb2360645a5466e12fde83fbf6df21f8","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        kwargs.setdefault(\u0027enabled\u0027, True)"},{"line_number":30,"context_line":"        return kwargs"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def new_endpoint_ref(self, **kwargs):"},{"line_number":33,"context_line":"        kwargs \u003d self.new_ref(**kwargs)"},{"line_number":34,"context_line":"        kwargs.setdefault(\u0027interface\u0027, \u0027public\u0027)"},{"line_number":35,"context_line":"        kwargs.setdefault(\u0027region\u0027, uuid.uuid4().hex)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_3e91cb46","line":32,"updated":"2014-09-18 19:56:15.000000000","message":"this is implemented in test_endpoint_filter already. Move it somewhere that it can be shared.","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"2f0615ba302bc4ddac6a07c9d857d2b3a2b75978","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        kwargs.setdefault(\u0027enabled\u0027, True)"},{"line_number":30,"context_line":"        return kwargs"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def new_endpoint_ref(self, **kwargs):"},{"line_number":33,"context_line":"        kwargs \u003d self.new_ref(**kwargs)"},{"line_number":34,"context_line":"        kwargs.setdefault(\u0027interface\u0027, \u0027public\u0027)"},{"line_number":35,"context_line":"        kwargs.setdefault(\u0027region\u0027, uuid.uuid4().hex)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_e1188220","line":32,"in_reply_to":"fa98f980_3e91cb46","updated":"2014-09-18 20:29:30.000000000","message":"Done","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"9e5c173bbb2360645a5466e12fde83fbf6df21f8","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_create_policy_association_for_endpoint_via_id(self):"},{"line_number":84,"context_line":"        self._crud_policy_association_for_endpoint_via_id("},{"line_number":85,"context_line":"            \u0027PUT\u0027, self.manager.create_policy_association_for_endpoint)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def test_create_policy_association_for_endpoint_via_obj(self):"},{"line_number":88,"context_line":"        self._crud_policy_association_for_endpoint_via_obj("}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_fe70230a","line":85,"updated":"2014-09-18 19:56:15.000000000","message":"self.manager.create_policy_association_for_endpoint and the rest all return a value. The test should verify that the expected value is returned.","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"2f0615ba302bc4ddac6a07c9d857d2b3a2b75978","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_create_policy_association_for_endpoint_via_id(self):"},{"line_number":84,"context_line":"        self._crud_policy_association_for_endpoint_via_id("},{"line_number":85,"context_line":"            \u0027PUT\u0027, self.manager.create_policy_association_for_endpoint)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def test_create_policy_association_for_endpoint_via_obj(self):"},{"line_number":88,"context_line":"        self._crud_policy_association_for_endpoint_via_obj("}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_a1a11a97","line":85,"in_reply_to":"fa98f980_fe70230a","updated":"2014-09-18 20:29:30.000000000","message":"I think the don\u0027t return a value...so I guess this is OK?","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"9e5c173bbb2360645a5466e12fde83fbf6df21f8","unresolved":false,"context_lines":[{"line_number":220,"context_line":"    def test_get_policy_for_endpoint(self):"},{"line_number":221,"context_line":"        endpoint_id \u003d uuid.uuid4().hex"},{"line_number":222,"context_line":"        policy_id \u003d uuid.uuid4().hex"},{"line_number":223,"context_line":"        expected_policy \u003d {\u0027policy\u0027: policy_id}"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        self.stub_url(\u0027GET\u0027,"},{"line_number":226,"context_line":"                      [\u0027endpoints\u0027, endpoint_id, self.manager.OS_EP_POLICY_EXT,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_7eea7375","line":223,"updated":"2014-09-18 19:56:15.000000000","message":"this should be at least \u0027id\u0027: policy_id\n\nAlso, it would be better if a whole policy was returned, including \"blob\", \"links\", \"type\".\n\nAnd that all these were verified in the response.","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"2f0615ba302bc4ddac6a07c9d857d2b3a2b75978","unresolved":false,"context_lines":[{"line_number":220,"context_line":"    def test_get_policy_for_endpoint(self):"},{"line_number":221,"context_line":"        endpoint_id \u003d uuid.uuid4().hex"},{"line_number":222,"context_line":"        policy_id \u003d uuid.uuid4().hex"},{"line_number":223,"context_line":"        expected_policy \u003d {\u0027policy\u0027: policy_id}"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        self.stub_url(\u0027GET\u0027,"},{"line_number":226,"context_line":"                      [\u0027endpoints\u0027, endpoint_id, self.manager.OS_EP_POLICY_EXT,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_21b9aaec","line":223,"in_reply_to":"fa98f980_7eea7375","updated":"2014-09-18 20:29:30.000000000","message":"So that may be true...but I was trying to best reflect the actual REST API itself.  I think changing it to \u0027id\u0027 does indeed make sense - and have done that.","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"90f732b311cd7881e8226d8fe9f739fc45abdc46","unresolved":false,"context_lines":[{"line_number":209,"context_line":"    def test_get_policy_for_endpoint(self):"},{"line_number":210,"context_line":"        endpoint_id \u003d uuid.uuid4().hex"},{"line_number":211,"context_line":"        policy_id \u003d uuid.uuid4().hex"},{"line_number":212,"context_line":"        expected_policy \u003d {\u0027policy\u0027: policy_id}"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        self.stub_url(\u0027GET\u0027,"},{"line_number":215,"context_line":"                      [\u0027endpoints\u0027, endpoint_id, self.manager.OS_EP_POLICY_EXT,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_c1d45ebd","line":212,"updated":"2014-09-18 20:39:52.000000000","message":"The REST API says it returns more than that: http://git.openstack.org/cgit/openstack/keystone/tree/keystone/common/wsgi.py#n667\n\n {\n    \"policy\": {\n        \"blob\": \"--serialized-blob--\",\n        \"id\": \"--policy-id--\",\n        \"links\": {\n            \"self\": \"http://identity:35357/v3/policies/--policy-id--\"\n        },\n        \"type\": \"--serialization-mime-type--\"\n    }\n }\n\nso having this return {\u0027policy\u0027: id\u0027} doesn\u0027t match the API.","commit_id":"b89dc60f456c127cf83f3a17aaf2077c37dbe43a"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"0eda415fcd691122e46ba8b91089dc99d5a1152c","unresolved":false,"context_lines":[{"line_number":209,"context_line":"    def test_get_policy_for_endpoint(self):"},{"line_number":210,"context_line":"        endpoint_id \u003d uuid.uuid4().hex"},{"line_number":211,"context_line":"        policy_id \u003d uuid.uuid4().hex"},{"line_number":212,"context_line":"        expected_policy \u003d {\u0027policy\u0027: policy_id}"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        self.stub_url(\u0027GET\u0027,"},{"line_number":215,"context_line":"                      [\u0027endpoints\u0027, endpoint_id, self.manager.OS_EP_POLICY_EXT,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_2149aa8e","line":212,"in_reply_to":"fa98f980_c1d45ebd","updated":"2014-09-18 20:44:02.000000000","message":"Ya know....you\u0027re bloody well right (cue music).....Not sure how I missed that.  Excellent catch.","commit_id":"b89dc60f456c127cf83f3a17aaf2077c37dbe43a"}],"keystoneclient/v3/contrib/endpoint_policy.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"9e5c173bbb2360645a5466e12fde83fbf6df21f8","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    \"\"\"Represents an Endpoint Policy Association."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    Attributes:"},{"line_number":23,"context_line":"        * policy: the ID of the policy associated"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    \"\"\""},{"line_number":26,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_0abe8800","line":23,"updated":"2014-09-18 19:56:15.000000000","message":"change \"policy associated\" to \"associated policy\"","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"2f0615ba302bc4ddac6a07c9d857d2b3a2b75978","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    \"\"\"Represents an Endpoint Policy Association."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    Attributes:"},{"line_number":23,"context_line":"        * policy: the ID of the policy associated"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    \"\"\""},{"line_number":26,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_3ebe2b65","line":23,"in_reply_to":"fa98f980_0abe8800","updated":"2014-09-18 20:29:30.000000000","message":"Done","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"9e5c173bbb2360645a5466e12fde83fbf6df21f8","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    OS_EP_POLICY_EXT \u003d \u0027OS-ENDPOINT-POLICY\u0027"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def _crud_policy_association_for_endpoint(self, policy, endpoint, action):"},{"line_number":35,"context_line":"        if not (policy and endpoint):"},{"line_number":36,"context_line":"            raise ValueError(\u0027policy and endpoint are required\u0027)"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_de6a7f80","line":34,"updated":"2014-09-18 19:56:15.000000000","message":"suggest call this \"_act_on_association_for_endpoint\" so that it starts with a verb.\n\nthis applies to all these _crud_* methods.","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"2f0615ba302bc4ddac6a07c9d857d2b3a2b75978","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    OS_EP_POLICY_EXT \u003d \u0027OS-ENDPOINT-POLICY\u0027"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def _crud_policy_association_for_endpoint(self, policy, endpoint, action):"},{"line_number":35,"context_line":"        if not (policy and endpoint):"},{"line_number":36,"context_line":"            raise ValueError(\u0027policy and endpoint are required\u0027)"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_9eae372e","line":34,"in_reply_to":"fa98f980_de6a7f80","updated":"2014-09-18 20:29:30.000000000","message":"Done","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"9e5c173bbb2360645a5466e12fde83fbf6df21f8","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        policy_id \u003d base.getid(policy)"},{"line_number":39,"context_line":"        endpoint_id \u003d base.getid(endpoint)"},{"line_number":40,"context_line":"        url \u003d (\u0027/policies/%(policy_id)s/\u0027 + self.OS_EP_POLICY_EXT +"},{"line_number":41,"context_line":"               \u0027/endpoints/%(endpoint_id)s\u0027) % {"},{"line_number":42,"context_line":"                   \u0027policy_id\u0027: policy_id,"},{"line_number":43,"context_line":"                   \u0027endpoint_id\u0027: endpoint_id}"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_1b4c1976","line":40,"updated":"2014-09-18 19:56:15.000000000","message":"use %s for self.OS_EP_POLICY_EXT so it\u0027s more consistent and easier to read.","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"2f0615ba302bc4ddac6a07c9d857d2b3a2b75978","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        policy_id \u003d base.getid(policy)"},{"line_number":39,"context_line":"        endpoint_id \u003d base.getid(endpoint)"},{"line_number":40,"context_line":"        url \u003d (\u0027/policies/%(policy_id)s/\u0027 + self.OS_EP_POLICY_EXT +"},{"line_number":41,"context_line":"               \u0027/endpoints/%(endpoint_id)s\u0027) % {"},{"line_number":42,"context_line":"                   \u0027policy_id\u0027: policy_id,"},{"line_number":43,"context_line":"                   \u0027endpoint_id\u0027: endpoint_id}"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_1e308706","line":40,"in_reply_to":"fa98f980_1b4c1976","updated":"2014-09-18 20:29:30.000000000","message":"Done","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"9e5c173bbb2360645a5466e12fde83fbf6df21f8","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        return action(url\u003durl)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def create_policy_association_for_endpoint(self, policy, endpoint):"},{"line_number":47,"context_line":"        \"\"\"Create an association between a policy and an endpoint.\"\"\""},{"line_number":48,"context_line":"        return self._crud_policy_association_for_endpoint("},{"line_number":49,"context_line":"            policy, endpoint, super(EndpointPolicyManager, self)._put)"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_1e9a47c5","line":47,"updated":"2014-09-18 19:56:15.000000000","message":"these methods should document what they return.\n\nAlso, why have a return value when we\u0027re not expecting a response?","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"2f0615ba302bc4ddac6a07c9d857d2b3a2b75978","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        return action(url\u003durl)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def create_policy_association_for_endpoint(self, policy, endpoint):"},{"line_number":47,"context_line":"        \"\"\"Create an association between a policy and an endpoint.\"\"\""},{"line_number":48,"context_line":"        return self._crud_policy_association_for_endpoint("},{"line_number":49,"context_line":"            policy, endpoint, super(EndpointPolicyManager, self)._put)"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_3e1aab7c","line":47,"in_reply_to":"fa98f980_1e9a47c5","updated":"2014-09-18 20:29:30.000000000","message":"You\u0027re right, they don\u0027t return anything","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"9e5c173bbb2360645a5466e12fde83fbf6df21f8","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    def create_policy_association_for_endpoint(self, policy, endpoint):"},{"line_number":47,"context_line":"        \"\"\"Create an association between a policy and an endpoint.\"\"\""},{"line_number":48,"context_line":"        return self._crud_policy_association_for_endpoint("},{"line_number":49,"context_line":"            policy, endpoint, super(EndpointPolicyManager, self)._put)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def check_policy_association_for_endpoint(self, policy, endpoint):"},{"line_number":52,"context_line":"        \"\"\"Check an association between a policy and an endpoint.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_9b23a9bd","line":49,"updated":"2014-09-18 19:56:15.000000000","message":"unless EndpointPolicyManager is overriding _put (and I can\u0027t find it if it is), there\u0027s no need for super() here, just use self._put.\n\nThis applies to all the calls of super(EndpointPolicyManager, self) in this part.","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"2f0615ba302bc4ddac6a07c9d857d2b3a2b75978","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    def create_policy_association_for_endpoint(self, policy, endpoint):"},{"line_number":47,"context_line":"        \"\"\"Create an association between a policy and an endpoint.\"\"\""},{"line_number":48,"context_line":"        return self._crud_policy_association_for_endpoint("},{"line_number":49,"context_line":"            policy, endpoint, super(EndpointPolicyManager, self)._put)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def check_policy_association_for_endpoint(self, policy, endpoint):"},{"line_number":52,"context_line":"        \"\"\"Check an association between a policy and an endpoint.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_5e112f5c","line":49,"in_reply_to":"fa98f980_9b23a9bd","updated":"2014-09-18 20:29:30.000000000","message":"Done","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"9e5c173bbb2360645a5466e12fde83fbf6df21f8","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        region_id \u003d base.getid(region)"},{"line_number":95,"context_line":"        service_id \u003d base.getid(service)"},{"line_number":96,"context_line":"        url \u003d (\u0027/policies/%(policy_id)s/\u0027 + self.OS_EP_POLICY_EXT +"},{"line_number":97,"context_line":"               \u0027/services/%(service_id)s/regions/%(region_id)s\u0027) % {"},{"line_number":98,"context_line":"                   \u0027policy_id\u0027: policy_id,"},{"line_number":99,"context_line":"                   \u0027service_id\u0027: service_id,"},{"line_number":100,"context_line":"                   \u0027region_id\u0027: region_id}"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_1e7327b5","line":97,"updated":"2014-09-18 19:56:15.000000000","message":"use %s for self.OS_EP_POLICY_EXT so it\u0027s more consistent and easier to read. \n\nThis applies to all the places where URLs are built and mix concatenation with replacement.","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"2f0615ba302bc4ddac6a07c9d857d2b3a2b75978","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        region_id \u003d base.getid(region)"},{"line_number":95,"context_line":"        service_id \u003d base.getid(service)"},{"line_number":96,"context_line":"        url \u003d (\u0027/policies/%(policy_id)s/\u0027 + self.OS_EP_POLICY_EXT +"},{"line_number":97,"context_line":"               \u0027/services/%(service_id)s/regions/%(region_id)s\u0027) % {"},{"line_number":98,"context_line":"                   \u0027policy_id\u0027: policy_id,"},{"line_number":99,"context_line":"                   \u0027service_id\u0027: service_id,"},{"line_number":100,"context_line":"                   \u0027region_id\u0027: region_id}"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_7e14334d","line":97,"in_reply_to":"fa98f980_1e7327b5","updated":"2014-09-18 20:29:30.000000000","message":"Done","commit_id":"b950cd6c3af1abc8b910e38da54e6ff3386e691f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c9f9f793a204baf08bdf7a3335ccac3c07132107","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        :param endpoint: endpoint object or ID"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        :returns: dict containing ID of policy"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        \"\"\""},{"line_number":123,"context_line":"        if not endpoint:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_471f9e5b","line":120,"updated":"2014-09-18 21:24:46.000000000","message":"this returns a policies.Policy.","commit_id":"c5338d44a8ca88f83b1d64aeb7b83223cbfe880a"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"3d1e9bf599bbd0e75c7accc3970f0e5728d4baac","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        :param endpoint: endpoint object or ID"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        :returns: dict containing ID of policy"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        \"\"\""},{"line_number":123,"context_line":"        if not endpoint:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_27761aa4","line":120,"in_reply_to":"fa98f980_471f9e5b","updated":"2014-09-18 21:27:37.000000000","message":"Done","commit_id":"c5338d44a8ca88f83b1d64aeb7b83223cbfe880a"}]}
