From: Xiubo Li Date: Wed, 30 Nov 2022 00:34:31 +0000 (+0800) Subject: qa: install the dependency packages required by xfsprogs-dev repo X-Git-Tag: v18.1.0~743^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4cc5bcd602d0b9072bcd3b306c8b596152c7c410;p=ceph.git qa: install the dependency packages required by xfsprogs-dev repo 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 --- diff --git a/qa/tasks/cephfs/xfstests_dev.py b/qa/tasks/cephfs/xfstests_dev.py index f58e933fec44..e36d9ea2613e 100644 --- a/qa/tasks/cephfs/xfstests_dev.py +++ b/qa/tasks/cephfs/xfstests_dev.py @@ -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()