)]}'
{"keystone/tests/unit/test_v2.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"750fc90907f098711e3327dc2d6a2bd5a6363a6f","unresolved":false,"context_lines":[{"line_number":1536,"context_line":"        rescoped_token \u003d resp.result[\u0027access\u0027][\u0027token\u0027][\u0027id\u0027]"},{"line_number":1537,"context_line":"        rescoped_expiration \u003d resp.result[\u0027access\u0027][\u0027token\u0027][\u0027expires\u0027]"},{"line_number":1538,"context_line":"        self.assertNotEqual(original_token, rescoped_token)"},{"line_number":1539,"context_line":"        self.assertEqual(original_expiration, rescoped_expiration)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_1fdb037e","line":1539,"updated":"2015-06-29 16:49:12.000000000","message":"This is going to fail, because of the following: \n\n    \u003e original_expiration\n    u\u00272015-06-29T17:25:52.853542Z\u0027\n    \u003e rescoped_expiration\n    u\u00272015-06-29T17:25:52.000000Z\u0027\n\nThese are valid, as described here https://bugs.launchpad.net/keystone/+bug/1459790","commit_id":"3fa761733a1e715876dbde748b5d244e7c72bc33"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a8797de03a149c3b7df57230b2b60f46fa8a3c75","unresolved":false,"context_lines":[{"line_number":1497,"context_line":"            token\u003dCONF.admin_token,"},{"line_number":1498,"context_line":"            expected_status\u003d200)"},{"line_number":1499,"context_line":""},{"line_number":1500,"context_line":"    def test_rescoped_tokens_maintain_original_expiration(self):"},{"line_number":1501,"context_line":"        project_ref \u003d self.new_project_ref()"},{"line_number":1502,"context_line":"        self.resource_api.create_project(project_ref[\u0027id\u0027], project_ref)"},{"line_number":1503,"context_line":"        self.assignment_api.add_role_to_user_and_project(self.user_foo[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_7fd61d50","line":1500,"updated":"2015-07-15 19:19:00.000000000","message":"why is this test specific to fernet?","commit_id":"1f67b8667e835dfe9ef7ac388f2a74da9943026a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a8797de03a149c3b7df57230b2b60f46fa8a3c75","unresolved":false,"context_lines":[{"line_number":1505,"context_line":"                                                         self.role_admin[\u0027id\u0027])"},{"line_number":1506,"context_line":"        resp \u003d self.public_request("},{"line_number":1507,"context_line":"            method\u003d\u0027POST\u0027,"},{"line_number":1508,"context_line":""},{"line_number":1509,"context_line":"            path\u003d\u0027/v2.0/tokens\u0027,"},{"line_number":1510,"context_line":"            body\u003d{"},{"line_number":1511,"context_line":"                \u0027auth\u0027: {"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_ff930d59","line":1508,"updated":"2015-07-15 19:19:00.000000000","message":"remove blank line","commit_id":"1f67b8667e835dfe9ef7ac388f2a74da9943026a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"5b95b67f52f88ef2554a31ac44dddc8533102124","unresolved":false,"context_lines":[{"line_number":1505,"context_line":"                                                         self.role_admin[\u0027id\u0027])"},{"line_number":1506,"context_line":"        resp \u003d self.public_request("},{"line_number":1507,"context_line":"            method\u003d\u0027POST\u0027,"},{"line_number":1508,"context_line":""},{"line_number":1509,"context_line":"            path\u003d\u0027/v2.0/tokens\u0027,"},{"line_number":1510,"context_line":"            body\u003d{"},{"line_number":1511,"context_line":"                \u0027auth\u0027: {"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_c579a994","line":1508,"in_reply_to":"9a41bdd9_ff930d59","updated":"2015-08-12 18:17:46.000000000","message":"Done","commit_id":"1f67b8667e835dfe9ef7ac388f2a74da9943026a"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"d60c6333d223c70f2fdf20a277bcb5b4d69c2cbd","unresolved":false,"context_lines":[{"line_number":1515,"context_line":"                        \u0027password\u0027: self.user_foo[\u0027password\u0027]"},{"line_number":1516,"context_line":"                    }"},{"line_number":1517,"context_line":"                }"},{"line_number":1518,"context_line":"            },"},{"line_number":1519,"context_line":"            expected_status\u003d200)"},{"line_number":1520,"context_line":"        original_token \u003d resp.result[\u0027access\u0027][\u0027token\u0027][\u0027id\u0027]"},{"line_number":1521,"context_line":"        original_expiration \u003d resp.result[\u0027access\u0027][\u0027token\u0027][\u0027expires\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_826c21d1","line":1518,"updated":"2015-07-01 18:38:37.000000000","message":"This test may need to refactor when we decided to disallow rescoping using a scoped token. There were security concerns with rescoping using a scoped token.\n\nMay want to consider change recoping from an unscoped token to reflect the real world use case.","commit_id":"1f67b8667e835dfe9ef7ac388f2a74da9943026a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"5b95b67f52f88ef2554a31ac44dddc8533102124","unresolved":false,"context_lines":[{"line_number":1515,"context_line":"                        \u0027password\u0027: self.user_foo[\u0027password\u0027]"},{"line_number":1516,"context_line":"                    }"},{"line_number":1517,"context_line":"                }"},{"line_number":1518,"context_line":"            },"},{"line_number":1519,"context_line":"            expected_status\u003d200)"},{"line_number":1520,"context_line":"        original_token \u003d resp.result[\u0027access\u0027][\u0027token\u0027][\u0027id\u0027]"},{"line_number":1521,"context_line":"        original_expiration \u003d resp.result[\u0027access\u0027][\u0027token\u0027][\u0027expires\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_657a1579","line":1518,"in_reply_to":"ba3cc151_826c21d1","updated":"2015-08-12 18:17:46.000000000","message":"comment added.","commit_id":"1f67b8667e835dfe9ef7ac388f2a74da9943026a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a8797de03a149c3b7df57230b2b60f46fa8a3c75","unresolved":false,"context_lines":[{"line_number":1522,"context_line":""},{"line_number":1523,"context_line":"        resp \u003d self.public_request("},{"line_number":1524,"context_line":"            method\u003d\u0027POST\u0027,"},{"line_number":1525,"context_line":""},{"line_number":1526,"context_line":"            path\u003d\u0027/v2.0/tokens\u0027,"},{"line_number":1527,"context_line":"            body\u003d{"},{"line_number":1528,"context_line":"                \u0027auth\u0027: {"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_bf99057b","line":1525,"updated":"2015-07-15 19:19:00.000000000","message":"remove blank line","commit_id":"1f67b8667e835dfe9ef7ac388f2a74da9943026a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"5b95b67f52f88ef2554a31ac44dddc8533102124","unresolved":false,"context_lines":[{"line_number":1522,"context_line":""},{"line_number":1523,"context_line":"        resp \u003d self.public_request("},{"line_number":1524,"context_line":"            method\u003d\u0027POST\u0027,"},{"line_number":1525,"context_line":""},{"line_number":1526,"context_line":"            path\u003d\u0027/v2.0/tokens\u0027,"},{"line_number":1527,"context_line":"            body\u003d{"},{"line_number":1528,"context_line":"                \u0027auth\u0027: {"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_25996dc4","line":1525,"in_reply_to":"9a41bdd9_bf99057b","updated":"2015-08-12 18:17:46.000000000","message":"Done","commit_id":"1f67b8667e835dfe9ef7ac388f2a74da9943026a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"df730a0ad59484e9396ecd0509673ffff201e849","unresolved":false,"context_lines":[{"line_number":1536,"context_line":"        rescoped_token \u003d resp.result[\u0027access\u0027][\u0027token\u0027][\u0027id\u0027]"},{"line_number":1537,"context_line":"        rescoped_expiration \u003d resp.result[\u0027access\u0027][\u0027token\u0027][\u0027expires\u0027]"},{"line_number":1538,"context_line":"        self.assertNotEqual(original_token, rescoped_token)"},{"line_number":1539,"context_line":"        self.assertEqual(original_expiration[:original_expiration.find(\u0027.\u0027)],"},{"line_number":1540,"context_line":"                         rescoped_expiration[:rescoped_expiration.find(\u0027.\u0027)])"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_3fb20e4d","line":1539,"updated":"2015-07-01 18:17:56.000000000","message":"are we good with this? \n\n    \u003e original_expiration\n    u\u00272015-06-29T17:25:52.853542Z\u0027\n    \u003e original_expiration[:original_expiration.find(\u0027.\u0027)]\n    u\u00272015-06-29T17:25:52\u0027","commit_id":"1f67b8667e835dfe9ef7ac388f2a74da9943026a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"5b95b67f52f88ef2554a31ac44dddc8533102124","unresolved":false,"context_lines":[{"line_number":1536,"context_line":"        rescoped_token \u003d resp.result[\u0027access\u0027][\u0027token\u0027][\u0027id\u0027]"},{"line_number":1537,"context_line":"        rescoped_expiration \u003d resp.result[\u0027access\u0027][\u0027token\u0027][\u0027expires\u0027]"},{"line_number":1538,"context_line":"        self.assertNotEqual(original_token, rescoped_token)"},{"line_number":1539,"context_line":"        self.assertEqual(original_expiration[:original_expiration.find(\u0027.\u0027)],"},{"line_number":1540,"context_line":"                         rescoped_expiration[:rescoped_expiration.find(\u0027.\u0027)])"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_4524b90b","line":1539,"in_reply_to":"9a41bdd9_3f0e558c","updated":"2015-08-12 18:17:46.000000000","message":"this was actually fixed by Roxana in https://review.openstack.org/#/c/210037/","commit_id":"1f67b8667e835dfe9ef7ac388f2a74da9943026a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a8797de03a149c3b7df57230b2b60f46fa8a3c75","unresolved":false,"context_lines":[{"line_number":1536,"context_line":"        rescoped_token \u003d resp.result[\u0027access\u0027][\u0027token\u0027][\u0027id\u0027]"},{"line_number":1537,"context_line":"        rescoped_expiration \u003d resp.result[\u0027access\u0027][\u0027token\u0027][\u0027expires\u0027]"},{"line_number":1538,"context_line":"        self.assertNotEqual(original_token, rescoped_token)"},{"line_number":1539,"context_line":"        self.assertEqual(original_expiration[:original_expiration.find(\u0027.\u0027)],"},{"line_number":1540,"context_line":"                         rescoped_expiration[:rescoped_expiration.find(\u0027.\u0027)])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_3f0e558c","line":1539,"in_reply_to":"ba3cc151_3fb20e4d","updated":"2015-07-15 19:19:00.000000000","message":"This should be more explicit and also have a comment what\u0027s going on here.","commit_id":"1f67b8667e835dfe9ef7ac388f2a74da9943026a"}],"keystone/token/providers/fernet/core.py":[{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"3ae9137cb1f68c03a80f1fc768857005a8e243ce","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            token\u003dtoken_ref,"},{"line_number":85,"context_line":"            include_catalog\u003dFalse,"},{"line_number":86,"context_line":"            audit_info\u003daudit_ids,"},{"line_number":87,"context_line":"            expires\u003dexpires)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        expires_at \u003d v3_token_data[\u0027token\u0027][\u0027expires_at\u0027]"},{"line_number":90,"context_line":"        token_id \u003d self.token_formatter.create_token(user_id, expires_at,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_1c0a3127","line":87,"updated":"2015-06-29 16:44:17.000000000","message":"It needs to be tested that expiration time is maintained. Also I haven\u0027t find such test in the commit chain.","commit_id":"1ba3efb1541d5ce463e73eddfe0392f3bba077a8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a8797de03a149c3b7df57230b2b60f46fa8a3c75","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            project_id \u003d token_ref[\u0027tenant\u0027][\u0027id\u0027]"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        # maintain expiration time across rescopes"},{"line_number":63,"context_line":"        expires \u003d token_ref.get(\u0027expires\u0027, provider.default_expire_time())"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        parent_audit_id \u003d token_ref.get(\u0027parent_audit_id\u0027)"},{"line_number":66,"context_line":"        # If parent_audit_id is defined then a token authentication was made"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_bf29059d","line":63,"updated":"2015-07-15 19:19:00.000000000","message":"remove \", provider.default_expire_time()\" and just let get_token_data pick the expires time if there is none.","commit_id":"1f67b8667e835dfe9ef7ac388f2a74da9943026a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"5b95b67f52f88ef2554a31ac44dddc8533102124","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            project_id \u003d token_ref[\u0027tenant\u0027][\u0027id\u0027]"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        # maintain expiration time across rescopes"},{"line_number":63,"context_line":"        expires \u003d token_ref.get(\u0027expires\u0027, provider.default_expire_time())"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        parent_audit_id \u003d token_ref.get(\u0027parent_audit_id\u0027)"},{"line_number":66,"context_line":"        # If parent_audit_id is defined then a token authentication was made"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_65cf7529","line":63,"in_reply_to":"9a41bdd9_bf29059d","updated":"2015-08-12 18:17:46.000000000","message":"Done","commit_id":"1f67b8667e835dfe9ef7ac388f2a74da9943026a"}]}
