)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":19985,"name":"Ryosuke Mizuno","email":"r-mizuno@rs.jp.nec.com","username":"r-mizuno"},"change_message_id":"30c9b2c45d1bcd7fef5fab9e5419e0c7c6c41b67","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add tests for trust using impersonation"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Keystone is missing trust test cases using impersonation."},{"line_number":10,"context_line":"This patch adds some test to verify the basic funcionality"},{"line_number":11,"context_line":"for trust when impersonation is set to True."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I5126873cd3b25ae8978c2ffaae050ac5b2cd5701"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5a5ae5dd_bcaf822a","line":10,"range":{"start_line":10,"start_character":46,"end_line":10,"end_character":58},"updated":"2016-02-09 08:49:01.000000000","message":"nit: \"funcionality\" \u003d\u003e \"functionality\"","commit_id":"9afba216f95fa18e56907392a8697b0067358ec8"}],"keystone/tests/unit/test_v3_auth.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a745d1df52cc5206ceb6d19e06e813da69983459","unresolved":false,"context_lines":[{"line_number":2962,"context_line":""},{"line_number":2963,"context_line":""},{"line_number":2964,"context_line":"class TestTrustImpersonation(test_v3.RestfulTestCase):"},{"line_number":2965,"context_line":"    \"\"\"Impersonation with trust"},{"line_number":2966,"context_line":""},{"line_number":2967,"context_line":"    Impersonation allows the trustor to optionally delegate impersonation"},{"line_number":2968,"context_line":"    abilities to the trustee. To services validating the token, the trustee"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_e7ac7137","line":2965,"updated":"2016-02-02 22:13:31.000000000","message":"nit; end this doc string with a period.","commit_id":"bb9407f47ceeb6da923d5316a96609b58e4b0611"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"aa8d84879b7683b8aec37065dfb274b7224d5466","unresolved":false,"context_lines":[{"line_number":2962,"context_line":""},{"line_number":2963,"context_line":""},{"line_number":2964,"context_line":"class TestTrustImpersonation(test_v3.RestfulTestCase):"},{"line_number":2965,"context_line":"    \"\"\"Impersonation with trust"},{"line_number":2966,"context_line":""},{"line_number":2967,"context_line":"    Impersonation allows the trustor to optionally delegate impersonation"},{"line_number":2968,"context_line":"    abilities to the trustee. To services validating the token, the trustee"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_7656755d","line":2965,"in_reply_to":"7a5de9d1_e7ac7137","updated":"2016-02-08 22:22:14.000000000","message":"Done","commit_id":"bb9407f47ceeb6da923d5316a96609b58e4b0611"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a745d1df52cc5206ceb6d19e06e813da69983459","unresolved":false,"context_lines":[{"line_number":3036,"context_line":"        # Get trustee token to make admin calls"},{"line_number":3037,"context_line":"        trustee_token \u003d self.get_requested_token(auth_data)"},{"line_number":3038,"context_line":""},{"line_number":3039,"context_line":"        # Attempt to list user with trustee\u0027s token"},{"line_number":3040,"context_line":"        self.get(\u0027/users\u0027,"},{"line_number":3041,"context_line":"                 token\u003dtrustee_token,"},{"line_number":3042,"context_line":"                 expected_status\u003dhttp_client.FORBIDDEN)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_4a4c6c76","line":3039,"updated":"2016-02-02 22:13:31.000000000","message":"I like the comments but maybe we should convert them to say \"why\" a particular behavior is observed.","commit_id":"bb9407f47ceeb6da923d5316a96609b58e4b0611"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a745d1df52cc5206ceb6d19e06e813da69983459","unresolved":false,"context_lines":[{"line_number":3044,"context_line":"        # Verify that trust token can list users"},{"line_number":3045,"context_line":"        self.get(\u0027/users\u0027,"},{"line_number":3046,"context_line":"                 token\u003dself.trust_token,"},{"line_number":3047,"context_line":"                 expected_status\u003dhttp_client.OK)"},{"line_number":3048,"context_line":""},{"line_number":3049,"context_line":"    @test_utils.wip(\u0027This will fail because of bug #1534834. Attempt to \u0027"},{"line_number":3050,"context_line":"                    \u0027bypass creating a new trust using impersonation.\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_ea6438e6","line":3047,"updated":"2016-02-02 22:13:31.000000000","message":"This is just proving that the trust allows the trustee an ability he didn\u0027t have before - right?","commit_id":"bb9407f47ceeb6da923d5316a96609b58e4b0611"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"aa8d84879b7683b8aec37065dfb274b7224d5466","unresolved":false,"context_lines":[{"line_number":3044,"context_line":"        # Verify that trust token can list users"},{"line_number":3045,"context_line":"        self.get(\u0027/users\u0027,"},{"line_number":3046,"context_line":"                 token\u003dself.trust_token,"},{"line_number":3047,"context_line":"                 expected_status\u003dhttp_client.OK)"},{"line_number":3048,"context_line":""},{"line_number":3049,"context_line":"    @test_utils.wip(\u0027This will fail because of bug #1534834. Attempt to \u0027"},{"line_number":3050,"context_line":"                    \u0027bypass creating a new trust using impersonation.\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_9688d1c6","line":3047,"in_reply_to":"7a5de9d1_ea6438e6","updated":"2016-02-08 22:22:14.000000000","message":"Yes, trusting the trustee user with the admin role. This verifies that the trustee has the ability to do admin calls now.","commit_id":"bb9407f47ceeb6da923d5316a96609b58e4b0611"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a745d1df52cc5206ceb6d19e06e813da69983459","unresolved":false,"context_lines":[{"line_number":3049,"context_line":"    @test_utils.wip(\u0027This will fail because of bug #1534834. Attempt to \u0027"},{"line_number":3050,"context_line":"                    \u0027bypass creating a new trust using impersonation.\u0027)"},{"line_number":3051,"context_line":"    def test_trust_creation_bypass_policy(self):"},{"line_number":3052,"context_line":"        \"\"\"Attempt to create a new trust with a trust token using"},{"line_number":3053,"context_line":"        impersonation and setting trustor on trust to match the original"},{"line_number":3054,"context_line":"        trustor\u0027s id."},{"line_number":3055,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_07118d5d","line":3052,"updated":"2016-02-02 22:13:31.000000000","message":"suggest breaking this comment up such that it has a topic and a body. \n\n    \"\"\"Ensure creating a trust with impersonation bypasses policy.\n\n    More stuff about the test case.\n\n    \"\"\"\"","commit_id":"bb9407f47ceeb6da923d5316a96609b58e4b0611"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"aa8d84879b7683b8aec37065dfb274b7224d5466","unresolved":false,"context_lines":[{"line_number":3049,"context_line":"    @test_utils.wip(\u0027This will fail because of bug #1534834. Attempt to \u0027"},{"line_number":3050,"context_line":"                    \u0027bypass creating a new trust using impersonation.\u0027)"},{"line_number":3051,"context_line":"    def test_trust_creation_bypass_policy(self):"},{"line_number":3052,"context_line":"        \"\"\"Attempt to create a new trust with a trust token using"},{"line_number":3053,"context_line":"        impersonation and setting trustor on trust to match the original"},{"line_number":3054,"context_line":"        trustor\u0027s id."},{"line_number":3055,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_b66aadeb","line":3052,"in_reply_to":"7a5de9d1_07118d5d","updated":"2016-02-08 22:22:14.000000000","message":"Done","commit_id":"bb9407f47ceeb6da923d5316a96609b58e4b0611"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a745d1df52cc5206ceb6d19e06e813da69983459","unresolved":false,"context_lines":[{"line_number":3068,"context_line":"            redelegated_trust_id\u003dself.trust[\u0027id\u0027])"},{"line_number":3069,"context_line":""},{"line_number":3070,"context_line":"        # Attempt to create trust with trust token using impersonation"},{"line_number":3071,"context_line":"        # FIXME(jorge_munoz) This should return forbidden, but returns"},{"line_number":3072,"context_line":"        # a valid 200 OK. Bug 1534834"},{"line_number":3073,"context_line":"        self.post(\u0027/OS-TRUST/trusts\u0027,"},{"line_number":3074,"context_line":"                  body\u003d{\u0027trust\u0027: trust_ref},"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_a702f909","line":3071,"updated":"2016-02-02 22:13:31.000000000","message":"nit: add a : after (jorge_munoz):","commit_id":"bb9407f47ceeb6da923d5316a96609b58e4b0611"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"aa8d84879b7683b8aec37065dfb274b7224d5466","unresolved":false,"context_lines":[{"line_number":3068,"context_line":"            redelegated_trust_id\u003dself.trust[\u0027id\u0027])"},{"line_number":3069,"context_line":""},{"line_number":3070,"context_line":"        # Attempt to create trust with trust token using impersonation"},{"line_number":3071,"context_line":"        # FIXME(jorge_munoz) This should return forbidden, but returns"},{"line_number":3072,"context_line":"        # a valid 200 OK. Bug 1534834"},{"line_number":3073,"context_line":"        self.post(\u0027/OS-TRUST/trusts\u0027,"},{"line_number":3074,"context_line":"                  body\u003d{\u0027trust\u0027: trust_ref},"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_d66f29fa","line":3071,"in_reply_to":"7a5de9d1_a702f909","updated":"2016-02-08 22:22:14.000000000","message":"Done","commit_id":"bb9407f47ceeb6da923d5316a96609b58e4b0611"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a745d1df52cc5206ceb6d19e06e813da69983459","unresolved":false,"context_lines":[{"line_number":3069,"context_line":""},{"line_number":3070,"context_line":"        # Attempt to create trust with trust token using impersonation"},{"line_number":3071,"context_line":"        # FIXME(jorge_munoz) This should return forbidden, but returns"},{"line_number":3072,"context_line":"        # a valid 200 OK. Bug 1534834"},{"line_number":3073,"context_line":"        self.post(\u0027/OS-TRUST/trusts\u0027,"},{"line_number":3074,"context_line":"                  body\u003d{\u0027trust\u0027: trust_ref},"},{"line_number":3075,"context_line":"                  token\u003dself.trust_token,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_ea0f582c","line":3072,"updated":"2016-02-02 22:13:31.000000000","message":"++ thanks for adding the context!","commit_id":"bb9407f47ceeb6da923d5316a96609b58e4b0611"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1783ef6a2230db4f6d8d601aeca0eda2d6bdc5ee","unresolved":false,"context_lines":[{"line_number":3232,"context_line":"                 token\u003dself.trust_token,"},{"line_number":3233,"context_line":"                 expected_status\u003dhttp_client.OK)"},{"line_number":3234,"context_line":""},{"line_number":3235,"context_line":"    @test_utils.wip(\u0027This will fail because of bug #1534834. Attempt to \u0027"},{"line_number":3236,"context_line":"                    \u0027bypass creating a new trust using impersonation.\u0027)"},{"line_number":3237,"context_line":"    def test_trust_creation_bypass_policy(self):"},{"line_number":3238,"context_line":"        \"\"\"Creating trust bypassing policy."},{"line_number":3239,"context_line":""},{"line_number":3240,"context_line":"        Attempt to create a new trust with a trust token using"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a57f1b5_6234fddd","line":3237,"range":{"start_line":3235,"start_character":4,"end_line":3237,"end_character":48},"updated":"2016-02-10 07:52:16.000000000","message":"needs to be updated, bug is invalid","commit_id":"171a5f12b6f1178db97dd52a8f39b9a9360af77b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1783ef6a2230db4f6d8d601aeca0eda2d6bdc5ee","unresolved":false,"context_lines":[{"line_number":3256,"context_line":"            allow_redelegation\u003dFalse,"},{"line_number":3257,"context_line":"            redelegated_trust_id\u003dself.trust[\u0027id\u0027])"},{"line_number":3258,"context_line":""},{"line_number":3259,"context_line":"        # Attempt to create trust with trust token using impersonation"},{"line_number":3260,"context_line":"        # FIXME(jorge_munoz): This should return forbidden, but returns"},{"line_number":3261,"context_line":"        # a valid 200 OK. Bug 1534834"},{"line_number":3262,"context_line":"        self.post(\u0027/OS-TRUST/trusts\u0027,"},{"line_number":3263,"context_line":"                  body\u003d{\u0027trust\u0027: trust_ref},"},{"line_number":3264,"context_line":"                  token\u003dself.trust_token,"},{"line_number":3265,"context_line":"                  expected_status\u003dhttp_client.FORBIDDEN)"},{"line_number":3266,"context_line":""},{"line_number":3267,"context_line":"    def test_trust_creation_with_impersonated_token(self):"},{"line_number":3268,"context_line":"        # Create a trustee"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a57f1b5_42522115","line":3265,"range":{"start_line":3259,"start_character":8,"end_line":3265,"end_character":56},"updated":"2016-02-10 07:52:16.000000000","message":"needs to be updated with correct response","commit_id":"171a5f12b6f1178db97dd52a8f39b9a9360af77b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1783ef6a2230db4f6d8d601aeca0eda2d6bdc5ee","unresolved":false,"context_lines":[{"line_number":3284,"context_line":"                  token\u003dself.trust_token,"},{"line_number":3285,"context_line":"                  expected_status\u003dhttp_client.FORBIDDEN)"},{"line_number":3286,"context_line":""},{"line_number":3287,"context_line":"    @test_utils.wip(\u0027User on impersonated token does not match original \u0027"},{"line_number":3288,"context_line":"                    \u0027trustor\u0027)"},{"line_number":3289,"context_line":"    def test_impersonating_after_redelegated_trust(self):"},{"line_number":3290,"context_line":"        \"\"\"Test impersonation after redelegation."},{"line_number":3291,"context_line":""},{"line_number":3292,"context_line":"        Attempt to impersonate after a redelegated chain of trust. The user"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a57f1b5_274a9784","line":3289,"range":{"start_line":3287,"start_character":4,"end_line":3289,"end_character":57},"updated":"2016-02-10 07:52:16.000000000","message":"this too?","commit_id":"171a5f12b6f1178db97dd52a8f39b9a9360af77b"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"b9a6a5a50ac764ef5a9c822419c543f63e58db95","unresolved":false,"context_lines":[{"line_number":3316,"context_line":""},{"line_number":3317,"context_line":"        # Trust for impersonation after a redelegated trust"},{"line_number":3318,"context_line":"        trust_ref_2 \u003d unit.new_trust_ref("},{"line_number":3319,"context_line":"            trustor_user_id\u003dself.trustee_user[\u0027id\u0027],"},{"line_number":3320,"context_line":"            trustee_user_id\u003dtrustee_user_2[\u0027id\u0027],"},{"line_number":3321,"context_line":"            project_id\u003dself.project_id,"},{"line_number":3322,"context_line":"            impersonation\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a57f1b5_93d086cb","line":3319,"updated":"2016-02-09 18:58:19.000000000","message":"trustor_user_id\u003dself.user_id if you want to redelegate initial trust","commit_id":"171a5f12b6f1178db97dd52a8f39b9a9360af77b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1783ef6a2230db4f6d8d601aeca0eda2d6bdc5ee","unresolved":false,"context_lines":[{"line_number":3345,"context_line":"                            expected_status\u003dhttp_client.OK)"},{"line_number":3346,"context_line":"        resp_json \u003d json.loads(response.body)"},{"line_number":3347,"context_line":""},{"line_number":3348,"context_line":"        # Assert user on trusted token equals the original trustor"},{"line_number":3349,"context_line":"        # FIXME(jorge_munoz): User on token should should match the original"},{"line_number":3350,"context_line":"        # trustor."},{"line_number":3351,"context_line":"        self.assertEqual(self.user[\u0027id\u0027], resp_json[\u0027token\u0027][\u0027user\u0027][\u0027id\u0027])"},{"line_number":3352,"context_line":"        self.assertEqual(self.user[\u0027name\u0027], resp_json[\u0027token\u0027][\u0027user\u0027][\u0027name\u0027])"},{"line_number":3353,"context_line":""},{"line_number":3354,"context_line":"        # Assert trustor and trustee on impersonated token"},{"line_number":3355,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":7,"id":"3a57f1b5_8248195d","line":3352,"range":{"start_line":3348,"start_character":8,"end_line":3352,"end_character":79},"updated":"2016-02-10 07:52:16.000000000","message":"also needs to be updated","commit_id":"171a5f12b6f1178db97dd52a8f39b9a9360af77b"}]}
