diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-02-04 11:31:01 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-02-04 11:31:01 +0000 |
| commit | e8348d033a7496c2c5934d248e3ea2f8b125e44e (patch) | |
| tree | 06615ec21791fd06c1d0b219eea49f7af2198504 /kolla | |
| parent | 33484d7a792711903a05b3956e69ad2005ee00df (diff) | |
| parent | db53ad1ddf4f3b87582fbd2a8516b77d9c031723 (diff) | |
| download | kolla-e8348d033a7496c2c5934d248e3ea2f8b125e44e.tar.gz kolla-e8348d033a7496c2c5934d248e3ea2f8b125e44e.zip | |
Merge "Move the install base type check to kolla-build"
Diffstat (limited to 'kolla')
| -rwxr-xr-x | kolla/cmd/build.py | 15 | ||||
| -rw-r--r-- | kolla/tests/test_build.py | 26 |
2 files changed, 41 insertions, 0 deletions
diff --git a/kolla/cmd/build.py b/kolla/cmd/build.py index 1e51dde75..68babfa75 100755 --- a/kolla/cmd/build.py +++ b/kolla/cmd/build.py @@ -64,6 +64,10 @@ class KollaUnknownBuildTypeException(Exception): pass +class KollaMismatchBaseTypeException(Exception): + pass + + class KollaRpmSetupUnknownConfig(Exception): pass @@ -322,6 +326,17 @@ class KollaWorker(object): rpm_setup_config = filter(None, conf.rpm_setup_config) self.rpm_setup = self.build_rpm_setup(rpm_setup_config) + rh_base = ['fedora', 'centos', 'oraclelinux', 'rhel'] + rh_type = ['source', 'binary', 'rdo', 'rhos'] + deb_base = ['ubuntu', 'debian'] + deb_type = ['source', 'binary'] + + 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 KollaMismatchBaseTypeException( + '{} is unavailable for {}'.format(self.install_type, self.base) + ) + if self.install_type == 'binary': self.install_metatype = 'rdo' elif self.install_type == 'source': diff --git a/kolla/tests/test_build.py b/kolla/tests/test_build.py index d1ace9ec8..634fa3abb 100644 --- a/kolla/tests/test_build.py +++ b/kolla/tests/test_build.py @@ -11,6 +11,7 @@ # limitations under the License. import fixtures +import itertools import mock import os @@ -102,3 +103,28 @@ class WorkerThreadTest(base.TestCase): path=FAKE_IMAGE['path'], tag=FAKE_IMAGE['fullname'], nocache=False, rm=True, pull=True, forcerm=True, buildargs=build_args) + + +class KollaWorkerTest(base.TestCase): + + def test_supported_base_type(self): + rh_base = ['fedora', 'centos', 'oraclelinux', 'rhel'] + rh_type = ['source', 'binary', 'rdo', 'rhos'] + deb_base = ['ubuntu', 'debian'] + deb_type = ['source', 'binary'] + + for base_distro, install_type in itertools.chain( + itertools.product(rh_base, rh_type), + itertools.product(deb_base, deb_type)): + self.conf.set_override('base', base_distro) + self.conf.set_override('install_type', install_type) + # should no exception raised + build.KollaWorker(self.conf) + + def test_unsupported_base_type(self): + for base_distro, install_type in itertools.product( + ['ubuntu', 'debian'], ['rdo', 'rhos']): + self.conf.set_override('base', base_distro) + self.conf.set_override('install_type', install_type) + self.assertRaises(build.KollaMismatchBaseTypeException, + build.KollaWorker, self.conf) |
