From b1b7492e658cd6b15408bd796c679b7ea479b308 Mon Sep 17 00:00:00 2001 From: Jeffrey Zhang Date: Fri, 22 Sep 2017 22:34:11 +0800 Subject: [PATCH] Skip known failed kolla images Change-Id: Ide8478c248e77b9c85201981e8086f3dbf06d131 --- kolla/image/build.py | 114 +++++++++++++++++++++++++++++++++++++- tests/test_build.py | 127 ++++--------------------------------------- 2 files changed, 124 insertions(+), 117 deletions(-) diff --git a/kolla/image/build.py b/kolla/image/build.py index 1a2be0848d..b6e959b468 100755 --- a/kolla/image/build.py +++ b/kolla/image/build.py @@ -94,6 +94,112 @@ STATUS_ERRORS = (STATUS_CONNECTION_ERROR, STATUS_PUSH_ERROR, STATUS_ERROR, STATUS_PARENT_ERROR) +SKIPPED_IMAGES = { + 'centos+binary': [ + "bifrost-base", + "blazar-base", + "dragonflow-base", + "freezer-base", + "kafka", + "karbor-base", + "kuryr-base", + "monasca-base", + "neutron-bgp-dragent", + "ovsdpdk", + "searchlight-base", + "senlin-base", + "solum-base", + "vitrage-base", + "vmtp", + "zun-base", + ], + 'centos+source': [ + "bifrost-base", + "kafka", + "ovsdpdk", + ], + 'ubuntu+binary': [ + "bifrost-base", + "blazar-base", + "cloudkitty-base", + "congress-base", + "dragonflow-base", + "ec2-api", + "freezer-base", + "heat-all", + "karbor-base", + "kuryr-base", + "mistral-event-engine", + "monasca-base", + "novajoin-base", + "octavia-base", + "searchlight-base", + "senlin-base", + "solum-base", + "tacker-base", + "vitrage-base", + "vmtp", + "zaqar", + "zun-base", + ], + 'ubuntu+source': [ + "bifrost-base", + ], + 'debian+binary': [ + "bifrost-base", + "blazar-base", + "cloudkitty-base", + "congress-base", + "dragonflow-base", + "ec2-api", + "freezer-base", + "heat-all", + "karbor-base", + "kuryr-base", + "mistral-event-engine", + "monasca-base", + "novajoin-base", + "octavia-base", + "searchlight-base", + "senlin-base", + "sensu-base", + "solum-base", + "tacker-base", + "vitrage-base", + "vmtp", + "zaqar", + "zun-base" + ], + 'debian+source': [ + "bifrost-base", + "sensu-base", + ], + 'oraclelinux+binary': [ + "bifrost-base", + "blazar-base", + "dragonflow-base", + "freezer-base", + "kafka", + "karbor-base", + "kuryr-base", + "monasca-base", + "neutron-bgp-dragent", + "ovsdpdk", + "searchlight-base", + "senlin-base", + "solum-base", + "vitrage-base", + "vmtp", + "zun-base" + ], + 'oraclelinux+source': [ + "bifrost-base", + "kafka", + "ovsdpdk" + ] +} + + class ArchivingError(Exception): pass @@ -847,6 +953,12 @@ class KollaWorker(object): for image in self.images: image.status = STATUS_MATCHED + skipped_images = SKIPPED_IMAGES.get('%s+%s' % (self.base, + self.install_type)) + for image in self.images: + if image.name in skipped_images: + image.status = STATUS_UNMATCHED + def summary(self): """Walk the dictionary of images statuses and print results.""" # For debug we print the logs again if the image error'd. This is to @@ -1083,7 +1195,7 @@ class KollaWorker(object): queue = six.moves.queue.Queue() for image in self.images: - if image.status == STATUS_UNMATCHED: + if image.status in (STATUS_UNMATCHED, STATUS_SKIPPED): # Don't bother queuing up build tasks for things that # were not matched in the first place... (not worth the # effort to run them, if they won't be used anyway). diff --git a/tests/test_build.py b/tests/test_build.py index f0edd9f455..91be9a5d1f 100644 --- a/tests/test_build.py +++ b/tests/test_build.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -import abc import multiprocessing import os import sys @@ -29,7 +28,7 @@ LOG = logging.getLogger(__name__) class BuildTest(object): - excluded_images = abc.abstractproperty() + excluded_images = [] def setUp(self): super(BuildTest, self).setUp() @@ -52,18 +51,10 @@ class BuildTest(object): failures = 0 for image, result in bad_results.items(): - if image in self.excluded_images: - if result is 'error': - continue - failures = failures + 1 - LOG.warning(">>> Expected image '%s' to fail, please update" - " the excluded_images in source file above if the" - " image build has been fixed.", image) - else: - if result is not 'error': - continue - failures = failures + 1 - LOG.critical(">>> Expected image '%s' to succeed!", image) + if result is not 'error': + continue + failures = failures + 1 + LOG.critical(">>> Expected image '%s' to succeed!", image) for image in unmatched_results.keys(): LOG.warning(">>> Image '%s' was not matched", image) @@ -72,24 +63,6 @@ class BuildTest(object): class BuildTestCentosBinary(BuildTest, base.BaseTestCase): - excluded_images = [ - "bifrost-base", - "blazar-base", - "dragonflow-base", - "freezer-base", - "kafka", - "karbor-base", - "kuryr-base", - "monasca-base", - "neutron-bgp-dragent", - "ovsdpdk", - "searchlight-base", - "senlin-base", - "solum-base", - "vitrage-base", - "vmtp", - "zun-base", - ] def setUp(self): super(BuildTestCentosBinary, self).setUp() @@ -98,11 +71,6 @@ class BuildTestCentosBinary(BuildTest, base.BaseTestCase): class BuildTestCentosSource(BuildTest, base.BaseTestCase): - excluded_images = [ - "bifrost-base", - "kafka", - "ovsdpdk", - ] def setUp(self): super(BuildTestCentosSource, self).setUp() @@ -111,30 +79,6 @@ class BuildTestCentosSource(BuildTest, base.BaseTestCase): class BuildTestUbuntuBinary(BuildTest, base.BaseTestCase): - excluded_images = [ - "bifrost-base", - "blazar-base", - "cloudkitty-base", - "congress-base", - "dragonflow-base", - "ec2-api", - "freezer-base", - "heat-all", - "karbor-base", - "kuryr-base", - "mistral-event-engine", - "monasca-base", - "novajoin-base", - "octavia-base", - "searchlight-base", - "senlin-base", - "solum-base", - "tacker-base", - "vitrage-base", - "vmtp", - "zaqar", - "zun-base", - ] def setUp(self): super(BuildTestUbuntuBinary, self).setUp() @@ -143,9 +87,6 @@ class BuildTestUbuntuBinary(BuildTest, base.BaseTestCase): class BuildTestUbuntuSource(BuildTest, base.BaseTestCase): - excluded_images = [ - "bifrost-base", - ] def setUp(self): super(BuildTestUbuntuSource, self).setUp() @@ -154,31 +95,6 @@ class BuildTestUbuntuSource(BuildTest, base.BaseTestCase): class BuildTestDebianBinary(BuildTest, base.BaseTestCase): - excluded_images = [ - "bifrost-base", - "blazar-base", - "cloudkitty-base", - "congress-base", - "dragonflow-base", - "ec2-api", - "freezer-base", - "heat-all", - "karbor-base", - "kuryr-base", - "mistral-event-engine", - "monasca-base", - "novajoin-base", - "octavia-base", - "searchlight-base", - "senlin-base", - "sensu-base", - "solum-base", - "tacker-base", - "vitrage-base", - "vmtp", - "zaqar", - "zun-base" - ] def setUp(self): super(BuildTestDebianBinary, self).setUp() @@ -187,10 +103,6 @@ class BuildTestDebianBinary(BuildTest, base.BaseTestCase): class BuildTestDebianSource(BuildTest, base.BaseTestCase): - excluded_images = [ - "bifrost-base", - "sensu-base", - ] def setUp(self): super(BuildTestDebianSource, self).setUp() @@ -199,24 +111,6 @@ class BuildTestDebianSource(BuildTest, base.BaseTestCase): class BuildTestOracleLinuxBinary(BuildTest, base.BaseTestCase): - excluded_images = [ - "bifrost-base", - "blazar-base", - "dragonflow-base", - "freezer-base", - "kafka", - "karbor-base", - "kuryr-base", - "monasca-base", - "neutron-bgp-dragent", - "ovsdpdk", - "searchlight-base", - "senlin-base", - "solum-base", - "vitrage-base", - "vmtp", - "zun-base", - ] def setUp(self): super(BuildTestOracleLinuxBinary, self).setUp() @@ -225,11 +119,6 @@ class BuildTestOracleLinuxBinary(BuildTest, base.BaseTestCase): class BuildTestOracleLinuxSource(BuildTest, base.BaseTestCase): - excluded_images = [ - "bifrost-base", - "kafka", - "ovsdpdk", - ] def setUp(self): super(BuildTestOracleLinuxSource, self).setUp() @@ -238,36 +127,42 @@ class BuildTestOracleLinuxSource(BuildTest, base.BaseTestCase): class DeployTestCentosBinary(BuildTestCentosBinary): + def setUp(self): super(DeployTestCentosBinary, self).setUp() self.build_args.extend(["--profile", "gate"]) class DeployTestCentosSource(BuildTestCentosSource): + def setUp(self): super(DeployTestCentosSource, self).setUp() self.build_args.extend(["--profile", "gate"]) class DeployTestOracleLinuxBinary(BuildTestOracleLinuxBinary): + def setUp(self): super(DeployTestOracleLinuxBinary, self).setUp() self.build_args.extend(["--profile", "gate"]) class DeployTestOracleLinuxSource(BuildTestOracleLinuxSource): + def setUp(self): super(DeployTestOracleLinuxSource, self).setUp() self.build_args.extend(["--profile", "gate"]) class DeployTestUbuntuBinary(BuildTestUbuntuBinary): + def setUp(self): super(DeployTestUbuntuBinary, self).setUp() self.build_args.extend(["--profile", "gate"]) class DeployTestUbuntuSource(BuildTestUbuntuSource): + def setUp(self): super(DeployTestUbuntuSource, self).setUp() self.build_args.extend(["--profile", "gate"])