)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"a499c06d1a4efd0510d3889da7cb136def0fe4a3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"3b3fe646_d53f962c","updated":"2022-06-16 18:11:05.000000000","message":"But there were some suggestions on what to change... ok","commit_id":"5779bdba05b957ae29b3407b9bbff7617c884830"}],"cinder_tempest_plugin/scenario/manager.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"025af8f506ee25642ceb2bf70cf6039435f0dade","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        # those tests. In this way create_server just return a standard"},{"line_number":125,"context_line":"        # server and the scenario tests always perform ssh checks."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        # Needed for the cross_tenant_traffic test:"},{"line_number":128,"context_line":"        if clients is None:"},{"line_number":129,"context_line":"            clients \u003d self.os_primary"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_07470abe","line":127,"range":{"start_line":127,"start_character":25,"end_line":127,"end_character":50},"updated":"2019-02-01 09:58:21.000000000","message":"when will this condition occur?","commit_id":"467d81677da695a97b5a8fdce80f10782960e8eb"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d6f0408f1bb958f4d46bb225ef959f73b5fbf2ad","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        # those tests. In this way create_server just return a standard"},{"line_number":125,"context_line":"        # server and the scenario tests always perform ssh checks."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        # Needed for the cross_tenant_traffic test:"},{"line_number":128,"context_line":"        if clients is None:"},{"line_number":129,"context_line":"            clients \u003d self.os_primary"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_7e9e7db9","line":127,"range":{"start_line":127,"start_character":25,"end_line":127,"end_character":50},"in_reply_to":"9fdfeff1_07470abe","updated":"2019-02-14 16:29:39.000000000","message":"So, not sure. I have borrowed most of this code from tempest[1]. So, I didn\u0027t wanted to risk breaking something related to this.\n\n[1] https://github.com/openstack/tempest/blob/master/tempest/scenario/manager.py#L139","commit_id":"467d81677da695a97b5a8fdce80f10782960e8eb"},{"author":{"_account_id":11075,"name":"Benny Kopilov","email":"bkopilov@redhat.com","username":"bkopilov"},"change_message_id":"7b7a20aea1b23885718fd0fbbf214e6cb3df0e5c","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        body \u003d client.create_keypair(name\u003dname)"},{"line_number":104,"context_line":"        self.addCleanup(client.delete_keypair, name)"},{"line_number":105,"context_line":"        return body[\u0027keypair\u0027]"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def create_server(self, name\u003dNone, image_id\u003dNone, flavor\u003dNone,"},{"line_number":108,"context_line":"                      validatable\u003dFalse, wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":109,"context_line":"                      clients\u003dNone, **kwargs):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_5dc71899","line":106,"updated":"2019-11-24 11:04:37.000000000","message":"create_server already implemented in tempest scenario base.","commit_id":"943f23b458f434e457576c579e445b6bf5bd4686"},{"author":{"_account_id":11075,"name":"Benny Kopilov","email":"bkopilov@redhat.com","username":"bkopilov"},"change_message_id":"7b7a20aea1b23885718fd0fbbf214e6cb3df0e5c","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                        clients.servers_client.delete_server, body[\u0027id\u0027])"},{"line_number":211,"context_line":"        server \u003d clients.servers_client.show_server(body[\u0027id\u0027])[\u0027server\u0027]"},{"line_number":212,"context_line":"        return server"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def create_volume(self, size\u003dNone, name\u003dNone, snapshot_id\u003dNone,"},{"line_number":215,"context_line":"                      imageRef\u003dNone, volume_type\u003dNone):"},{"line_number":216,"context_line":"        if size is None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_bdd40c48","line":213,"updated":"2019-11-24 11:04:37.000000000","message":"Hi , Why we crate here create_volume again ... its already implemented in tempest.","commit_id":"943f23b458f434e457576c579e445b6bf5bd4686"},{"author":{"_account_id":11075,"name":"Benny Kopilov","email":"bkopilov@redhat.com","username":"bkopilov"},"change_message_id":"400e150374d65d24e1a3b1d4e3d5d52b73bdf864","unresolved":false,"context_lines":[{"line_number":347,"context_line":"            server\u003dserver, servers_client\u003dself.servers_client)"},{"line_number":348,"context_line":"        linux_client.validate_authentication()"},{"line_number":349,"context_line":"        return linux_client"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"    def nova_volume_attach(self, server, volume_to_attach, cleanup\u003dFalse):"},{"line_number":352,"context_line":"        volume \u003d self.servers_client.attach_volume("},{"line_number":353,"context_line":"            server[\u0027id\u0027], volumeId\u003dvolume_to_attach[\u0027id\u0027], device\u003d\u0027/dev/%s\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_bd33ac12","line":350,"updated":"2019-11-24 18:57:57.000000000","message":"I really think that the right approach here is to inherit code and not duplicate code with tempest git.  Please let me know if i am missing here something.","commit_id":"943f23b458f434e457576c579e445b6bf5bd4686"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"1816cee0aad5b136f74c96a474b4736af8419d18","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        ssh_client.exec_command(\u0027sudo umount %s\u0027 % mount_path)"},{"line_number":401,"context_line":"        return timestamp"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    def erase_volume_data(self, ip_address, dev_name, private_key, server,"},{"line_number":404,"context_line":"                          mount_path\u003d\u0027/mnt\u0027):"},{"line_number":405,"context_line":"        ssh_client \u003d self.get_remote_client(ip_address,"},{"line_number":406,"context_line":"                                            private_key\u003dprivate_key,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_29e72e49","line":403,"range":{"start_line":403,"start_character":8,"end_line":403,"end_character":25},"updated":"2019-02-20 19:10:14.000000000","message":"It may be good to name this something to indicate that it\u0027s wiping the volume by creating a new fs -- the method name sounds like it\u0027s going to zero the volume.\n\nAlso: is it worth doing a mount and ls in this command?  Seems like a lot of overhead just for debugging that a wipe occurred?","commit_id":"943f23b458f434e457576c579e445b6bf5bd4686"}],"cinder_tempest_plugin/scenario/test_volume_revert.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"025af8f506ee25642ceb2bf70cf6039435f0dade","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    @decorators.idempotent_id(\u002785cf1892-d946-11e8-923b-072bea8e084e\u0027)"},{"line_number":44,"context_line":"    def test_volume_revert_to_snapshot(self):"},{"line_number":45,"context_line":"        keypair \u003d self.create_keypair()"},{"line_number":46,"context_line":"        LOG.debug(\u0027Keypair is: %s\u0027, keypair)"},{"line_number":47,"context_line":"        security_groups \u003d [{\u0027name\u0027: self._create_security_group()[\u0027name\u0027]}]"},{"line_number":48,"context_line":"        LOG.debug(\u0027Created security group: %s\u0027, security_groups)"},{"line_number":49,"context_line":"        volume \u003d self.create_volume()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_bcebb110","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":44},"updated":"2019-02-01 09:58:21.000000000","message":"I don\u0027t think using debug is a good idea in tests. can we remove all the LOG.debug occurrences.","commit_id":"467d81677da695a97b5a8fdce80f10782960e8eb"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d6f0408f1bb958f4d46bb225ef959f73b5fbf2ad","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    @decorators.idempotent_id(\u002785cf1892-d946-11e8-923b-072bea8e084e\u0027)"},{"line_number":44,"context_line":"    def test_volume_revert_to_snapshot(self):"},{"line_number":45,"context_line":"        keypair \u003d self.create_keypair()"},{"line_number":46,"context_line":"        LOG.debug(\u0027Keypair is: %s\u0027, keypair)"},{"line_number":47,"context_line":"        security_groups \u003d [{\u0027name\u0027: self._create_security_group()[\u0027name\u0027]}]"},{"line_number":48,"context_line":"        LOG.debug(\u0027Created security group: %s\u0027, security_groups)"},{"line_number":49,"context_line":"        volume \u003d self.create_volume()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_4c51d335","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":44},"in_reply_to":"9fdfeff1_bcebb110","updated":"2019-02-14 16:29:39.000000000","message":"Done","commit_id":"467d81677da695a97b5a8fdce80f10782960e8eb"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"3d82a3e644c58a132289678f15259e26823cfd62","unresolved":true,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def revert_volume_to_snapshot(self, volume, snapshot):"},{"line_number":47,"context_line":"        self.volume_revert_client.revert_to_snapshot(volume, snapshot[\u0027id\u0027])"},{"line_number":48,"context_line":"        waiters.wait_for_volume_resource_status("},{"line_number":49,"context_line":"            self.volumes_client,"},{"line_number":50,"context_line":"            volume[\u0027id\u0027], \u0027available\u0027)"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"89c254ef_64f4ed2a","line":48,"in_reply_to":"6e3c9bfd_94556109","updated":"2021-04-07 17:59:01.000000000","message":"\u003e pep8: F821 undefined name \u0027waiters\u0027\nI think we can add `from tempest.common import waiters` in L17","commit_id":"4fbf383a44e245185acbacd3c664f89c094478fe"},{"author":{"_account_id":11075,"name":"Benny Kopilov","email":"bkopilov@redhat.com","username":"bkopilov"},"change_message_id":"950f000517a842849cc01a8b2a47afa295687371","unresolved":true,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class VolumeRevertTests(scn_manager.ScenarioTest):"},{"line_number":31,"context_line":"    min_microversion \u003d \u00273.40\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @classmethod"},{"line_number":34,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":10,"id":"921c50ec_6c0d3d28","line":31,"updated":"2021-04-14 21:25:15.000000000","message":"Hi , \nPlease fix the micro-version , it should be : volume_min_microversion . tested it on devstack setup and it worked for me","commit_id":"5779bdba05b957ae29b3407b9bbff7617c884830"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"71bc49701247e4e6f83ab47132420d5a53589e85","unresolved":true,"context_lines":[{"line_number":77,"context_line":"                          dev_name\u003dCONF.compute.volume_device_name)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        self.nova_volume_detach(server, volume)"},{"line_number":80,"context_line":"        self.revert_volume_to_snapshot(volume, snapshot)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        # We don\u0027t need to cleanup this attachment as we have added the"},{"line_number":83,"context_line":"        # cleanup previously and detached explicitly once."}],"source_content_type":"text/x-python","patch_set":10,"id":"fbd5031c_078e040f","line":80,"updated":"2021-04-08 19:17:26.000000000","message":"```\ncinder_tempest_plugin.scenario.test_volume_revert.VolumeRevertTests.test_volume_revert_to_snapshot[id-85cf1892-d946-11e8-923b-072bea8e084e,slow]\n------------------------------------------------------------------------------------------------------------------------------------------------\n\nCaptured traceback:\n~~~~~~~~~~~~~~~~~~~\n    Traceback (most recent call last):\n\n      File \"/opt/stack/tempest/.tox/tempest/lib/python3.8/site-packages/cinder_tempest_plugin/scenario/test_volume_revert.py\", line 80, in test_volume_revert_to_snapshot\n    self.revert_volume_to_snapshot(volume, snapshot)\n\n      File \"/opt/stack/tempest/.tox/tempest/lib/python3.8/site-packages/cinder_tempest_plugin/scenario/test_volume_revert.py\", line 48, in revert_volume_to_snapshot\n    self.volume_revert_client.revert_to_snapshot(volume, snapshot[\u0027id\u0027])\n\n      File \"/opt/stack/tempest/.tox/tempest/lib/python3.8/site-packages/cinder_tempest_plugin/services/volume_revert_client.py\", line 34, in revert_to_snapshot\n    resp, body \u003d self.post(\u0027volumes/%s/action\u0027 % volume[\u0027id\u0027],\n\n      File \"/opt/stack/tempest/tempest/lib/common/rest_client.py\", line 300, in post\n    return self.request(\u0027POST\u0027, url, extra_headers, headers, body, chunked)\n\n      File \"/opt/stack/tempest/tempest/lib/services/volume/base_client.py\", line 37, in request\n    resp, resp_body \u003d super(BaseClient, self).request(\n\n      File \"/opt/stack/tempest/tempest/lib/common/rest_client.py\", line 704, in request\n    self._error_checker(resp, resp_body)\n\n      File \"/opt/stack/tempest/tempest/lib/common/rest_client.py\", line 810, in _error_checker\n    raise exceptions.NotFound(resp_body, resp\u003dresp)\n\n    tempest.lib.exceptions.NotFound: Object not found\nDetails: {\u0027code\u0027: 404, \u0027message\u0027: \u0027The resource could not be found.\u0027}\n```","commit_id":"5779bdba05b957ae29b3407b9bbff7617c884830"},{"author":{"_account_id":11075,"name":"Benny Kopilov","email":"bkopilov@redhat.com","username":"bkopilov"},"change_message_id":"950f000517a842849cc01a8b2a47afa295687371","unresolved":true,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        # We don\u0027t need to cleanup this attachment as we have added the"},{"line_number":83,"context_line":"        # cleanup previously and detached explicitly once."},{"line_number":84,"context_line":"        self.nova_volume_attach(server, volume)"},{"line_number":85,"context_line":"        stamp2 \u003d self.get_timestamp("},{"line_number":86,"context_line":"            ip, private_key\u003dkeypair[\u0027private_key\u0027], server\u003dserver,"},{"line_number":87,"context_line":"            dev_name\u003dCONF.compute.volume_device_name)"}],"source_content_type":"text/x-python","patch_set":10,"id":"d12e040f_1a9976e6","line":84,"updated":"2021-04-14 21:25:15.000000000","message":"Here you may hit on another issue , on the next nova_attach , nova pick /dev/vdc and not vdb so it fails.","commit_id":"5779bdba05b957ae29b3407b9bbff7617c884830"}]}
