)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"3ceab3909378a4cb10142b2af9293d3da275fa73","unresolved":true,"context_lines":[{"line_number":16,"context_line":"delete a secret being made that failed."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"To eliminate this the use of the scenario manager base class is removed"},{"line_number":19,"context_line":"internally and the logic required to create a volume type, encrypted"},{"line_number":20,"context_line":"volume type and finally an encrypted volume is copied over verbatim. A"},{"line_number":21,"context_line":"TODO is left in place to have this code refactored into a shared place"},{"line_number":22,"context_line":"somewhere within Tempest in the future so both the API and Scenario"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9bfeeec3_27e2510d","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":10},"updated":"2021-03-16 14:51:27.000000000","message":"entirely","commit_id":"81248b1cf7d457937a63065ef5b96d9a442cabf6"}],"whitebox_tempest_plugin/api/compute/base.py":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"0c27ff0a7b3c8a50ff84431e1122b20317aa3667","unresolved":false,"context_lines":[{"line_number":180,"context_line":"            detail\u003dTrue, params\u003d{\u0027all_tenants\u0027: 1})[\u0027volumes\u0027]"},{"line_number":181,"context_line":"        type_name \u003d volume_type[\u0027name\u0027]"},{"line_number":182,"context_line":"        for volume in [v for v in volumes if v[\u0027volume_type\u0027] \u003d\u003d type_name]:"},{"line_number":183,"context_line":"            test_utils.call_and_ignore_notfound_exc("},{"line_number":184,"context_line":"                admin_volumes_client.delete_volume, volume[\u0027id\u0027])"},{"line_number":185,"context_line":"            admin_volumes_client.wait_for_resource_deletion(volume[\u0027id\u0027])"},{"line_number":186,"context_line":"        admin_volume_type_client.delete_volume_type(volume_type[\u0027id\u0027])"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    def create_volume_type(self, client\u003dNone, name\u003dNone, backend_name\u003dNone,"}],"source_content_type":"text/x-python","patch_set":7,"id":"882037f0_a99a9352","line":185,"range":{"start_line":183,"start_character":0,"end_line":185,"end_character":73},"updated":"2021-03-16 19:10:06.000000000","message":"This would cause the same issue as before as a project user was used to initially create the encrypted volume and associated secrets but here we are trying to use an admin to delete them both.","commit_id":"8b6fcf441e8dc405357ab9e15a803df1e81be773"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"5ed6276ec70d9809784d1ebec9d8f625ee54b67d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class BaseWhiteboxComputeTest(base.BaseV2ComputeAdminTest):"},{"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":10,"id":"d4fbae8b_5625713e","line":33,"range":{"start_line":33,"start_character":6,"end_line":33,"end_character":29},"updated":"2021-03-17 09:18:03.000000000","message":"This should really be called BaseWhiteboxComputeAdminTest given the setup_clients","commit_id":"840d6bd9cffcc017f5ee48fa44cbc2d4bbb05ab2"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"5ed6276ec70d9809784d1ebec9d8f625ee54b67d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def setup_clients(cls):"},{"line_number":37,"context_line":"        super(BaseWhiteboxComputeTest, cls).setup_clients()"},{"line_number":38,"context_line":"        # TODO(stephenfin): Rewrite tests to use \u0027admin_servers_client\u0027 etc."},{"line_number":39,"context_line":"        cls.servers_client \u003d cls.os_admin.servers_client"},{"line_number":40,"context_line":"        cls.flavors_client \u003d cls.os_admin.flavors_client"},{"line_number":41,"context_line":"        cls.service_client \u003d cls.os_admin.services_client"},{"line_number":42,"context_line":"        cls.image_client \u003d cls.os_admin.image_client_v2"},{"line_number":43,"context_line":"        cls.admin_migration_client \u003d cls.os_admin.migrations_client"},{"line_number":44,"context_line":"        cls.admin_volumes_client \u003d cls.os_admin.volumes_client_latest"},{"line_number":45,"context_line":"        cls.admin_volume_types_client \u003d cls.os_admin.volume_types_client_latest"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a55768a_6f0d20a9","line":42,"range":{"start_line":39,"start_character":0,"end_line":42,"end_character":55},"updated":"2021-03-17 09:18:03.000000000","message":"Because of this the encryption tests need to use admin clients everywhere.","commit_id":"840d6bd9cffcc017f5ee48fa44cbc2d4bbb05ab2"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"9b8c797bb40abcb374050b65dd77eb6dd090e042","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        cls.flavors_client \u003d cls.os_admin.flavors_client"},{"line_number":41,"context_line":"        cls.service_client \u003d cls.os_admin.services_client"},{"line_number":42,"context_line":"        cls.image_client \u003d cls.os_admin.image_client_v2"},{"line_number":43,"context_line":"        cls.volumes_client \u003d cls.os_admin.volumes_client_latest"},{"line_number":44,"context_line":"        cls.admin_migration_client \u003d cls.os_admin.migrations_client"},{"line_number":45,"context_line":"        cls.admin_volumes_client \u003d cls.os_admin.volumes_client_latest"},{"line_number":46,"context_line":"        cls.admin_volume_types_client \u003d cls.os_admin.volume_types_client_latest"}],"source_content_type":"text/x-python","patch_set":12,"id":"f0b07289_412d3bae","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":63},"updated":"2021-03-17 12:29:55.000000000","message":"For context, the above overriding of clients with their admin based versions is evil and should be avoided IMHO.\n\nI\u0027ve had to do it here to ensure the volume is created with the same client that is later used to attach it to the instance.\n\nIt\u0027s also why I included an admin_volumes_client below that\u0027s specifically used when we need to use an admin user during cleanup_volume_type.\n\nIMHO this base class needs to be moved to BaseV2ComputeTest with the specific admin clients only used when they actually need to be. For move operations and the like etc.\n\nI can throw this in a comment if it would help.","commit_id":"17dc555d0ed8c12b7e30b0a19a1456c0e713c73a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1568762302a76e2aa83740bec197c7847773a781","unresolved":true,"context_lines":[{"line_number":177,"context_line":"        created from the type."},{"line_number":178,"context_line":"        \"\"\""},{"line_number":179,"context_line":"        volumes \u003d self.admin_volumes_client.list_volumes("},{"line_number":180,"context_line":"            detail\u003dTrue, params\u003d{\u0027all_tenants\u0027: 1})[\u0027volumes\u0027]"},{"line_number":181,"context_line":"        type_name \u003d volume_type[\u0027name\u0027]"},{"line_number":182,"context_line":"        for volume in [v for v in volumes if v[\u0027volume_type\u0027] \u003d\u003d type_name]:"},{"line_number":183,"context_line":"            # Use the same project client to delete the volume as was used to"}],"source_content_type":"text/x-python","patch_set":16,"id":"64a2610a_bcd73428","line":180,"range":{"start_line":180,"start_character":33,"end_line":180,"end_character":50},"updated":"2021-03-23 17:37:52.000000000","message":"this means that its not safe to run whitebox on a production cloud.\n\ni gues that kind fo ture because of other things it does but we might want to note this in the readme.\nthat could be in a followup however","commit_id":"04e54d1ff91d139a7fc2e01bd4185e4e766d1646"},{"author":{"_account_id":27478,"name":"Archit Modi","email":"amodi@redhat.com","username":"amodi"},"change_message_id":"d66c2968bb8af91032f2809bb12f676ad0b74a17","unresolved":true,"context_lines":[{"line_number":177,"context_line":"        created from the type."},{"line_number":178,"context_line":"        \"\"\""},{"line_number":179,"context_line":"        volumes \u003d self.admin_volumes_client.list_volumes("},{"line_number":180,"context_line":"            detail\u003dTrue, params\u003d{\u0027all_tenants\u0027: 1})[\u0027volumes\u0027]"},{"line_number":181,"context_line":"        type_name \u003d volume_type[\u0027name\u0027]"},{"line_number":182,"context_line":"        for volume in [v for v in volumes if v[\u0027volume_type\u0027] \u003d\u003d type_name]:"},{"line_number":183,"context_line":"            # Use the same project client to delete the volume as was used to"}],"source_content_type":"text/x-python","patch_set":16,"id":"e2f53743_98c12799","line":180,"range":{"start_line":180,"start_character":33,"end_line":180,"end_character":50},"in_reply_to":"64a2610a_bcd73428","updated":"2021-03-23 18:01:08.000000000","message":"This is all copied from upstream tempest, https://github.com/openstack/tempest/blob/master/tempest/scenario/manager.py, so we might need to update both (or tempest first)","commit_id":"04e54d1ff91d139a7fc2e01bd4185e4e766d1646"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1568762302a76e2aa83740bec197c7847773a781","unresolved":true,"context_lines":[{"line_number":209,"context_line":"        if not client:"},{"line_number":210,"context_line":"            client \u003d self.admin_volume_types_client"},{"line_number":211,"context_line":"        if not name:"},{"line_number":212,"context_line":"            class_name \u003d self.__class__.__name__"},{"line_number":213,"context_line":"            name \u003d data_utils.rand_name(class_name + \u0027-volume-type\u0027)"},{"line_number":214,"context_line":"        randomized_name \u003d data_utils.rand_name(\u0027scenario-type-\u0027 + name)"},{"line_number":215,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"f3fc11a1_45b2b2f0","line":212,"range":{"start_line":212,"start_character":12,"end_line":212,"end_character":48},"updated":"2021-03-23 17:37:52.000000000","message":"nit: i guess this works but it would be nicer to just alwasy pass a name","commit_id":"04e54d1ff91d139a7fc2e01bd4185e4e766d1646"}],"whitebox_tempest_plugin/api/compute/test_volume_encryption.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"92a35154df2fea5ee761cb55f5bc333aee212f0a","unresolved":true,"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 TestQEMUVolumeEncryption(manager.EncryptionScenarioTest,"},{"line_number":32,"context_line":"                               base.BaseWhiteboxComputeTest):"},{"line_number":33,"context_line":"    \u0027\u0027\u0027Test which validates encryption. The test performs the following:"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"d681ed91_0c3fcc15","line":31,"updated":"2021-03-05 20:19:56.000000000","message":"if the order is impoarnt here then we need a comment to that effect.\nthat said this is more fragile then i would like.\na function defined in the class directly should take precidence over it parents.\nif we need to call a parent version of a funtion we can do that explictly.","commit_id":"cd78ef2841f0418b5016b88c496e0df97b09adca"},{"author":{"_account_id":27478,"name":"Archit Modi","email":"amodi@redhat.com","username":"amodi"},"change_message_id":"b2ea03f07fd8c412b8176c80b5834962833bace1","unresolved":true,"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 TestQEMUVolumeEncryption(manager.EncryptionScenarioTest,"},{"line_number":32,"context_line":"                               base.BaseWhiteboxComputeTest):"},{"line_number":33,"context_line":"    \u0027\u0027\u0027Test which validates encryption. The test performs the following:"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"e07667b0_0fce08a1","line":31,"in_reply_to":"d681ed91_0c3fcc15","updated":"2021-03-08 14:41:37.000000000","message":"sure i\u0027d be more than happy to have a better alternative","commit_id":"cd78ef2841f0418b5016b88c496e0df97b09adca"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"92a35154df2fea5ee761cb55f5bc333aee212f0a","unresolved":true,"context_lines":[{"line_number":51,"context_line":"        if not CONF.compute_feature_enabled.attach_encrypted_volume:"},{"line_number":52,"context_line":"            raise cls.skipException(\u0027Encrypted volume attach is not supported\u0027)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def get_server_xml(self, server):"},{"line_number":55,"context_line":"        host \u003d server[\u0027OS-EXT-SRV-ATTR:host\u0027]"},{"line_number":56,"context_line":"        cntrlplane_addr \u003d whitebox_utils.get_ctlplane_address(host)"},{"line_number":57,"context_line":"        virshxml \u003d clients.VirshXMLClient(cntrlplane_addr)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1db144f6_840313d9","line":54,"range":{"start_line":54,"start_character":8,"end_line":54,"end_character":22},"updated":"2021-03-05 20:19:56.000000000","message":"this does not actully use self so the order of inheritece should not affect this.","commit_id":"cd78ef2841f0418b5016b88c496e0df97b09adca"},{"author":{"_account_id":27478,"name":"Archit Modi","email":"amodi@redhat.com","username":"amodi"},"change_message_id":"b2ea03f07fd8c412b8176c80b5834962833bace1","unresolved":true,"context_lines":[{"line_number":51,"context_line":"        if not CONF.compute_feature_enabled.attach_encrypted_volume:"},{"line_number":52,"context_line":"            raise cls.skipException(\u0027Encrypted volume attach is not supported\u0027)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def get_server_xml(self, server):"},{"line_number":55,"context_line":"        host \u003d server[\u0027OS-EXT-SRV-ATTR:host\u0027]"},{"line_number":56,"context_line":"        cntrlplane_addr \u003d whitebox_utils.get_ctlplane_address(host)"},{"line_number":57,"context_line":"        virshxml \u003d clients.VirshXMLClient(cntrlplane_addr)"}],"source_content_type":"text/x-python","patch_set":4,"id":"12b0058d_fdcacfaa","line":54,"range":{"start_line":54,"start_character":8,"end_line":54,"end_character":22},"in_reply_to":"1db144f6_840313d9","updated":"2021-03-08 14:41:37.000000000","message":"but it does, see reply below","commit_id":"cd78ef2841f0418b5016b88c496e0df97b09adca"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"92a35154df2fea5ee761cb55f5bc333aee212f0a","unresolved":true,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        # Gather instance XML to ensure the encrypted volume is attached to the"},{"line_number":74,"context_line":"        # instance"},{"line_number":75,"context_line":"        xml \u003d self.get_server_xml(server)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        # Create a list of all attached volumes on the instance"},{"line_number":78,"context_line":"        attached_volumes \u003d xml.findall(\u0027.//disk\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"728a8c59_e73f73c5","line":75,"range":{"start_line":75,"start_character":14,"end_line":75,"end_character":33},"updated":"2021-03-05 20:19:56.000000000","message":"this should use the function defined in this class directly before checking any parents so please explain why the order of the base classes needs to be changed.","commit_id":"cd78ef2841f0418b5016b88c496e0df97b09adca"},{"author":{"_account_id":27478,"name":"Archit Modi","email":"amodi@redhat.com","username":"amodi"},"change_message_id":"b2ea03f07fd8c412b8176c80b5834962833bace1","unresolved":true,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        # Gather instance XML to ensure the encrypted volume is attached to the"},{"line_number":74,"context_line":"        # instance"},{"line_number":75,"context_line":"        xml \u003d self.get_server_xml(server)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        # Create a list of all attached volumes on the instance"},{"line_number":78,"context_line":"        attached_volumes \u003d xml.findall(\u0027.//disk\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"b1f0dd94_2a5231bd","line":75,"range":{"start_line":75,"start_character":14,"end_line":75,"end_character":33},"in_reply_to":"728a8c59_e73f73c5","updated":"2021-03-08 14:41:37.000000000","message":"Due to the order change, the creds used by servers_client are os_primary. hence, we cannot get the instance host info\nhttp://paste.openstack.org/show/803339/","commit_id":"cd78ef2841f0418b5016b88c496e0df97b09adca"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1568762302a76e2aa83740bec197c7847773a781","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class TestQEMUVolumeEncrption(base.BaseWhiteboxComputeTest,"},{"line_number":29,"context_line":"                              manager.EncryptionScenarioTest):"},{"line_number":30,"context_line":"    \u0027\u0027\u0027Test which validates encryption. The test performs the following:"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    1. Create a VM"}],"source_content_type":"text/x-python","patch_set":16,"id":"97999f9a_8ace84b9","side":"PARENT","line":29,"range":{"start_line":29,"start_character":38,"end_line":29,"end_character":60},"updated":"2021-03-23 17:37:52.000000000","message":"+1 for removing this","commit_id":"c6252d4e2ad4b91ff510287354c144ffb599a99e"}]}
