aboutsummaryrefslogtreecommitdiff
path: root/kolla
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-02-04 11:31:01 +0000
committerGerrit Code Review <review@openstack.org>2016-02-04 11:31:01 +0000
commite8348d033a7496c2c5934d248e3ea2f8b125e44e (patch)
tree06615ec21791fd06c1d0b219eea49f7af2198504 /kolla
parent33484d7a792711903a05b3956e69ad2005ee00df (diff)
parentdb53ad1ddf4f3b87582fbd2a8516b77d9c031723 (diff)
downloadkolla-e8348d033a7496c2c5934d248e3ea2f8b125e44e.tar.gz
kolla-e8348d033a7496c2c5934d248e3ea2f8b125e44e.zip
Merge "Move the install base type check to kolla-build"
Diffstat (limited to 'kolla')
-rwxr-xr-xkolla/cmd/build.py15
-rw-r--r--kolla/tests/test_build.py26
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)