components/python/os-brick/patches/02-remotefs.patch
author Laszlo Peter <laszlo.peter@oracle.com>
Wed, 07 Sep 2016 14:48:24 -0700
changeset 6761 f2bb9c5b1768
parent 5405 components/openstack/cinder/patches/10-remotefs.patch@66fd59fecd68
permissions -rw-r--r--
PSARC 2016/361 os-brick - managing local volume attaches in OpenStack Cinder 23538847 Python module os-brick should be added to Userland
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
     1
In-house patch to adapt Linux specific commands and command output
6761
f2bb9c5b1768 PSARC 2016/361 os-brick - managing local volume attaches in OpenStack Cinder
Laszlo Peter <laszlo.peter@oracle.com>
parents: 5405
diff changeset
     2
parsing to Solaris. Patch may be suitable for pushing upsteam.
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
     3
6761
f2bb9c5b1768 PSARC 2016/361 os-brick - managing local volume attaches in OpenStack Cinder
Laszlo Peter <laszlo.peter@oracle.com>
parents: 5405
diff changeset
     4
--- os-brick-1.2.0/os_brick/remotefs/remotefs.py.~1~	2016-03-28 09:30:49.000000000 +0000
f2bb9c5b1768 PSARC 2016/361 os-brick - managing local volume attaches in OpenStack Cinder
Laszlo Peter <laszlo.peter@oracle.com>
parents: 5405
diff changeset
     5
+++ os-brick-1.2.0/os_brick/remotefs/remotefs.py	2016-09-06 17:01:03.004025741 +0000
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
     6
@@ -17,6 +17,7 @@
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
     7
 
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
     8
 import hashlib
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
     9
 import os
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    10
+import platform
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    11
 import re
6761
f2bb9c5b1768 PSARC 2016/361 os-brick - managing local volume attaches in OpenStack Cinder
Laszlo Peter <laszlo.peter@oracle.com>
parents: 5405
diff changeset
    12
 import tempfile
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    13
 
6761
f2bb9c5b1768 PSARC 2016/361 os-brick - managing local volume attaches in OpenStack Cinder
Laszlo Peter <laszlo.peter@oracle.com>
parents: 5405
diff changeset
    14
@@ -86,14 +87,21 @@ class RemoteFsClient(object):
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    15
                             self._get_hash_str(device_name))
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    16
 
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    17
     def _read_mounts(self):
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    18
-        (out, _err) = self._execute('mount', check_exit_code=0)
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    19
+        if platform.system() == "SunOS":
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    20
+            (out, _err) = self._execute('/usr/sbin/mount', check_exit_code=0)
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    21
+        else:
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    22
+            (out, _err) = self._execute('mount', check_exit_code=0)
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    23
         lines = out.split('\n')
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    24
         mounts = {}
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    25
         for line in lines:
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    26
             tokens = line.split()
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    27
             if 2 < len(tokens):
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    28
-                device = tokens[0]
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    29
-                mnt_point = tokens[2]
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    30
+                if platform.system() == "SunOS":
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    31
+                    device = tokens[2]
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    32
+                    mnt_point = tokens[0]
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    33
+                else:
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    34
+                    device = tokens[0]
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    35
+                    mnt_point = tokens[2]
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    36
                 mounts[mnt_point] = device
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    37
         return mounts
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    38
 
6761
f2bb9c5b1768 PSARC 2016/361 os-brick - managing local volume attaches in OpenStack Cinder
Laszlo Peter <laszlo.peter@oracle.com>
parents: 5405
diff changeset
    39
@@ -105,8 +113,12 @@ class RemoteFsClient(object):
f2bb9c5b1768 PSARC 2016/361 os-brick - managing local volume attaches in OpenStack Cinder
Laszlo Peter <laszlo.peter@oracle.com>
parents: 5405
diff changeset
    40
             LOG.info(_LI('Already mounted: %s'), mount_path)
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    41
             return
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    42
 
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    43
-        self._execute('mkdir', '-p', mount_path, check_exit_code=0)
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    44
-        if self._mount_type == 'nfs':
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    45
+        if platform.system() == "SunOS":
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    46
+            self._execute('/usr/bin/mkdir', '-p', mount_path,
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    47
+                          check_exit_code=0)
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    48
+        else:
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    49
+            self._execute('mkdir', '-p', mount_path, check_exit_code=0)
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    50
+        if self._mount_type == 'nfs' and platform.system() != "SunOS":
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    51
             self._mount_nfs(share, mount_path, flags)
6761
f2bb9c5b1768 PSARC 2016/361 os-brick - managing local volume attaches in OpenStack Cinder
Laszlo Peter <laszlo.peter@oracle.com>
parents: 5405
diff changeset
    52
         elif self._mount_type == 'vzstorage':
f2bb9c5b1768 PSARC 2016/361 os-brick - managing local volume attaches in OpenStack Cinder
Laszlo Peter <laszlo.peter@oracle.com>
parents: 5405
diff changeset
    53
             self._mount_vzstorage(share, mount_path, flags)
f2bb9c5b1768 PSARC 2016/361 os-brick - managing local volume attaches in OpenStack Cinder
Laszlo Peter <laszlo.peter@oracle.com>
parents: 5405
diff changeset
    54
@@ -117,15 +129,21 @@ class RemoteFsClient(object):
5405
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    55
     def _do_mount(self, mount_type, share, mount_path, mount_options=None,
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    56
                   flags=None):
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    57
         """Mounts share based on the specified params."""
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    58
-        mnt_cmd = ['mount', '-t', mount_type]
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    59
+        if platform.system() == "SunOS":
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    60
+            mnt_cmd = ['/usr/sbin/mount', '-F', mount_type]
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    61
+        else:
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    62
+            mnt_cmd = ['mount', '-t', mount_type]
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    63
         if mount_options is not None:
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    64
             mnt_cmd.extend(['-o', mount_options])
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    65
         if flags is not None:
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    66
             mnt_cmd.extend(flags)
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    67
         mnt_cmd.extend([share, mount_path])
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    68
 
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    69
-        self._execute(*mnt_cmd, root_helper=self.root_helper,
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    70
-                      run_as_root=True, check_exit_code=0)
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    71
+        if platform.system() == "SunOS":
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    72
+            self._execute(*mnt_cmd, check_exit_code=0)
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    73
+        else:
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    74
+            self._execute(*mnt_cmd, root_helper=self.root_helper,
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    75
+                          run_as_root=True, check_exit_code=0)
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    76
 
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    77
     def _mount_nfs(self, nfs_share, mount_path, flags=None):
66fd59fecd68 PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
diff changeset
    78
         """Mount nfs share using present mount types."""