)]}'
{"patrole_tempest_plugin/tests/api/volume/admin/test_volume_hosts_rbac.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"c250f29b5aa677bf25a91db3c938cc96cc4fc70b","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class VolumeHostsAdminRbacTest(rbac_base.BaseVolumeAdminRbacTest):"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    @classmethod"},{"line_number":29,"context_line":"    def setup_clients(cls):"},{"line_number":30,"context_line":"        super(VolumeHostsAdminRbacTest, cls).setup_clients()"},{"line_number":31,"context_line":"        if cls._api_version \u003d\u003d 1:"},{"line_number":32,"context_line":"            cls.client \u003d cls.os.volume_hosts_client"},{"line_number":33,"context_line":"        elif cls._api_version \u003d\u003d 2:"},{"line_number":34,"context_line":"            cls.client \u003d cls.os.volume_hosts_v2_client"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def tearDown(self):"},{"line_number":37,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a430d35_7e1f90b7","line":34,"range":{"start_line":28,"start_character":0,"end_line":34,"end_character":54},"updated":"2017-02-09 19:17:26.000000000","message":"I think it\u0027s better to move this to volume rbac_base admin class, to be consistent with BaseVolumeAdminTest in tempest.api.volume.base.\n\nWhat I mean is to add the code highlighted here there--just change cls.client to cls.volume_host_client. And then in this file do cls.client \u003d cls.volume_host_client.","commit_id":"f3d90aa11d49cb99da7688547f7a72374f40e7e7"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"bb2159920d218ff953408d7fc97987c2bde85d4e","unresolved":false,"context_lines":[{"line_number":23,"context_line":"CONF \u003d config.CONF"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class VolumeHostsAdminRbacTest(rbac_base.BaseVolumeAdminRbacTest):"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def tearDown(self):"},{"line_number":29,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a430d35_7d3dd5ba","line":26,"range":{"start_line":26,"start_character":6,"end_line":26,"end_character":30},"updated":"2017-02-09 19:53:33.000000000","message":"One thing I didn\u0027t get here completely, what is significance of writing admin only tests specially ?","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"110daef6a000cf5214124f5fa6a2eed5d2627b82","unresolved":false,"context_lines":[{"line_number":23,"context_line":"CONF \u003d config.CONF"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class VolumeHostsAdminRbacTest(rbac_base.BaseVolumeAdminRbacTest):"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def tearDown(self):"},{"line_number":29,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a430d35_9d9e0162","line":26,"range":{"start_line":26,"start_character":6,"end_line":26,"end_character":30},"in_reply_to":"1a430d35_7d3dd5ba","updated":"2017-02-09 20:09:04.000000000","message":"These are actions that according to the default policy.json only admins can perform. They are also indicated this way in Tempest tests, which is the name convention we\u0027re following for our Patrole tests.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"974c3251fce3a8b9fdcce55d9d796dec2b546917","unresolved":false,"context_lines":[{"line_number":23,"context_line":"CONF \u003d config.CONF"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class VolumeHostsAdminRbacTest(rbac_base.BaseVolumeAdminRbacTest):"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def tearDown(self):"},{"line_number":29,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa31d9ce_0add7b70","line":26,"range":{"start_line":26,"start_character":6,"end_line":26,"end_character":30},"in_reply_to":"1a430d35_9d9e0162","updated":"2017-02-09 20:27:05.000000000","message":"Please see my comments in file - https://review.openstack.org/#/c/431645/4/patrole_tempest_plugin/tests/api/volume/rbac_base.py","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"06b8cc1e2b2c46f2d3c2fa5035c5114e376ef5dd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 AT\u0026T Corp"},{"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":7,"id":"da36d5c6_af53f937","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"updated":"2017-02-23 16:08:50.000000000","message":"2017","commit_id":"c3993e8ba06204769d823a91e891424daf5317e0"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"5b3d03de519f1fce67e3b3c67e1d1f0218699e8e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 AT\u0026T Corp"},{"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":7,"id":"da36d5c6_2828dae1","line":1,"range":{"start_line":1,"start_character":22,"end_line":1,"end_character":26},"updated":"2017-02-23 19:14:04.000000000","message":"Corporation.","commit_id":"c3993e8ba06204769d823a91e891424daf5317e0"}],"patrole_tempest_plugin/tests/api/volume/rbac_base.py":[{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"bb2159920d218ff953408d7fc97987c2bde85d4e","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class BaseVolumeAdminRbacTest(vol_base.BaseVolumeAdminTest):"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a430d35_193f86d7","line":41,"range":{"start_line":41,"start_character":30,"end_line":41,"end_character":58},"updated":"2017-02-09 19:53:33.000000000","message":"Why not to inherit \"BaseVolumeRbacTest\" of this file instead ?","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"110daef6a000cf5214124f5fa6a2eed5d2627b82","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class BaseVolumeAdminRbacTest(vol_base.BaseVolumeAdminTest):"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a430d35_3d86ed13","line":41,"range":{"start_line":41,"start_character":30,"end_line":41,"end_character":58},"in_reply_to":"1a430d35_193f86d7","updated":"2017-02-09 20:09:04.000000000","message":"The files that inherit from this class make use of certain functions that exist exclusively in the BaseVolumeAdminTest class in Tempest base.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"974c3251fce3a8b9fdcce55d9d796dec2b546917","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class BaseVolumeAdminRbacTest(vol_base.BaseVolumeAdminTest):"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa31d9ce_2aacffec","line":41,"range":{"start_line":41,"start_character":30,"end_line":41,"end_character":58},"in_reply_to":"1a430d35_3d86ed13","updated":"2017-02-09 20:27:05.000000000","message":"In RBAC framework initial credential is itself admin, then why to write admin tests explicitly just to follow tempest pattern ?\n\n## From the core\nwhen we set credential \u003d [\u0027primary\u0027, \u0027admin\u0027, \u0027alt\u0027], then it creates three tenants with 3 different users (regular user, admin user and alt regular user) respectively. \nBut in case of RBAC for each testcase class we need to create only 1 tenant. also we need to create only 1 user. This user can have two roles. Initial role on this user will be admin (that\u0027s why tempest role is restricted to admin only). Now when RBAC action is required to test we switch the role to rbac_role from conf file.\n\nNow to test admin only tests, we can just put rbac_role\u003dadmin in conf file and that\u0027s all to test admin only tests.\n\nPlease correct me if I am making any difference.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"badf640c5f9f7143027cbcfd84077b4de262ebfa","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class BaseVolumeAdminRbacTest(vol_base.BaseVolumeAdminTest):"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa31d9ce_ad864963","line":41,"range":{"start_line":41,"start_character":30,"end_line":41,"end_character":58},"in_reply_to":"fa31d9ce_2aacffec","updated":"2017-02-09 21:01:55.000000000","message":"I believe I may have confused the issue somewhat. We\u0027re following naming conventions from Tempest, but the actual tests themselves are very different. Here, we\u0027re testing endpoints that ONLY admins should be able to access and we want to make sure that anyone who ISN\u0027T an admin can\u0027t access those endpoints. We need to test more than just admin in rbac_role.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"b2efd5e7e54b3ebab8851a0149eb9ef8be816a71","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class BaseVolumeAdminRbacTest(vol_base.BaseVolumeAdminTest):"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa31d9ce_eda3e14d","line":41,"range":{"start_line":41,"start_character":30,"end_line":41,"end_character":58},"in_reply_to":"fa31d9ce_ad864963","updated":"2017-02-09 21:23:31.000000000","message":"I am also pointing same thing. change role in rbac_role and test. For admin set it to admin and test.\nI could not understand why we are using \u0027os_adm\u0027 and \u0027os\u0027 both. to handle testcases in RBAC, we need only one of them.\nAlso If we are using complete base.py from tempest, it can cause problem because tempest may considers all 3 tenants depending upon \u0027credentials\u0027 used. but in our case we need only one credential.\n\nset : credential \u003d [\u0027primary\u0027]","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"879c22691524dad2562d1f5b27215d3151e394d9","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class BaseVolumeAdminRbacTest(vol_base.BaseVolumeAdminTest):"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa31d9ce_733192ec","line":41,"range":{"start_line":41,"start_character":30,"end_line":41,"end_character":58},"in_reply_to":"fa31d9ce_eda3e14d","updated":"2017-02-09 22:01:39.000000000","message":"Except that there are other roles besides admin, so just testing that admin can do something would be an incomplete testing suite. For this reason, we need more than one credential and all of our tests rely on their being at least two. As for os_adm vs. os, these are two different versions of the same client and have different uses.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"bb2159920d218ff953408d7fc97987c2bde85d4e","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class BaseVolumeAdminRbacTest(vol_base.BaseVolumeAdminTest):"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @classmethod"},{"line_number":46,"context_line":"    def skip_checks(cls):"},{"line_number":47,"context_line":"        super(BaseVolumeAdminRbacTest, cls).skip_checks()"},{"line_number":48,"context_line":"        if not CONF.rbac.rbac_flag:"},{"line_number":49,"context_line":"            raise cls.skipException("},{"line_number":50,"context_line":"                \"%s skipped as RBAC Flag not enabled\" % cls.__name__)"},{"line_number":51,"context_line":"        if \u0027admin\u0027 not in CONF.auth.tempest_roles:"},{"line_number":52,"context_line":"            raise cls.skipException("},{"line_number":53,"context_line":"                \"%s skipped because tempest roles is not admin\" % cls.__name__)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @classmethod"},{"line_number":56,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a430d35_9902960a","line":53,"range":{"start_line":43,"start_character":0,"end_line":53,"end_character":79},"updated":"2017-02-09 19:53:33.000000000","message":"After considering above comment, This selected portion of code can be removed.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"badf640c5f9f7143027cbcfd84077b4de262ebfa","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class BaseVolumeAdminRbacTest(vol_base.BaseVolumeAdminTest):"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @classmethod"},{"line_number":46,"context_line":"    def skip_checks(cls):"},{"line_number":47,"context_line":"        super(BaseVolumeAdminRbacTest, cls).skip_checks()"},{"line_number":48,"context_line":"        if not CONF.rbac.rbac_flag:"},{"line_number":49,"context_line":"            raise cls.skipException("},{"line_number":50,"context_line":"                \"%s skipped as RBAC Flag not enabled\" % cls.__name__)"},{"line_number":51,"context_line":"        if \u0027admin\u0027 not in CONF.auth.tempest_roles:"},{"line_number":52,"context_line":"            raise cls.skipException("},{"line_number":53,"context_line":"                \"%s skipped because tempest roles is not admin\" % cls.__name__)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @classmethod"},{"line_number":56,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa31d9ce_ad3ba99b","line":53,"range":{"start_line":43,"start_character":0,"end_line":53,"end_character":79},"in_reply_to":"1a430d35_1d6cd107","updated":"2017-02-09 21:01:55.000000000","message":"Unfortunately, and this is an issue we ran into when redesigning Patrole for upstream, there are some issues with inheritance and wanting to inherit things from multiple places that may interfere with each other. We made a choice to repeat some things within our RBAC base classes in order to prevent repeating things from upstream Tempest.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"974c3251fce3a8b9fdcce55d9d796dec2b546917","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class BaseVolumeAdminRbacTest(vol_base.BaseVolumeAdminTest):"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @classmethod"},{"line_number":46,"context_line":"    def skip_checks(cls):"},{"line_number":47,"context_line":"        super(BaseVolumeAdminRbacTest, cls).skip_checks()"},{"line_number":48,"context_line":"        if not CONF.rbac.rbac_flag:"},{"line_number":49,"context_line":"            raise cls.skipException("},{"line_number":50,"context_line":"                \"%s skipped as RBAC Flag not enabled\" % cls.__name__)"},{"line_number":51,"context_line":"        if \u0027admin\u0027 not in CONF.auth.tempest_roles:"},{"line_number":52,"context_line":"            raise cls.skipException("},{"line_number":53,"context_line":"                \"%s skipped because tempest roles is not admin\" % cls.__name__)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @classmethod"},{"line_number":56,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a430d35_1d6cd107","line":53,"range":{"start_line":43,"start_character":0,"end_line":53,"end_character":79},"in_reply_to":"1a430d35_7dc6b54a","updated":"2017-02-09 20:27:05.000000000","message":"Yes, i understand importance of RBAC flag, that\u0027s why I am pointing. This is already getting checked in same file class \"BaseVolumeRbacTest(\" line#20.\nWe can reuse entire check from there.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"110daef6a000cf5214124f5fa6a2eed5d2627b82","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class BaseVolumeAdminRbacTest(vol_base.BaseVolumeAdminTest):"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @classmethod"},{"line_number":46,"context_line":"    def skip_checks(cls):"},{"line_number":47,"context_line":"        super(BaseVolumeAdminRbacTest, cls).skip_checks()"},{"line_number":48,"context_line":"        if not CONF.rbac.rbac_flag:"},{"line_number":49,"context_line":"            raise cls.skipException("},{"line_number":50,"context_line":"                \"%s skipped as RBAC Flag not enabled\" % cls.__name__)"},{"line_number":51,"context_line":"        if \u0027admin\u0027 not in CONF.auth.tempest_roles:"},{"line_number":52,"context_line":"            raise cls.skipException("},{"line_number":53,"context_line":"                \"%s skipped because tempest roles is not admin\" % cls.__name__)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @classmethod"},{"line_number":56,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a430d35_7dc6b54a","line":53,"range":{"start_line":43,"start_character":0,"end_line":53,"end_character":79},"in_reply_to":"1a430d35_9902960a","updated":"2017-02-09 20:09:04.000000000","message":"No, it can\u0027t. The rbac_flag is something that exists in the tempest.conf and is used to check whether or not test administrators are also interested in running RBAC tests when running their test suites. The admin check is used because if tempest_roles is NOT set to or does NOT include admin, the test set up will fail.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"b2efd5e7e54b3ebab8851a0149eb9ef8be816a71","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class BaseVolumeAdminRbacTest(vol_base.BaseVolumeAdminTest):"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @classmethod"},{"line_number":46,"context_line":"    def skip_checks(cls):"},{"line_number":47,"context_line":"        super(BaseVolumeAdminRbacTest, cls).skip_checks()"},{"line_number":48,"context_line":"        if not CONF.rbac.rbac_flag:"},{"line_number":49,"context_line":"            raise cls.skipException("},{"line_number":50,"context_line":"                \"%s skipped as RBAC Flag not enabled\" % cls.__name__)"},{"line_number":51,"context_line":"        if \u0027admin\u0027 not in CONF.auth.tempest_roles:"},{"line_number":52,"context_line":"            raise cls.skipException("},{"line_number":53,"context_line":"                \"%s skipped because tempest roles is not admin\" % cls.__name__)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @classmethod"},{"line_number":56,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa31d9ce_0d7755d5","line":53,"range":{"start_line":43,"start_character":0,"end_line":53,"end_character":79},"in_reply_to":"fa31d9ce_ad3ba99b","updated":"2017-02-09 21:23:31.000000000","message":"Reusing complete base from tempest can cause a problem if \u0027credentials\u0027 in tempest base different than used here.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"bb2159920d218ff953408d7fc97987c2bde85d4e","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    @classmethod"},{"line_number":56,"context_line":"    def setup_clients(cls):"},{"line_number":57,"context_line":"        super(BaseVolumeAdminRbacTest, cls).setup_clients()"},{"line_number":58,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":59,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":60,"context_line":"        if cls._api_version \u003d\u003d 1:"},{"line_number":61,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_client"},{"line_number":62,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_client"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a430d35_fd29c58a","line":59,"range":{"start_line":58,"start_character":1,"end_line":59,"end_character":52},"updated":"2017-02-09 19:53:33.000000000","message":"This will also be removed after above two comment incorporation.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"974c3251fce3a8b9fdcce55d9d796dec2b546917","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    @classmethod"},{"line_number":56,"context_line":"    def setup_clients(cls):"},{"line_number":57,"context_line":"        super(BaseVolumeAdminRbacTest, cls).setup_clients()"},{"line_number":58,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":59,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":60,"context_line":"        if cls._api_version \u003d\u003d 1:"},{"line_number":61,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_client"},{"line_number":62,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_client"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa31d9ce_8acfabb2","line":59,"range":{"start_line":58,"start_character":1,"end_line":59,"end_character":52},"in_reply_to":"1a430d35_1de691e8","updated":"2017-02-09 20:27:05.000000000","message":"My above comment can give idea on this.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"110daef6a000cf5214124f5fa6a2eed5d2627b82","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    @classmethod"},{"line_number":56,"context_line":"    def setup_clients(cls):"},{"line_number":57,"context_line":"        super(BaseVolumeAdminRbacTest, cls).setup_clients()"},{"line_number":58,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":59,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":60,"context_line":"        if cls._api_version \u003d\u003d 1:"},{"line_number":61,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_client"},{"line_number":62,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_client"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a430d35_1de691e8","line":59,"range":{"start_line":58,"start_character":1,"end_line":59,"end_character":52},"in_reply_to":"1a430d35_fd29c58a","updated":"2017-02-09 20:09:04.000000000","message":"These are also necessary to run the tests. Removing them would throw errors.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"f187e30cd092365e5b3075ca9c764fb487e3951c","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":60,"context_line":"        if cls._api_version \u003d\u003d 1:"},{"line_number":61,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_client"},{"line_number":62,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_client"},{"line_number":63,"context_line":"        elif cls._api_version \u003d\u003d 2:"},{"line_number":64,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_v2_client"},{"line_number":65,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_v2_client"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a430d35_d92edef9","line":62,"range":{"start_line":62,"start_character":12,"end_line":62,"end_character":64},"updated":"2017-02-09 19:41:45.000000000","message":"Is the types client used?","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"81aa5f4ce328609d02564d2d4a947b3bfd430d6a","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":60,"context_line":"        if cls._api_version \u003d\u003d 1:"},{"line_number":61,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_client"},{"line_number":62,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_client"},{"line_number":63,"context_line":"        elif cls._api_version \u003d\u003d 2:"},{"line_number":64,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_v2_client"},{"line_number":65,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_v2_client"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a430d35_b95e7277","line":62,"range":{"start_line":62,"start_character":12,"end_line":62,"end_character":64},"in_reply_to":"1a430d35_d92edef9","updated":"2017-02-09 19:44:32.000000000","message":"Adding them both here to avoid future merge conflicts. The volume types (which is dependent on this commit) uses it.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"f187e30cd092365e5b3075ca9c764fb487e3951c","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        super(BaseVolumeAdminRbacTest, cls).setup_clients()"},{"line_number":58,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":59,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":60,"context_line":"        if cls._api_version \u003d\u003d 1:"},{"line_number":61,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_client"},{"line_number":62,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_client"},{"line_number":63,"context_line":"        elif cls._api_version \u003d\u003d 2:"},{"line_number":64,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_v2_client"},{"line_number":65,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_v2_client"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a430d35_59f4ae86","line":65,"range":{"start_line":60,"start_character":7,"end_line":65,"end_character":67},"updated":"2017-02-09 19:41:45.000000000","message":"Is there a reason to use these over the admin clients already in the VolumeBaseAdmin?","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"81aa5f4ce328609d02564d2d4a947b3bfd430d6a","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        super(BaseVolumeAdminRbacTest, cls).setup_clients()"},{"line_number":58,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":59,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":60,"context_line":"        if cls._api_version \u003d\u003d 1:"},{"line_number":61,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_client"},{"line_number":62,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_client"},{"line_number":63,"context_line":"        elif cls._api_version \u003d\u003d 2:"},{"line_number":64,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_v2_client"},{"line_number":65,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_v2_client"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a430d35_79e40aac","line":65,"range":{"start_line":60,"start_character":7,"end_line":65,"end_character":67},"in_reply_to":"1a430d35_59f4ae86","updated":"2017-02-09 19:44:32.000000000","message":"As Doug and Rick have pointed out, using the admin client leads to overpermissions errors since the admin client seems to bypass policy checks.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"436ce9dc9f482e7295c5a6640be5329d78f21716","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        super(BaseVolumeAdminRbacTest, cls).setup_clients()"},{"line_number":58,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":59,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":60,"context_line":"        if cls._api_version \u003d\u003d 1:"},{"line_number":61,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_client"},{"line_number":62,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_client"},{"line_number":63,"context_line":"        elif cls._api_version \u003d\u003d 2:"},{"line_number":64,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_v2_client"},{"line_number":65,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_v2_client"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa31d9ce_4a93f3fa","line":65,"range":{"start_line":60,"start_character":7,"end_line":65,"end_character":67},"in_reply_to":"1a430d35_59f4ae86","updated":"2017-02-09 20:47:51.000000000","message":"To provide more context, the cls.volume_hosts_client and cls.volume_types_client in the admin volume base class use the os_adm clients, which is why Samantha is redefining them here.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"879c22691524dad2562d1f5b27215d3151e394d9","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        super(BaseVolumeAdminRbacTest, cls).setup_clients()"},{"line_number":58,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":59,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":60,"context_line":"        if cls._api_version \u003d\u003d 1:"},{"line_number":61,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_client"},{"line_number":62,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_client"},{"line_number":63,"context_line":"        elif cls._api_version \u003d\u003d 2:"},{"line_number":64,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_v2_client"},{"line_number":65,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_v2_client"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa31d9ce_939a86c4","line":65,"range":{"start_line":60,"start_character":7,"end_line":65,"end_character":67},"in_reply_to":"fa31d9ce_0d2595c1","updated":"2017-02-09 22:01:39.000000000","message":"2. If you look at the decorator, there is an allowance for custom policy files.\n3. I think this is something that is ultimately up to the core reviewers to decide and I will be sure to discuss it with them.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"d66e9f4faeca16c6459e6c4b1249ad48a69e1924","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        super(BaseVolumeAdminRbacTest, cls).setup_clients()"},{"line_number":58,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":59,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":60,"context_line":"        if cls._api_version \u003d\u003d 1:"},{"line_number":61,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_client"},{"line_number":62,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_client"},{"line_number":63,"context_line":"        elif cls._api_version \u003d\u003d 2:"},{"line_number":64,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_v2_client"},{"line_number":65,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_v2_client"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa31d9ce_6d8d317b","line":65,"range":{"start_line":60,"start_character":7,"end_line":65,"end_character":67},"in_reply_to":"fa31d9ce_4a93f3fa","updated":"2017-02-09 20:57:01.000000000","message":"Again I am asking same thing, why we are writing admin tests explicitly ? IMHO, we don\u0027t need them.\n\nAs in RBAC we use single Tenant, single user, multi-role(admin \u003c--\u003e rbac role) approach. We don\u0027t need to create admin tenant explicitly.\n\nFor rbac_role is non-admin :\n    is YAML file says (N) and action response is (N) \u003d testcase pass\n\nFor rbac_role is admin :\n    is YAML file says (Y) and action response is (N) \u003d testcase fail.\n\nPlease correct me if there is any difference ?","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"b2efd5e7e54b3ebab8851a0149eb9ef8be816a71","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        super(BaseVolumeAdminRbacTest, cls).setup_clients()"},{"line_number":58,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":59,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":60,"context_line":"        if cls._api_version \u003d\u003d 1:"},{"line_number":61,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_client"},{"line_number":62,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_client"},{"line_number":63,"context_line":"        elif cls._api_version \u003d\u003d 2:"},{"line_number":64,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_v2_client"},{"line_number":65,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_v2_client"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa31d9ce_0d2595c1","line":65,"range":{"start_line":60,"start_character":7,"end_line":65,"end_character":67},"in_reply_to":"fa31d9ce_4d55cdc4","updated":"2017-02-09 21:23:31.000000000","message":"1. May be above points can clear things.\n2. with YAML i meant to say, custom policy file based on what decorator takes decision. earlier it was used as yaml but now its not. But the whole was to say about custom policy file.\n\n3. I think for admin concept, at-least we all should discuss before adding admin tests.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"badf640c5f9f7143027cbcfd84077b4de262ebfa","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        super(BaseVolumeAdminRbacTest, cls).setup_clients()"},{"line_number":58,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":59,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":60,"context_line":"        if cls._api_version \u003d\u003d 1:"},{"line_number":61,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_client"},{"line_number":62,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_client"},{"line_number":63,"context_line":"        elif cls._api_version \u003d\u003d 2:"},{"line_number":64,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_v2_client"},{"line_number":65,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_v2_client"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa31d9ce_4d55cdc4","line":65,"range":{"start_line":60,"start_character":7,"end_line":65,"end_character":67},"in_reply_to":"fa31d9ce_6d8d317b","updated":"2017-02-09 21:01:55.000000000","message":"1. I don\u0027t understand why you believe we don\u0027t need admin tests.\n2. There is no YAML.","commit_id":"009bfb07eccc15e6ed36a1015517c4de4ec68028"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"5b3d03de519f1fce67e3b3c67e1d1f0218699e8e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        super(BaseVolumeAdminRbacTest, cls).setup_clients()"},{"line_number":58,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":59,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":60,"context_line":"        if cls._api_version \u003d\u003d 1:"},{"line_number":61,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_client"},{"line_number":62,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_client"},{"line_number":63,"context_line":"        elif cls._api_version \u003d\u003d 2:"},{"line_number":64,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_v2_client"},{"line_number":65,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_v2_client"}],"source_content_type":"text/x-python","patch_set":7,"id":"da36d5c6_a82cca02","line":65,"range":{"start_line":60,"start_character":0,"end_line":65,"end_character":67},"updated":"2017-02-23 19:14:04.000000000","message":"Can\u0027t be replace it like this - \n\nverion_client_mapper \u003d {\u00271\u0027:[cls.os.volume_hosts_client, cls.os.volume_types_client], \n                        \u00272\u0027:[cls.os.volume_hosts_v2_client, cls.os.volume_types_v2_client]}\n\ncls.volume_hosts_client, cls.volume_types_client \u003d version_client_mapper[str(_api_version)]","commit_id":"c3993e8ba06204769d823a91e891424daf5317e0"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"8927d0fd6412c023f4b127ad4857dd346b9c3085","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        super(BaseVolumeAdminRbacTest, cls).setup_clients()"},{"line_number":58,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":59,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":60,"context_line":"        if cls._api_version \u003d\u003d 1:"},{"line_number":61,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_client"},{"line_number":62,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_client"},{"line_number":63,"context_line":"        elif cls._api_version \u003d\u003d 2:"},{"line_number":64,"context_line":"            cls.volume_hosts_client \u003d cls.os.volume_hosts_v2_client"},{"line_number":65,"context_line":"            cls.volume_types_client \u003d cls.os.volume_types_v2_client"}],"source_content_type":"text/x-python","patch_set":7,"id":"da36d5c6_5deb0978","line":65,"range":{"start_line":60,"start_character":0,"end_line":65,"end_character":67},"in_reply_to":"da36d5c6_a82cca02","updated":"2017-02-23 21:50:01.000000000","message":"I like the idea, especially since I\u0027ve seen this sort of thing done in various places in Tempest. However, the key\u0027s don\u0027t *have* to be strings:\n\n\u003e\u003e\u003e a \u003d {1: \u0027foo\u0027, 2: \u0027bar\u0027}\n\u003e\u003e\u003e print a[1]\nfoo\n\u003e\u003e\u003e print a[2]\nbar","commit_id":"c3993e8ba06204769d823a91e891424daf5317e0"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"252c4525dff05d622a5475f12af3fb6495c99902","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        super(BaseVolumeAdminRbacTest, cls).setup_clients()"},{"line_number":58,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":59,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":60,"context_line":"        client_version \u003d {"},{"line_number":61,"context_line":"            1: [cls.os.volume_hosts_client, cls.os.volume_types_client],"},{"line_number":62,"context_line":"            2: [cls.os.volume_hosts_v2_client, cls.os.volume_types_v2_client]"},{"line_number":63,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":8,"id":"da36d5c6_2762b6d8","line":60,"range":{"start_line":60,"start_character":8,"end_line":60,"end_character":22},"updated":"2017-02-24 07:32:19.000000000","message":"return is not a \u0027version\u0027, it should be \u0027volume_clients\u0027 which in turn gives host client and type client.","commit_id":"3266b9e6b4b1f433cc95f723d16a357c51f88b15"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"869c35a248702b98f5a0edbd6610467e6b2c09bc","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        super(BaseVolumeAdminRbacTest, cls).setup_clients()"},{"line_number":58,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":59,"context_line":"        cls.admin_client \u003d cls.os_adm.volumes_client"},{"line_number":60,"context_line":"        client_version \u003d {"},{"line_number":61,"context_line":"            1: [cls.os.volume_hosts_client, cls.os.volume_types_client],"},{"line_number":62,"context_line":"            2: [cls.os.volume_hosts_v2_client, cls.os.volume_types_v2_client]"},{"line_number":63,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":8,"id":"da36d5c6_5a7653d9","line":60,"range":{"start_line":60,"start_character":8,"end_line":60,"end_character":22},"in_reply_to":"da36d5c6_2762b6d8","updated":"2017-02-27 20:08:06.000000000","message":"volume_clients could be too easily confused with volumes_client, but I agree the name is misleading.","commit_id":"3266b9e6b4b1f433cc95f723d16a357c51f88b15"}]}
