)]}'
{"patrole_tempest_plugin/tests/api/compute/admin/test_admin_password_rbac.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"fd2d16e3187eff74879536be73d9360fafc2d381","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        try:"},{"line_number":60,"context_line":"            self.client.change_password("},{"line_number":61,"context_line":"                self.server_id,"},{"line_number":62,"context_line":"                adminPass\u003ddata_utils.rand_name(\u0027password\u0027))"},{"line_number":63,"context_line":"        except exceptions.NotImplemented:"},{"line_number":64,"context_line":"            raise self.skipException("},{"line_number":65,"context_line":"                \u0027%s skipped because endpoint is not implemented\u0027 %"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa31d9ce_1a1aad7d","line":62,"range":{"start_line":62,"start_character":37,"end_line":62,"end_character":58},"updated":"2017-02-13 19:59:06.000000000","message":"Nit: rand_password()","commit_id":"b3861280cc20ca99a251dba9faa1a3c205f89f99"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"fd2d16e3187eff74879536be73d9360fafc2d381","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            self.client.change_password("},{"line_number":61,"context_line":"                self.server_id,"},{"line_number":62,"context_line":"                adminPass\u003ddata_utils.rand_name(\u0027password\u0027))"},{"line_number":63,"context_line":"        except exceptions.NotImplemented:"},{"line_number":64,"context_line":"            raise self.skipException("},{"line_number":65,"context_line":"                \u0027%s skipped because endpoint is not implemented\u0027 %"},{"line_number":66,"context_line":"                \u0027test_change_server_password\u0027)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @rbac_rule_validation.action("},{"line_number":69,"context_line":"        service\u003d\"nova\", rule\u003d\"os_compute_api:os-admin-password:discoverable\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa31d9ce_9d15b741","line":66,"range":{"start_line":63,"start_character":8,"end_line":66,"end_character":46},"updated":"2017-02-13 19:59:06.000000000","message":"Is this really needed upstream?","commit_id":"b3861280cc20ca99a251dba9faa1a3c205f89f99"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"4f499a30fff530998837e0c79cf3df84814a1014","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            self.client.change_password("},{"line_number":61,"context_line":"                self.server_id,"},{"line_number":62,"context_line":"                adminPass\u003ddata_utils.rand_name(\u0027password\u0027))"},{"line_number":63,"context_line":"        except exceptions.NotImplemented:"},{"line_number":64,"context_line":"            raise self.skipException("},{"line_number":65,"context_line":"                \u0027%s skipped because endpoint is not implemented\u0027 %"},{"line_number":66,"context_line":"                \u0027test_change_server_password\u0027)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @rbac_rule_validation.action("},{"line_number":69,"context_line":"        service\u003d\"nova\", rule\u003d\"os_compute_api:os-admin-password:discoverable\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa31d9ce_8001ca6c","line":66,"range":{"start_line":63,"start_character":8,"end_line":66,"end_character":46},"in_reply_to":"fa31d9ce_9d15b741","updated":"2017-02-13 20:47:57.000000000","message":"Yes, but the way it\u0027s currently implemented can be improved (and will be in the next patch set).","commit_id":"b3861280cc20ca99a251dba9faa1a3c205f89f99"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"744da883c400ebd16c9607420447fdcdb8932061","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    @classmethod"},{"line_number":37,"context_line":"    def setup_clients(cls):"},{"line_number":38,"context_line":"        super(PasswordAdminRbacTest, cls).setup_clients()"},{"line_number":39,"context_line":"        cls.admin_client \u003d cls.os_adm.servers_client"},{"line_number":40,"context_line":"        cls.client \u003d cls.servers_client"},{"line_number":41,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"fa31d9ce_908031f9","line":39,"range":{"start_line":39,"start_character":8,"end_line":39,"end_character":52},"updated":"2017-02-14 03:21:40.000000000","message":"Is this needed? cls.admin_client is already defined in the base rbac compute class, albeit slightly differently, but didn\u0027t think it mattered, so long as it pointed to an admin client.","commit_id":"067928bd9e0285b5c078443688419c0802ece91f"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"744da883c400ebd16c9607420447fdcdb8932061","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        super(PasswordAdminRbacTest, cls).setup_clients()"},{"line_number":39,"context_line":"        cls.admin_client \u003d cls.os_adm.servers_client"},{"line_number":40,"context_line":"        cls.client \u003d cls.servers_client"},{"line_number":41,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @classmethod"},{"line_number":44,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa31d9ce_f0940d44","line":41,"range":{"start_line":41,"start_character":8,"end_line":41,"end_character":48},"updated":"2017-02-14 03:21:40.000000000","message":"This is defined in the base rbac compute class already.","commit_id":"067928bd9e0285b5c078443688419c0802ece91f"}],"patrole_tempest_plugin/tests/api/compute/admin/test_admin_server_actions_rbac.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"744da883c400ebd16c9607420447fdcdb8932061","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    @classmethod"},{"line_number":34,"context_line":"    def setup_clients(cls):"},{"line_number":35,"context_line":"        super(ServersAdminRbacTest, cls).setup_clients()"},{"line_number":36,"context_line":"        cls.admin_client \u003d cls.os_adm.servers_client"},{"line_number":37,"context_line":"        cls.client \u003d cls.servers_client"},{"line_number":38,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"fa31d9ce_50a319b2","line":36,"range":{"start_line":36,"start_character":8,"end_line":36,"end_character":52},"updated":"2017-02-14 03:21:40.000000000","message":"Is this, strictly speaking, needed?","commit_id":"067928bd9e0285b5c078443688419c0802ece91f"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"744da883c400ebd16c9607420447fdcdb8932061","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        super(ServersAdminRbacTest, cls).setup_clients()"},{"line_number":36,"context_line":"        cls.admin_client \u003d cls.os_adm.servers_client"},{"line_number":37,"context_line":"        cls.client \u003d cls.servers_client"},{"line_number":38,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @classmethod"},{"line_number":41,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa31d9ce_b0b7f5f3","line":38,"range":{"start_line":38,"start_character":8,"end_line":38,"end_character":48},"updated":"2017-02-14 03:21:40.000000000","message":"This is defined in the base rbac compute class already.","commit_id":"067928bd9e0285b5c078443688419c0802ece91f"}],"patrole_tempest_plugin/tests/api/compute/test_admin_server_actions_rbac.py":[{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"dbc9cdbafa1fa4f38b84513037a4ba74383f7d42","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 AT\u0026T 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":"1a430d35_c25ae229","line":1,"range":{"start_line":1,"start_character":15,"end_line":1,"end_character":16},"updated":"2017-02-07 15:10:08.000000000","message":"2017","commit_id":"1960ccb5d5eb0038a84513df37ed454a69fb518d"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"dbc9cdbafa1fa4f38b84513037a4ba74383f7d42","unresolved":false,"context_lines":[{"line_number":28,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class ServersAdminRbacTest(rbac_base.BaseV2ComputeRbacTest):"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @classmethod"},{"line_number":34,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a430d35_22e64644","line":31,"range":{"start_line":31,"start_character":37,"end_line":31,"end_character":58},"updated":"2017-02-07 15:10:08.000000000","message":"Admin tests should inherit from the admin base class","commit_id":"1960ccb5d5eb0038a84513df37ed454a69fb518d"},{"author":{"_account_id":20411,"name":"Julian","email":"julian.sy@att.com","username":"syjulian"},"change_message_id":"c5316782279d7b931076af6f12d0f5260a4919e0","unresolved":false,"context_lines":[{"line_number":28,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class ServersAdminRbacTest(rbac_base.BaseV2ComputeRbacTest):"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @classmethod"},{"line_number":34,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a430d35_59c7c463","line":31,"range":{"start_line":31,"start_character":37,"end_line":31,"end_character":58},"in_reply_to":"1a430d35_22e64644","updated":"2017-02-07 15:39:09.000000000","message":"what is different with the Admin Base class?","commit_id":"1960ccb5d5eb0038a84513df37ed454a69fb518d"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"64e33832f4a0f93f39c0f6e68143acc73adb0895","unresolved":false,"context_lines":[{"line_number":28,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class ServersAdminRbacTest(rbac_base.BaseV2ComputeRbacTest):"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @classmethod"},{"line_number":34,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a430d35_c0f1f502","line":31,"range":{"start_line":31,"start_character":37,"end_line":31,"end_character":58},"in_reply_to":"1a430d35_4a80c48b","updated":"2017-02-07 16:51:20.000000000","message":"That\u0027s necessary for all tests, whether they\u0027re admin or not. The admin and regular base classes are pretty much the same, but the what they\u0027re inheriting can be very different.","commit_id":"1960ccb5d5eb0038a84513df37ed454a69fb518d"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"116ee4e225d48ae31e272d1f7600ac1efbfa9092","unresolved":false,"context_lines":[{"line_number":28,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class ServersAdminRbacTest(rbac_base.BaseV2ComputeRbacTest):"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @classmethod"},{"line_number":34,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a430d35_ea5df079","line":31,"range":{"start_line":31,"start_character":37,"end_line":31,"end_character":58},"in_reply_to":"1a430d35_59c7c463","updated":"2017-02-07 16:28:21.000000000","message":"Some different clients and credentials.  It is largely for consistency and future-proofing the tests in case of other admin changes.","commit_id":"1960ccb5d5eb0038a84513df37ed454a69fb518d"},{"author":{"_account_id":20411,"name":"Julian","email":"julian.sy@att.com","username":"syjulian"},"change_message_id":"159546b0b6684809d696d58b3411e6e4867fbab8","unresolved":false,"context_lines":[{"line_number":28,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class ServersAdminRbacTest(rbac_base.BaseV2ComputeRbacTest):"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @classmethod"},{"line_number":34,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a430d35_4a80c48b","line":31,"range":{"start_line":31,"start_character":37,"end_line":31,"end_character":58},"in_reply_to":"1a430d35_ea5df079","updated":"2017-02-07 16:31:27.000000000","message":"I notice some of the rbac base classes have a skip check for \"admin\" being a tempest role like in \nhttps://github.com/openstack/patrole/blob/master/patrole_tempest_plugin/tests/api/image/rbac_base.py#L31\n\nis this something that should go to an admin base class? or should the admin base class be pretty much siimilar to the non-admin one?","commit_id":"1960ccb5d5eb0038a84513df37ed454a69fb518d"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"dbc9cdbafa1fa4f38b84513037a4ba74383f7d42","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":58,"context_line":"        try:"},{"line_number":59,"context_line":"            self.client.reset_state(self.server_id, state\u003d\u0027error\u0027)"},{"line_number":60,"context_line":"        finally:"},{"line_number":61,"context_line":"            self.client.reset_state(self.server_id, state\u003d\u0027active\u0027)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @rbac_rule_validation.action("},{"line_number":64,"context_line":"        service\u003d\"nova\","}],"source_content_type":"text/x-python","patch_set":1,"id":"1a430d35_02af8ae2","line":61,"range":{"start_line":60,"start_character":0,"end_line":61,"end_character":67},"updated":"2017-02-07 15:10:08.000000000","message":"This should be added as a cleanup","commit_id":"1960ccb5d5eb0038a84513df37ed454a69fb518d"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"f27fb0e093414e87b16dffbcf0af2666e294f233","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 AT\u0026T 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":2,"id":"1a430d35_80652d1f","line":1,"range":{"start_line":1,"start_character":15,"end_line":1,"end_character":16},"updated":"2017-02-07 17:09:17.000000000","message":"See patch set 1","commit_id":"1f105f787ead224e659e49e919b2744abb4a13fc"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"f27fb0e093414e87b16dffbcf0af2666e294f233","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":"from tempest import config"},{"line_number":18,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":19,"context_line":"from tempest.lib import decorators"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a430d35_804c4d9f","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":35},"updated":"2017-02-07 17:09:17.000000000","message":"It doesn\u0027t seem like logging is being used","commit_id":"1f105f787ead224e659e49e919b2744abb4a13fc"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"f27fb0e093414e87b16dffbcf0af2666e294f233","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"CONF \u003d config.CONF"},{"line_number":28,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class ServersAdminRbacTest(rbac_base.BaseV2ComputeAdminRbacTest):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a430d35_e047d174","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":33},"updated":"2017-02-07 17:09:17.000000000","message":"See L16","commit_id":"1f105f787ead224e659e49e919b2744abb4a13fc"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"f27fb0e093414e87b16dffbcf0af2666e294f233","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":58,"context_line":"        try:"},{"line_number":59,"context_line":"            self.client.reset_state(self.server_id, state\u003d\u0027error\u0027)"},{"line_number":60,"context_line":"        finally:"},{"line_number":61,"context_line":"            self.client.reset_state(self.server_id, state\u003d\u0027active\u0027)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @rbac_rule_validation.action("},{"line_number":64,"context_line":"        service\u003d\"nova\","}],"source_content_type":"text/x-python","patch_set":2,"id":"1a430d35_20b0f989","line":61,"range":{"start_line":60,"start_character":0,"end_line":61,"end_character":67},"updated":"2017-02-07 17:09:17.000000000","message":"See patch set 1","commit_id":"1f105f787ead224e659e49e919b2744abb4a13fc"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"f27fb0e093414e87b16dffbcf0af2666e294f233","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    def test_change_server_password(self):"},{"line_number":83,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":84,"context_line":"        try:"},{"line_number":85,"context_line":"            self.client.change_password(data_utils.rand_name(\u0027password\u0027))"},{"line_number":86,"context_line":"        except exceptions.NotImplemented:"},{"line_number":87,"context_line":"            raise self.skipException("},{"line_number":88,"context_line":"                \u0027%s skipped because endpoint is not implemented\u0027 %"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a430d35_9b891c78","line":85,"range":{"start_line":85,"start_character":40,"end_line":85,"end_character":72},"updated":"2017-02-07 17:09:17.000000000","message":"Check the args","commit_id":"1f105f787ead224e659e49e919b2744abb4a13fc"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"355fd8c3aad8d9493dc21437b9b0b0061732429c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 AT\u0026T 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":3,"id":"1a430d35_9944914a","line":1,"range":{"start_line":1,"start_character":15,"end_line":1,"end_character":16},"updated":"2017-02-08 16:48:29.000000000","message":"See patch set 1","commit_id":"aa349108f0e68ac8ea759610d69a86361ab789bc"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"355fd8c3aad8d9493dc21437b9b0b0061732429c","unresolved":false,"context_lines":[{"line_number":29,"context_line":"class ServersAdminRbacTest(rbac_base.BaseV2ComputeAdminRbacTest):"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def tearDown(self):"},{"line_number":32,"context_line":"        super(ServersAdminRbacTest, self).tearDown()"},{"line_number":33,"context_line":"        self.client.reset_state(self.server_id, state\u003d\u0027active\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a430d35_5956a906","line":32,"updated":"2017-02-08 16:48:29.000000000","message":"Call to super should be last. Also, switch_role needs to be called","commit_id":"aa349108f0e68ac8ea759610d69a86361ab789bc"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"355fd8c3aad8d9493dc21437b9b0b0061732429c","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def tearDown(self):"},{"line_number":32,"context_line":"        super(ServersAdminRbacTest, self).tearDown()"},{"line_number":33,"context_line":"        self.client.reset_state(self.server_id, state\u003d\u0027active\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @classmethod"},{"line_number":36,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a430d35_b966adea","line":33,"updated":"2017-02-08 16:48:29.000000000","message":"I think this would be better as self.addCleanup in the function where it\u0027s needed","commit_id":"aa349108f0e68ac8ea759610d69a86361ab789bc"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"56d05b3ec77d78f3c9bad447ebc687442fd48dd6","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":79,"context_line":"        self.client.reset_network(self.server_id)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    @rbac_rule_validation.action("},{"line_number":82,"context_line":"        service\u003d\"nova\", rule\u003d\"os_compute_api:os-admin-password\")"},{"line_number":83,"context_line":"    @decorators.idempotent_id(\u0027908a7d59-3a66-441c-94cf-38e57ed14956\u0027)"},{"line_number":84,"context_line":"    def test_change_server_password(self):"},{"line_number":85,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            self.client.change_password("},{"line_number":88,"context_line":"                self.server_id,"},{"line_number":89,"context_line":"                adminPass\u003ddata_utils.rand_name(\u0027password\u0027))"},{"line_number":90,"context_line":"        except exceptions.NotImplemented:"},{"line_number":91,"context_line":"            raise self.skipException("},{"line_number":92,"context_line":"                \u0027%s skipped because endpoint is not implemented\u0027 %"},{"line_number":93,"context_line":"                \u0027test_change_server_password\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa31d9ce_e94b9f29","line":93,"range":{"start_line":81,"start_character":0,"end_line":93,"end_character":46},"updated":"2017-02-10 21:23:24.000000000","message":"For the sake of consistency, this should be moved into a different file called test_admin_password. Admin actions do not include os-admin-password (and besides that, the policy namespace is different than os-admin-actions): \n\nhttps://github.com/openstack/nova/blob/master/nova/policies/admin_actions.py\n\nhttps://github.com/openstack/nova/blob/master/nova/policies/admin_password.py","commit_id":"2a3b5864f57aef54e4cd425f673b83fb6797c479"}]}
