)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"09f687f51e82f421e0712f55f63f392b7a3d7d69","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5361f1ac_59acef7a","updated":"2023-08-28 15:22:19.000000000","message":"i think we can optimise this even more by adding --readonly\nill add a follow up for that and see if it works.","commit_id":"2d8331a740211131e7154ab3e93f44b7278fd44c"}],"cinder/brick/local_dev/lvm.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d063038f618b87bf079d968a28c876c1bcd234f9","unresolved":true,"context_lines":[{"line_number":38,"context_line":"MINIMUM_LVM_VERSION \u003d (2, 2, 107)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"@cinder.privsep.sys_admin_pctxt.entrypoint"},{"line_number":42,"context_line":"def _privileged_get_lv_info(command_prefix, vg_name\u003dNone, lv_name\u003dNone):"},{"line_number":43,"context_line":"    \"\"\"Retrieve info about LVs (all, in a VG, or a single LV)."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"0e96e2b0_6a20efd1","line":41,"range":{"start_line":41,"start_character":1,"end_line":41,"end_character":42},"updated":"2023-08-15 14:25:28.000000000","message":"the privsep decorator converts the types of list arguments to fixed lenght tuples when they are serialised\n\nhttps://github.com/openstack/oslo.privsep/blob/master/oslo_privsep/comm.py#L58-L59","commit_id":"6e174c31af75d163e24645cde29e4ba0dd70e755"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2d47088de559799731da421557715801741ef990","unresolved":false,"context_lines":[{"line_number":38,"context_line":"MINIMUM_LVM_VERSION \u003d (2, 2, 107)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"@cinder.privsep.sys_admin_pctxt.entrypoint"},{"line_number":42,"context_line":"def _privileged_get_lv_info(command_prefix, vg_name\u003dNone, lv_name\u003dNone):"},{"line_number":43,"context_line":"    \"\"\"Retrieve info about LVs (all, in a VG, or a single LV)."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"a7051c4c_78d1f325","line":41,"range":{"start_line":41,"start_character":1,"end_line":41,"end_character":42},"in_reply_to":"0e96e2b0_6a20efd1","updated":"2023-08-25 20:39:11.000000000","message":"Done","commit_id":"6e174c31af75d163e24645cde29e4ba0dd70e755"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d063038f618b87bf079d968a28c876c1bcd234f9","unresolved":true,"context_lines":[{"line_number":48,"context_line":"        :returns: stdout and stderror as a tuple"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    \"\"\""},{"line_number":51,"context_line":"    cmd \u003d command_prefix + ["},{"line_number":52,"context_line":"        \u0027lvs\u0027, \u0027--noheadings\u0027, \u0027--unit\u003dg\u0027,"},{"line_number":53,"context_line":"        \u0027-o\u0027, \u0027vg_name,name,size\u0027, \u0027--nosuffix\u0027,"},{"line_number":54,"context_line":"        \u0027--readonly\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"855ff677_7c9cd43f","line":51,"range":{"start_line":51,"start_character":10,"end_line":51,"end_character":24},"updated":"2023-08-15 14:25:28.000000000","message":"so i need to chagne this to list(commnad_prefix)","commit_id":"6e174c31af75d163e24645cde29e4ba0dd70e755"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2d47088de559799731da421557715801741ef990","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        :returns: stdout and stderror as a tuple"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    \"\"\""},{"line_number":51,"context_line":"    cmd \u003d command_prefix + ["},{"line_number":52,"context_line":"        \u0027lvs\u0027, \u0027--noheadings\u0027, \u0027--unit\u003dg\u0027,"},{"line_number":53,"context_line":"        \u0027-o\u0027, \u0027vg_name,name,size\u0027, \u0027--nosuffix\u0027,"},{"line_number":54,"context_line":"        \u0027--readonly\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"b4c2414f_63c39033","line":51,"range":{"start_line":51,"start_character":10,"end_line":51,"end_character":24},"in_reply_to":"855ff677_7c9cd43f","updated":"2023-08-25 20:39:11.000000000","message":"Done","commit_id":"6e174c31af75d163e24645cde29e4ba0dd70e755"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"09f687f51e82f421e0712f55f63f392b7a3d7d69","unresolved":true,"context_lines":[{"line_number":83,"context_line":"    cmd \u003d list(command_prefix) + ["},{"line_number":84,"context_line":"        \u0027lvs\u0027, \u0027--noheadings\u0027, \u0027--unit\u003dg\u0027,"},{"line_number":85,"context_line":"        \u0027-o\u0027, \u0027size,data_percent\u0027, \u0027--separator\u0027,"},{"line_number":86,"context_line":"        \u0027:\u0027, \u0027--nosuffix\u0027]"},{"line_number":87,"context_line":"    # NOTE(gfidente): data_percent only applies to some types of LV so we"},{"line_number":88,"context_line":"    # make sure to append the actual thin pool name"},{"line_number":89,"context_line":"    cmd.append(\"/dev/%s/%s\" % (vg_name, thin_pool_name))"}],"source_content_type":"text/x-python","patch_set":9,"id":"61875272_224ea4f5","line":86,"updated":"2023-08-28 15:22:19.000000000","message":"this should proably have --readonly.","commit_id":"2d8331a740211131e7154ab3e93f44b7278fd44c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dbd99ca67db7bcf6cb49b7027995a20fade785da","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    cmd \u003d list(command_prefix) + ["},{"line_number":84,"context_line":"        \u0027lvs\u0027, \u0027--noheadings\u0027, \u0027--unit\u003dg\u0027,"},{"line_number":85,"context_line":"        \u0027-o\u0027, \u0027size,data_percent\u0027, \u0027--separator\u0027,"},{"line_number":86,"context_line":"        \u0027:\u0027, \u0027--nosuffix\u0027]"},{"line_number":87,"context_line":"    # NOTE(gfidente): data_percent only applies to some types of LV so we"},{"line_number":88,"context_line":"    # make sure to append the actual thin pool name"},{"line_number":89,"context_line":"    cmd.append(\"/dev/%s/%s\" % (vg_name, thin_pool_name))"}],"source_content_type":"text/x-python","patch_set":9,"id":"a78c5b50_6296839e","line":86,"in_reply_to":"61875272_224ea4f5","updated":"2023-08-31 02:32:22.000000000","message":"this cant have —readonly","commit_id":"2d8331a740211131e7154ab3e93f44b7278fd44c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"09f687f51e82f421e0712f55f63f392b7a3d7d69","unresolved":true,"context_lines":[{"line_number":202,"context_line":"        \"\"\""},{"line_number":203,"context_line":"        exists \u003d False"},{"line_number":204,"context_line":"        cmd \u003d LVM.LVM_CMD_PREFIX + [\u0027vgs\u0027, \u0027--noheadings\u0027,"},{"line_number":205,"context_line":"                                    \u0027-o\u0027, \u0027name\u0027, self.vg_name]"},{"line_number":206,"context_line":"        (out, _err) \u003d self._execute(*cmd,"},{"line_number":207,"context_line":"                                    root_helper\u003dself._root_helper,"},{"line_number":208,"context_line":"                                    run_as_root\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":9,"id":"c2c52786_b19da08b","line":205,"updated":"2023-08-28 15:22:19.000000000","message":"this should also have --readonly","commit_id":"2d8331a740211131e7154ab3e93f44b7278fd44c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"09f687f51e82f421e0712f55f63f392b7a3d7d69","unresolved":true,"context_lines":[{"line_number":423,"context_line":"                                    \u0027--unit\u003dg\u0027,"},{"line_number":424,"context_line":"                                    \u0027-o\u0027, \u0027vg_name,name,size,free\u0027,"},{"line_number":425,"context_line":"                                    \u0027--separator\u0027, field_sep,"},{"line_number":426,"context_line":"                                    \u0027--nosuffix\u0027]"},{"line_number":427,"context_line":"        if LVM.supports_pvs_ignoreskippedcluster(root_helper):"},{"line_number":428,"context_line":"            cmd.append(\u0027--ignoreskippedcluster\u0027)"},{"line_number":429,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"77b7bc6b_394401de","line":426,"updated":"2023-08-28 15:22:19.000000000","message":"this should also have --readonly","commit_id":"2d8331a740211131e7154ab3e93f44b7278fd44c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"09f687f51e82f421e0712f55f63f392b7a3d7d69","unresolved":true,"context_lines":[{"line_number":457,"context_line":"                                    \u0027--unit\u003dg\u0027, \u0027-o\u0027,"},{"line_number":458,"context_line":"                                    \u0027name,size,free,lv_count,uuid\u0027,"},{"line_number":459,"context_line":"                                    \u0027--separator\u0027, \u0027:\u0027,"},{"line_number":460,"context_line":"                                    \u0027--nosuffix\u0027]"},{"line_number":461,"context_line":"        if vg_name is not None:"},{"line_number":462,"context_line":"            cmd.append(vg_name)"},{"line_number":463,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ca64de0a_da294bce","line":460,"updated":"2023-08-28 15:22:19.000000000","message":"this should also have --readonly","commit_id":"2d8331a740211131e7154ab3e93f44b7278fd44c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"09f687f51e82f421e0712f55f63f392b7a3d7d69","unresolved":true,"context_lines":[{"line_number":681,"context_line":""},{"line_number":682,"context_line":"    def _lv_is_active(self, name):"},{"line_number":683,"context_line":"        cmd \u003d LVM.LVM_CMD_PREFIX + [\u0027lvdisplay\u0027, \u0027--noheading\u0027, \u0027-C\u0027, \u0027-o\u0027,"},{"line_number":684,"context_line":"                                    \u0027Attr\u0027, \u0027%s/%s\u0027 % (self.vg_name, name)]"},{"line_number":685,"context_line":"        out, _err \u003d self._run_lvm_command(cmd)"},{"line_number":686,"context_line":"        if out:"},{"line_number":687,"context_line":"            out \u003d out.strip()"}],"source_content_type":"text/x-python","patch_set":9,"id":"e11dad98_c19d71fd","line":684,"updated":"2023-08-28 15:22:19.000000000","message":"this should also have --readonly","commit_id":"2d8331a740211131e7154ab3e93f44b7278fd44c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dbd99ca67db7bcf6cb49b7027995a20fade785da","unresolved":false,"context_lines":[{"line_number":681,"context_line":""},{"line_number":682,"context_line":"    def _lv_is_active(self, name):"},{"line_number":683,"context_line":"        cmd \u003d LVM.LVM_CMD_PREFIX + [\u0027lvdisplay\u0027, \u0027--noheading\u0027, \u0027-C\u0027, \u0027-o\u0027,"},{"line_number":684,"context_line":"                                    \u0027Attr\u0027, \u0027%s/%s\u0027 % (self.vg_name, name)]"},{"line_number":685,"context_line":"        out, _err \u003d self._run_lvm_command(cmd)"},{"line_number":686,"context_line":"        if out:"},{"line_number":687,"context_line":"            out \u003d out.strip()"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fd4a436_9fcd8a2e","line":684,"in_reply_to":"e11dad98_c19d71fd","updated":"2023-08-31 02:32:22.000000000","message":"this cannot use —readonly","commit_id":"2d8331a740211131e7154ab3e93f44b7278fd44c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"09f687f51e82f421e0712f55f63f392b7a3d7d69","unresolved":true,"context_lines":[{"line_number":838,"context_line":"    def lv_is_snapshot(self, name):"},{"line_number":839,"context_line":"        \"\"\"Return True if LV is a snapshot, False otherwise.\"\"\""},{"line_number":840,"context_line":"        cmd \u003d LVM.LVM_CMD_PREFIX + [\u0027lvdisplay\u0027, \u0027--noheading\u0027, \u0027-C\u0027, \u0027-o\u0027,"},{"line_number":841,"context_line":"                                    \u0027Attr\u0027, \u0027%s/%s\u0027 % (self.vg_name, name)]"},{"line_number":842,"context_line":"        out, _err \u003d self._run_lvm_command(cmd)"},{"line_number":843,"context_line":"        out \u003d out.strip()"},{"line_number":844,"context_line":"        if out:"}],"source_content_type":"text/x-python","patch_set":9,"id":"02e8f905_063bce06","line":841,"updated":"2023-08-28 15:22:19.000000000","message":"this should also have --readonly","commit_id":"2d8331a740211131e7154ab3e93f44b7278fd44c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dbd99ca67db7bcf6cb49b7027995a20fade785da","unresolved":false,"context_lines":[{"line_number":838,"context_line":"    def lv_is_snapshot(self, name):"},{"line_number":839,"context_line":"        \"\"\"Return True if LV is a snapshot, False otherwise.\"\"\""},{"line_number":840,"context_line":"        cmd \u003d LVM.LVM_CMD_PREFIX + [\u0027lvdisplay\u0027, \u0027--noheading\u0027, \u0027-C\u0027, \u0027-o\u0027,"},{"line_number":841,"context_line":"                                    \u0027Attr\u0027, \u0027%s/%s\u0027 % (self.vg_name, name)]"},{"line_number":842,"context_line":"        out, _err \u003d self._run_lvm_command(cmd)"},{"line_number":843,"context_line":"        out \u003d out.strip()"},{"line_number":844,"context_line":"        if out:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1c758517_a7ee469a","line":841,"in_reply_to":"02e8f905_063bce06","updated":"2023-08-31 02:32:22.000000000","message":"Done","commit_id":"2d8331a740211131e7154ab3e93f44b7278fd44c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"09f687f51e82f421e0712f55f63f392b7a3d7d69","unresolved":true,"context_lines":[{"line_number":848,"context_line":""},{"line_number":849,"context_line":"    def lv_is_open(self, name):"},{"line_number":850,"context_line":"        \"\"\"Return True if LV is currently open, False otherwise.\"\"\""},{"line_number":851,"context_line":"        cmd \u003d LVM.LVM_CMD_PREFIX + [\u0027lvdisplay\u0027, \u0027--noheading\u0027, \u0027-C\u0027, \u0027-o\u0027,"},{"line_number":852,"context_line":"                                    \u0027Attr\u0027, \u0027%s/%s\u0027 % (self.vg_name, name)]"},{"line_number":853,"context_line":"        out, _err \u003d self._run_lvm_command(cmd)"},{"line_number":854,"context_line":"        out \u003d out.strip()"}],"source_content_type":"text/x-python","patch_set":9,"id":"01beb068_45dc4a99","line":851,"updated":"2023-08-28 15:22:19.000000000","message":"this should also have --readonly","commit_id":"2d8331a740211131e7154ab3e93f44b7278fd44c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dbd99ca67db7bcf6cb49b7027995a20fade785da","unresolved":true,"context_lines":[{"line_number":848,"context_line":""},{"line_number":849,"context_line":"    def lv_is_open(self, name):"},{"line_number":850,"context_line":"        \"\"\"Return True if LV is currently open, False otherwise.\"\"\""},{"line_number":851,"context_line":"        cmd \u003d LVM.LVM_CMD_PREFIX + [\u0027lvdisplay\u0027, \u0027--noheading\u0027, \u0027-C\u0027, \u0027-o\u0027,"},{"line_number":852,"context_line":"                                    \u0027Attr\u0027, \u0027%s/%s\u0027 % (self.vg_name, name)]"},{"line_number":853,"context_line":"        out, _err \u003d self._run_lvm_command(cmd)"},{"line_number":854,"context_line":"        out \u003d out.strip()"}],"source_content_type":"text/x-python","patch_set":9,"id":"ab9d03c7_f6a64c0d","line":851,"in_reply_to":"01beb068_45dc4a99","updated":"2023-08-31 02:32:22.000000000","message":"this porbaly cant have —-readonly","commit_id":"2d8331a740211131e7154ab3e93f44b7278fd44c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"09f687f51e82f421e0712f55f63f392b7a3d7d69","unresolved":true,"context_lines":[{"line_number":859,"context_line":""},{"line_number":860,"context_line":"    def lv_get_origin(self, name):"},{"line_number":861,"context_line":"        \"\"\"Return the origin of an LV that is a snapshot, None otherwise.\"\"\""},{"line_number":862,"context_line":"        cmd \u003d LVM.LVM_CMD_PREFIX + [\u0027lvdisplay\u0027, \u0027--noheading\u0027, \u0027-C\u0027, \u0027-o\u0027,"},{"line_number":863,"context_line":"                                    \u0027Origin\u0027, \u0027%s/%s\u0027 % (self.vg_name, name)]"},{"line_number":864,"context_line":"        out, _err \u003d self._run_lvm_command(cmd)"},{"line_number":865,"context_line":"        out \u003d out.strip()"}],"source_content_type":"text/x-python","patch_set":9,"id":"4b938220_fb2034d9","line":862,"updated":"2023-08-28 15:22:19.000000000","message":"this should also have --readonly","commit_id":"2d8331a740211131e7154ab3e93f44b7278fd44c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dbd99ca67db7bcf6cb49b7027995a20fade785da","unresolved":false,"context_lines":[{"line_number":859,"context_line":""},{"line_number":860,"context_line":"    def lv_get_origin(self, name):"},{"line_number":861,"context_line":"        \"\"\"Return the origin of an LV that is a snapshot, None otherwise.\"\"\""},{"line_number":862,"context_line":"        cmd \u003d LVM.LVM_CMD_PREFIX + [\u0027lvdisplay\u0027, \u0027--noheading\u0027, \u0027-C\u0027, \u0027-o\u0027,"},{"line_number":863,"context_line":"                                    \u0027Origin\u0027, \u0027%s/%s\u0027 % (self.vg_name, name)]"},{"line_number":864,"context_line":"        out, _err \u003d self._run_lvm_command(cmd)"},{"line_number":865,"context_line":"        out \u003d out.strip()"}],"source_content_type":"text/x-python","patch_set":9,"id":"d05aaf39_d74e5fb2","line":862,"in_reply_to":"4b938220_fb2034d9","updated":"2023-08-31 02:32:22.000000000","message":"Done","commit_id":"2d8331a740211131e7154ab3e93f44b7278fd44c"}]}
