)]}'
{"patrole_tempest_plugin/tests/api/identity/v3/rbac_base.py":[{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"c2bbbb31c8ddc0db8bd5e21689ff5c78c3d09229","unresolved":false,"context_lines":[{"line_number":19,"context_line":"CONF \u003d config.CONF"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class BaseIdentityV3RbacTest(base.BaseIdentityV3AdminTest):"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3a461143_70874fd7","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":59},"updated":"2017-01-27 19:42:55.000000000","message":"Why are non-admin tests extending an admin base class?","commit_id":"105aa11f191d6755f3e2d967c54fd8ed7f04d509"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"4be8a9c5d8d1c9edab90b931651fba87c9b376b9","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        super(BaseIdentityV3RbacAdminTest, cls).resource_setup()"},{"line_number":39,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":40,"context_line":"        cls.admin_client \u003d cls.os_adm.identity_v3_client"},{"line_number":41,"context_line":"        cls.users_client \u003d cls.os.users_v3_client"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a461143_7f447b1a","line":41,"range":{"start_line":41,"start_character":8,"end_line":41,"end_character":49},"updated":"2017-01-27 21:42:16.000000000","message":"Is there a reason not to use the os_adm client?  Either way, a v3_client already exists (either cls.non_admin_users_client or cls.users_client).","commit_id":"a922655d9e446c8afd9509ad3c2d1b92b72feb49"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"1f583c6b0c8adad9db54dc478a2f9cad0d269cd6","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        super(BaseIdentityV3RbacAdminTest, cls).setup_clients()"},{"line_number":39,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":40,"context_line":"        cls.admin_client \u003d cls.os_adm.identity_v3_client"},{"line_number":41,"context_line":"        cls.users_client \u003d cls.os.users_v3_client"},{"line_number":42,"context_line":"        cls.projects_client \u003d cls.os.projects_client"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a461143_a5647fe5","line":41,"range":{"start_line":41,"start_character":8,"end_line":41,"end_character":49},"updated":"2017-02-01 22:30:46.000000000","message":"This can be replaced with the non_admin_users_client created in the BaseIdentityV3Test in Tempest.","commit_id":"296affb6412567e12e51ba1b046eb07e41c8f775"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"1f583c6b0c8adad9db54dc478a2f9cad0d269cd6","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":40,"context_line":"        cls.admin_client \u003d cls.os_adm.identity_v3_client"},{"line_number":41,"context_line":"        cls.users_client \u003d cls.os.users_v3_client"},{"line_number":42,"context_line":"        cls.projects_client \u003d cls.os.projects_client"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a461143_85406337","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":52},"updated":"2017-02-01 22:30:46.000000000","message":"This can be replaced with the cls.non_admin_projects_client created in the BaseIdentityV3Test in Tempest.","commit_id":"296affb6412567e12e51ba1b046eb07e41c8f775"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"14e1c5cf33377f378a6460375de5340a4b4ffc1d","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        super(BaseIdentityV3RbacAdminTest, cls).resource_setup()"},{"line_number":39,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":40,"context_line":"        cls.admin_client \u003d cls.os_adm.identity_v3_client"},{"line_number":41,"context_line":"        cls.users_client \u003d cls.os.users_v3_client"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a430d35_1d5084d3","line":41,"range":{"start_line":41,"start_character":8,"end_line":41,"end_character":49},"updated":"2017-02-08 20:16:08.000000000","message":"Is this ever used?","commit_id":"d52bebd451d237587b219727a0e2f9033ce48ec4"}],"patrole_tempest_plugin/tests/api/identity/v3/test_users_rbac.py":[{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"abdfa655b5a55a6ed84e3d85331f737cee2dc1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 ATT Corporation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_d91a526e","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":20},"updated":"2017-01-25 22:18:32.000000000","message":"Should be \"2017 AT\u0026T\"","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"31c04d81841e1ccfc3ab6a87b25c8d9bce843ffb","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import logging"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from patrole_tempest_plugin.tests.api.identity.v3 import test_v3_base_rbac"},{"line_number":19,"context_line":"from tempest.lib.common.utils import data_utils"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_1e7e80e4","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":14},"updated":"2017-01-25 22:13:07.000000000","message":"Are we using this?  If yes, use oslo.log, if no delete.","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"31c04d81841e1ccfc3ab6a87b25c8d9bce843ffb","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from tempest import config"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"CONF \u003d config.CONF"},{"line_number":27,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class IdentityUserV3AdminRbacTest(test_rbac_v3_base.BaseIdentityV3RbacTest):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_5e8808e8","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":33},"updated":"2017-01-25 22:13:07.000000000","message":"See above.","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"abdfa655b5a55a6ed84e3d85331f737cee2dc1d6","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            Create User Test     (keystone user-create)"},{"line_number":39,"context_line":"        \"\"\""},{"line_number":40,"context_line":"        try:"},{"line_number":41,"context_line":"            user_name \u003d data_utils.rand_name(\u0027test_create_user\u0027)"},{"line_number":42,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":43,"context_line":"            self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        finally:"},{"line_number":46,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_fe30d409","line":43,"range":{"start_line":41,"start_character":12,"end_line":43,"end_character":64},"updated":"2017-01-25 22:18:32.000000000","message":"Tempest has a built-in create user function that automatically cleans up after itself. Please use that instead","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"ee9312a87f8b2f9125ef3a3ba5205cf7857b83d0","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            Create User Test     (keystone user-create)"},{"line_number":39,"context_line":"        \"\"\""},{"line_number":40,"context_line":"        try:"},{"line_number":41,"context_line":"            user_name \u003d data_utils.rand_name(\u0027test_create_user\u0027)"},{"line_number":42,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":43,"context_line":"            self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        finally:"},{"line_number":46,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_13faf242","line":43,"range":{"start_line":41,"start_character":12,"end_line":43,"end_character":64},"in_reply_to":"3a461143_198dba31","updated":"2017-01-26 01:16:22.000000000","message":"I don\u0027t see why the password matters. Are you using it for something? It doesn\u0027t seem like it.","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23659,"name":"Jaewoo Park","email":"jaewoopark91@gmail.com","username":"aselius"},"change_message_id":"110ffd72c1340807606c591de348a2797f591a67","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            Create User Test     (keystone user-create)"},{"line_number":39,"context_line":"        \"\"\""},{"line_number":40,"context_line":"        try:"},{"line_number":41,"context_line":"            user_name \u003d data_utils.rand_name(\u0027test_create_user\u0027)"},{"line_number":42,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":43,"context_line":"            self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        finally:"},{"line_number":46,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_198dba31","line":43,"range":{"start_line":41,"start_character":12,"end_line":43,"end_character":64},"in_reply_to":"3a461143_fe30d409","updated":"2017-01-26 00:05:48.000000000","message":"this is actually using the _create_test_user from tempest/api/identity base. But it generates a random password when it does as compared to hitting the user client to create user and then doing addCleanup. Thoughts?","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"31c04d81841e1ccfc3ab6a87b25c8d9bce843ffb","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":43,"context_line":"            self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        finally:"},{"line_number":46,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dFalse)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":49,"context_line":"                                 rule\u003d\"identity:update_user\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_7e54e453","line":46,"range":{"start_line":45,"start_character":8,"end_line":46,"end_character":64},"updated":"2017-01-25 22:13:07.000000000","message":"Remove this and put it in a tearDown (see other tests for example)","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"abdfa655b5a55a6ed84e3d85331f737cee2dc1d6","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            Update User Test     (keystone user-update)"},{"line_number":55,"context_line":"        \"\"\""},{"line_number":56,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_update_user\u0027)"},{"line_number":57,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":58,"context_line":"        try:"},{"line_number":59,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":60,"context_line":"            self.users_client.update_user(user[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_3e3b3ced","line":57,"updated":"2017-01-25 22:18:32.000000000","message":"See above","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"31c04d81841e1ccfc3ab6a87b25c8d9bce843ffb","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                                    name\u003duser_name,"},{"line_number":62,"context_line":"                                    email\u003d\"changedUser@xyz.com\")"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        finally:"},{"line_number":65,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dFalse)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":68,"context_line":"                                 rule\u003d\"identity:delete_user\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_9e519065","line":65,"range":{"start_line":64,"start_character":8,"end_line":65,"end_character":64},"updated":"2017-01-25 22:13:07.000000000","message":"see above","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"abdfa655b5a55a6ed84e3d85331f737cee2dc1d6","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            Delete User Test     (keystone user-delete)"},{"line_number":74,"context_line":"        \"\"\""},{"line_number":75,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_delete_user\u0027)"},{"line_number":76,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        try:"},{"line_number":79,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_7e25c4c0","line":76,"updated":"2017-01-25 22:18:32.000000000","message":"See above","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"31c04d81841e1ccfc3ab6a87b25c8d9bce843ffb","unresolved":false,"context_lines":[{"line_number":79,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":80,"context_line":"            self.users_client.delete_user(user[\u0027id\u0027])"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        finally:"},{"line_number":83,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dFalse)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":86,"context_line":"                                 rule\u003d\"identity:list_users\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_be4e4cbf","line":83,"range":{"start_line":82,"start_character":8,"end_line":83,"end_character":64},"updated":"2017-01-25 22:13:07.000000000","message":"see above","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"31c04d81841e1ccfc3ab6a87b25c8d9bce843ffb","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":95,"context_line":"            self.users_client.list_users()"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        finally:"},{"line_number":98,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dFalse)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":101,"context_line":"                                 rule\u003d\"identity:get_user\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_fec61415","line":98,"range":{"start_line":97,"start_character":8,"end_line":98,"end_character":64},"updated":"2017-01-25 22:13:07.000000000","message":"See above","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"abdfa655b5a55a6ed84e3d85331f737cee2dc1d6","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            Get User Test     (keystone user-get)"},{"line_number":107,"context_line":"        \"\"\""},{"line_number":108,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_get_user\u0027)"},{"line_number":109,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        try:"},{"line_number":112,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_be2f2ca0","line":109,"updated":"2017-01-25 22:18:32.000000000","message":"See above","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"31c04d81841e1ccfc3ab6a87b25c8d9bce843ffb","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":113,"context_line":"            self.users_client.show_user(user[\u0027id\u0027])"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        finally:"},{"line_number":116,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dFalse)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":119,"context_line":"                                 rule\u003d\"identity:change_password\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_5ed648c6","line":116,"range":{"start_line":115,"start_character":8,"end_line":116,"end_character":64},"updated":"2017-01-25 22:13:07.000000000","message":"see above","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"abdfa655b5a55a6ed84e3d85331f737cee2dc1d6","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            Change Password Test     (keystone password-update)"},{"line_number":125,"context_line":"        \"\"\""},{"line_number":126,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_change_password\u0027)"},{"line_number":127,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003d\u0027nova\u0027)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        try:"},{"line_number":130,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_de2cf8ad","line":127,"updated":"2017-01-25 22:18:32.000000000","message":"See above","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"31c04d81841e1ccfc3ab6a87b25c8d9bce843ffb","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                                                   original_password\u003d\"nova\","},{"line_number":133,"context_line":"                                                   password\u003d\u0027neutron\u0027)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        finally:"},{"line_number":136,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dFalse)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":139,"context_line":"                                 rule\u003d\"identity:list_groups_for_user\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_7edb04ee","line":136,"range":{"start_line":135,"start_character":8,"end_line":136,"end_character":64},"updated":"2017-01-25 22:13:07.000000000","message":"See above","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"abdfa655b5a55a6ed84e3d85331f737cee2dc1d6","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        \"\"\""},{"line_number":146,"context_line":"        # Create User"},{"line_number":147,"context_line":"        user_name \u003d data_utils.rand_name(\u0027User\u0027)"},{"line_number":148,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        try:"},{"line_number":151,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_fe17f451","line":148,"updated":"2017-01-25 22:18:32.000000000","message":"See above","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"31c04d81841e1ccfc3ab6a87b25c8d9bce843ffb","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        try:"},{"line_number":151,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":152,"context_line":"            self.users_client.list_user_groups(user[\u0027id\u0027])"},{"line_number":153,"context_line":"        finally:"},{"line_number":154,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dFalse)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"class IdentityUserV3NonAdminRbacTest(test_rbac_v3_base.BaseIdentityV3RbacTest):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_9ed8b0f1","line":154,"range":{"start_line":153,"start_character":8,"end_line":154,"end_character":64},"updated":"2017-01-25 22:13:07.000000000","message":"see above","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"abdfa655b5a55a6ed84e3d85331f737cee2dc1d6","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            Change Own Password Test     (keystone password-update)"},{"line_number":166,"context_line":"        \"\"\""},{"line_number":167,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_change_password\u0027)"},{"line_number":168,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003d\u0027nova\u0027)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        try:"},{"line_number":171,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_3e125c63","line":168,"updated":"2017-01-25 22:18:32.000000000","message":"See above","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23659,"name":"Jaewoo Park","email":"jaewoopark91@gmail.com","username":"aselius"},"change_message_id":"110ffd72c1340807606c591de348a2797f591a67","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        \"\"\""},{"line_number":167,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_change_password\u0027)"},{"line_number":168,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003d\u0027nova\u0027)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        try:"},{"line_number":171,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":172,"context_line":"            self.users_client.update_user_password(user[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_4aeda28a","line":169,"updated":"2017-01-26 00:05:48.000000000","message":"extra space. pep8","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"31c04d81841e1ccfc3ab6a87b25c8d9bce843ffb","unresolved":false,"context_lines":[{"line_number":173,"context_line":"                                                   original_password\u003d\"nova\","},{"line_number":174,"context_line":"                                                   password\u003d\u0027neutron\u0027)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        finally:"},{"line_number":177,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_dee2389f","line":177,"range":{"start_line":176,"start_character":8,"end_line":177,"end_character":64},"updated":"2017-01-25 22:13:07.000000000","message":"see above","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"1459050aa2b1d2f46ede3bec1ccddaa8092fbc94","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class IdentityUserV3AdminRbacTest(test_v3_base_rbac.BaseIdentityV3RbacTest):"},{"line_number":31,"context_line":"    \"\"\"Runs admin tests.\"\"\""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":34,"context_line":"                                 rule\u003d\"identity:create_user\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a461143_b913bf5b","line":31,"range":{"start_line":31,"start_character":4,"end_line":31,"end_character":27},"updated":"2017-01-26 01:54:44.000000000","message":"This comment is pointless.","commit_id":"38a383964301fa0eb31c1b9380fdebe7a09d8a59"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"1459050aa2b1d2f46ede3bec1ccddaa8092fbc94","unresolved":false,"context_lines":[{"line_number":34,"context_line":"                                 rule\u003d\"identity:create_user\")"},{"line_number":35,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d904\u0027)"},{"line_number":36,"context_line":"    def test_create_user(self):"},{"line_number":37,"context_line":"        \"\"\"Create User Test     (keystone user-create).\"\"\""},{"line_number":38,"context_line":"        try:"},{"line_number":39,"context_line":"            user_name \u003d data_utils.rand_name(\u0027test_create_user\u0027)"},{"line_number":40,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a461143_992523ad","line":37,"range":{"start_line":37,"start_character":8,"end_line":37,"end_character":58},"updated":"2017-01-26 01:54:44.000000000","message":"Please format the comments to be better readable and more descriptive of what the test does.","commit_id":"38a383964301fa0eb31c1b9380fdebe7a09d8a59"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"1459050aa2b1d2f46ede3bec1ccddaa8092fbc94","unresolved":false,"context_lines":[{"line_number":47,"context_line":"                                 rule\u003d\"identity:update_user\")"},{"line_number":48,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d905\u0027)"},{"line_number":49,"context_line":"    def test_update_user(self):"},{"line_number":50,"context_line":"        \"\"\"Update User Test     (keystone user-update).\"\"\""},{"line_number":51,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_update_user\u0027)"},{"line_number":52,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":53,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a461143_f93467df","line":50,"range":{"start_line":50,"start_character":8,"end_line":50,"end_character":58},"updated":"2017-01-26 01:54:44.000000000","message":"See above","commit_id":"38a383964301fa0eb31c1b9380fdebe7a09d8a59"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"1459050aa2b1d2f46ede3bec1ccddaa8092fbc94","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                                 rule\u003d\"identity:delete_user\")"},{"line_number":64,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d906\u0027)"},{"line_number":65,"context_line":"    def test_delete_user(self):"},{"line_number":66,"context_line":"        \"\"\"Delete User Test     (keystone user-delete).\"\"\""},{"line_number":67,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_delete_user\u0027)"},{"line_number":68,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a461143_394d0f73","line":66,"range":{"start_line":66,"start_character":8,"end_line":66,"end_character":58},"updated":"2017-01-26 01:54:44.000000000","message":"See above.","commit_id":"38a383964301fa0eb31c1b9380fdebe7a09d8a59"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"1459050aa2b1d2f46ede3bec1ccddaa8092fbc94","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                                 rule\u003d\"identity:list_users\")"},{"line_number":79,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d907\u0027)"},{"line_number":80,"context_line":"    def test_list_users(self):"},{"line_number":81,"context_line":"        \"\"\"List Users Test     (keystone user-list).\"\"\""},{"line_number":82,"context_line":"        try:"},{"line_number":83,"context_line":"            rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":84,"context_line":"            self.users_client.list_users()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a461143_79579702","line":81,"range":{"start_line":81,"start_character":8,"end_line":81,"end_character":55},"updated":"2017-01-26 01:54:44.000000000","message":"See above","commit_id":"38a383964301fa0eb31c1b9380fdebe7a09d8a59"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"fa5cb3e42f7357bb718f1cbdff3e335c7958ad83","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 ATT Corporation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_7ff8294a","line":1,"range":{"start_line":1,"start_character":17,"end_line":1,"end_character":20},"updated":"2017-01-26 22:00:37.000000000","message":"please standardize whether it should be ATT or AT\u0026T","commit_id":"e17a47bc28484a3d165dd7d9f13204bd2e880ccc"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"70bd21f04a75333ac903c94fbdc6334a619e9b59","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo_log import log as logging"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from patrole_tempest_plugin.tests.api.identity.v3 import test_v3_base_rbac"},{"line_number":19,"context_line":"from tempest.lib.common.utils import data_utils"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_bf3a9196","line":16,"updated":"2017-01-26 21:42:58.000000000","message":"If logging isn\u0027t being used, remove it","commit_id":"e17a47bc28484a3d165dd7d9f13204bd2e880ccc"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"70bd21f04a75333ac903c94fbdc6334a619e9b59","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from tempest import config"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"CONF \u003d config.CONF"},{"line_number":27,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class IdentityUserV3AdminRbacTest("}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_ff44191c","line":27,"updated":"2017-01-26 21:42:58.000000000","message":"See L16","commit_id":"e17a47bc28484a3d165dd7d9f13204bd2e880ccc"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"70bd21f04a75333ac903c94fbdc6334a619e9b59","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class IdentityUserV3AdminRbacTest("},{"line_number":31,"context_line":"    test_v3_base_rbac.BaseIdentityV3RbacAdminTest):"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def tearDown(self):"},{"line_number":34,"context_line":"        \"\"\"Reverts user back to admin for cleanup.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_ff5b39f4","line":31,"range":{"start_line":31,"start_character":4,"end_line":31,"end_character":21},"updated":"2017-01-26 21:42:58.000000000","message":"Please rename this to rbac_base","commit_id":"e17a47bc28484a3d165dd7d9f13204bd2e880ccc"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"fa5cb3e42f7357bb718f1cbdff3e335c7958ad83","unresolved":false,"context_lines":[{"line_number":39,"context_line":"                                 rule\u003d\"identity:create_user\")"},{"line_number":40,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d904\u0027)"},{"line_number":41,"context_line":"    def test_create_user(self):"},{"line_number":42,"context_line":"        \"\"\"Create User Test     (keystone user-create).\"\"\""},{"line_number":43,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_create_user\u0027)"},{"line_number":44,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":45,"context_line":"        self._create_test_user(name\u003duser_name, password\u003dNone)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_3f5a2151","line":42,"range":{"start_line":42,"start_character":33,"end_line":42,"end_character":53},"updated":"2017-01-26 22:00:37.000000000","message":"I would include the openstack client api call. I believe the keystone cli client is actually deprecated in keystone v3.","commit_id":"e17a47bc28484a3d165dd7d9f13204bd2e880ccc"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"fa5cb3e42f7357bb718f1cbdff3e335c7958ad83","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                                 rule\u003d\"identity:update_user\")"},{"line_number":49,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d905\u0027)"},{"line_number":50,"context_line":"    def test_update_user(self):"},{"line_number":51,"context_line":"        \"\"\"Update User Test     (keystone user-update).\"\"\""},{"line_number":52,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_update_user\u0027)"},{"line_number":53,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_9f31550e","line":51,"range":{"start_line":51,"start_character":33,"end_line":51,"end_character":53},"updated":"2017-01-26 22:00:37.000000000","message":"I would include the openstack client api call. I believe the keystone cli client is actually deprecated in keystone v3.","commit_id":"e17a47bc28484a3d165dd7d9f13204bd2e880ccc"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"fa5cb3e42f7357bb718f1cbdff3e335c7958ad83","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                                 rule\u003d\"identity:delete_user\")"},{"line_number":62,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d906\u0027)"},{"line_number":63,"context_line":"    def test_delete_user(self):"},{"line_number":64,"context_line":"        \"\"\"Delete User Test     (keystone user-delete).\"\"\""},{"line_number":65,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_delete_user\u0027)"},{"line_number":66,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_ff3ed9d8","line":64,"range":{"start_line":64,"start_character":33,"end_line":64,"end_character":53},"updated":"2017-01-26 22:00:37.000000000","message":"I would include the openstack client api call. I believe the keystone cli client is actually deprecated in keystone v3.","commit_id":"e17a47bc28484a3d165dd7d9f13204bd2e880ccc"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"fa5cb3e42f7357bb718f1cbdff3e335c7958ad83","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                                 rule\u003d\"identity:list_users\")"},{"line_number":73,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d907\u0027)"},{"line_number":74,"context_line":"    def test_list_users(self):"},{"line_number":75,"context_line":"        \"\"\"List Users Test     (keystone user-list).\"\"\""},{"line_number":76,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":77,"context_line":"        self.users_client.list_users()"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_9f187586","line":75,"range":{"start_line":75,"start_character":32,"end_line":75,"end_character":50},"updated":"2017-01-26 22:00:37.000000000","message":"I would include the openstack client api call. I believe the keystone cli client is actually deprecated in keystone v3.","commit_id":"e17a47bc28484a3d165dd7d9f13204bd2e880ccc"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"fa5cb3e42f7357bb718f1cbdff3e335c7958ad83","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                                 rule\u003d\"identity:get_user\")"},{"line_number":81,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d908\u0027)"},{"line_number":82,"context_line":"    def test_get_user(self):"},{"line_number":83,"context_line":"        \"\"\"Get User Test     (keystone user-get).\"\"\""},{"line_number":84,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_get_user\u0027)"},{"line_number":85,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_5f07ed1b","line":83,"range":{"start_line":83,"start_character":30,"end_line":83,"end_character":48},"updated":"2017-01-26 22:00:37.000000000","message":"I would include the openstack client api call. I believe the keystone cli client is actually deprecated in keystone v3.","commit_id":"e17a47bc28484a3d165dd7d9f13204bd2e880ccc"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"fa5cb3e42f7357bb718f1cbdff3e335c7958ad83","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                                 rule\u003d\"identity:change_password\")"},{"line_number":92,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d90a\u0027)"},{"line_number":93,"context_line":"    def test_change_password(self):"},{"line_number":94,"context_line":"        \"\"\"Change Password Test     (keystone password-update).\"\"\""},{"line_number":95,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_change_password\u0027)"},{"line_number":96,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003d\u0027nova\u0027)"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_aa025107","line":94,"range":{"start_line":94,"start_character":37,"end_line":94,"end_character":61},"updated":"2017-01-26 22:00:37.000000000","message":"I would include the openstack client api call. I believe the keystone cli client is actually deprecated in keystone v3.","commit_id":"e17a47bc28484a3d165dd7d9f13204bd2e880ccc"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"fa5cb3e42f7357bb718f1cbdff3e335c7958ad83","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                                 rule\u003d\"identity:list_groups_for_user\")"},{"line_number":105,"context_line":"    @decorators.idempotent_id(\u0027bd5946d4-46d2-423d-a800-a3e7aabc18b3\u0027)"},{"line_number":106,"context_line":"    def test_list_group_user(self):"},{"line_number":107,"context_line":"        \"\"\"List Groups for a User.\"\"\""},{"line_number":108,"context_line":"        user_name \u003d data_utils.rand_name(\u0027User\u0027)"},{"line_number":109,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_0a3b65d2","line":107,"range":{"start_line":107,"start_character":33,"end_line":107,"end_character":37},"updated":"2017-01-26 22:00:37.000000000","message":"to stay consistent with the rest of the code in this file please include corresponding openstack cli command in this comment.","commit_id":"e17a47bc28484a3d165dd7d9f13204bd2e880ccc"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"70bd21f04a75333ac903c94fbdc6334a619e9b59","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        self.users_client.list_user_groups(user[\u0027id\u0027])"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"class IdentityUserV3NonAdminRbacTest("},{"line_number":116,"context_line":"    test_v3_base_rbac.BaseIdentityV3RbacAdminTest):"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":119,"context_line":"                                 rule\u003d\"identity:change_password\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_df203d9e","line":116,"range":{"start_line":115,"start_character":0,"end_line":116,"end_character":51},"updated":"2017-01-26 21:42:58.000000000","message":"If this is not an admin test, it shouldn\u0027t be inheriting from an admin base test","commit_id":"e17a47bc28484a3d165dd7d9f13204bd2e880ccc"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"fa5cb3e42f7357bb718f1cbdff3e335c7958ad83","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                                 rule\u003d\"identity:change_password\")"},{"line_number":120,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-9835-080044d0d904\u0027)"},{"line_number":121,"context_line":"    def test_change_password(self):"},{"line_number":122,"context_line":"        \"\"\"Change Own Password Test     (keystone password-update).\"\"\""},{"line_number":123,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_change_password\u0027)"},{"line_number":124,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003d\u0027nova\u0027)"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_6a3069e9","line":122,"range":{"start_line":122,"start_character":41,"end_line":122,"end_character":65},"updated":"2017-01-26 22:00:37.000000000","message":"I would include the openstack client api call. I believe the keystone cli client is actually deprecated in keystone v3.","commit_id":"e17a47bc28484a3d165dd7d9f13204bd2e880ccc"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"70bd21f04a75333ac903c94fbdc6334a619e9b59","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":127,"context_line":"        self.users_client.update_user_password(user[\u0027id\u0027],"},{"line_number":128,"context_line":"                                               original_password\u003d\"nova\","},{"line_number":129,"context_line":"                                               password\u003d\u0027neutron\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_9f74f59c","line":128,"range":{"start_line":128,"start_character":65,"end_line":128,"end_character":71},"updated":"2017-01-26 21:42:58.000000000","message":"nit: use consistent quotation marks within a function; either \u0027\u0027 or \"\"","commit_id":"e17a47bc28484a3d165dd7d9f13204bd2e880ccc"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"4be8a9c5d8d1c9edab90b931651fba87c9b376b9","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from patrole_tempest_plugin.tests.api.identity.v3 import rbac_base"},{"line_number":17,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":18,"context_line":"from tempest.lib import decorators"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from patrole_tempest_plugin import rbac_rule_validation"},{"line_number":21,"context_line":"from patrole_tempest_plugin.rbac_utils import rbac_utils"},{"line_number":22,"context_line":"from tempest import config"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"CONF \u003d config.CONF"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3a461143_1f2e1743","line":22,"range":{"start_line":16,"start_character":0,"end_line":22,"end_character":26},"updated":"2017-01-27 21:42:16.000000000","message":"Please follow this import ordering.  In general it should be -\n\nTempest imports\n\nPatrole imports.\n\nMore information can be found here: http://docs.openstack.org/developer/hacking/#import-order-template","commit_id":"a922655d9e446c8afd9509ad3c2d1b92b72feb49"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"4be8a9c5d8d1c9edab90b931651fba87c9b376b9","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                                 rule\u003d\"identity:create_user\")"},{"line_number":37,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d904\u0027)"},{"line_number":38,"context_line":"    def test_create_user(self):"},{"line_number":39,"context_line":"        \"\"\"Creates a user."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":42,"context_line":"        API reference:"},{"line_number":43,"context_line":"        http://developer.openstack.org/api-ref/identity/v3/#create-user"},{"line_number":44,"context_line":"        \"\"\""},{"line_number":45,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_create_user\u0027)"},{"line_number":46,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":47,"context_line":"        self._create_test_user(name\u003duser_name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a461143_1f07f7ca","line":44,"range":{"start_line":39,"start_character":8,"end_line":44,"end_character":11},"updated":"2017-01-27 21:42:16.000000000","message":"This style documentation is usually used for clients.  For the tests, just a simple statement about what the test does and which policy it is testing should be enough.","commit_id":"a922655d9e446c8afd9509ad3c2d1b92b72feb49"},{"author":{"_account_id":22636,"name":"Cliff Parsons","email":"cliffhparsons@aol.com","username":"cliffparsons"},"change_message_id":"68809f769877d8d395774673fa6f1e0bbbe12c86","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        \"\"\""},{"line_number":45,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_create_user\u0027)"},{"line_number":46,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":47,"context_line":"        self._create_test_user(name\u003duser_name)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":50,"context_line":"                                 rule\u003d\"identity:update_user\")"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a461143_4251a635","line":47,"range":{"start_line":47,"start_character":13,"end_line":47,"end_character":30},"updated":"2017-01-27 22:43:08.000000000","message":"Somehow these user tests need to be skipped if running in an LDAP-backed environment, otherwise they will fail.  Does this _create_test_user method have some sort of skip check for that?","commit_id":"a922655d9e446c8afd9509ad3c2d1b92b72feb49"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"1f583c6b0c8adad9db54dc478a2f9cad0d269cd6","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    def test_create_user(self):"},{"line_number":39,"context_line":"        \"\"\"Creates a user."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        RBAC test for Keystone: user create"},{"line_number":42,"context_line":"        \"\"\""},{"line_number":43,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_create_user\u0027)"},{"line_number":44,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a461143_c58fcb73","line":41,"range":{"start_line":41,"start_character":8,"end_line":41,"end_character":43},"updated":"2017-02-01 22:30:46.000000000","message":"What are these comments referring to?  Are these CLI commands?  I\u0027d prefer the doc strings refer to the policy they are testing, as there are many different ways to access the same policy.","commit_id":"296affb6412567e12e51ba1b046eb07e41c8f775"},{"author":{"_account_id":23625,"name":"Nicolas Helgeson","email":"nh202b@att.com","username":"nhelgeson"},"change_message_id":"7aff1ea73e98f081bbe1a3d37ef964103a31f379","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.users_client.list_users()"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":89,"context_line":"                                 rule\u003d\"identity:get_user\")"},{"line_number":90,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d908\u0027)"},{"line_number":91,"context_line":"    def test_show_user(self):"},{"line_number":92,"context_line":"        \"\"\"Get one user."}],"source_content_type":"text/x-python","patch_set":10,"id":"3a461143_6cdc2219","line":89,"range":{"start_line":89,"start_character":48,"end_line":89,"end_character":56},"updated":"2017-02-02 17:14:50.000000000","message":"this test is for get user, but get user has been replaced with show user. Should we change the policy.json?","commit_id":"296affb6412567e12e51ba1b046eb07e41c8f775"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"a6e2aa8bf0e0c149aacfd3fb901152c43b577d6c","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.users_client.list_users()"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":89,"context_line":"                                 rule\u003d\"identity:get_user\")"},{"line_number":90,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d908\u0027)"},{"line_number":91,"context_line":"    def test_show_user(self):"},{"line_number":92,"context_line":"        \"\"\"Get one user."}],"source_content_type":"text/x-python","patch_set":10,"id":"3a461143_ace7eaaa","line":89,"range":{"start_line":89,"start_character":48,"end_line":89,"end_character":56},"in_reply_to":"3a461143_6cdc2219","updated":"2017-02-02 17:18:34.000000000","message":"No.  Lots of words are used interchangeably, but the policy.json is unlikely to change.  For example get/show or modify/update.  This is okay, as long as the test names aren\u0027t too ridiculous.","commit_id":"296affb6412567e12e51ba1b046eb07e41c8f775"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"e6652d176dca337af728e8285106b2684138a863","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        RBAC test for Keystone: user show"},{"line_number":95,"context_line":"        \"\"\""},{"line_number":96,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_get_user\u0027)"},{"line_number":97,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":100,"context_line":"        self.users_client.show_user(user[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a461143_d8617313","line":97,"range":{"start_line":96,"start_character":0,"end_line":97,"end_character":68},"updated":"2017-02-01 21:53:05.000000000","message":"Is there a reason you\u0027re not creating one user and performing actions on it instead of creating a new one for each test?","commit_id":"296affb6412567e12e51ba1b046eb07e41c8f775"},{"author":{"_account_id":22636,"name":"Cliff Parsons","email":"cliffhparsons@aol.com","username":"cliffparsons"},"change_message_id":"c01c9f69aebea55f7d0b5c37e002beb227c1b8d6","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        RBAC test for Keystone: user show"},{"line_number":95,"context_line":"        \"\"\""},{"line_number":96,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_get_user\u0027)"},{"line_number":97,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":100,"context_line":"        self.users_client.show_user(user[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a461143_5fcf06b3","line":97,"range":{"start_line":96,"start_character":0,"end_line":97,"end_character":68},"in_reply_to":"3a461143_3371b8e1","updated":"2017-02-02 17:26:31.000000000","message":"I suppose it doesn\u0027t matter for *these* tests. My comment was more of a general comment. I was thinking about some of the other tests that involve multiple resources that are tied together, like users+roles+projects. You just have to be very careful about what your test case assumes about the state of global/class resources.","commit_id":"296affb6412567e12e51ba1b046eb07e41c8f775"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"70bbb142dc22aac3f9759bcd9c23692667a4d448","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        RBAC test for Keystone: user show"},{"line_number":95,"context_line":"        \"\"\""},{"line_number":96,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_get_user\u0027)"},{"line_number":97,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":100,"context_line":"        self.users_client.show_user(user[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a461143_0a57f702","line":97,"range":{"start_line":96,"start_character":0,"end_line":97,"end_character":68},"in_reply_to":"3a461143_5fcf06b3","updated":"2017-02-02 19:48:13.000000000","message":"I agree with you on that Cliff.  We want to be careful about that, but we also want to try and minimize the amount of resources we need to create.  We should definitely look at this on a test by test basis.  Thanks for your help!","commit_id":"296affb6412567e12e51ba1b046eb07e41c8f775"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"17c9dcef2d5d535c3802a82d7f0c381b9745cf82","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        RBAC test for Keystone: user show"},{"line_number":95,"context_line":"        \"\"\""},{"line_number":96,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_get_user\u0027)"},{"line_number":97,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":100,"context_line":"        self.users_client.show_user(user[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a461143_3371b8e1","line":97,"range":{"start_line":96,"start_character":0,"end_line":97,"end_character":68},"in_reply_to":"3a461143_73ca6070","updated":"2017-02-01 22:23:16.000000000","message":"Does the state matter for these test though (I\u0027m honestly not sure)?  These are not functional tests, they are purely to test access to the endpoint.  As long as the access is properly enforced, the end state of the object should really matter.","commit_id":"296affb6412567e12e51ba1b046eb07e41c8f775"},{"author":{"_account_id":22636,"name":"Cliff Parsons","email":"cliffhparsons@aol.com","username":"cliffparsons"},"change_message_id":"935aa596c2bdbc2a302776125789aae7eeaaf209","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        RBAC test for Keystone: user show"},{"line_number":95,"context_line":"        \"\"\""},{"line_number":96,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_get_user\u0027)"},{"line_number":97,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":100,"context_line":"        self.users_client.show_user(user[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a461143_73ca6070","line":97,"range":{"start_line":96,"start_character":0,"end_line":97,"end_character":68},"in_reply_to":"3a461143_d8617313","updated":"2017-02-01 22:09:49.000000000","message":"For these tests it might be ok to have one user and one project for all the tests.  However, in general, a user, like other openstack resources, is a stateful resource and when a test starts, you want to be sure it\u0027s in the right state.  Creating the resource ensures that it will be in a known state, and not in some state that the last test may have left it in (esp. if it failed). That\u0027s my 2 cents. I prefer resource creation.","commit_id":"296affb6412567e12e51ba1b046eb07e41c8f775"},{"author":{"_account_id":23659,"name":"Jaewoo Park","email":"jaewoopark91@gmail.com","username":"aselius"},"change_message_id":"ac28e835c691a3b4c573d1a0b12bfeacb0891d53","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":78,"context_line":"                                 rule\u003d\"identity:list_users\")"},{"line_number":79,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d907\u0027)"},{"line_number":80,"context_line":"    def test_list_users(self):"},{"line_number":81,"context_line":"        \"\"\"Get the list of users."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        RBAC test for Keystone: identity:list_users"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a430d35_1557ebce","line":80,"range":{"start_line":80,"start_character":8,"end_line":80,"end_character":23},"updated":"2017-02-06 18:41:04.000000000","message":"for this, were you trying to create a user before listing or  did you just intend on getting back an empty response for the list? You seem to be creating a test user for other list purposes.","commit_id":"bc3aa50f00a5687f95e6b1b2505774bb0929ffcc"},{"author":{"_account_id":23625,"name":"Nicolas Helgeson","email":"nh202b@att.com","username":"nhelgeson"},"change_message_id":"de0412d36bc956d854f8e6f479c5b22526e1b372","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":78,"context_line":"                                 rule\u003d\"identity:list_users\")"},{"line_number":79,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d907\u0027)"},{"line_number":80,"context_line":"    def test_list_users(self):"},{"line_number":81,"context_line":"        \"\"\"Get the list of users."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        RBAC test for Keystone: identity:list_users"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a430d35_f5cdff5d","line":80,"range":{"start_line":80,"start_character":8,"end_line":80,"end_character":23},"in_reply_to":"1a430d35_1557ebce","updated":"2017-02-06 19:15:43.000000000","message":"what is returned doesnt really matter, just that the test runs or is denied","commit_id":"bc3aa50f00a5687f95e6b1b2505774bb0929ffcc"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"a1ca990002cc04e2327bae27458bddfb9ebb4e72","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":78,"context_line":"                                 rule\u003d\"identity:list_users\")"},{"line_number":79,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d907\u0027)"},{"line_number":80,"context_line":"    def test_list_users(self):"},{"line_number":81,"context_line":"        \"\"\"Get the list of users."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        RBAC test for Keystone: identity:list_users"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a430d35_334eba6f","line":80,"range":{"start_line":80,"start_character":8,"end_line":80,"end_character":23},"in_reply_to":"1a430d35_397a21f2","updated":"2017-02-06 21:51:19.000000000","message":"True, but it\u0027s become customary to do something like: self.non_admin_users_client.list_users()[\u0027users\u0027] which basically verifies that the object returned is ostensibly correct, although each API in Tempest implicitly does a verification, so yeah...I agree.","commit_id":"bc3aa50f00a5687f95e6b1b2505774bb0929ffcc"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"e41035906b42b8a405953eb7e7f4a20d0dd72139","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":78,"context_line":"                                 rule\u003d\"identity:list_users\")"},{"line_number":79,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d907\u0027)"},{"line_number":80,"context_line":"    def test_list_users(self):"},{"line_number":81,"context_line":"        \"\"\"Get the list of users."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        RBAC test for Keystone: identity:list_users"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a430d35_397a21f2","line":80,"range":{"start_line":80,"start_character":8,"end_line":80,"end_character":23},"in_reply_to":"1a430d35_f5cdff5d","updated":"2017-02-06 19:20:56.000000000","message":"agree with Nicolas.","commit_id":"bc3aa50f00a5687f95e6b1b2505774bb0929ffcc"}],"patrole_tempest_plugin/tests/api/identity/v3/test_v3_base_rbac.py":[{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"abdfa655b5a55a6ed84e3d85331f737cee2dc1d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 ATT Corporation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_3920b69b","line":1,"range":{"start_line":1,"start_character":17,"end_line":1,"end_character":20},"updated":"2017-01-25 22:18:32.000000000","message":"Should be \"AT\u0026T\"","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"abdfa655b5a55a6ed84e3d85331f737cee2dc1d6","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import logging"},{"line_number":17,"context_line":"from tempest.lib import exceptions as lib_exc"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from tempest.api.identity import base"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_1e6840f5","line":16,"updated":"2017-01-25 22:18:32.000000000","message":"See David\u0027s comments from the other file","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"31c04d81841e1ccfc3ab6a87b25c8d9bce843ffb","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from tempest.lib import exceptions as lib_exc"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from tempest.api.identity import base"},{"line_number":20,"context_line":"from tempest.common.utils import data_utils"},{"line_number":21,"context_line":"from tempest import config"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"CONF \u003d config.CONF"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_5e11e8ab","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":43},"updated":"2017-01-25 22:13:07.000000000","message":"Should be imported from tempest.lib, if at all.  I also don\u0027t think we are using this.","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"abdfa655b5a55a6ed84e3d85331f737cee2dc1d6","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from tempest import config"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"CONF \u003d config.CONF"},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class BaseIdentityV3RbacTest(base.BaseIdentityV3AdminTest):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_9e7430d0","line":24,"updated":"2017-01-25 22:18:32.000000000","message":"See David\u0027s comments from the other file","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"abdfa655b5a55a6ed84e3d85331f737cee2dc1d6","unresolved":false,"context_lines":[{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class BaseIdentityV3RbacTest(base.BaseIdentityV3AdminTest):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @classmethod"},{"line_number":30,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_befc8c3f","line":27,"updated":"2017-01-25 22:18:32.000000000","message":"If this is inheriting from an Admin base test, please change the name of the class to reflect that.","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"abdfa655b5a55a6ed84e3d85331f737cee2dc1d6","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class BaseIdentityV3RbacTest(base.BaseIdentityV3AdminTest):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @classmethod"},{"line_number":30,"context_line":"    def skip_checks(cls):"},{"line_number":31,"context_line":"        super(BaseIdentityV3RbacTest, cls).skip_checks()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_3ed17cce","line":28,"updated":"2017-01-25 22:18:32.000000000","message":"Please include the credentials in the base test (see other tests for examples)","commit_id":"ba45e02678bc38ea4d580928f96b9866b35e4e9b"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"fa5cb3e42f7357bb718f1cbdff3e335c7958ad83","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 ATT Corporation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_2a92e19f","line":1,"range":{"start_line":1,"start_character":17,"end_line":1,"end_character":32},"updated":"2017-01-26 22:00:37.000000000","message":"standardize across all files","commit_id":"e17a47bc28484a3d165dd7d9f13204bd2e880ccc"}]}
