aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2019-01-17 17:08:45 +0000
committerGerrit Code Review <review@openstack.org>2019-01-17 17:08:45 +0000
commitffcda49e343aed666ee7839b5c7af04520577af0 (patch)
treebb8b9c17c7ae716a3edd3135d5bd782528ae7555
parentaf8a4d75829350fae0e4d28538d5088306e55e14 (diff)
parent3410a6165af199992c0b06eaf603dd0dde72c4b0 (diff)
downloadkolla-ffcda49e343aed666ee7839b5c7af04520577af0.tar.gz
kolla-ffcda49e343aed666ee7839b5c7af04520577af0.zip
Merge "Add distro_python3 option"
-rwxr-xr-xkolla/common/config.py4
-rwxr-xr-xkolla/image/build.py9
-rw-r--r--kolla/tests/test_build.py20
-rw-r--r--releasenotes/notes/distro-python3-configuration-3ed58b21b0f43246.yaml8
4 files changed, 41 insertions, 0 deletions
diff --git a/kolla/common/config.py b/kolla/common/config.py
index 5ba95bd2a..e1c682b4f 100755
--- a/kolla/common/config.py
+++ b/kolla/common/config.py
@@ -266,6 +266,10 @@ _BASE_OPTS = [
cfg.StrOpt('maintainer',
default='Kolla Project (https://launchpad.net/kolla)',
help='Content of the maintainer label'),
+ cfg.BoolOpt('distro_python3', default=None,
+ help=('Enable this to force python3 packaging names. By '
+ 'default this will try and determine the value of this '
+ 'based on the base_distro and base_distro_tag.')),
cfg.ListOpt('rpm_setup_config', default=[DELOREAN, DELOREAN_DEPS],
help=('Comma separated list of .rpm or .repo file(s) '
'or URL(s) to install before building containers')),
diff --git a/kolla/image/build.py b/kolla/image/build.py
index 9ab3f68df..6cb1cb2da 100755
--- a/kolla/image/build.py
+++ b/kolla/image/build.py
@@ -689,6 +689,14 @@ class KollaWorker(object):
deb_base = ['ubuntu', 'debian']
deb_type = ['source', 'binary']
+ if self.conf.distro_python3 is not None:
+ self.distro_python3 = self.conf.distro_python3
+ elif self.base in rh_base and self.base_tag in ['8']:
+ # RHEL 8+ is python3
+ self.distro_python3 = True
+ else:
+ self.distro_python3 = False
+
if not ((self.base in rh_base and self.install_type in rh_type) or
(self.base in deb_base and self.install_type in deb_type)):
raise exception.KollaMismatchBaseTypeException(
@@ -888,6 +896,7 @@ class KollaWorker(object):
'kolla_version': kolla_version,
'image_name': image_name,
'users': self.get_users(),
+ 'distro_python3': self.distro_python3,
'rpm_setup': self.rpm_setup,
'build_date': build_date}
env = jinja2.Environment( # nosec: not used to render HTML
diff --git a/kolla/tests/test_build.py b/kolla/tests/test_build.py
index b721bb237..c6a953003 100644
--- a/kolla/tests/test_build.py
+++ b/kolla/tests/test_build.py
@@ -381,6 +381,26 @@ class KollaWorkerTest(base.TestCase):
kolla = build.KollaWorker(self.conf)
self.assertEqual(2, len(kolla.rpm_setup))
+ def test_build_distro_python3(self):
+ """check distro_python3 conf value is taken"""
+ self.conf.set_override('distro_python3', True)
+ kolla = build.KollaWorker(self.conf)
+ self.assertTrue(kolla.distro_python3)
+
+ def test_build_distro_python3_rhel8(self):
+ """check distro_python3 true for rhel8"""
+ self.conf.set_override('base', 'rhel')
+ self.conf.set_override('base_tag', '8')
+ kolla = build.KollaWorker(self.conf)
+ self.assertTrue(kolla.distro_python3)
+
+ def test_build_distro_python3_non_rhel8(self):
+ """check distro_python3 false for non-rhel8"""
+ self.conf.set_override('base', 'rhel')
+ self.conf.set_override('base_tag', '7')
+ kolla = build.KollaWorker(self.conf)
+ self.assertFalse(kolla.distro_python3)
+
def test_pre_defined_exist_profile(self):
# default profile include the fake image: image-base
self.conf.set_override('profile', ['default'])
diff --git a/releasenotes/notes/distro-python3-configuration-3ed58b21b0f43246.yaml b/releasenotes/notes/distro-python3-configuration-3ed58b21b0f43246.yaml
new file mode 100644
index 000000000..40742b731
--- /dev/null
+++ b/releasenotes/notes/distro-python3-configuration-3ed58b21b0f43246.yaml
@@ -0,0 +1,8 @@
+---
+features:
+ - |
+ Added a `distro_python3` configuration option for the kolla-build.conf
+ that will switch the package names to assume the python3 name. By default,
+ this will be True if a RHEL 8 based distro and False for any other distro.
+ If a value of True or False is provided in the configuration, this will
+ override the derived value.