25669973 ZFSSANFSDriver fails with wrong mount.nfs expectation s11u3-sru
authorsaurabh.vyas@oracle.com
Mon, 06 Mar 2017 19:45:46 -0800
branchs11u3-sru
changeset 7788 61e5a13d7162
parent 7787 26bcbec7afce
child 7789 d23f3837744d
25669973 ZFSSANFSDriver fails with wrong mount.nfs expectation
components/openstack/cinder/patches/17-launchpad-1598191.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/openstack/cinder/patches/17-launchpad-1598191.patch	Mon Mar 06 19:45:46 2017 -0800
@@ -0,0 +1,45 @@
+Based on patch from https://review.openstack.org/#/c/336598/
+Modified for Kilo (dropped test code)
+
+From bc2f011fc0fd7e8ad331b3ae1918a5f660691253 Mon Sep 17 00:00:00 2001
+From: Kedar Vidvans <[email protected]>
+Date: Fri, 1 Jul 2016 10:29:09 -0400
+Subject: Fixes ZFSSANFS driver on Solaris platform
+
+The Solaris operating system doesn't have the mount.nfs
+tool installed. This fix skips the check for mount.nfs
+if the operating system is Solaris in the setup method.
+
+Change-Id: I8f6ee8e576a0f79ffe688aa2740913e9097e06c0
+Closes-Bug: #1598191
+
+--- cinder-2015.1.2/cinder/volume/drivers/zfssa/zfssanfs.py.orig
++++ cinder-2015.1.2/cinder/volume/drivers/zfssa/zfssanfs.py
[email protected]@ -89,15 +89,18 @@
+             LOG.error(msg)
+             raise exception.NfsException(msg)
+
+-        package = 'mount.nfs'
+-        try:
+-            self._execute(package, check_exit_code=False, run_as_root=True)
+-        except OSError as exc:
+-            if exc.errno == errno.ENOENT:
+-                msg = _('%s is not installed') % package
+-                raise exception.NfsException(msg)
+-            else:
+-                raise exc
++        packages = ('mount.nfs', '/usr/sbin/mount')
++        for package in packages:
++            try:
++                self._execute(package, check_exit_code=False, run_as_root=True)
++                break
++            except OSError as exc:
++                if exc.errno != errno.ENOENT:
++                    raise
++                LOG.error(_LE('%s is not installed.'), package)
++        else:
++            msg = utils.build_or_str(packages, '%s needs to be installed.')
++            raise exception.NfsException(msg)
+
+         lcfg = self.configuration
+         LOG.info(_LI('Connecting to host: %s.'), lcfg.san_ip)