]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
qa: install the dependency packages required by xfsprogs-dev repo
authorXiubo Li <xiubli@redhat.com>
Wed, 30 Nov 2022 00:34:31 +0000 (08:34 +0800)
committerXiubo Li <xiubli@redhat.com>
Thu, 1 Dec 2022 08:33:10 +0000 (16:33 +0800)
We need to install the xfsprogs-dev from source to make the xfs_io
command to support the 'add_enckey'.

Currently we couldn't install 'userspace-rcu-devel', 'libedit-devel'
and 'device-mapper-devel' from rhel distos. So the file encyrpt test
cases will skip the rhel distos for now. And it works well on centos
and ubuntu.

Fixes: https://tracker.ceph.com/issues/58133
Signed-off-by: Xiubo Li <xiubli@redhat.com>
qa/tasks/cephfs/xfstests_dev.py

index f58e933fec44ce8cfa62f06f1350dab8370feb00..e36d9ea2613ecd9f824f0aeefad4d2651119182c 100644 (file)
@@ -17,8 +17,12 @@ class XFSTestsDev(CephFSTestCase):
 
     def setUp(self):
         super(XFSTestsDev, self).setUp()
+        self.setup_xfsprogs_devs()
         self.prepare_xfstests_devs()
 
+    def setup_xfsprogs_devs(self):
+        self.install_xfsprogs = False
+
     def prepare_xfstests_devs(self):
         self.get_repos()
         self.get_test_and_scratch_dirs_ready()
@@ -35,12 +39,13 @@ class XFSTestsDev(CephFSTestCase):
                                        cwd=self.xfstests_repo_path, omit_sudo=False,
                                        stdout=StringIO(), stderr=StringIO())
 
-        self.mount_a.client_remote.run(args=['sudo', 'make'],
-                                       cwd=self.xfsprogs_repo_path, stdout=StringIO(),
-                                       stderr=StringIO())
-        self.mount_a.client_remote.run(args=['sudo', 'make', 'install'],
-                                       cwd=self.xfsprogs_repo_path, omit_sudo=False,
-                                       stdout=StringIO(), stderr=StringIO())
+        if self.install_xfsprogs:
+            self.mount_a.client_remote.run(args=['sudo', 'make'],
+                                           cwd=self.xfsprogs_repo_path,
+                                           stdout=StringIO(), stderr=StringIO())
+            self.mount_a.client_remote.run(args=['sudo', 'make', 'install'],
+                                           cwd=self.xfsprogs_repo_path, omit_sudo=False,
+                                           stdout=StringIO(), stderr=StringIO())
 
     def get_repos(self):
         """
@@ -57,11 +62,12 @@ class XFSTestsDev(CephFSTestCase):
         self.mount_a.run_shell(['git', 'clone', remoteurl, '--depth', '1',
                                 self.xfstests_repo_path])
 
-        remoteurl = 'https://git.ceph.com/xfsprogs-dev.git'
-        self.xfsprogs_repo_path = self.mount_a.client_remote.mkdtemp(suffix=
-                                                            'xfsprogs-dev')
-        self.mount_a.run_shell(['git', 'clone', remoteurl, '--depth', '1',
-                                self.xfsprogs_repo_path])
+        if self.install_xfsprogs:
+            remoteurl = 'https://git.ceph.com/xfsprogs-dev.git'
+            self.xfsprogs_repo_path = self.mount_a.client_remote.mkdtemp(suffix=
+                                                                'xfsprogs-dev')
+            self.mount_a.run_shell(['git', 'clone', remoteurl, '--depth', '1',
+                                    self.xfsprogs_repo_path])
 
     def get_admin_key(self):
         import configparser
@@ -116,6 +122,12 @@ class XFSTestsDev(CephFSTestCase):
             xfsdump xfsprogs \
             libacl-devel libattr-devel libaio-devel libuuid-devel \
             xfsprogs-devel btrfs-progs-devel python2 sqlite""".split()
+
+            if self.install_xfsprogs:
+                deps += ['inih-devel', 'userspace-rcu-devel', 'libblkid-devel',
+                         'gettext', 'libedit-devel', 'libattr-devel',
+                         'device-mapper-devel', 'libicu-devel']
+
             deps_old_distros = ['xfsprogs-qa-devel']
 
             if distro != 'fedora' and major_ver_num > 7:
@@ -128,6 +140,11 @@ class XFSTestsDev(CephFSTestCase):
             libacl1-dev libaio-dev xfsprogs libgdbm-dev gawk fio dbench \
             uuid-runtime python sqlite3""".split()
 
+            if self.install_xfsprogs:
+                deps += ['libinih-dev', 'liburcu-dev', 'libblkid-dev',
+                         'gettext', 'libedit-dev', 'libattr1-dev',
+                         'libdevmapper-dev', 'libicu-dev', 'pkg-config']
+
             if major_ver_num >= 19:
                 deps[deps.index('python')] ='python2'
             args = ['sudo', 'apt-get', 'install', '-y'] + deps
@@ -180,8 +197,9 @@ class XFSTestsDev(CephFSTestCase):
                                              self.xfstests_repo_path],
                                        omit_sudo=False, check_status=False)
 
-        self.mount_a.client_remote.run(args=['sudo', 'rm', '-rf',
-                                             self.xfsprogs_repo_path],
-                                       omit_sudo=False, check_status=False)
+        if self.install_xfsprogs:
+            self.mount_a.client_remote.run(args=['sudo', 'rm', '-rf',
+                                                 self.xfsprogs_repo_path],
+                                           omit_sudo=False, check_status=False)
 
         super(XFSTestsDev, self).tearDown()