diff options
Diffstat (limited to 'kolla')
| -rwxr-xr-x | kolla/common/config.py | 4 | ||||
| -rwxr-xr-x | kolla/image/build.py | 9 | ||||
| -rw-r--r-- | kolla/tests/test_build.py | 20 |
3 files changed, 33 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']) |
