Yeela Kaplan has uploaded a new change for review. Change subject: Change scsi_id command path to be configured at runtime ......................................................................
Change scsi_id command path to be configured at runtime On fedora 18 scsi_id path is no longer under /sbin/scsi_id, we configure vdsm to look for the path at runtime and thus remove it from constants. Change-Id: I409d4da0ba429564466271aded32e96f9401cd6c Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=886087 Signed-off-by: Yeela Kaplan <[email protected]> --- M configure.ac M vdsm/constants.py.in M vdsm/storage/multipath.py M vdsm/sudoers.vdsm.in 4 files changed, 39 insertions(+), 37 deletions(-) git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/24/10824/1 diff --git a/configure.ac b/configure.ac index 3489e38..edc0b50 100644 --- a/configure.ac +++ b/configure.ac @@ -167,8 +167,6 @@ AC_PATH_PROG([REBOOT_PATH], [reboot], [/usr/bin/reboot]) AC_PATH_PROG([RPM_PATH], [rpm], [/bin/rpm]) AC_PATH_PROG([RSYNC_PATH], [rsync], [/usr/bin/rsync]) -AC_PATH_PROG([SCSI_ID_PATH], [scsi_id], [/sbin/scsi_id], - [$PATH$PATH_SEPARATOR/lib/udev]) AC_PATH_PROG([SED_PATH], [sed], [/bin/sed]) AC_PATH_PROG([SERVICE_PATH], [service], [/sbin/service]) AC_PATH_PROG([SETSID_PATH], [setsid], [/usr/bin/setsid]) diff --git a/vdsm/constants.py.in b/vdsm/constants.py.in index 21a06e7..e7e2f83 100644 --- a/vdsm/constants.py.in +++ b/vdsm/constants.py.in @@ -127,7 +127,6 @@ EXT_REBOOT = '@REBOOT_PATH@' EXT_RSYNC = '@RSYNC_PATH@' -EXT_SCSI_ID = '@SCSI_ID_PATH@' # TBD ! EXT_SERVICE = '@SERVICE_PATH@' EXT_SETSID = '@SETSID_PATH@' EXT_SH = '/bin/sh' # The shell path is invariable @@ -155,31 +154,3 @@ STRG_ISCSI_HOST = "iscsi_host/" STRG_SCSI_HOST = "scsi_host/" STRG_ISCSI_SESSION = "iscsi_session/" -STRG_MPATH_CONF = ( - "\n\n" - "defaults {\n" - " polling_interval 5\n" - " getuid_callout \"@SCSI_ID_PATH@ --whitelisted " - "--replace-whitespace --device=/dev/%n\"\n" - " no_path_retry fail\n" - " user_friendly_names no\n" - " flush_on_last_del yes\n" - " fast_io_fail_tmo 5\n" - " dev_loss_tmo 30\n" - " max_fds 4096\n" - "}\n" - "\n" - "devices {\n" - "device {\n" - " vendor \"HITACHI\"\n" - " product \"DF.*\"\n" - " getuid_callout \"@SCSI_ID_PATH@ --whitelisted " - "--replace-whitespace --device=/dev/%n\"\n" - "}\n" - "device {\n" - " vendor \"COMPELNT\"\n" - " product \"Compellent Vol\"\n" - " no_path_retry fail\n" - "}\n" - "}" -) diff --git a/vdsm/storage/multipath.py b/vdsm/storage/multipath.py index b8c84a9..e356eab 100644 --- a/vdsm/storage/multipath.py +++ b/vdsm/storage/multipath.py @@ -30,6 +30,7 @@ from collections import namedtuple from vdsm import constants +from vdsm import utils import misc import iscsi import supervdsm @@ -50,12 +51,45 @@ OLD_TAGS = ["# RHAT REVISION 0.2", "# RHEV REVISION 0.3", "# RHEV REVISION 0.4", "# RHEV REVISION 0.5", "# RHEV REVISION 0.6", "# RHEV REVISION 0.7", - "# RHEV REVISION 0.8"] -MPATH_CONF_TAG = "# RHEV REVISION 0.9" + "# RHEV REVISION 0.8", "# RHEV REVISION 0.9"] +MPATH_CONF_TAG = "# RHEV REVISION 1.0" MPATH_CONF_PRIVATE_TAG = "# RHEV PRIVATE" -MPATH_CONF_TEMPLATE = MPATH_CONF_TAG + constants.STRG_MPATH_CONF +STRG_MPATH_CONF = ( + "\n\n" + "defaults {\n" + " polling_interval 5\n" + " getuid_callout \"%(scsi_id_path)s --whitelisted " + "--replace-whitespace --device=/dev/%%n\"\n" + " no_path_retry fail\n" + " user_friendly_names no\n" + " flush_on_last_del yes\n" + " fast_io_fail_tmo 5\n" + " dev_loss_tmo 30\n" + " max_fds 4096\n" + "}\n" + "\n" + "devices {\n" + "device {\n" + " vendor \"HITACHI\"\n" + " product \"DF.*\"\n" + " getuid_callout \"%(scsi_id_path)s --whitelisted " + "--replace-whitespace --device=/dev/%%n\"\n" + "}\n" + "device {\n" + " vendor \"COMPELNT\"\n" + " product \"Compellent Vol\"\n" + " no_path_retry fail\n" + "}\n" + "}" +) +MPATH_CONF_TEMPLATE = MPATH_CONF_TAG + STRG_MPATH_CONF log = logging.getLogger("Storage.Multipath") + +_scsi_id = utils.CommandPath("scsi_id", + "/sbin/scsi_id", # RHEL + "/usr/lib/udev/scsi_id", # Fedora + ) def rescan(): @@ -128,7 +162,7 @@ os.path.basename(MPATH_CONF), MAX_CONF_COPIES, cp=True, persist=True) with tempfile.NamedTemporaryFile() as f: - f.write(MPATH_CONF_TEMPLATE) + f.write(MPATH_CONF_TEMPLATE % {'scsi_id_path': _scsi_id.cmd}) f.flush() cmd = [constants.EXT_CP, f.name, MPATH_CONF] rc = misc.execCmd(cmd, sudo=True)[0] @@ -174,7 +208,7 @@ def getScsiSerial(physdev): blkdev = os.path.join("/dev", physdev) - cmd = [constants.EXT_SCSI_ID, + cmd = [_scsi_id.cmd, "--page=0x80", "--whitelisted", "--export", diff --git a/vdsm/sudoers.vdsm.in b/vdsm/sudoers.vdsm.in index 688fe16..2ebec96 100644 --- a/vdsm/sudoers.vdsm.in +++ b/vdsm/sudoers.vdsm.in @@ -23,7 +23,6 @@ @SERVICE_PATH@ iscsid *, \ @SERVICE_PATH@ multipathd restart, \ @SERVICE_PATH@ multipathd reload, \ - @SCSI_ID_PATH@, \ @ISCSIADM_PATH@ *, \ @LVM_PATH@, \ @CAT_PATH@ /sys/block/*/device/../../*, \ -- To view, visit http://gerrit.ovirt.org/10824 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I409d4da0ba429564466271aded32e96f9401cd6c Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Yeela Kaplan <[email protected]> _______________________________________________ vdsm-patches mailing list [email protected] https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
