)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"b47cb6b8d4334e6be3590f27604d9ba5d3d490f0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ff0f0b1f_4e7625db","updated":"2017-05-17 19:52:10.000000000","message":"Could you also include the changes for the removal of issue_v2_token token provider along with the 5 to 4 values unpacking error?","commit_id":"769c85363e5abc39dfb29c884733f5ad4a436eed"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b14cb1e0a49b4ed65f476cafebbbc424ad515b58","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7f231b9d_5c7dd5e5","in_reply_to":"ff0f0b1f_4e7625db","updated":"2017-06-09 16:52:26.000000000","message":"Yeah - that wouldn\u0027t be bad for auditing. If I recall - it was one of the patches I proposed in a very large series to refactor and clean up the token provider API.","commit_id":"769c85363e5abc39dfb29c884733f5ad4a436eed"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a8dc947e9cec73ba845264ae844f2c9ceafdbd28","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Jose Castro Leon \u003cjose.castro.leon@cern.ch\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-05-17 14:00:34 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix ec2tokens validation in v2 after regresion in metadata_ref removal"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Since the last patch in the ocata release that removed the metadata_ref,"},{"line_number":10,"context_line":"the ec2tokens api is broken due to unable to unpack the result of the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5f201791_7e39aea1","line":7,"updated":"2017-07-14 21:28:13.000000000","message":"regression*","commit_id":"769c85363e5abc39dfb29c884733f5ad4a436eed"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9795d60b3aba6f08e31dbea423f7176423fc621f","unresolved":false,"context_lines":[{"line_number":11,"context_line":"authenticate command (4 elements) while expecting to expand it into 5."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I71c4b51444ea9f7a3016b68d7dee9a4747e9c0fd"},{"line_number":14,"context_line":"Closes-Bug: #1691111"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ff346bd7_c729478a","line":14,"updated":"2017-07-27 19:59:28.000000000","message":"Awesome work - since this includes tests we can close another bug I opened last year!\n\n  Closes-Bug: #1635389","commit_id":"a3e51e5fca924270ec4416f21add4121b04687a9"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"f24cfa96321ea150462b385ccf1d7deec2069f7a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"authenticate command (4 elements) while expecting to expand it into 5."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I71c4b51444ea9f7a3016b68d7dee9a4747e9c0fd"},{"line_number":14,"context_line":"Closes-Bug: #1691111"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ff346bd7_c2e59cdd","line":14,"updated":"2017-07-28 14:05:00.000000000","message":"We can add another bug here: \n\n  Closes-Bug: #1635389","commit_id":"c97f1d4fad95104ec75f1e9dc0bfe4b0fb9f5edd"}],"keystone/contrib/ec2/controllers.py":[{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"b47cb6b8d4334e6be3590f27604d9ba5d3d490f0","unresolved":false,"context_lines":[{"line_number":275,"context_line":""},{"line_number":276,"context_line":"    @controller.v2_ec2_deprecated"},{"line_number":277,"context_line":"    def authenticate(self, request, credentials\u003dNone, ec2Credentials\u003dNone):"},{"line_number":278,"context_line":"        (user_ref, project_ref, roles_ref, catalog_ref) \u003d self._authenticate("},{"line_number":279,"context_line":"            credentials\u003dcredentials, ec2credentials\u003dec2Credentials"},{"line_number":280,"context_line":"        )"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff0f0b1f_8e3afde4","line":278,"range":{"start_line":278,"start_character":19,"end_line":278,"end_character":26},"updated":"2017-05-17 19:52:10.000000000","message":"Not sure if project or tenant is the correct naming here, but this seems ok to me","commit_id":"769c85363e5abc39dfb29c884733f5ad4a436eed"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a890086b96327c625065f83e6a142416b2b68d1f","unresolved":false,"context_lines":[{"line_number":275,"context_line":""},{"line_number":276,"context_line":"    @controller.v2_ec2_deprecated"},{"line_number":277,"context_line":"    def authenticate(self, request, credentials\u003dNone, ec2Credentials\u003dNone):"},{"line_number":278,"context_line":"        (user_ref, project_ref, roles_ref, catalog_ref) \u003d self._authenticate("},{"line_number":279,"context_line":"            credentials\u003dcredentials, ec2credentials\u003dec2Credentials"},{"line_number":280,"context_line":"        )"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_1ecd1ab6","line":278,"in_reply_to":"ff0f0b1f_8e3afde4","updated":"2017-06-28 17:57:02.000000000","message":"I think project is fine here even though it\u0027s technically v2 context. The user should only see tenant since this is a variable name.","commit_id":"769c85363e5abc39dfb29c884733f5ad4a436eed"}],"keystone/tests/unit/test_contrib_ec2_core.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9795d60b3aba6f08e31dbea423f7176423fc621f","unresolved":false,"context_lines":[{"line_number":24,"context_line":"class EC2ContribCoreV2(test_v2.RestfulTestCase):"},{"line_number":25,"context_line":"    def config_overrides(self):"},{"line_number":26,"context_line":"        super(EC2ContribCoreV2, self).config_overrides()"},{"line_number":27,"context_line":"        self.controller \u003d controllers.Ec2Controller"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def assertValidAuthenticationResponse(self, r):"},{"line_number":30,"context_line":"        self.assertIsNotNone(r.result.get(\u0027access\u0027))"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff346bd7_07b62f3f","line":27,"updated":"2017-07-27 19:59:28.000000000","message":"This doesn\u0027t appear to be used in the tests anywhere. I was able to remove this locally and everything still passed.","commit_id":"a3e51e5fca924270ec4416f21add4121b04687a9"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9795d60b3aba6f08e31dbea423f7176423fc621f","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        self.assertIsNotNone(resp[\u0027error\u0027].get(\u0027message\u0027))"},{"line_number":53,"context_line":"        self.assertEqual(int(resp[\u0027error\u0027][\u0027code\u0027]), r.status_code)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def test_good_response(self):"},{"line_number":56,"context_line":"        cred_blob, credential \u003d unit.new_ec2_credential("},{"line_number":57,"context_line":"            self.user_foo[\u0027id\u0027], self.tenant_bar[\u0027id\u0027])"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ff346bd7_873e9f88","line":55,"updated":"2017-07-27 19:59:28.000000000","message":"nit: I\u0027d recommend adding conditions to the test title to be a little more descriptive of the case.\n\n  test_valid_authentication_response_with_proper_secret\n\nOr something along those lines","commit_id":"a3e51e5fca924270ec4416f21add4121b04687a9"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9795d60b3aba6f08e31dbea423f7176423fc621f","unresolved":false,"context_lines":[{"line_number":80,"context_line":"            expected_status\u003dhttp_client.OK)"},{"line_number":81,"context_line":"        self.assertValidAuthenticationResponse(resp)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_bad_request(self):"},{"line_number":84,"context_line":"        self.public_request("},{"line_number":85,"context_line":"            method\u003d\u0027POST\u0027,"},{"line_number":86,"context_line":"            path\u003d\u0027/v2.0/ec2tokens\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff346bd7_0752afde","line":83,"updated":"2017-07-27 19:59:28.000000000","message":"We could break these into their own tests, too. Maybe something like: \n\nhttp://paste.openstack.org/show/616786/","commit_id":"a3e51e5fca924270ec4416f21add4121b04687a9"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9795d60b3aba6f08e31dbea423f7176423fc621f","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.public_request("},{"line_number":91,"context_line":"            method\u003d\u0027POST\u0027,"},{"line_number":92,"context_line":"            path\u003d\u0027/v2.0/ec2tokens\u0027,"},{"line_number":93,"context_line":"            body\u003d\"not json\","},{"line_number":94,"context_line":"            expected_status\u003dhttp_client.BAD_REQUEST)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        self.public_request("}],"source_content_type":"text/x-python","patch_set":3,"id":"ff346bd7_a790834b","line":93,"updated":"2017-07-27 19:59:28.000000000","message":"nit: single quotes for consistency with the rest of the module.","commit_id":"a3e51e5fca924270ec4416f21add4121b04687a9"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9795d60b3aba6f08e31dbea423f7176423fc621f","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    def setUp(self):"},{"line_number":131,"context_line":"        super(EC2ContribCoreV3, self).setUp()"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        self.load_backends()"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        self.cred_blob, self.credential \u003d unit.new_ec2_credential("},{"line_number":136,"context_line":"            self.user[\u0027id\u0027], self.project_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff346bd7_27201348","line":133,"updated":"2017-07-27 19:59:28.000000000","message":"Looks like this is already done in the parent setUp() method:\n\nhttps://github.com/openstack/keystone/blob/c3b5d2d77b029880521912e43ad963f9b0c5bf99/keystone/tests/unit/rest.py#L61","commit_id":"a3e51e5fca924270ec4416f21add4121b04687a9"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9795d60b3aba6f08e31dbea423f7176423fc621f","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        self.credential_api.create_credential("},{"line_number":138,"context_line":"            self.credential[\u0027id\u0027], self.credential)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        self.controller \u003d controllers.Ec2ControllerV3"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def test_good_response(self):"},{"line_number":143,"context_line":"        signer \u003d ec2_utils.Ec2Signer(self.cred_blob[\u0027secret\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff346bd7_87f0dffe","line":140,"updated":"2017-07-27 19:59:28.000000000","message":"This doesn\u0027t appear to be used anywhere. I was able to remove this locally and the tests still passed.","commit_id":"a3e51e5fca924270ec4416f21add4121b04687a9"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9795d60b3aba6f08e31dbea423f7176423fc621f","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        self.controller \u003d controllers.Ec2ControllerV3"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def test_good_response(self):"},{"line_number":143,"context_line":"        signer \u003d ec2_utils.Ec2Signer(self.cred_blob[\u0027secret\u0027])"},{"line_number":144,"context_line":"        credentials \u003d {"},{"line_number":145,"context_line":"            \u0027access\u0027: self.cred_blob[\u0027access\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff346bd7_07ee2fec","line":142,"updated":"2017-07-27 19:59:28.000000000","message":"Same naming comments here.","commit_id":"a3e51e5fca924270ec4416f21add4121b04687a9"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9795d60b3aba6f08e31dbea423f7176423fc621f","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        self.post("},{"line_number":170,"context_line":"            \u0027/ec2tokens\u0027,"},{"line_number":171,"context_line":"            body\u003d\"not json\","},{"line_number":172,"context_line":"            expected_status\u003dhttp_client.BAD_REQUEST)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        self.post("}],"source_content_type":"text/x-python","patch_set":3,"id":"ff346bd7_277c931d","line":171,"updated":"2017-07-27 19:59:28.000000000","message":"Same comment here about quotes.","commit_id":"a3e51e5fca924270ec4416f21add4121b04687a9"}]}
