aboutsummaryrefslogtreecommitdiff
path: root/kolla/tests
diff options
context:
space:
mode:
authorMichal Nasiadka <mnasiadka@gmail.com>2025-10-01 02:25:23 -0400
committerMichal Nasiadka <mnasiadka@gmail.com>2025-10-02 14:24:31 +0200
commit806602e488240deb87bdf1c8ce00973ca8ec914d (patch)
tree6b3c54c39d2689d194cf5cca38e39c6b9fdfbcc4 /kolla/tests
parent17727e148120c43a5c7056b33e4277592376ccca (diff)
downloadkolla-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.py191
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,