]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
qa: install xfsprogs-dev from source to support encrypt
authorXiubo Li <xiubli@redhat.com>
Thu, 24 Nov 2022 00:51:22 +0000 (08:51 +0800)
committerXiubo Li <xiubli@redhat.com>
Thu, 1 Dec 2022 08:33:10 +0000 (16:33 +0800)
Currently the xfsprogs packages won't support the 'add_enckey' feature
in xfs_io command, we need to install it from source.

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

index 5a6e03472f05354a01e8bbd8f2309632800c272e..6e19e55c3731c26a56b6d72ace8e4c974e920435 100644 (file)
@@ -28,7 +28,7 @@ class TestACLs(XFSTestsDev):
         # and error message in some cases) and print custom log messages
         # accordingly.
         proc = self.mount_a.client_remote.run(args=['sudo', './check',
-            'generic/099'], cwd=self.repo_path, stdout=StringIO(),
+            'generic/099'], cwd=self.xfstests_repo_path, stdout=StringIO(),
             stderr=StringIO(), timeout=30, check_status=False,omit_sudo=False,
             label='running tests for ACLs from xfstests-dev')
 
index de788ab42e6f8b5c242e7d5a85e016197e3cc639..f58e933fec44ce8cfa62f06f1350dab8370feb00 100644 (file)
@@ -17,10 +17,10 @@ class XFSTestsDev(CephFSTestCase):
 
     def setUp(self):
         super(XFSTestsDev, self).setUp()
-        self.prepare_xfstests_dev()
+        self.prepare_xfstests_devs()
 
-    def prepare_xfstests_dev(self):
-        self.get_repo()
+    def prepare_xfstests_devs(self):
+        self.get_repos()
         self.get_test_and_scratch_dirs_ready()
         self.install_deps()
         self.create_reqd_users()
@@ -29,25 +29,39 @@ class XFSTestsDev(CephFSTestCase):
         # NOTE: On teuthology machines it's necessary to run "make" as
         # superuser since the repo is cloned somewhere in /tmp.
         self.mount_a.client_remote.run(args=['sudo', 'make'],
-                                       cwd=self.repo_path, stdout=StringIO(),
+                                       cwd=self.xfstests_repo_path, stdout=StringIO(),
                                        stderr=StringIO())
         self.mount_a.client_remote.run(args=['sudo', 'make', 'install'],
-                                       cwd=self.repo_path, omit_sudo=False,
+                                       cwd=self.xfstests_repo_path, omit_sudo=False,
                                        stdout=StringIO(), stderr=StringIO())
 
-    def get_repo(self):
+        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):
         """
-        Clone xfstests_dev repository. If already present, update it.
+        Clone xfstests_dev and xfsprogs-dev repositories. If already present,
+        update them. The xfsprogs-dev will be used to test the encrypt.
         """
         from teuthology.orchestra import run
 
         # TODO: make sure that repo is not cloned for every test. it should
         # happen only once.
         remoteurl = 'https://git.ceph.com/xfstests-dev.git'
-        self.repo_path = self.mount_a.client_remote.mkdtemp(suffix=
+        self.xfstests_repo_path = self.mount_a.client_remote.mkdtemp(suffix=
                                                             'xfstests-dev')
         self.mount_a.run_shell(['git', 'clone', remoteurl, '--depth', '1',
-                                self.repo_path])
+                                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])
 
     def get_admin_key(self):
         import configparser
@@ -149,7 +163,7 @@ class XFSTestsDev(CephFSTestCase):
             ''').format(self.test_dev, self.test_dirs_mount_path, self.scratch_dev,
                         self.scratch_dirs_mount_path, self.get_admin_key())
 
-        self.mount_a.client_remote.write_file(join(self.repo_path, 'local.config'),
+        self.mount_a.client_remote.write_file(join(self.xfstests_repo_path, 'local.config'),
                                               xfstests_config_contents, sudo=True)
 
     def tearDown(self):
@@ -163,7 +177,11 @@ class XFSTestsDev(CephFSTestCase):
                                        omit_sudo=False, check_status=False)
 
         self.mount_a.client_remote.run(args=['sudo', 'rm', '-rf',
-                                             self.repo_path],
+                                             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)
 
         super(XFSTestsDev, self).tearDown()