)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6094415931c348a991b8ad685499bfc2311e7a06","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"mypy: annotate lvm"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I82f9693efa0d45e19dda428811ad04dadda3cf89"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1f621f24_55d15f2f","line":9,"updated":"2020-11-18 17:49:44.000000000","message":"Was there a blueprint or something like that to track all these patches?","commit_id":"2c1291fcf6c45f6bc4f6a7b1b382aec6f6b3c15f"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"ded8de7d477056d6df134f1a2946c10137bd401b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"mypy: annotate lvm"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I82f9693efa0d45e19dda428811ad04dadda3cf89"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"6f650752_578daef7","line":9,"in_reply_to":"1f621f24_55d15f2f","updated":"2020-12-02 15:37:24.000000000","message":"https://review.opendev.org/q/project:openstack/cinder+AND+topic:%2522mypy%2522","commit_id":"2c1291fcf6c45f6bc4f6a7b1b382aec6f6b3c15f"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"326d3311df1b58c2fea619dd98c91dd367e0d884","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"60c67a95_2498f415","updated":"2024-05-22 11:38:01.000000000","message":"recheck\n\nopenstack-tox-py311 failed but logs are now gone","commit_id":"ec83abf804101a2f3d7e9558d6ce51386cbb69ec"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"e95965fb0f7e1403f51b031580250c128fe50f67","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"edd27036_cb7f0590","updated":"2024-12-05 23:16:11.000000000","message":"LGTM; not +W in case you want to look at the comment in drivers/lvm.py","commit_id":"168458325d72341b8e8f5f3d8cd78e70fdd6c542"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"8c9b8bda6160437d3fa27c626ffc03c247ba6fd3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"6d42b525_7f765f13","updated":"2026-03-19 14:06:36.000000000","message":"At the risk of being vulgar, holy crap I can\u0027t believe this is still unmerged since 2024!  Still LGTM.","commit_id":"0d11fdacb2478bf269edd2414d9a798adaa5675a"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"e60ad58a1ce3db834d3da0eaf7606e9f5e206570","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"d717dfb4_83b59385","updated":"2026-05-26 09:45:49.000000000","message":"recheck\n\nlgtm, but lets run CI if its still  passing\nwill add other cores to merge this.","commit_id":"0d11fdacb2478bf269edd2414d9a798adaa5675a"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f8926578797080c25de9feec71124ebe703f56d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"825e5ada_a656871c","updated":"2026-06-02 13:01:47.000000000","message":"https://review.opendev.org/c/openstack/cinder/+/985038/ was just approved, so the change to mypy-files.txt on this patch will have to be migrated over to pyproject.toml","commit_id":"3b869dab3da2b5d6e34c0d73cc709b01ef5140ad"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"2f5e4df739b56f7fd7fb705bee39779a6b2d96f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"583ffa86_ad3d91ae","updated":"2026-06-02 19:55:41.000000000","message":"Let\u0027s finally get this merged before something else changes!","commit_id":"58e3169a8087ba63d21d8fc255179d14768dbb43"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"bf4939a8b1b6db5f2423f7b87e5b7b1c259c508b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"d0d6c106_fa3158e8","updated":"2026-06-03 06:57:37.000000000","message":"though on checking I did not really find delete_volume being breaking, but this do not look quite right, I think we should mention this in commit msg if its ok.","commit_id":"58e3169a8087ba63d21d8fc255179d14768dbb43"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"d714dc26b7271c5fe5ef36324d2f28ec7c0c0d5e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"665f6419_fb3b0f96","updated":"2026-07-09 15:24:57.000000000","message":"I looked at Amit\u0027s comment from PS 18, but I think what Eric has here is fine; it\u0027s the same way it\u0027s been defined for all of the other drivers that have been type-annotated:\n\n```\n$ pcregrep -M \u0027def delete_volume(.*):\u0027 cinder/volume/drivers/* | grep \u0027\\-\u003e\u0027\ncinder/volume/drivers/nfs.py:    def delete_volume(self, volume: \u0027objects.Volume\u0027) -\u003e None:\ncinder/volume/drivers/rbd.py:    def delete_volume(self, volume: Volume) -\u003e None:\ncinder/volume/drivers/remotefs.py:    def delete_volume(self, volume: objects.Volume) -\u003e None:\n\n\n```","commit_id":"e6cff73d0a2b081c47f3d89ccb5bf9bb98fa79ba"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"772805d3ca6485acfb9746165f0c21f59d4d30eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"1d4d71e1_450b5836","updated":"2026-07-09 15:25:29.000000000","message":"Still LGTM.","commit_id":"e6cff73d0a2b081c47f3d89ccb5bf9bb98fa79ba"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"ee80e84d2828fc80f31e849a313056f89109caf8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"7773e0c4_1ba7cb1c","updated":"2026-07-10 16:44:36.000000000","message":"recheck\n\nunrelated failure in cinder-plugin-ceph-tempest","commit_id":"e6cff73d0a2b081c47f3d89ccb5bf9bb98fa79ba"}],"cinder/brick/local_dev/lvm.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6094415931c348a991b8ad685499bfc2311e7a06","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    LVM_CMD_PREFIX \u003d [\u0027env\u0027, \u0027LC_ALL\u003dC\u0027]"},{"line_number":41,"context_line":"    _supports_pvs_ignoreskippedcluster \u003d None"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def __init__(self, vg_name, root_helper, create_vg\u003dFalse,"},{"line_number":44,"context_line":"                 physical_volumes\u003dNone, lvm_type\u003d\u0027default\u0027,"},{"line_number":45,"context_line":"                 executor\u003dputils.execute, lvm_conf\u003dNone,"},{"line_number":46,"context_line":"                 suppress_fd_warn\u003dFalse):"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        \"\"\"Initialize the LVM object."},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_558ddf28","line":46,"range":{"start_line":43,"start_character":0,"end_line":46,"end_character":41},"updated":"2020-11-18 17:49:44.000000000","message":"Any reason why we are skipping these?","commit_id":"2c1291fcf6c45f6bc4f6a7b1b382aec6f6b3c15f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6094415931c348a991b8ad685499bfc2311e7a06","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        \"\"\""},{"line_number":63,"context_line":"        super(LVM, self).__init__(execute\u003dexecutor, root_helper\u003droot_helper)"},{"line_number":64,"context_line":"        self.vg_name \u003d vg_name"},{"line_number":65,"context_line":"        self.pv_list \u003d []"},{"line_number":66,"context_line":"        self.vg_size: float \u003d 0.0"},{"line_number":67,"context_line":"        self.vg_free_space: float \u003d 0.0"},{"line_number":68,"context_line":"        self.vg_lv_count: int \u003d 0"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_e139cdd8","line":65,"updated":"2020-11-18 17:49:44.000000000","message":"Shouldn\u0027t this be?\n\n  self.pv_list: list[dict] \u003d []","commit_id":"2c1291fcf6c45f6bc4f6a7b1b382aec6f6b3c15f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6094415931c348a991b8ad685499bfc2311e7a06","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.vg_free_space: float \u003d 0.0"},{"line_number":68,"context_line":"        self.vg_lv_count: int \u003d 0"},{"line_number":69,"context_line":"        self.vg_uuid: ty.Optional[str] \u003d None"},{"line_number":70,"context_line":"        self.vg_thin_pool \u003d None"},{"line_number":71,"context_line":"        self.vg_thin_pool_size: float \u003d 0.0"},{"line_number":72,"context_line":"        self.vg_thin_pool_free_space: float \u003d 0.0"},{"line_number":73,"context_line":"        self._supports_snapshot_lv_activation: ty.Optional[bool] \u003d None"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_f5722b49","line":70,"updated":"2020-11-18 17:49:44.000000000","message":"Shouldn\u0027t this be?\n\n  self.vg_thin_pool: ty.Optional[str] \u003d None","commit_id":"2c1291fcf6c45f6bc4f6a7b1b382aec6f6b3c15f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6094415931c348a991b8ad685499bfc2311e7a06","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        return LVM._supports_pvs_ignoreskippedcluster"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"    @staticmethod"},{"line_number":282,"context_line":"    def get_lv_info(root_helper,"},{"line_number":283,"context_line":"                    vg_name: str \u003d None,"},{"line_number":284,"context_line":"                    lv_name: str \u003d None) -\u003e list:"},{"line_number":285,"context_line":"        \"\"\"Retrieve info about LVs (all, in a VG, or a single LV)."}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_4150810b","line":282,"updated":"2020-11-18 17:49:44.000000000","message":"Why aren\u0027t we specifying the type here (and in the other methods)?\n\n root_helper: str,","commit_id":"2c1291fcf6c45f6bc4f6a7b1b382aec6f6b3c15f"}],"cinder/volume/drivers/lvm.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":34,"context_line":"from cinder.i18n import _"},{"line_number":35,"context_line":"from cinder.image import image_utils"},{"line_number":36,"context_line":"from cinder import objects"},{"line_number":37,"context_line":"from cinder import interface"},{"line_number":38,"context_line":"from cinder import utils"},{"line_number":39,"context_line":"from cinder.volume import configuration"},{"line_number":40,"context_line":"from cinder.volume import driver"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ee5bab50","line":37,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: H306: imports not in alphabetical order (cinder.objects, cinder.interface)","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    def _volume_not_present(self, volume_name: str) -\u003e bool:"},{"line_number":143,"context_line":"        return self.vg.get_volume(volume_name) is None"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def _delete_volume(self, volume: objects.Volume, is_snapshot\u003dFalse) -\u003e None:"},{"line_number":146,"context_line":"        \"\"\"Deletes a logical volume.\"\"\""},{"line_number":147,"context_line":"        if self.configuration.volume_clear !\u003d \u0027none\u0027 and \\"},{"line_number":148,"context_line":"                self.configuration.lvm_type !\u003d \u0027thin\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_4e573727","line":145,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            return snapshot_name"},{"line_number":206,"context_line":"        return snapshot_name[1:]"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    def _create_volume(self, name:str, size:str, lvm_type:str, mirror_count:int, vg\u003dNone) -\u003e None:"},{"line_number":209,"context_line":"        vg_ref \u003d self.vg"},{"line_number":210,"context_line":"        if vg is not None:"},{"line_number":211,"context_line":"            vg_ref \u003d vg"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_2e52c335","line":208,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            return snapshot_name"},{"line_number":206,"context_line":"        return snapshot_name[1:]"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    def _create_volume(self, name:str, size:str, lvm_type:str, mirror_count:int, vg\u003dNone) -\u003e None:"},{"line_number":209,"context_line":"        vg_ref \u003d self.vg"},{"line_number":210,"context_line":"        if vg is not None:"},{"line_number":211,"context_line":"            vg_ref \u003d vg"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_6e35dbf6","line":208,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            return snapshot_name"},{"line_number":206,"context_line":"        return snapshot_name[1:]"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    def _create_volume(self, name:str, size:str, lvm_type:str, mirror_count:int, vg\u003dNone) -\u003e None:"},{"line_number":209,"context_line":"        vg_ref \u003d self.vg"},{"line_number":210,"context_line":"        if vg is not None:"},{"line_number":211,"context_line":"            vg_ref \u003d vg"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_8e32ef0e","line":208,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            return snapshot_name"},{"line_number":206,"context_line":"        return snapshot_name[1:]"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    def _create_volume(self, name:str, size:str, lvm_type:str, mirror_count:int, vg\u003dNone) -\u003e None:"},{"line_number":209,"context_line":"        vg_ref \u003d self.vg"},{"line_number":210,"context_line":"        if vg is not None:"},{"line_number":211,"context_line":"            vg_ref \u003d vg"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ce3867ef","line":208,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            return snapshot_name"},{"line_number":206,"context_line":"        return snapshot_name[1:]"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    def _create_volume(self, name:str, size:str, lvm_type:str, mirror_count:int, vg\u003dNone) -\u003e None:"},{"line_number":209,"context_line":"        vg_ref \u003d self.vg"},{"line_number":210,"context_line":"        if vg is not None:"},{"line_number":211,"context_line":"            vg_ref \u003d vg"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ae3b73e7","line":208,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E501 line too long (98 \u003e 79 characters)","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":378,"context_line":"            # Enable sparse copy since lvm_type is \u0027thin\u0027"},{"line_number":379,"context_line":"            self._sparse_copy_volume \u003d True"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"    def create_volume(self, volume:objects.Volume) -\u003e None:"},{"line_number":382,"context_line":"        \"\"\"Creates a logical volume.\"\"\""},{"line_number":383,"context_line":"        mirror_count \u003d 0"},{"line_number":384,"context_line":"        if self.configuration.lvm_mirrors:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_0e26dfce","line":381,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":389,"context_line":"                            self.configuration.lvm_type,"},{"line_number":390,"context_line":"                            mirror_count)"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"    def update_migrated_volume(self, ctxt:context.RequestContext, volume:objects.Volume, new_volume:objects.Volume,"},{"line_number":393,"context_line":"                               original_volume_status:str) -\u003e ty.Dict[ty.Optional[str], ty.Optional[str]]:"},{"line_number":394,"context_line":"        \"\"\"Return model update from LVM for migrated volume."},{"line_number":395,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_4e2c57ab","line":392,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":389,"context_line":"                            self.configuration.lvm_type,"},{"line_number":390,"context_line":"                            mirror_count)"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"    def update_migrated_volume(self, ctxt:context.RequestContext, volume:objects.Volume, new_volume:objects.Volume,"},{"line_number":393,"context_line":"                               original_volume_status:str) -\u003e ty.Dict[ty.Optional[str], ty.Optional[str]]:"},{"line_number":394,"context_line":"        \"\"\"Return model update from LVM for migrated volume."},{"line_number":395,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_8e1b0f7f","line":392,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":389,"context_line":"                            self.configuration.lvm_type,"},{"line_number":390,"context_line":"                            mirror_count)"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"    def update_migrated_volume(self, ctxt:context.RequestContext, volume:objects.Volume, new_volume:objects.Volume,"},{"line_number":393,"context_line":"                               original_volume_status:str) -\u003e ty.Dict[ty.Optional[str], ty.Optional[str]]:"},{"line_number":394,"context_line":"        \"\"\"Return model update from LVM for migrated volume."},{"line_number":395,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ee20cbb2","line":392,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":389,"context_line":"                            self.configuration.lvm_type,"},{"line_number":390,"context_line":"                            mirror_count)"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"    def update_migrated_volume(self, ctxt:context.RequestContext, volume:objects.Volume, new_volume:objects.Volume,"},{"line_number":393,"context_line":"                               original_volume_status:str) -\u003e ty.Dict[ty.Optional[str], ty.Optional[str]]:"},{"line_number":394,"context_line":"        \"\"\"Return model update from LVM for migrated volume."},{"line_number":395,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_2e2763c9","line":392,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E501 line too long (115 \u003e 79 characters)","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":390,"context_line":"                            mirror_count)"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"    def update_migrated_volume(self, ctxt:context.RequestContext, volume:objects.Volume, new_volume:objects.Volume,"},{"line_number":393,"context_line":"                               original_volume_status:str) -\u003e ty.Dict[ty.Optional[str], ty.Optional[str]]:"},{"line_number":394,"context_line":"        \"\"\"Return model update from LVM for migrated volume."},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        This method should rename the back-end volume name(id) on the"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_6e1e7b70","line":393,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":390,"context_line":"                            mirror_count)"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"    def update_migrated_volume(self, ctxt:context.RequestContext, volume:objects.Volume, new_volume:objects.Volume,"},{"line_number":393,"context_line":"                               original_volume_status:str) -\u003e ty.Dict[ty.Optional[str], ty.Optional[str]]:"},{"line_number":394,"context_line":"        \"\"\"Return model update from LVM for migrated volume."},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        This method should rename the back-end volume name(id) on the"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ce11875f","line":393,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E501 line too long (106 \u003e 79 characters)","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":424,"context_line":"            provider_location \u003d new_volume[\u0027provider_location\u0027]"},{"line_number":425,"context_line":"        return {\u0027_name_id\u0027: name_id, \u0027provider_location\u0027: provider_location}"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"    def create_volume_from_snapshot(self, volume:objects.Volume, snapshot:objects.Snapshot) -\u003e None:"},{"line_number":428,"context_line":"        \"\"\"Creates a volume from a snapshot.\"\"\""},{"line_number":429,"context_line":"        if self.configuration.lvm_type \u003d\u003d \u0027thin\u0027:"},{"line_number":430,"context_line":"            self.vg.create_lv_snapshot(volume[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_0e0fff36","line":427,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":424,"context_line":"            provider_location \u003d new_volume[\u0027provider_location\u0027]"},{"line_number":425,"context_line":"        return {\u0027_name_id\u0027: name_id, \u0027provider_location\u0027: provider_location}"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"    def create_volume_from_snapshot(self, volume:objects.Volume, snapshot:objects.Snapshot) -\u003e None:"},{"line_number":428,"context_line":"        \"\"\"Creates a volume from a snapshot.\"\"\""},{"line_number":429,"context_line":"        if self.configuration.lvm_type \u003d\u003d \u0027thin\u0027:"},{"line_number":430,"context_line":"            self.vg.create_lv_snapshot(volume[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ae14134e","line":427,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":424,"context_line":"            provider_location \u003d new_volume[\u0027provider_location\u0027]"},{"line_number":425,"context_line":"        return {\u0027_name_id\u0027: name_id, \u0027provider_location\u0027: provider_location}"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"    def create_volume_from_snapshot(self, volume:objects.Volume, snapshot:objects.Snapshot) -\u003e None:"},{"line_number":428,"context_line":"        \"\"\"Creates a volume from a snapshot.\"\"\""},{"line_number":429,"context_line":"        if self.configuration.lvm_type \u003d\u003d \u0027thin\u0027:"},{"line_number":430,"context_line":"            self.vg.create_lv_snapshot(volume[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_ee09eb30","line":427,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E501 line too long (100 \u003e 79 characters)","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":457,"context_line":"                                 execute\u003dself._execute,"},{"line_number":458,"context_line":"                                 sparse\u003dself._sparse_copy_volume)"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"    def delete_volume(self, volume:objects.Volume) -\u003e None:"},{"line_number":461,"context_line":"        \"\"\"Deletes a logical volume.\"\"\""},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"        # NOTE(jdg):  We don\u0027t need to explicitly call"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_4e057713","line":460,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":476,"context_line":"        self._delete_volume(volume)"},{"line_number":477,"context_line":"        LOG.info(\u0027Successfully deleted volume: %s\u0027, volume[\u0027id\u0027])"},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"    def create_snapshot(self, snapshot:objects.Snapshot) -\u003e None:"},{"line_number":480,"context_line":"        \"\"\"Creates a snapshot.\"\"\""},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"        self.vg.create_lv_snapshot(self._escape_snapshot(snapshot[\u0027name\u0027]),"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_2e000302","line":479,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":483,"context_line":"                                   snapshot[\u0027volume_name\u0027],"},{"line_number":484,"context_line":"                                   self.configuration.lvm_type)"},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"    def delete_snapshot(self, snapshot:objects.Snapshot) -\u003e None:"},{"line_number":487,"context_line":"        \"\"\"Deletes a snapshot.\"\"\""},{"line_number":488,"context_line":"        if self._volume_not_present(self._escape_snapshot(snapshot[\u0027name\u0027])):"},{"line_number":489,"context_line":"            # If the snapshot isn\u0027t present, then don\u0027t attempt to delete"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_91005203","line":486,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":497,"context_line":"        self._delete_volume(snapshot, is_snapshot\u003dTrue)"},{"line_number":498,"context_line":""},{"line_number":499,"context_line":"    def revert_to_snapshot(self,"},{"line_number":500,"context_line":"                           context:context.RequestContext,"},{"line_number":501,"context_line":"                           volume:objects.Volume,"},{"line_number":502,"context_line":"                           snapshot:objects.Snapshot) -\u003e None:"},{"line_number":503,"context_line":"        \"\"\"Revert a volume to a snapshot\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_7103fe0d","line":500,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":498,"context_line":""},{"line_number":499,"context_line":"    def revert_to_snapshot(self,"},{"line_number":500,"context_line":"                           context:context.RequestContext,"},{"line_number":501,"context_line":"                           volume:objects.Volume,"},{"line_number":502,"context_line":"                           snapshot:objects.Snapshot) -\u003e None:"},{"line_number":503,"context_line":"        \"\"\"Revert a volume to a snapshot\"\"\""},{"line_number":504,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_d1064a1c","line":501,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":499,"context_line":"    def revert_to_snapshot(self,"},{"line_number":500,"context_line":"                           context:context.RequestContext,"},{"line_number":501,"context_line":"                           volume:objects.Volume,"},{"line_number":502,"context_line":"                           snapshot:objects.Snapshot) -\u003e None:"},{"line_number":503,"context_line":"        \"\"\"Revert a volume to a snapshot\"\"\""},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"        # NOTE(tommylikehu): We still can revert the volume because Cinder"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_b109162c","line":502,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":515,"context_line":"            # Recreate the snapshot that was destroyed by the revert"},{"line_number":516,"context_line":"            self.create_snapshot(snapshot)"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"    def local_path(self, volume:objects.Volume, vg:ty.Optional[str]\u003dNone) -\u003e str:"},{"line_number":519,"context_line":"        if vg is None:"},{"line_number":520,"context_line":"            vg \u003d self.configuration.volume_group"},{"line_number":521,"context_line":"        # NOTE(vish): stops deprecation warning"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_11144243","line":518,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":515,"context_line":"            # Recreate the snapshot that was destroyed by the revert"},{"line_number":516,"context_line":"            self.create_snapshot(snapshot)"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"    def local_path(self, volume:objects.Volume, vg:ty.Optional[str]\u003dNone) -\u003e str:"},{"line_number":519,"context_line":"        if vg is None:"},{"line_number":520,"context_line":"            vg \u003d self.configuration.volume_group"},{"line_number":521,"context_line":"        # NOTE(vish): stops deprecation warning"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_f10eee2f","line":518,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":515,"context_line":"            # Recreate the snapshot that was destroyed by the revert"},{"line_number":516,"context_line":"            self.create_snapshot(snapshot)"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"    def local_path(self, volume:objects.Volume, vg:ty.Optional[str]\u003dNone) -\u003e str:"},{"line_number":519,"context_line":"        if vg is None:"},{"line_number":520,"context_line":"            vg \u003d self.configuration.volume_group"},{"line_number":521,"context_line":"        # NOTE(vish): stops deprecation warning"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_3115063e","line":518,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E252 missing whitespace around parameter equals","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":515,"context_line":"            # Recreate the snapshot that was destroyed by the revert"},{"line_number":516,"context_line":"            self.create_snapshot(snapshot)"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"    def local_path(self, volume:objects.Volume, vg:ty.Optional[str]\u003dNone) -\u003e str:"},{"line_number":519,"context_line":"        if vg is None:"},{"line_number":520,"context_line":"            vg \u003d self.configuration.volume_group"},{"line_number":521,"context_line":"        # NOTE(vish): stops deprecation warning"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_511a3a6e","line":518,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E252 missing whitespace around parameter equals","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":515,"context_line":"            # Recreate the snapshot that was destroyed by the revert"},{"line_number":516,"context_line":"            self.create_snapshot(snapshot)"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"    def local_path(self, volume:objects.Volume, vg:ty.Optional[str]\u003dNone) -\u003e str:"},{"line_number":519,"context_line":"        if vg is None:"},{"line_number":520,"context_line":"            vg \u003d self.configuration.volume_group"},{"line_number":521,"context_line":"        # NOTE(vish): stops deprecation warning"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_9129728b","line":518,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":524,"context_line":"        return \"/dev/mapper/%s-%s\" % (escaped_group, escaped_name)"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    def copy_image_to_volume(self,"},{"line_number":527,"context_line":"                             context:context.RequestContext,"},{"line_number":528,"context_line":"                             volume:objects.Volume,"},{"line_number":529,"context_line":"                             image_service:ty.Any,"},{"line_number":530,"context_line":"                             image_id:str) -\u003e None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_712c9e98","line":527,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    def copy_image_to_volume(self,"},{"line_number":527,"context_line":"                             context:context.RequestContext,"},{"line_number":528,"context_line":"                             volume:objects.Volume,"},{"line_number":529,"context_line":"                             image_service:ty.Any,"},{"line_number":530,"context_line":"                             image_id:str) -\u003e None:"},{"line_number":531,"context_line":"        \"\"\"Fetch the image from image_service and write it to the volume.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_d11f6a58","line":528,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":526,"context_line":"    def copy_image_to_volume(self,"},{"line_number":527,"context_line":"                             context:context.RequestContext,"},{"line_number":528,"context_line":"                             volume:objects.Volume,"},{"line_number":529,"context_line":"                             image_service:ty.Any,"},{"line_number":530,"context_line":"                             image_id:str) -\u003e None:"},{"line_number":531,"context_line":"        \"\"\"Fetch the image from image_service and write it to the volume.\"\"\""},{"line_number":532,"context_line":"        image_utils.fetch_to_raw(context,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_b122b6a1","line":529,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":527,"context_line":"                             context:context.RequestContext,"},{"line_number":528,"context_line":"                             volume:objects.Volume,"},{"line_number":529,"context_line":"                             image_service:ty.Any,"},{"line_number":530,"context_line":"                             image_id:str) -\u003e None:"},{"line_number":531,"context_line":"        \"\"\"Fetch the image from image_service and write it to the volume.\"\"\""},{"line_number":532,"context_line":"        image_utils.fetch_to_raw(context,"},{"line_number":533,"context_line":"                                 image_service,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_113d62c3","line":530,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":537,"context_line":"                                 size\u003dvolume[\u0027size\u0027])"},{"line_number":538,"context_line":""},{"line_number":539,"context_line":"    def copy_volume_to_image(self,"},{"line_number":540,"context_line":"                             context:context.RequestContext,"},{"line_number":541,"context_line":"                             volume:objects.Volume,"},{"line_number":542,"context_line":"                             image_service:ty.Any,"},{"line_number":543,"context_line":"                             image_meta:dict):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_f1370ee2","line":540,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":538,"context_line":""},{"line_number":539,"context_line":"    def copy_volume_to_image(self,"},{"line_number":540,"context_line":"                             context:context.RequestContext,"},{"line_number":541,"context_line":"                             volume:objects.Volume,"},{"line_number":542,"context_line":"                             image_service:ty.Any,"},{"line_number":543,"context_line":"                             image_meta:dict):"},{"line_number":544,"context_line":"        \"\"\"Copy the volume to the specified image.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_51335af6","line":541,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":539,"context_line":"    def copy_volume_to_image(self,"},{"line_number":540,"context_line":"                             context:context.RequestContext,"},{"line_number":541,"context_line":"                             volume:objects.Volume,"},{"line_number":542,"context_line":"                             image_service:ty.Any,"},{"line_number":543,"context_line":"                             image_meta:dict):"},{"line_number":544,"context_line":"        \"\"\"Copy the volume to the specified image.\"\"\""},{"line_number":545,"context_line":"        volume_utils.upload_volume(context,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_312ea68b","line":542,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":540,"context_line":"                             context:context.RequestContext,"},{"line_number":541,"context_line":"                             volume:objects.Volume,"},{"line_number":542,"context_line":"                             image_service:ty.Any,"},{"line_number":543,"context_line":"                             image_meta:dict):"},{"line_number":544,"context_line":"        \"\"\"Copy the volume to the specified image.\"\"\""},{"line_number":545,"context_line":"        volume_utils.upload_volume(context,"},{"line_number":546,"context_line":"                                   image_service,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_914e926c","line":543,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":548,"context_line":"                                   self.local_path(volume),"},{"line_number":549,"context_line":"                                   volume)"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"    def create_cloned_volume(self, volume:objects.Volume, src_vref:dict):"},{"line_number":552,"context_line":"        \"\"\"Creates a clone of the specified volume.\"\"\""},{"line_number":553,"context_line":"        if self.configuration.lvm_type \u003d\u003d \u0027thin\u0027:"},{"line_number":554,"context_line":"            self.vg.create_lv_snapshot(volume[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_71513e0e","line":551,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":548,"context_line":"                                   self.local_path(volume),"},{"line_number":549,"context_line":"                                   volume)"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"    def create_cloned_volume(self, volume:objects.Volume, src_vref:dict):"},{"line_number":552,"context_line":"        \"\"\"Creates a clone of the specified volume.\"\"\""},{"line_number":553,"context_line":"        if self.configuration.lvm_type \u003d\u003d \u0027thin\u0027:"},{"line_number":554,"context_line":"            self.vg.create_lv_snapshot(volume[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_d1548a00","line":551,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":610,"context_line":""},{"line_number":611,"context_line":"        return self._stats"},{"line_number":612,"context_line":""},{"line_number":613,"context_line":"    def extend_volume(self, volume:objects.Volume, new_size:int):"},{"line_number":614,"context_line":"        \"\"\"Extend an existing volume\u0027s size.\"\"\""},{"line_number":615,"context_line":"        self.vg.extend_volume(volume[\u0027name\u0027],"},{"line_number":616,"context_line":"                              self._sizestr(new_size))"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_1142823e","line":613,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":610,"context_line":""},{"line_number":611,"context_line":"        return self._stats"},{"line_number":612,"context_line":""},{"line_number":613,"context_line":"    def extend_volume(self, volume:objects.Volume, new_size:int):"},{"line_number":614,"context_line":"        \"\"\"Extend an existing volume\u0027s size.\"\"\""},{"line_number":615,"context_line":"        self.vg.extend_volume(volume[\u0027name\u0027],"},{"line_number":616,"context_line":"                              self._sizestr(new_size))"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_b1575601","line":613,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":620,"context_line":"            LOG.exception(\u0027Error extending target after volume resize.\u0027)"},{"line_number":621,"context_line":"            raise exception.TargetUpdateFailed(volume_id\u003dvolume.id)"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"    def manage_existing(self, volume:objects.Volume, existing_ref:dict):"},{"line_number":624,"context_line":"        \"\"\"Manages an existing LV."},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"        Renames the LV to match the expected name for the volume."}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_51487a5a","line":623,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":620,"context_line":"            LOG.exception(\u0027Error extending target after volume resize.\u0027)"},{"line_number":621,"context_line":"            raise exception.TargetUpdateFailed(volume_id\u003dvolume.id)"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"    def manage_existing(self, volume:objects.Volume, existing_ref:dict):"},{"line_number":624,"context_line":"        \"\"\"Manages an existing LV."},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"        Renames the LV to match the expected name for the volume."}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_f13c2ec0","line":623,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":644,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":645,"context_line":"                data\u003dexception_message)"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"    def manage_existing_object_get_size(self, existing_object, existing_ref: dict,"},{"line_number":648,"context_line":"                                        object_type) -\u003e int:"},{"line_number":649,"context_line":"        \"\"\"Return size of an existing LV for manage existing volume/snapshot."},{"line_number":650,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_31434641","line":647,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":763,"context_line":"                  volume[\u0027id\u0027])"},{"line_number":764,"context_line":"        return True"},{"line_number":765,"context_line":""},{"line_number":766,"context_line":"    def migrate_volume(self, ctxt, volume, host, thin\u003dFalse, mirror_count\u003d0) -\u003e ty.Tuple[bool, ty.Optional[dict]]:"},{"line_number":767,"context_line":"        \"\"\"Optimize the migration if the destination is on the same server."},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"        If the specified host is another back-end on the same server, and"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_9177b2a0","line":766,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E501 line too long (114 \u003e 79 characters)","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":842,"context_line":""},{"line_number":843,"context_line":"    # #######  Interface methods for DataPath (Target Driver) ########"},{"line_number":844,"context_line":""},{"line_number":845,"context_line":"    def ensure_export(self, context: context.RequestContext, volume: objects.Volume) -\u003e ty.Optional[dict]:"},{"line_number":846,"context_line":"        volume_path \u003d \"/dev/%s/%s\" % (self.configuration.volume_group,"},{"line_number":847,"context_line":"                                      volume[\u0027name\u0027])"},{"line_number":848,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_717ade87","line":845,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E501 line too long (106 \u003e 79 characters)","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":852,"context_line":"            self.target_driver.ensure_export(context, volume, volume_path)"},{"line_number":853,"context_line":"        return model_update"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"    def create_export(self, context, volume, connector, vg\u003dNone) -\u003e ty.Dict[str, str]:"},{"line_number":856,"context_line":"        if vg is None:"},{"line_number":857,"context_line":"            vg \u003d self.configuration.volume_group"},{"line_number":858,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_d16daacc","line":855,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E501 line too long (86 \u003e 79 characters)","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":870,"context_line":"    def remove_export(self, context, volume) -\u003e None:"},{"line_number":871,"context_line":"        self.target_driver.remove_export(context, volume)"},{"line_number":872,"context_line":""},{"line_number":873,"context_line":"    def initialize_connection(self, volume:objects.Volume, connector:dict) -\u003e dict:"},{"line_number":874,"context_line":"        return self.target_driver.initialize_connection(volume, connector)"},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"    def validate_connector(self, connector):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_116ba2b6","line":873,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":870,"context_line":"    def remove_export(self, context, volume) -\u003e None:"},{"line_number":871,"context_line":"        self.target_driver.remove_export(context, volume)"},{"line_number":872,"context_line":""},{"line_number":873,"context_line":"    def initialize_connection(self, volume:objects.Volume, connector:dict) -\u003e dict:"},{"line_number":874,"context_line":"        return self.target_driver.initialize_connection(volume, connector)"},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"    def validate_connector(self, connector):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_b170f6a5","line":873,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"f98962cfea7b0dc738d323b3a57e8dccab60a0a0","unresolved":false,"context_lines":[{"line_number":870,"context_line":"    def remove_export(self, context, volume) -\u003e None:"},{"line_number":871,"context_line":"        self.target_driver.remove_export(context, volume)"},{"line_number":872,"context_line":""},{"line_number":873,"context_line":"    def initialize_connection(self, volume:objects.Volume, connector:dict) -\u003e dict:"},{"line_number":874,"context_line":"        return self.target_driver.initialize_connection(volume, connector)"},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"    def validate_connector(self, connector):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_f1654ee2","line":873,"updated":"2020-06-04 18:31:20.000000000","message":"pep8: E501 line too long (83 \u003e 79 characters)","commit_id":"f3bb7c9ba296f03d3842bcf5017678e06c103e32"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6094415931c348a991b8ad685499bfc2311e7a06","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        return snapshot_name[1:]"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    def _create_volume(self, name: str, size: str, lvm_type: str,"},{"line_number":211,"context_line":"                       mirror_count: int, vg\u003dNone) -\u003e None:"},{"line_number":212,"context_line":"        vg_ref \u003d self.vg"},{"line_number":213,"context_line":"        if vg is not None:"},{"line_number":214,"context_line":"            vg_ref \u003d vg"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_015fa90e","line":211,"range":{"start_line":211,"start_character":42,"end_line":211,"end_character":44},"updated":"2020-11-18 17:49:44.000000000","message":"Why is there no type on vg?","commit_id":"2c1291fcf6c45f6bc4f6a7b1b382aec6f6b3c15f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6094415931c348a991b8ad685499bfc2311e7a06","unresolved":false,"context_lines":[{"line_number":293,"context_line":"            multiattach\u003dTrue,"},{"line_number":294,"context_line":"            backend_state\u003d\u0027up\u0027"},{"line_number":295,"context_line":"        ))"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        data[\"pools\"].append(single_pool)"},{"line_number":298,"context_line":"        data[\"shared_targets\"] \u003d False"},{"line_number":299,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_81a8d9db","line":296,"updated":"2020-11-18 17:49:44.000000000","message":"unrelated change...","commit_id":"2c1291fcf6c45f6bc4f6a7b1b382aec6f6b3c15f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6094415931c348a991b8ad685499bfc2311e7a06","unresolved":false,"context_lines":[{"line_number":396,"context_line":"                               volume: objects.Volume,"},{"line_number":397,"context_line":"                               new_volume: objects.Volume,"},{"line_number":398,"context_line":"                               original_volume_status: str) -\u003e \\"},{"line_number":399,"context_line":"            ty.Dict[ty.Optional[str], ty.Optional[str]]:"},{"line_number":400,"context_line":"        \"\"\"Return model update from LVM for migrated volume."},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        This method should rename the back-end volume name(id) on the"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_21e58539","line":399,"range":{"start_line":399,"start_character":20,"end_line":399,"end_character":36},"updated":"2020-11-18 17:49:44.000000000","message":"-1: We always return the keys, so I think this should just be str","commit_id":"2c1291fcf6c45f6bc4f6a7b1b382aec6f6b3c15f"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"c8b9483d516c19703f790c45e06df79ca6c7ed16","unresolved":false,"context_lines":[{"line_number":396,"context_line":"                               volume: objects.Volume,"},{"line_number":397,"context_line":"                               new_volume: objects.Volume,"},{"line_number":398,"context_line":"                               original_volume_status: str) -\u003e \\"},{"line_number":399,"context_line":"            ty.Dict[ty.Optional[str], ty.Optional[str]]:"},{"line_number":400,"context_line":"        \"\"\"Return model update from LVM for migrated volume."},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        This method should rename the back-end volume name(id) on the"}],"source_content_type":"text/x-python","patch_set":7,"id":"60c71204_20dd6e04","line":399,"range":{"start_line":399,"start_character":20,"end_line":399,"end_character":36},"in_reply_to":"1f621f24_21e58539","updated":"2020-12-03 22:57:32.000000000","message":"Done","commit_id":"2c1291fcf6c45f6bc4f6a7b1b382aec6f6b3c15f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6094415931c348a991b8ad685499bfc2311e7a06","unresolved":false,"context_lines":[{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        if self._volume_not_present(volume[\u0027name\u0027]):"},{"line_number":476,"context_line":"            # If the volume isn\u0027t present, then don\u0027t attempt to delete"},{"line_number":477,"context_line":"            return    # FIXED"},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"        if self.vg.lv_has_snapshot(volume[\u0027name\u0027]):"},{"line_number":480,"context_line":"            LOG.error(\u0027Unable to delete due to existing snapshot \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_c1c01180","line":477,"range":{"start_line":477,"start_character":22,"end_line":477,"end_character":29},"updated":"2020-11-18 17:49:44.000000000","message":"I understand why you removed it, but what\u0027s the purpose of  this comment ourside of the review?","commit_id":"2c1291fcf6c45f6bc4f6a7b1b382aec6f6b3c15f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6094415931c348a991b8ad685499bfc2311e7a06","unresolved":false,"context_lines":[{"line_number":646,"context_line":"                data\u003dexception_message)"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"    def manage_existing_object_get_size(self,"},{"line_number":649,"context_line":"                                        existing_object,"},{"line_number":650,"context_line":"                                        existing_ref: dict,"},{"line_number":651,"context_line":"                                        object_type) -\u003e int:"},{"line_number":652,"context_line":"        \"\"\"Return size of an existing LV for manage existing volume/snapshot."}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_e1f6edd8","line":649,"range":{"start_line":649,"start_character":40,"end_line":649,"end_character":55},"updated":"2020-11-18 17:49:44.000000000","message":"Doesn\u0027t look like we use this parameter, right?  So could we just be explicit and say \"ty.Any\" to be explicit about it?","commit_id":"2c1291fcf6c45f6bc4f6a7b1b382aec6f6b3c15f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6094415931c348a991b8ad685499bfc2311e7a06","unresolved":false,"context_lines":[{"line_number":684,"context_line":"                data\u003dexception_message)"},{"line_number":685,"context_line":"        return lv_size"},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"    def manage_existing_get_size(self, volume, existing_ref) -\u003e int:"},{"line_number":688,"context_line":"        return self.manage_existing_object_get_size(volume, existing_ref,"},{"line_number":689,"context_line":"                                                    \"volume\")"},{"line_number":690,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_01fe89ad","line":687,"range":{"start_line":687,"start_character":39,"end_line":687,"end_character":60},"updated":"2020-11-18 17:49:44.000000000","message":"Why no types here and the next 10 methods or so?","commit_id":"2c1291fcf6c45f6bc4f6a7b1b382aec6f6b3c15f"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"49197e85c3bd3bdc0643b9fef9e66ea3e201a525","unresolved":true,"context_lines":[{"line_number":117,"context_line":"        self._stats \u003d {}"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    @classmethod"},{"line_number":120,"context_line":"    def get_driver_options(cls) -\u003e dict:"},{"line_number":121,"context_line":"        # Imports required to have config options"},{"line_number":122,"context_line":"        from cinder.volume.targets import spdknvmf  # noqa"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"a8632b1e_d9d68ff9","line":120,"range":{"start_line":120,"start_character":35,"end_line":120,"end_character":39},"updated":"2020-12-07 15:12:34.000000000","message":"Probably list instead of dict.","commit_id":"8be906fa8bbdf1c7c4b049522179b544fdc03a12"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"f055d70bf10ed350dc6cded435280e590b8cee22","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        self._stats \u003d {}"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    @classmethod"},{"line_number":120,"context_line":"    def get_driver_options(cls) -\u003e dict:"},{"line_number":121,"context_line":"        # Imports required to have config options"},{"line_number":122,"context_line":"        from cinder.volume.targets import spdknvmf  # noqa"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"4b647c60_63a7c2ed","line":120,"range":{"start_line":120,"start_character":35,"end_line":120,"end_character":39},"in_reply_to":"a8632b1e_d9d68ff9","updated":"2023-09-20 16:57:59.000000000","message":"Done","commit_id":"8be906fa8bbdf1c7c4b049522179b544fdc03a12"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"e95965fb0f7e1403f51b031580250c128fe50f67","unresolved":true,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from __future__ import annotations"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import math"},{"line_number":21,"context_line":"import os"}],"source_content_type":"text/x-python","patch_set":15,"id":"00d19cc2_81a0391c","line":18,"updated":"2024-12-05 23:16:11.000000000","message":"I don\u0027t think you need this (I don\u0027t see any postponed references, and the mypy job runs fine under py3.9+ without it), but it doesn\u0027t hurt, either.","commit_id":"168458325d72341b8e8f5f3d8cd78e70fdd6c542"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d2fcf05b555d7d62a93efd8ac66e80cae33e47c7","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from __future__ import annotations"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import math"},{"line_number":21,"context_line":"import os"}],"source_content_type":"text/x-python","patch_set":15,"id":"4392bd65_12fc6bb8","line":18,"in_reply_to":"00d19cc2_81a0391c","updated":"2026-03-19 12:53:17.000000000","message":"Done","commit_id":"168458325d72341b8e8f5f3d8cd78e70fdd6c542"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"bf4939a8b1b6db5f2423f7b87e5b7b1c259c508b","unresolved":true,"context_lines":[{"line_number":487,"context_line":""},{"line_number":488,"context_line":"        if self._volume_not_present(volume[\u0027name\u0027]):"},{"line_number":489,"context_line":"            # If the volume isn\u0027t present, then don\u0027t attempt to delete"},{"line_number":490,"context_line":"            return"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        if self.vg.lv_has_snapshot(volume[\u0027name\u0027]):"},{"line_number":493,"context_line":"            LOG.error(\u0027Unable to delete due to existing snapshot \u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"ed8bd62f_4b9e233d","line":490,"updated":"2026-06-03 06:57:37.000000000","message":"why not return True if volume is already deleted, also this is being expected in few places. I think we should allow this to return both bool and None\n\n```\n$ ag \"\u003d .*delete_volume\\(\" --ignore-dir cinder/tests/  \ncinder/volume/drivers/dell_emc/powermax/common.py\n703:        volume_name \u003d self._delete_volume(volume)\n\ncinder/volume/drivers/dell_emc/sc/storagecenter_common.py\n466:                deleted \u003d api.delete_volume(volume_name, provider_id) \u003c-- XX\n\ncinder/volume/drivers/kioxia/kumoscale.py\n187:            result \u003d self.kumoscale.delete_volume(volume_uuid)\n\ncinder/volume/drivers/fungible/rest_client.py\n255:        api_response \u003d self.api_storage.delete_volume(\n\ncinder/volume/drivers/fungible/driver.py\n329:                    del_res \u003d self.rest_client.delete_volume(\n441:                del_res \u003d self.rest_client.delete_volume(new_volume_uuid)\n\ncinder/volume/drivers/fungible/swagger_api_client.py\n2129:        \u003e\u003e\u003e thread \u003d api.delete_volume(volume_uuid, async_req\u003dTrue) \u003c---- XX\n\n```\n\n\nor update commit msg!","commit_id":"58e3169a8087ba63d21d8fc255179d14768dbb43"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"4e19d5c159d09006b970765631b4514ad59efbd0","unresolved":true,"context_lines":[{"line_number":487,"context_line":""},{"line_number":488,"context_line":"        if self._volume_not_present(volume[\u0027name\u0027]):"},{"line_number":489,"context_line":"            # If the volume isn\u0027t present, then don\u0027t attempt to delete"},{"line_number":490,"context_line":"            return"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        if self.vg.lv_has_snapshot(volume[\u0027name\u0027]):"},{"line_number":493,"context_line":"            LOG.error(\u0027Unable to delete due to existing snapshot \u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"efb24a5d_969fc671","line":490,"in_reply_to":"ed8bd62f_4b9e233d","updated":"2026-06-03 07:07:27.000000000","message":"so I missed to remove example or tell here, that yes its not breaking.\nas only caller is at `cinder/volume/manager.py` and its not expecting it.","commit_id":"58e3169a8087ba63d21d8fc255179d14768dbb43"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"eb5e54161099fab3bf3887c61f5469ee3769a76b","unresolved":false,"context_lines":[{"line_number":487,"context_line":""},{"line_number":488,"context_line":"        if self._volume_not_present(volume[\u0027name\u0027]):"},{"line_number":489,"context_line":"            # If the volume isn\u0027t present, then don\u0027t attempt to delete"},{"line_number":490,"context_line":"            return"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        if self.vg.lv_has_snapshot(volume[\u0027name\u0027]):"},{"line_number":493,"context_line":"            LOG.error(\u0027Unable to delete due to existing snapshot \u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"c9ee62d3_f40a0f54","line":490,"in_reply_to":"efb24a5d_969fc671","updated":"2026-06-05 14:54:29.000000000","message":"The volume manager does not consume a response from the driver.delete_volume() call.","commit_id":"58e3169a8087ba63d21d8fc255179d14768dbb43"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"bf4939a8b1b6db5f2423f7b87e5b7b1c259c508b","unresolved":true,"context_lines":[{"line_number":511,"context_line":"            LOG.warning(\"snapshot: %s not found, \""},{"line_number":512,"context_line":"                        \"skipping delete operations\", snapshot[\u0027name\u0027])"},{"line_number":513,"context_line":"            LOG.info(\u0027Successfully deleted snapshot: %s\u0027, snapshot[\u0027id\u0027])"},{"line_number":514,"context_line":"            return"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"        # TODO(yamahata): zeroing out the whole snapshot triggers COW."},{"line_number":517,"context_line":"        # it\u0027s quite slow."}],"source_content_type":"text/x-python","patch_set":18,"id":"a174f30d_fee15e78","line":514,"updated":"2026-06-03 06:57:37.000000000","message":"same here","commit_id":"58e3169a8087ba63d21d8fc255179d14768dbb43"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"eb5e54161099fab3bf3887c61f5469ee3769a76b","unresolved":false,"context_lines":[{"line_number":511,"context_line":"            LOG.warning(\"snapshot: %s not found, \""},{"line_number":512,"context_line":"                        \"skipping delete operations\", snapshot[\u0027name\u0027])"},{"line_number":513,"context_line":"            LOG.info(\u0027Successfully deleted snapshot: %s\u0027, snapshot[\u0027id\u0027])"},{"line_number":514,"context_line":"            return"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"        # TODO(yamahata): zeroing out the whole snapshot triggers COW."},{"line_number":517,"context_line":"        # it\u0027s quite slow."}],"source_content_type":"text/x-python","patch_set":18,"id":"e24a94f8_d9b93e89","line":514,"in_reply_to":"a174f30d_fee15e78","updated":"2026-06-05 14:54:29.000000000","message":"The volume manager does not consume a return value from driver.delete_snapshot().","commit_id":"58e3169a8087ba63d21d8fc255179d14768dbb43"}]}
