diff options
| author | Michal Nasiadka <mnasiadka@gmail.com> | 2025-10-01 02:25:23 -0400 |
|---|---|---|
| committer | Michal Nasiadka <mnasiadka@gmail.com> | 2025-10-02 14:24:31 +0200 |
| commit | 806602e488240deb87bdf1c8ce00973ca8ec914d (patch) | |
| tree | 6b3c54c39d2689d194cf5cca38e39c6b9fdfbcc4 /kolla/tests | |
| parent | 17727e148120c43a5c7056b33e4277592376ccca (diff) | |
| download | kolla-806602e488240deb87bdf1c8ce00973ca8ec914d.tar.gz kolla-806602e488240deb87bdf1c8ce00973ca8ec914d.zip | |
Add support for rpm to repos.yaml
Add the ability to configure repositories in the same
way as we do Debuntu ones - via repos.yaml.
Removes .repo files from base - since these are not
needed there anymore.
gpgcheck = 1 is default in docker/base/dnf.conf
Change-Id: I7df7d452c45c57c434d5b4ad15a87963e4d6d0d4
Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
Diffstat (limited to 'kolla/tests')
| -rw-r--r-- | kolla/tests/test_methods.py | 191 |
1 files changed, 135 insertions, 56 deletions
diff --git a/kolla/tests/test_methods.py b/kolla/tests/test_methods.py index 395dadd4e..6559c5d4d 100644 --- a/kolla/tests/test_methods.py +++ b/kolla/tests/test_methods.py @@ -22,50 +22,155 @@ class MethodsTest(base.TestCase): expectCmd = 'apt-get -y install --no-install-recommends package2.deb' self.assertEqual(expectCmd, result.split("&&")[1].strip()) - def test_enable_repos_centos(self): + def test_enable_repos_centos_baseurl(self): template_vars = { 'base_arch': 'x86_64', 'base_distro': 'centos', 'base_package_type': 'rpm', } - result = methods.handle_repos(template_vars, ['grafana'], 'enable') - expectCmd = 'RUN dnf config-manager --enable grafana || true' + result = methods.handle_repos(template_vars, ["grafana"], "enable") + expectCmd = "RUN echo '[grafana]' " + expectCmd += ">/etc/yum.repos.d/grafana.repo && " + expectCmd += "echo 'name=grafana' " + expectCmd += ">>/etc/yum.repos.d/grafana.repo && " + expectCmd += "echo 'enabled=1' " + expectCmd += ">>/etc/yum.repos.d/grafana.repo && " + expectCmd += "echo 'gpgkey=https://rpm.grafana.com/gpg.key' " + expectCmd += ">>/etc/yum.repos.d/grafana.repo && " + expectCmd += "echo 'baseurl=https://rpm.grafana.com' " + expectCmd += ">>/etc/yum.repos.d/grafana.repo" self.assertEqual(expectCmd, result) - def test_enable_repos_centos_missing_repo(self): + def test_enable_repos_centos_metalink(self): template_vars = { 'base_arch': 'x86_64', 'base_distro': 'centos', 'base_package_type': 'rpm', } - result = methods.handle_repos(template_vars, ['missing_repo'], - 'enable') - expectCmd = '' + result = methods.handle_repos(template_vars, ["ceph"], "enable") + expectCmd = "RUN echo '[centos-ceph-squid]' " + expectCmd += ">/etc/yum.repos.d/ceph.repo && " + expectCmd += "echo 'name=centos-ceph-squid' " + expectCmd += ">>/etc/yum.repos.d/ceph.repo && " + expectCmd += "echo 'enabled=1' " + expectCmd += ">>/etc/yum.repos.d/ceph.repo && " + expectCmd += "echo 'gpgkey=https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Storage' " # noqa: E501 + expectCmd += ">>/etc/yum.repos.d/ceph.repo && " + expectCmd += "echo 'metalink=https://mirrors.centos.org/metalink?repo=centos-storage-sig-ceph-squid-9-stream&arch=$basearch' " # noqa: E501 + expectCmd += ">>/etc/yum.repos.d/ceph.repo" + self.assertEqual(expectCmd, result) + + def test_enable_repos_centos_arch(self): + template_vars = { + "base_arch": "aarch64", + "base_distro": "centos", + "base_package_type": "rpm", + } + + result = methods.handle_repos(template_vars, ["grafana"], "enable") + expectCmd = "RUN echo '[grafana]' " + expectCmd += ">/etc/yum.repos.d/grafana.repo && " + expectCmd += "echo 'name=grafana' " + expectCmd += ">>/etc/yum.repos.d/grafana.repo && " + expectCmd += "echo 'enabled=1' " + expectCmd += ">>/etc/yum.repos.d/grafana.repo && " + expectCmd += "echo 'gpgkey=https://rpm.grafana.com/gpg.key' " + expectCmd += ">>/etc/yum.repos.d/grafana.repo && " + expectCmd += "echo 'baseurl=https://rpm.grafana.com' " + expectCmd += ">>/etc/yum.repos.d/grafana.repo" self.assertEqual(expectCmd, result) def test_enable_repos_centos_multiple(self): template_vars = { - 'base_arch': 'x86_64', - 'base_distro': 'centos', - 'base_package_type': 'rpm', + "base_arch": "x86_64", + "base_distro": "centos", + "base_package_type": "rpm", + } + + result = methods.handle_repos(template_vars, + ["grafana", "rabbitmq"], "enable") + expectCmd = "RUN echo '[grafana]' " + expectCmd += ">/etc/yum.repos.d/grafana.repo && " + expectCmd += "echo 'name=grafana' " + expectCmd += ">>/etc/yum.repos.d/grafana.repo && " + expectCmd += "echo 'enabled=1' " + expectCmd += ">>/etc/yum.repos.d/grafana.repo && " + expectCmd += "echo 'gpgkey=https://rpm.grafana.com/gpg.key' " + expectCmd += ">>/etc/yum.repos.d/grafana.repo && " + expectCmd += "echo 'baseurl=https://rpm.grafana.com' " + expectCmd += ">>/etc/yum.repos.d/grafana.repo && " + + expectCmd += "echo '[rabbitmq_rabbitmq-server]' " + expectCmd += ">/etc/yum.repos.d/rabbitmq.repo && " + expectCmd += "echo 'name=rabbitmq_rabbitmq-server' " + expectCmd += ">>/etc/yum.repos.d/rabbitmq.repo && " + expectCmd += "echo 'enabled=1' " + expectCmd += ">>/etc/yum.repos.d/rabbitmq.repo && " + expectCmd += "echo 'gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key' " # noqa + expectCmd += ">>/etc/yum.repos.d/rabbitmq.repo && " + expectCmd += "echo ' https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc' " # noqa + expectCmd += ">>/etc/yum.repos.d/rabbitmq.repo && " + expectCmd += "echo 'baseurl=https://yum1.rabbitmq.com/rabbitmq/el/9/noarch' " # noqa + expectCmd += ">>/etc/yum.repos.d/rabbitmq.repo && " + expectCmd += "echo 'baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/noarch' " # noqa + expectCmd += ">>/etc/yum.repos.d/rabbitmq.repo" + self.assertEqual(expectCmd, result) + + def test_enable_repos_centos_distro_enable(self): + template_vars = { + "base_arch": "x86_64", + "base_distro": "centos", + "base_package_type": "rpm", } - result = methods.handle_repos(template_vars, ['grafana', 'ceph'], - 'enable') - expectCmd = 'RUN dnf config-manager --enable grafana ' - expectCmd += '--enable centos-ceph-squid || true' + result = methods.handle_repos(template_vars, + ['crb'], 'enable') + expectCmd = "RUN dnf config-manager --enable crb || true" + self.assertEqual(expectCmd, result) + + def test_enable_repos_centos_distro_disable(self): + template_vars = { + "base_arch": "x86_64", + "base_distro": "centos", + "base_package_type": "rpm", + } + + result = methods.handle_repos(template_vars, ['crb'], 'disable') + expectCmd = "RUN dnf config-manager --disable crb || true" + self.assertEqual(expectCmd, result) + + def test_enable_repos_centos_distro_enable_multiple(self): + template_vars = { + "base_arch": "x86_64", + "base_distro": "centos", + "base_package_type": "rpm", + } + + result = methods.handle_repos(template_vars, + ['crb', 'grafana'], 'enable') + expectCmd = "RUN dnf config-manager --enable crb || true && " + expectCmd += "echo '[grafana]' " + expectCmd += ">/etc/yum.repos.d/grafana.repo && " + expectCmd += "echo 'name=grafana' " + expectCmd += ">>/etc/yum.repos.d/grafana.repo && " + expectCmd += "echo 'enabled=1' " + expectCmd += ">>/etc/yum.repos.d/grafana.repo && " + expectCmd += "echo 'gpgkey=https://rpm.grafana.com/gpg.key' " + expectCmd += ">>/etc/yum.repos.d/grafana.repo && " + expectCmd += "echo 'baseurl=https://rpm.grafana.com' " + expectCmd += ">>/etc/yum.repos.d/grafana.repo" self.assertEqual(expectCmd, result) def test_enable_repos_debian(self): template_vars = { - 'base_arch': 'x86_64', - 'base_distro': 'debian', - 'base_package_type': 'deb' + "base_arch": "x86_64", + "base_distro": "debian", + "base_package_type": "deb", } - result = methods.handle_repos(template_vars, ['grafana'], 'enable') + result = methods.handle_repos(template_vars, ["grafana"], "enable") expectCmd = "RUN echo 'Uris: https://apt.grafana.com' " expectCmd += ">/etc/apt/sources.list.d/grafana.sources && " expectCmd += "echo 'Components: main' " @@ -82,10 +187,10 @@ class MethodsTest(base.TestCase): template_vars = { 'base_arch': 'aarch64', 'base_distro': 'debian', - 'base_package_type': 'deb' + 'base_package_type': 'deb', } - result = methods.handle_repos(template_vars, ['rabbitmq'], 'enable') + result = methods.handle_repos(template_vars, ["rabbitmq"], "enable") expectCmd = "RUN echo 'Uris: https://ppa1.rabbitmq.com/rabbitmq/rabbitmq-server/deb/debian' " # noqa: E501 expectCmd += ">/etc/apt/sources.list.d/rabbitmq.sources && " expectCmd += "echo 'Components: main' " @@ -104,23 +209,21 @@ class MethodsTest(base.TestCase): template_vars = { 'base_arch': 'x86_64', 'base_distro': 'debian', - 'base_package_type': 'deb' + 'base_package_type': 'deb', } - result = methods.handle_repos(template_vars, ['missing_repo'], - 'enable') - expectCmd = '' - self.assertEqual(expectCmd, result) + self.assertRaises(KeyError, methods.handle_repos, template_vars, + ['missing_repo'], 'enable') def test_enable_repos_debian_multiple(self): template_vars = { 'base_arch': 'x86_64', 'base_distro': 'debian', - 'base_package_type': 'deb' + 'base_package_type': 'deb', } - result = methods.handle_repos(template_vars, ['grafana', 'rabbitmq'], - 'enable') + result = methods.handle_repos(template_vars, + ['grafana', 'rabbitmq'], 'enable') expectCmd = "RUN echo 'Uris: https://apt.grafana.com' " expectCmd += ">/etc/apt/sources.list.d/grafana.sources && " expectCmd += "echo 'Components: main' " @@ -146,47 +249,23 @@ class MethodsTest(base.TestCase): self.assertEqual(expectCmd, result) - def test_disable_repos_centos(self): - template_vars = { - 'base_arch': 'x86_64', - 'base_distro': 'centos', - 'base_package_type': 'rpm', - } - - result = methods.handle_repos(template_vars, ['grafana'], 'disable') - expectCmd = 'RUN dnf config-manager --disable grafana || true' - self.assertEqual(expectCmd, result) - - def test_disable_repos_centos_multiple(self): - template_vars = { - 'base_arch': 'x86_64', - 'base_distro': 'centos', - 'base_package_type': 'rpm', - } - - result = methods.handle_repos(template_vars, ['grafana', 'ceph'], - 'disable') - expectCmd = 'RUN dnf config-manager --disable grafana ' - expectCmd += '--disable centos-ceph-squid || true' - self.assertEqual(expectCmd, result) - # NOTE(hrw): there is no disabling of repos for Debian/Ubuntu def test_disable_repos_debian(self): template_vars = { 'base_arch': 'x86_64', 'base_distro': 'debian', - 'base_package_type': 'deb' + 'base_package_type': 'deb', } - result = methods.handle_repos(template_vars, ['grafana'], 'disable') - expectCmd = '' + result = methods.handle_repos(template_vars, ["grafana"], "disable") + expectCmd = "" self.assertEqual(expectCmd, result) def test_handle_repos_string(self): template_vars = { 'base_arch': 'x86_64', 'base_distro': 'debian', - 'base_package_type': 'deb' + 'base_package_type': 'deb', } self.assertRaisesRegex(TypeError, |
