From e0240edee6602abcd35cd0b1f8d01aea5b75ee05 Mon Sep 17 00:00:00 2001 From: Filip Valder Date: Wed, 14 Dec 2016 14:00:26 +0100 Subject: [PATCH 01/29] fix #264: failed 'failed module' handling due to missing koji tag --- module_build_service/models.py | 13 +++++----- .../scheduler/handlers/modules.py | 25 ++++++++++++------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/module_build_service/models.py b/module_build_service/models.py index 38996cc7..79126d9c 100644 --- a/module_build_service/models.py +++ b/module_build_service/models.py @@ -198,12 +198,13 @@ class ModuleBuild(RidaBase): self.state_reason = state_reason log.debug("%r, state %r->%r" % (self, old_state, self.state)) - module_build_service.messaging.publish( - service='module_build_service', - topic='module.state.change', - msg=self.json(), # Note the state is "init" here... - conf=conf, - ) + if old_state != self.state: + module_build_service.messaging.publish( + service='module_build_service', + topic='module.state.change', + msg=self.json(), # Note the state is "init" here... + conf=conf, + ) @classmethod def by_state(cls, session, state): diff --git a/module_build_service/scheduler/handlers/modules.py b/module_build_service/scheduler/handlers/modules.py index 5fe58fc0..240d16c3 100644 --- a/module_build_service/scheduler/handlers/modules.py +++ b/module_build_service/scheduler/handlers/modules.py @@ -80,16 +80,23 @@ def failed(config, session, msg): session.commit() raise - builder = module_build_service.builder.GenericBuilder.create( - build.owner, build.name, config.system, config, tag_name=build.koji_tag) - builder.buildroot_connect(groups) + if build.koji_tag: + builder = module_build_service.builder.GenericBuilder.create( + build.owner, build.name, config.system, config, tag_name=build.koji_tag) + builder.buildroot_connect(groups) - for component in unbuilt_components: - if component.task_id: - builder.cancel_build(component.task_id) - component.state = koji.BUILD_STATES['FAILED'] - component.state_reason = build.state_reason - session.add(component) + for component in unbuilt_components: + if component.task_id: + builder.cancel_build(component.task_id) + component.state = koji.BUILD_STATES['FAILED'] + component.state_reason = build.state_reason + session.add(component) + else: + reason = "Missing koji tag. Assuming previously failed module lookup in PDC." + log.error(reason) + build.transition(config, state="failed", state_reason=reason) + session.commit() + return build.transition(config, state="failed") session.commit() From 41187110b5e7bc040186f17c7cbb01f58d0e3d66 Mon Sep 17 00:00:00 2001 From: Matt Prahl Date: Mon, 12 Dec 2016 16:49:23 -0500 Subject: [PATCH 02/29] Add Vagrant support to submit_build.py --- Vagrantfile | 1 + contrib/submit_build.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Vagrantfile b/Vagrantfile index 0895171d..21732364 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -42,6 +42,7 @@ Vagrant.configure("2") do |config| config.vm.synced_folder "./", "/tmp/module_build_service" config.vm.provision "file", source: "/var/tmp/krbcc", destination: "/var/tmp/krbcc", run: "always" config.vm.network "forwarded_port", guest: 5000, host: 5000 + config.vm.network "forwarded_port", guest: 13747, host: 13747 config.vm.provision "shell", inline: $script config.vm.provision :shell, inline: "mbs-frontend &", run: "always" config.vm.provision :shell, inline: "mbs-daemon &", run: "always" diff --git a/contrib/submit_build.py b/contrib/submit_build.py index 9ad3a413..de4a38f0 100644 --- a/contrib/submit_build.py +++ b/contrib/submit_build.py @@ -8,7 +8,7 @@ def listen_for_token(): Listens on port 13747 on localhost for a redirect request by OIDC server, parses the response and returns the "access_token" value. """ - TCP_IP = '127.0.0.1' + TCP_IP = '0.0.0.0' TCP_PORT = 13747 BUFFER_SIZE = 1024 From 261549c8c253ef7b049d35803a9b71ef04fc31c5 Mon Sep 17 00:00:00 2001 From: Matt Prahl Date: Tue, 13 Dec 2016 12:00:48 -0500 Subject: [PATCH 03/29] Migrate scheduler to be run by fedmsg-hub --- Vagrantfile | 3 +- docker-compose.yml | 2 +- fedmsg.d/mbs-scheduler.py | 4 + module_build_service/builder.py | 4 +- module_build_service/manage.py | 8 +- module_build_service/messaging.py | 45 +-- module_build_service/scheduler/__init__.py | 3 + module_build_service/scheduler/consumer.py | 162 ++++++++++ module_build_service/scheduler/main.py | 357 --------------------- module_build_service/scheduler/producer.py | 160 +++++++++ module_build_service/utils.py | 8 + module_build_service_daemon.py | 30 -- setup.py | 7 +- 13 files changed, 352 insertions(+), 441 deletions(-) create mode 100644 fedmsg.d/mbs-scheduler.py create mode 100644 module_build_service/scheduler/consumer.py delete mode 100644 module_build_service/scheduler/main.py create mode 100644 module_build_service/scheduler/producer.py delete mode 100755 module_build_service_daemon.py diff --git a/Vagrantfile b/Vagrantfile index 21732364..769d5da5 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -6,6 +6,7 @@ $script = <