From b4d3ddc2ef5b6e8b871369f6acbc282fff294b3a Mon Sep 17 00:00:00 2001 From: Mark Syms Date: Wed, 21 Nov 2018 10:31:56 +0000 Subject: [PATCH] Revert "CP-27709: suppress error if blkdiscard fails on full provisioned lun" This reverts commit 47fabe7eadc16e674d3c4adba6daf6097abf9c03. --- drivers/lvutil.py | 25 +------------------------ drivers/scsiutil.py | 5 +++-- drivers/trim_util.py | 15 +++++---------- 3 files changed, 9 insertions(+), 36 deletions(-) diff --git a/drivers/lvutil.py b/drivers/lvutil.py index 2119fc5ed..b14917396 100755 --- a/drivers/lvutil.py +++ b/drivers/lvutil.py @@ -19,14 +19,12 @@ # -import glob import re import os import errno import time import util -import scsiutil import xs_errors import xml.dom.minidom from lvhdutil import VG_LOCATION,VG_PREFIX @@ -42,7 +40,6 @@ CMD_VGREMOVE = "vgremove" CMD_VGCHANGE = "vgchange" CMD_VGEXTEND = "vgextend" -CMD_VGDISPLAY = "vgdisplay" CMD_PVS = "pvs" CMD_PVCREATE = "pvcreate" CMD_PVREMOVE = "pvremove" @@ -67,7 +64,7 @@ DEF_LVM_CONF = '/etc/lvm' VG_COMMANDS = frozenset({CMD_VGS, CMD_VGCREATE, CMD_VGREMOVE, CMD_VGCHANGE, - CMD_VGEXTEND, CMD_VGDISPLAY}) + CMD_VGEXTEND}) PV_COMMANDS = frozenset({CMD_PVS, CMD_PVCREATE, CMD_PVREMOVE, CMD_PVRESIZE}) LV_COMMANDS = frozenset({CMD_LVS, CMD_LVDISPLAY, CMD_LVCREATE, CMD_LVREMOVE, CMD_LVCHANGE, CMD_LVRENAME, CMD_LVRESIZE, @@ -728,23 +725,3 @@ def removeDevMapperEntry(path, strict=True): util.SMlog("removeDevMapperEntry: dmsetup remove failed for file %s " \ "with error %s, and lsof ret is %s." % (path, str(e), ret)) return False - -def vgIsFullyProvisioned(vgname): - """ - Check the PVs behind the specified VG and return - True if any of them is fully provisioned - """ - text = cmd_lvm([CMD_VGDISPLAY, '-v', vgname]) - for line in text.splitlines(): - match = re.search(r'PV Name\s+(\S+)', line) - if match: - device = util.diskFromPartition(scsiutil.getdev(match.group(1))) - - for path in glob.glob( - '/sys/block/%s/device/scsi_disk/*/provisioning_mode' % - (device)): - with open(path) as mode_file: - mode = mode_file.read().strip() - if mode == 'full': - return True - return False diff --git a/drivers/scsiutil.py b/drivers/scsiutil.py index 1bafe0997..578b51580 100755 --- a/drivers/scsiutil.py +++ b/drivers/scsiutil.py @@ -182,8 +182,9 @@ def scsi_dev_ctrl(ids, cmd): opterr='An error occured during the scsi operation') def getdev(path): - if match_dm(path): - newpath = path.replace("/dev/mapper/","/dev/disk/by-id/scsi-") + realpath = os.path.realpath(path) + if match_dm(realpath): + newpath = realpath.replace("/dev/mapper/","/dev/disk/by-id/scsi-") else: newpath = path return os.path.realpath(newpath).split('/')[-1] diff --git a/drivers/trim_util.py b/drivers/trim_util.py index d4f33aa50..ce7d97349 100755 --- a/drivers/trim_util.py +++ b/drivers/trim_util.py @@ -127,16 +127,11 @@ def do_trim(session, args): util.SMlog("Trim on SR: %s complete. " % sr_uuid) result = str(True) except util.CommandException, e: - if (lvutil.vgIsFullyProvisioned(vg_name)): - util.SMlog( - "blkdiscard failed on fully provisioned lun, %s" % lv_path) - result = str(True) - else: - err_msg = { - ERROR_CODE_KEY: 'TrimException', - ERROR_MSG_KEY: e.reason - } - result = to_xml(err_msg) + err_msg = { + ERROR_CODE_KEY: 'TrimException', + ERROR_MSG_KEY: e.reason + } + result = to_xml(err_msg) except: err_msg = { ERROR_CODE_KEY: 'UnknownTrimException',