)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"2da9ee9680c1b3ce03c2bac002904e16de322873","unresolved":false,"context_lines":[{"line_number":23,"context_line":"yet have been created in the admin sub-folder for identity"},{"line_number":24,"context_line":"because ``test_list_auth_projects`` was already present therein."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"[0] https://github.com/openstack/keystone/blob/master/keystone/auth/controllers.py#L408"},{"line_number":27,"context_line":"[1] https://github.com/openstack/keystone/blob/master/keystone/common/policies/auth.py"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Change-Id: Ie50c30bfff1900a9056aaedca7ba15b0d9573eab"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3f1d235d_03c6869b","line":26,"updated":"2017-07-03 05:22:18.000000000","message":"nit: This URL is not stable because the source code is not stable. I think it\u0027s better to specify with the commit id. And, we can use git.openstack.org instead. Yeah, I like github rendering, though :)","commit_id":"f2ce7eee113bc38d0e2c85262223abf0bc9a0fc0"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"a117d6717361bee4a9abc56114523f211c2878ae","unresolved":false,"context_lines":[{"line_number":23,"context_line":"yet have been created in the admin sub-folder for identity"},{"line_number":24,"context_line":"because ``test_list_auth_projects`` was already present therein."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"[0] https://github.com/openstack/keystone/blob/master/keystone/auth/controllers.py#L408"},{"line_number":27,"context_line":"[1] https://github.com/openstack/keystone/blob/master/keystone/common/policies/auth.py"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Change-Id: Ie50c30bfff1900a9056aaedca7ba15b0d9573eab"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3f1d235d_9f6bcd1c","line":26,"in_reply_to":"3f1d235d_03c6869b","updated":"2017-07-05 00:23:57.000000000","message":"Done","commit_id":"f2ce7eee113bc38d0e2c85262223abf0bc9a0fc0"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"498cda8123d5ade9e84b84b30e8724e4666a4933","unresolved":false,"context_lines":[{"line_number":15,"context_line":"``test_list_auth_domains`` depends on the value of the flag"},{"line_number":16,"context_line":"``CONF.identity.admin_domain_scope``: in the former case,"},{"line_number":17,"context_line":"a 403 Forbidden [0] is thrown if a domain-scoped token"},{"line_number":18,"context_line":"is passed and, in the latter case, domain-scoped tokens"},{"line_number":19,"context_line":"are required to list all domains a user has access to"},{"line_number":20,"context_line":"via domain role assignments."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3f1d235d_7643c814","line":18,"range":{"start_line":18,"start_character":3,"end_line":18,"end_character":9},"updated":"2017-07-11 10:47:40.000000000","message":"not passed","commit_id":"af0067fba0c366dd376503f8b79f7d8f7588190d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"2eb7c1d12d11b86cc371f69056b5244d45094bd6","unresolved":false,"context_lines":[{"line_number":15,"context_line":"``test_list_auth_domains`` depends on the value of the flag"},{"line_number":16,"context_line":"``CONF.identity.admin_domain_scope``: in the former case,"},{"line_number":17,"context_line":"a 403 Forbidden [0] is thrown if a domain-scoped token"},{"line_number":18,"context_line":"is passed and, in the latter case, domain-scoped tokens"},{"line_number":19,"context_line":"are required to list all domains a user has access to"},{"line_number":20,"context_line":"via domain role assignments."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3f1d235d_6e087e27","line":18,"range":{"start_line":18,"start_character":3,"end_line":18,"end_character":9},"in_reply_to":"3f1d235d_7643c814","updated":"2017-07-11 13:32:10.000000000","message":"Done","commit_id":"af0067fba0c366dd376503f8b79f7d8f7588190d"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"9e182bbafe183c072afb39e0492a36254c885d40","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Domain-scoped tokens are required to list all domains a user"},{"line_number":15,"context_line":"has access to via role assignments."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Also note that the related test doesn\u0027t require admin credentials [0]"},{"line_number":18,"context_line":"yet has been created in the admin sub-folder for identity"},{"line_number":19,"context_line":"because ``test_list_auth_projects`` was already present therein."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"7f287b81_dec1a6e6","line":17,"range":{"start_line":17,"start_character":31,"end_line":17,"end_character":69},"updated":"2017-09-03 11:26:10.000000000","message":"In the comment in the test you say an admin client is required to assign roles on the domain for the alt user, so either the commit message or the comment are wrong.","commit_id":"fc89c94825648a354904abae00bc41e0b92acc3e"}],"releasenotes/notes/additional-identity-v3-endpoints-9ec60c7d3011c397.yaml":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"da0f80f85a32099ca496c56ae3db16d2525e8205","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added ``show_auth_catalog`` and ``list_auth_domains`` endpoints to the"},{"line_number":5,"context_line":"    identity v3 client. This allows the possibility of showing the current"},{"line_number":6,"context_line":"    service catalog, as well as listing all domains a user has access to via"},{"line_number":7,"context_line":"    role assignments."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"df140735_9bf32b0b","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":9},"updated":"2017-05-31 06:18:10.000000000","message":"Add","commit_id":"8bb2d32325aa8e391c7bfcc4a7022b5a001ba27d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"ac9019a59433bfea522851ea49482b2c1e9141f3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added ``show_auth_catalog`` and ``list_auth_domains`` endpoints to the"},{"line_number":5,"context_line":"    identity v3 client. This allows the possibility of showing the current"},{"line_number":6,"context_line":"    service catalog, as well as listing all domains a user has access to via"},{"line_number":7,"context_line":"    role assignments."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"df140735_f2c0007f","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":9},"in_reply_to":"df140735_9bf32b0b","updated":"2017-05-31 12:39:22.000000000","message":"Done","commit_id":"8bb2d32325aa8e391c7bfcc4a7022b5a001ba27d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"da0f80f85a32099ca496c56ae3db16d2525e8205","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    identity v3 client. This allows the possibility of showing the current"},{"line_number":6,"context_line":"    service catalog, as well as listing all domains a user has access to via"},{"line_number":7,"context_line":"    role assignments."},{"line_number":8,"context_line":"other:"},{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    Corrects deprecated usage of property \"manage\" to \"os_primary\" in the"},{"line_number":11,"context_line":"    test ``test_get_available_project_scopes``."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"df140735_3b93ffa5","line":11,"range":{"start_line":8,"start_character":0,"end_line":11,"end_character":47},"updated":"2017-05-31 06:18:10.000000000","message":"this can be removed because https://review.openstack.org/#/c/468036/ already fixed it","commit_id":"8bb2d32325aa8e391c7bfcc4a7022b5a001ba27d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"ac9019a59433bfea522851ea49482b2c1e9141f3","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    identity v3 client. This allows the possibility of showing the current"},{"line_number":6,"context_line":"    service catalog, as well as listing all domains a user has access to via"},{"line_number":7,"context_line":"    role assignments."},{"line_number":8,"context_line":"other:"},{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    Corrects deprecated usage of property \"manage\" to \"os_primary\" in the"},{"line_number":11,"context_line":"    test ``test_get_available_project_scopes``."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"df140735_d2bf3cf9","line":11,"range":{"start_line":8,"start_character":0,"end_line":11,"end_character":47},"in_reply_to":"df140735_3b93ffa5","updated":"2017-05-31 12:39:22.000000000","message":"Done","commit_id":"8bb2d32325aa8e391c7bfcc4a7022b5a001ba27d"}],"releasenotes/notes/list-auth-domains-v3-endpoint-9ec60c7d3011c397.yaml":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"36d558b625fc3e232336e0ca988adb6e607fea66","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add `list_auth_domains`` API endpoint to the identity v3 client. This"},{"line_number":5,"context_line":"    allows the possibility of listing all domains a user has access to"},{"line_number":6,"context_line":"    via role assignments."}],"source_content_type":"text/x-yaml","patch_set":10,"id":"1f1a1f67_9d590c00","line":4,"range":{"start_line":4,"start_character":8,"end_line":4,"end_character":9},"updated":"2017-07-12 21:43:34.000000000","message":"``","commit_id":"231cd4a6f502b86616c38b260d3f843b50322318"}],"tempest/api/identity/admin/v3/test_tokens.py":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"da0f80f85a32099ca496c56ae3db16d2525e8205","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        cls.alt_user_id \u003d cls.os_alt.credentials.user_id"},{"line_number":36,"context_line":"        cls.alt_client \u003d cls.os_alt.identity_v3_client"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def _create_user_domain_role(self):"},{"line_number":39,"context_line":"        domain_id \u003d self.setup_test_domain()[\u0027id\u0027]"},{"line_number":40,"context_line":"        role_id \u003d self.setup_test_role()[\u0027id\u0027]"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_fb8d87d3","line":38,"range":{"start_line":38,"start_character":8,"end_line":38,"end_character":32},"updated":"2017-05-31 06:18:10.000000000","message":"This is used only once, and its name is a bit misleading(in fact it\u0027s only for alt user)","commit_id":"8bb2d32325aa8e391c7bfcc4a7022b5a001ba27d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"ac9019a59433bfea522851ea49482b2c1e9141f3","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        cls.alt_user_id \u003d cls.os_alt.credentials.user_id"},{"line_number":36,"context_line":"        cls.alt_client \u003d cls.os_alt.identity_v3_client"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def _create_user_domain_role(self):"},{"line_number":39,"context_line":"        domain_id \u003d self.setup_test_domain()[\u0027id\u0027]"},{"line_number":40,"context_line":"        role_id \u003d self.setup_test_role()[\u0027id\u0027]"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_927664a4","line":38,"range":{"start_line":38,"start_character":8,"end_line":38,"end_character":32},"in_reply_to":"df140735_fb8d87d3","updated":"2017-05-31 12:39:22.000000000","message":"Well, it\u0027s used in a for loop, so technically used twice, but I can move it to be an inner function and rename it.","commit_id":"8bb2d32325aa8e391c7bfcc4a7022b5a001ba27d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"ac9019a59433bfea522851ea49482b2c1e9141f3","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        return domain_id"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def _create_group_domain_role(self):"},{"line_number":52,"context_line":"        domain_id \u003d self.setup_test_domain()[\u0027id\u0027]"},{"line_number":53,"context_line":"        role_id \u003d self.setup_test_role()[\u0027id\u0027]"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_72ecf028","line":51,"range":{"start_line":51,"start_character":8,"end_line":51,"end_character":33},"updated":"2017-05-31 12:39:22.000000000","message":"Same as above.","commit_id":"8bb2d32325aa8e391c7bfcc4a7022b5a001ba27d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"da0f80f85a32099ca496c56ae3db16d2525e8205","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                          \"Domain-scoped tokens must be enabled.\")"},{"line_number":249,"context_line":"    def test_get_available_domain_scopes(self):"},{"line_number":250,"context_line":"        # Verifies that listing domains in which users have role assignments"},{"line_number":251,"context_line":"        # works by \"user_id\" and \"group_ids.\" For this test, admin client"},{"line_number":252,"context_line":"        # is used to add roles to alt user, which performs API call, to avoid"},{"line_number":253,"context_line":"        # 401 Unauthorized errors."},{"line_number":254,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_9b9fab02","line":251,"range":{"start_line":251,"start_character":43,"end_line":251,"end_character":45},"updated":"2017-05-31 06:18:10.000000000","message":"\".","commit_id":"8bb2d32325aa8e391c7bfcc4a7022b5a001ba27d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"ac9019a59433bfea522851ea49482b2c1e9141f3","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                          \"Domain-scoped tokens must be enabled.\")"},{"line_number":249,"context_line":"    def test_get_available_domain_scopes(self):"},{"line_number":250,"context_line":"        # Verifies that listing domains in which users have role assignments"},{"line_number":251,"context_line":"        # works by \"user_id\" and \"group_ids.\" For this test, admin client"},{"line_number":252,"context_line":"        # is used to add roles to alt user, which performs API call, to avoid"},{"line_number":253,"context_line":"        # 401 Unauthorized errors."},{"line_number":254,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_12ddb46f","line":251,"range":{"start_line":251,"start_character":43,"end_line":251,"end_character":45},"in_reply_to":"df140735_9b9fab02","updated":"2017-05-31 12:39:22.000000000","message":"Done","commit_id":"8bb2d32325aa8e391c7bfcc4a7022b5a001ba27d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"498cda8123d5ade9e84b84b30e8724e4666a4933","unresolved":false,"context_lines":[{"line_number":267,"context_line":"            [p for p in assigned_domain_ids"},{"line_number":268,"context_line":"             if p not in fetched_domain_ids]"},{"line_number":269,"context_line":"        self.assertEmpty(missing_domain_ids,"},{"line_number":270,"context_line":"                         \"Failed to find domain_ids %s in fetched list\" %"},{"line_number":271,"context_line":"                         \u0027, \u0027.join(missing_domain_ids))"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        # Add the alt user to a random group in a random domain with a random"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f1d235d_7d2dd944","line":270,"range":{"start_line":270,"start_character":26,"end_line":270,"end_character":70},"updated":"2017-07-11 10:47:40.000000000","message":"these 2 error will be hard to debug as same error message.\n\ncan we differentiate those with  \u0027find user\u0027s domain_ids %s\u0027 and \u0027find group user\u0027s domain_ids %s\u0027","commit_id":"af0067fba0c366dd376503f8b79f7d8f7588190d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"2eb7c1d12d11b86cc371f69056b5244d45094bd6","unresolved":false,"context_lines":[{"line_number":267,"context_line":"            [p for p in assigned_domain_ids"},{"line_number":268,"context_line":"             if p not in fetched_domain_ids]"},{"line_number":269,"context_line":"        self.assertEmpty(missing_domain_ids,"},{"line_number":270,"context_line":"                         \"Failed to find domain_ids %s in fetched list\" %"},{"line_number":271,"context_line":"                         \u0027, \u0027.join(missing_domain_ids))"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        # Add the alt user to a random group in a random domain with a random"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f1d235d_aefe9602","line":270,"range":{"start_line":270,"start_character":26,"end_line":270,"end_character":70},"in_reply_to":"3f1d235d_7d2dd944","updated":"2017-07-11 13:32:10.000000000","message":"Done","commit_id":"af0067fba0c366dd376503f8b79f7d8f7588190d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"498cda8123d5ade9e84b84b30e8724e4666a4933","unresolved":false,"context_lines":[{"line_number":285,"context_line":"            [p for p in assigned_domain_ids"},{"line_number":286,"context_line":"             if p not in fetched_domain_ids]"},{"line_number":287,"context_line":"        self.assertEmpty(missing_domain_ids,"},{"line_number":288,"context_line":"                         \"Failed to find domain_ids %s in fetched list\" %"},{"line_number":289,"context_line":"                         \u0027, \u0027.join(missing_domain_ids))"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f1d235d_3d276167","line":288,"range":{"start_line":288,"start_character":25,"end_line":288,"end_character":73},"updated":"2017-07-11 10:47:40.000000000","message":"this one.","commit_id":"af0067fba0c366dd376503f8b79f7d8f7588190d"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"2eb7c1d12d11b86cc371f69056b5244d45094bd6","unresolved":false,"context_lines":[{"line_number":285,"context_line":"            [p for p in assigned_domain_ids"},{"line_number":286,"context_line":"             if p not in fetched_domain_ids]"},{"line_number":287,"context_line":"        self.assertEmpty(missing_domain_ids,"},{"line_number":288,"context_line":"                         \"Failed to find domain_ids %s in fetched list\" %"},{"line_number":289,"context_line":"                         \u0027, \u0027.join(missing_domain_ids))"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f1d235d_8e019a07","line":288,"range":{"start_line":288,"start_character":25,"end_line":288,"end_character":73},"in_reply_to":"3f1d235d_3d276167","updated":"2017-07-11 13:32:10.000000000","message":"Done","commit_id":"af0067fba0c366dd376503f8b79f7d8f7588190d"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"38ca07bb7d53121e6bf563e3538351499a2ca6db","unresolved":false,"context_lines":[{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        # Add the alt user to a random group in a random domain with a random"},{"line_number":251,"context_line":"        # role."},{"line_number":252,"context_line":"        for _ in range(2):"},{"line_number":253,"context_line":"            domain_id \u003d _create_group_domain_role_for_alt_user()"},{"line_number":254,"context_line":"            assigned_domain_ids.append(domain_id)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        # Get available domain scopes for the alt user."},{"line_number":257,"context_line":"        available_domains \u003d self.alt_client.list_auth_domains()[\u0027domains\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f1a1f67_8021a0b7","line":254,"range":{"start_line":252,"start_character":0,"end_line":254,"end_character":49},"updated":"2017-07-13 03:03:38.000000000","message":"how about merge the two types? i.e.,\n        assigned_domain_ids \u003d []\n        for _ in range(2):\n            domain_id \u003d _create_user_domain_role_for_alt_user()\n            assigned_domain_ids.append(domain_id)\n\n            domain_id \u003d _create_group_domain_role_for_alt_user()\n            assigned_domain_ids.append(domain_id)  \n\nIt seems merging them will spare some lines and won\u0027t bring too much disvantage","commit_id":"231cd4a6f502b86616c38b260d3f843b50322318"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5880a68bd7cdf219806e9251d404b454dbf60562","unresolved":false,"context_lines":[{"line_number":247,"context_line":"            [p for p in assigned_domain_ids"},{"line_number":248,"context_line":"             if p not in fetched_domain_ids]"},{"line_number":249,"context_line":"        self.assertEmpty(missing_domain_ids,"},{"line_number":250,"context_line":"                         \"Failed to find user\u0027s domain_ids %s in fetched list\""},{"line_number":251,"context_line":"                         % \", \".join(missing_domain_ids))"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"        # Get available domain scopes for the alt user."}],"source_content_type":"text/x-python","patch_set":11,"id":"ff346bd7_ad52c8dc","line":250,"range":{"start_line":250,"start_character":41,"end_line":250,"end_character":47},"updated":"2017-07-27 03:00:11.000000000","message":"Since this includes both group/user domain_ids will have to update message here too","commit_id":"5079b8ff513a9957b0b6a67c7a5242f65174934b"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"98303b8d4f0c74551fc8a7fe967bad383bc27574","unresolved":false,"context_lines":[{"line_number":247,"context_line":"            [p for p in assigned_domain_ids"},{"line_number":248,"context_line":"             if p not in fetched_domain_ids]"},{"line_number":249,"context_line":"        self.assertEmpty(missing_domain_ids,"},{"line_number":250,"context_line":"                         \"Failed to find user\u0027s domain_ids %s in fetched list\""},{"line_number":251,"context_line":"                         % \", \".join(missing_domain_ids))"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"        # Get available domain scopes for the alt user."}],"source_content_type":"text/x-python","patch_set":11,"id":"ff346bd7_2d97f83c","line":250,"range":{"start_line":250,"start_character":41,"end_line":250,"end_character":47},"in_reply_to":"ff346bd7_ad52c8dc","updated":"2017-07-27 03:08:07.000000000","message":"yeah, now we don\u0027t distinguish group from user for simplification","commit_id":"5079b8ff513a9957b0b6a67c7a5242f65174934b"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"7fe9beddb530c357da2194d3bb98dfe42756d258","unresolved":false,"context_lines":[{"line_number":250,"context_line":"                         \"Failed to find user\u0027s domain_ids %s in fetched list\""},{"line_number":251,"context_line":"                         % \", \".join(missing_domain_ids))"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"        # Get available domain scopes for the alt user."},{"line_number":254,"context_line":"        available_domains \u003d self.alt_client.list_auth_domains()[\u0027domains\u0027]"},{"line_number":255,"context_line":"        fetched_domain_ids \u003d [i[\u0027id\u0027] for i in available_domains]"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        # Verify the expected domain IDs are in the list."},{"line_number":258,"context_line":"        missing_domain_ids \u003d \\"},{"line_number":259,"context_line":"            [p for p in assigned_domain_ids"},{"line_number":260,"context_line":"             if p not in fetched_domain_ids]"},{"line_number":261,"context_line":"        self.assertEmpty(missing_domain_ids,"},{"line_number":262,"context_line":"                         \"Failed to find group user\u0027s domain_ids %s in fetched\""},{"line_number":263,"context_line":"                         \" list\" % \", \".join(missing_domain_ids))"}],"source_content_type":"text/x-python","patch_set":11,"id":"ff346bd7_ed42103e","line":263,"range":{"start_line":253,"start_character":0,"end_line":263,"end_character":65},"updated":"2017-07-27 02:50:25.000000000","message":"These can be removed now.","commit_id":"5079b8ff513a9957b0b6a67c7a5242f65174934b"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"2a70deba617c8efcc954cc5fd298f6e7a6133591","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    @testtools.skipUnless(CONF.identity.admin_domain_scope,"},{"line_number":188,"context_line":"                          \"Domain-scoped tokens must be enabled.\")"},{"line_number":189,"context_line":"    def test_get_available_domain_scopes(self):"},{"line_number":190,"context_line":"        # Verifies that listing domains in which users have role assignments"},{"line_number":191,"context_line":"        # works by \"user_id\" and \"group_ids\". For this test, admin client"},{"line_number":192,"context_line":"        # is used to add roles to alt user, which performs API call, to avoid"},{"line_number":193,"context_line":"        # 401 Unauthorized errors."},{"line_number":194,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"9f436f4f_bb9a57c2","line":191,"range":{"start_line":190,"start_character":8,"end_line":191,"end_character":45},"updated":"2017-08-21 01:50:47.000000000","message":"the code lgtm, and I just feel this comment is confusing","commit_id":"5ac483309446f707c391040519e238c86cec4017"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"9e182bbafe183c072afb39e0492a36254c885d40","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027, \u0027alt\u0027]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @classmethod"},{"line_number":33,"context_line":"    def setup_clients(cls):"},{"line_number":34,"context_line":"        super(TokensV3TestJSON, cls).setup_clients()"},{"line_number":35,"context_line":"        cls.alt_user_id \u003d cls.os_alt.credentials.user_id"},{"line_number":36,"context_line":"        cls.alt_client \u003d cls.os_alt.identity_v3_client"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    @decorators.idempotent_id(\u00270f9f5a5f-d5cd-4a86-8a5b-c5ded151f212\u0027)"},{"line_number":39,"context_line":"    def test_tokens(self):"}],"source_content_type":"text/x-python","patch_set":14,"id":"7f287b81_1e7cceb3","line":36,"range":{"start_line":32,"start_character":0,"end_line":36,"end_character":54},"updated":"2017-09-03 11:26:10.000000000","message":"NIT: do we really need this?","commit_id":"fc89c94825648a354904abae00bc41e0b92acc3e"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"ee59b7b805e314d5f3e3b35162cca839a0651367","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027, \u0027alt\u0027]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @classmethod"},{"line_number":33,"context_line":"    def setup_clients(cls):"},{"line_number":34,"context_line":"        super(TokensV3TestJSON, cls).setup_clients()"},{"line_number":35,"context_line":"        cls.alt_user_id \u003d cls.os_alt.credentials.user_id"},{"line_number":36,"context_line":"        cls.alt_client \u003d cls.os_alt.identity_v3_client"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    @decorators.idempotent_id(\u00270f9f5a5f-d5cd-4a86-8a5b-c5ded151f212\u0027)"},{"line_number":39,"context_line":"    def test_tokens(self):"}],"source_content_type":"text/x-python","patch_set":14,"id":"7f287b81_639b1d66","line":36,"range":{"start_line":32,"start_character":0,"end_line":36,"end_character":54},"in_reply_to":"7f287b81_1e7cceb3","updated":"2017-09-05 02:31:09.000000000","message":"Fixed in next patch.","commit_id":"fc89c94825648a354904abae00bc41e0b92acc3e"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"9e182bbafe183c072afb39e0492a36254c885d40","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        admin_user_id \u003d self.os_admin.credentials.user_id"},{"line_number":160,"context_line":"        admin_role_id \u003d self.get_role_by_name(CONF.identity.admin_role)[\u0027id\u0027]"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        # Grant the user the role on both admin and non-admin projects."},{"line_number":163,"context_line":"        self.roles_client.create_user_role_on_project("},{"line_number":164,"context_line":"            manager_project_id, admin_user_id, admin_role_id)"},{"line_number":165,"context_line":"        self.addCleanup("}],"source_content_type":"text/x-python","patch_set":14,"id":"7f287b81_9e49de8c","line":162,"range":{"start_line":162,"start_character":42,"end_line":162,"end_character":62},"updated":"2017-09-03 11:26:10.000000000","message":"nit: unrelated change","commit_id":"fc89c94825648a354904abae00bc41e0b92acc3e"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"ee59b7b805e314d5f3e3b35162cca839a0651367","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        admin_user_id \u003d self.os_admin.credentials.user_id"},{"line_number":160,"context_line":"        admin_role_id \u003d self.get_role_by_name(CONF.identity.admin_role)[\u0027id\u0027]"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        # Grant the user the role on both admin and non-admin projects."},{"line_number":163,"context_line":"        self.roles_client.create_user_role_on_project("},{"line_number":164,"context_line":"            manager_project_id, admin_user_id, admin_role_id)"},{"line_number":165,"context_line":"        self.addCleanup("}],"source_content_type":"text/x-python","patch_set":14,"id":"7f287b81_8398496a","line":162,"range":{"start_line":162,"start_character":42,"end_line":162,"end_character":62},"in_reply_to":"7f287b81_9e49de8c","updated":"2017-09-05 02:31:09.000000000","message":"Fixed in next patch.","commit_id":"fc89c94825648a354904abae00bc41e0b92acc3e"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"9e182bbafe183c072afb39e0492a36254c885d40","unresolved":false,"context_lines":[{"line_number":184,"context_line":"                         \u0027, \u0027.join(missing_project_ids))"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    @decorators.idempotent_id(\u0027ec5ecb05-af64-4c04-ac86-4d9f6f12f185\u0027)"},{"line_number":187,"context_line":"    @testtools.skipUnless(CONF.identity.admin_domain_scope,"},{"line_number":188,"context_line":"                          \"Domain-scoped tokens must be enabled.\")"},{"line_number":189,"context_line":"    def test_get_available_domain_scopes(self):"},{"line_number":190,"context_line":"        # Test for verifying that listing domain scopes for a user works if"},{"line_number":191,"context_line":"        # the user has a domain role or belongs to a group that has a domain"}],"source_content_type":"text/x-python","patch_set":14,"id":"7f287b81_5e8496b1","line":188,"range":{"start_line":187,"start_character":0,"end_line":188,"end_character":66},"updated":"2017-09-03 11:26:10.000000000","message":"That\u0027s not how the configuration option was meant to be used.\n\nThe flag was introduced to be able to run tempest tests against cloud that use policy.v3cloudsample.json, which requires domain scoped tokens to be used for several admin API calls.\n\nAs far as I know domain scoped tokens are always available on keystone side (as long as v3 is in use). If your test requires a domain scoped token to be used regardless of the policy on keystone side, you can just configure your auth provider to use a domain scoped token. Otherwise you can simply rely on the existing machinery to do the right thing.","commit_id":"fc89c94825648a354904abae00bc41e0b92acc3e"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"ee59b7b805e314d5f3e3b35162cca839a0651367","unresolved":false,"context_lines":[{"line_number":184,"context_line":"                         \u0027, \u0027.join(missing_project_ids))"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    @decorators.idempotent_id(\u0027ec5ecb05-af64-4c04-ac86-4d9f6f12f185\u0027)"},{"line_number":187,"context_line":"    @testtools.skipUnless(CONF.identity.admin_domain_scope,"},{"line_number":188,"context_line":"                          \"Domain-scoped tokens must be enabled.\")"},{"line_number":189,"context_line":"    def test_get_available_domain_scopes(self):"},{"line_number":190,"context_line":"        # Test for verifying that listing domain scopes for a user works if"},{"line_number":191,"context_line":"        # the user has a domain role or belongs to a group that has a domain"}],"source_content_type":"text/x-python","patch_set":14,"id":"7f287b81_a3910549","line":188,"range":{"start_line":187,"start_character":0,"end_line":188,"end_character":66},"in_reply_to":"7f287b81_5e8496b1","updated":"2017-09-05 02:31:09.000000000","message":"Thanks for the thorough explanation. Fixed in next patch.","commit_id":"fc89c94825648a354904abae00bc41e0b92acc3e"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"9e182bbafe183c072afb39e0492a36254c885d40","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            role_id \u003d self.setup_test_role()[\u0027id\u0027]"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"            # Create a role association between the user and domain."},{"line_number":200,"context_line":"            self.roles_client.create_user_role_on_domain("},{"line_number":201,"context_line":"                domain_id, self.alt_user_id, role_id)"},{"line_number":202,"context_line":"            self.addCleanup("},{"line_number":203,"context_line":"                self.roles_client.delete_role_from_user_on_domain,"}],"source_content_type":"text/x-python","patch_set":14,"id":"7f287b81_7e7512cc","line":200,"range":{"start_line":200,"start_character":16,"end_line":200,"end_character":29},"updated":"2017-09-03 11:26:10.000000000","message":"I really dislike these aliases - they are so very non-obvious.","commit_id":"fc89c94825648a354904abae00bc41e0b92acc3e"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"ee59b7b805e314d5f3e3b35162cca839a0651367","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            role_id \u003d self.setup_test_role()[\u0027id\u0027]"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"            # Create a role association between the user and domain."},{"line_number":200,"context_line":"            self.roles_client.create_user_role_on_domain("},{"line_number":201,"context_line":"                domain_id, self.alt_user_id, role_id)"},{"line_number":202,"context_line":"            self.addCleanup("},{"line_number":203,"context_line":"                self.roles_client.delete_role_from_user_on_domain,"}],"source_content_type":"text/x-python","patch_set":14,"id":"7f287b81_e3714d46","line":200,"range":{"start_line":200,"start_character":16,"end_line":200,"end_character":29},"in_reply_to":"7f287b81_7e7512cc","updated":"2017-09-05 02:31:09.000000000","message":"It\u0027s already used on L88 above (along with other places) -- shall I remove the aliases there as well?","commit_id":"fc89c94825648a354904abae00bc41e0b92acc3e"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"548ed340c35728e6031b16b80475c47f65a9eb46","unresolved":false,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        # Verify the expected domain IDs are in the list."},{"line_number":239,"context_line":"        missing_domain_ids \u003d \\"},{"line_number":240,"context_line":"            [p for p in assigned_domain_ids"},{"line_number":241,"context_line":"             if p not in fetched_domain_ids]"},{"line_number":242,"context_line":"        self.assertEmpty(missing_domain_ids,"},{"line_number":243,"context_line":"                         \"Failed to find domain_ids %s in fetched list\""},{"line_number":244,"context_line":"                         % \", \".join(missing_domain_ids))"}],"source_content_type":"text/x-python","patch_set":16,"id":"7f287b81_9b0d3037","line":241,"range":{"start_line":240,"start_character":0,"end_line":241,"end_character":44},"updated":"2017-09-06 07:15:38.000000000","message":"can be put in one line","commit_id":"431c67a0181e2388a8eec67a3af814643b01a84f"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"595c3b7760858e7eeafaa4e54ebd1d01ec843173","unresolved":false,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        # Verify the expected domain IDs are in the list."},{"line_number":239,"context_line":"        missing_domain_ids \u003d \\"},{"line_number":240,"context_line":"            [p for p in assigned_domain_ids"},{"line_number":241,"context_line":"             if p not in fetched_domain_ids]"},{"line_number":242,"context_line":"        self.assertEmpty(missing_domain_ids,"},{"line_number":243,"context_line":"                         \"Failed to find domain_ids %s in fetched list\""},{"line_number":244,"context_line":"                         % \", \".join(missing_domain_ids))"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f2577a7_8065b6e3","line":241,"range":{"start_line":240,"start_character":0,"end_line":241,"end_character":44},"in_reply_to":"7f287b81_9b0d3037","updated":"2017-09-13 22:20:18.000000000","message":"Done, also fixed for L172.","commit_id":"431c67a0181e2388a8eec67a3af814643b01a84f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"94ecda52f5cc964c6d7f991995b05726fa03a039","unresolved":false,"context_lines":[{"line_number":147,"context_line":"                         token_auth[\u0027token\u0027][\u0027project\u0027][\u0027name\u0027])"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    @decorators.idempotent_id(\u002708ed85ce-2ba8-4864-b442-bcc61f16ae89\u0027)"},{"line_number":150,"context_line":"    def test_get_available_project_scopes(self):"},{"line_number":151,"context_line":"        manager_project_id \u003d self.os_primary.credentials.project_id"},{"line_number":152,"context_line":"        admin_user_id \u003d self.os_admin.credentials.user_id"},{"line_number":153,"context_line":"        admin_role_id \u003d self.get_role_by_name(CONF.identity.admin_role)[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":19,"id":"3f4b6375_4e2d5da6","line":150,"range":{"start_line":150,"start_character":8,"end_line":150,"end_character":41},"updated":"2017-10-26 04:49:52.000000000","message":"I\u0027m not sure why this test is in this module...","commit_id":"60ebc5d0e35c806bf882a0bf99453702ad0749ad"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"3f2ec412cad895df19acd252bd2cd97bf107b232","unresolved":false,"context_lines":[{"line_number":147,"context_line":"                         token_auth[\u0027token\u0027][\u0027project\u0027][\u0027name\u0027])"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    @decorators.idempotent_id(\u002708ed85ce-2ba8-4864-b442-bcc61f16ae89\u0027)"},{"line_number":150,"context_line":"    def test_get_available_project_scopes(self):"},{"line_number":151,"context_line":"        manager_project_id \u003d self.os_primary.credentials.project_id"},{"line_number":152,"context_line":"        admin_user_id \u003d self.os_admin.credentials.user_id"},{"line_number":153,"context_line":"        admin_role_id \u003d self.get_role_by_name(CONF.identity.admin_role)[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":19,"id":"3f4b6375_c001ff06","line":150,"range":{"start_line":150,"start_character":8,"end_line":150,"end_character":41},"in_reply_to":"3f4b6375_4e2d5da6","updated":"2017-10-26 21:42:53.000000000","message":"Yeah, I didn\u0027t quite understand it either, but I have no problem following up moving these to a more appropriate module.","commit_id":"60ebc5d0e35c806bf882a0bf99453702ad0749ad"}],"tempest/tests/lib/services/identity/v3/test_identity_client.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"2da9ee9680c1b3ce03c2bac002904e16de322873","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _test_show_auth_catalog(self, bytes_body\u003dFalse):"},{"line_number":149,"context_line":"        self.check_service_client_function("},{"line_number":150,"context_line":"            self.client.show_auth_catalog,"},{"line_number":151,"context_line":"            \u0027tempest.lib.common.rest_client.RestClient.get\u0027,"},{"line_number":152,"context_line":"            self.FAKE_AUTH_CATALOG,"},{"line_number":153,"context_line":"            bytes_body)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_e3c02a7f","line":150,"updated":"2017-07-03 05:22:18.000000000","message":"I think we don\u0027t need to test the bytes_body\u003dTrue case because this method doesn\u0027t have a request body.","commit_id":"f2ce7eee113bc38d0e2c85262223abf0bc9a0fc0"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"c586e5d9c1f4703d198a16cdfb3abcb40431bf4a","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _test_show_auth_catalog(self, bytes_body\u003dFalse):"},{"line_number":149,"context_line":"        self.check_service_client_function("},{"line_number":150,"context_line":"            self.client.show_auth_catalog,"},{"line_number":151,"context_line":"            \u0027tempest.lib.common.rest_client.RestClient.get\u0027,"},{"line_number":152,"context_line":"            self.FAKE_AUTH_CATALOG,"},{"line_number":153,"context_line":"            bytes_body)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_056aceec","line":150,"updated":"2017-07-05 02:51:17.000000000","message":"I was thinking the bytes_body is used for request because the doc[1] says \"Whether to use UTF-8 encoding for request\". But I re-read the code, yeah, I was wrong.. I did some wrong reviews for several days.\n\n[1] https://github.com/openstack/tempest/blob/479863dd47beeb35aef5fd5541956658940c48cc/tempest/tests/lib/services/base.py#L43","commit_id":"f2ce7eee113bc38d0e2c85262223abf0bc9a0fc0"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"a117d6717361bee4a9abc56114523f211c2878ae","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _test_show_auth_catalog(self, bytes_body\u003dFalse):"},{"line_number":149,"context_line":"        self.check_service_client_function("},{"line_number":150,"context_line":"            self.client.show_auth_catalog,"},{"line_number":151,"context_line":"            \u0027tempest.lib.common.rest_client.RestClient.get\u0027,"},{"line_number":152,"context_line":"            self.FAKE_AUTH_CATALOG,"},{"line_number":153,"context_line":"            bytes_body)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_9f262d15","line":150,"in_reply_to":"3f1d235d_e3c02a7f","updated":"2017-07-05 00:23:57.000000000","message":"Thanks for the review Mayasuki. I\u0027m kind of confused by this. I thought bytes_body was used for creating a fake response with utf-8 encoding [0]. So isn\u0027t bytes_body used with API requests that have a response body? Why are we concerned with request body?\n\n[0] https://github.com/openstack/tempest/blob/479863dd47beeb35aef5fd5541956658940c48cc/tempest/tests/lib/services/base.py#L29","commit_id":"f2ce7eee113bc38d0e2c85262223abf0bc9a0fc0"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"2da9ee9680c1b3ce03c2bac002904e16de322873","unresolved":false,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def _test_list_auth_domains(self, bytes_body\u003dFalse):"},{"line_number":163,"context_line":"        self.check_service_client_function("},{"line_number":164,"context_line":"            self.client.list_auth_domains,"},{"line_number":165,"context_line":"            \u0027tempest.lib.common.rest_client.RestClient.get\u0027,"},{"line_number":166,"context_line":"            self.FAKE_AUTH_DOMAINS,"},{"line_number":167,"context_line":"            bytes_body)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_c3bf6ef9","line":164,"updated":"2017-07-03 05:22:18.000000000","message":"same here","commit_id":"f2ce7eee113bc38d0e2c85262223abf0bc9a0fc0"}]}
