Commit Graph

195 Commits

Author SHA1 Message Date
Qixiang Wan
8b807a9fcd Generate koji tag from MBS and use informative name
koji now supports tags with max length of 256, we can use
more informative tag name instead of the hash one.

The new format of koji tag name is:

    module-<name>-<stream>-<version>-<context>

However when the generated tag's length > (256 - len('build')), we
fallback to the old way of name in hash format (module-<hash>).

In this change, koji tag is always generated from MBS itself, even
with pdc resolver.

FIXES: #918 #925
2018-04-26 22:04:16 +08:00
Jan Kaluza
31ddbe51a5 Add generate_expanded_mmds which returns list of MMDs which can be submitted as MSE builds and submit them. 2018-04-03 09:58:57 -04:00
mprahl
28e821fee0 Start querying modules by context when it's available
When implementing module stream expansion, we'll need to make sure
the buildrequires are queried using their context as well.
2018-04-03 09:58:57 -04:00
mprahl
f19f76872c Use the build object directly instead of its JSON in the modules handler 2018-04-03 09:58:57 -04:00
mprahl
d3f92bf5d3 Make the resolver functions less PDC specific 2018-04-03 09:58:57 -04:00
mprahl
f0852d9009 Port to libmodulemd and support v2 modulemd without module stream expansion 2018-04-03 09:58:57 -04:00
mprahl
654820ac31 Fix error that occurs when a batch hasn't started but a repo regen message is received
Fixes #864
2018-02-19 13:56:46 -05:00
Jan Kaluza
683056de0a Decrease time.sleep times in tests to save 60 seconds for test-suite run. 2018-02-08 09:03:32 +01:00
mprahl
575c2b8f05 Make the poller not resume paused module builds if there was recent activity on the build
This fixes an issue that occurs when someone submits a module build and most of its components
get reused and the poller just so happens to try to resume the build.
2018-02-06 10:45:07 -05:00
mprahl
8f024e6b04 Remove the dependency on vcrpy in unit tests and modernize some of the test data 2018-02-05 22:17:18 -05:00
mprahl
df594da8a5 Remove the Koji proxyuser functionality 2018-01-30 11:49:03 -05:00
Filip Valder
5b4a8f6240 New: Resolver API for pluggable resolvers 2018-01-29 15:54:19 +01:00
mprahl
667e946444 Reset the module-build-macros state when building it from a resumed module build 2018-01-23 09:41:59 -05:00
mprahl
3c07ea38e4 Cancel new repo tasks on module build failures 2018-01-22 14:39:30 -05:00
mprahl
7b7211e4ee Fix an error that occurs when a module build is resumed and module-build-macros was cancelled 2018-01-22 13:30:43 -05:00
mprahl
a67b53f5c3 Add a "context" field on component and module releases in Koji for uniqueness for when Module Stream Expansion is implemented 2018-01-16 10:36:09 -05:00
mprahl
a54045e518 Don't run KojiModuleBuilder.buildroot_connect in the stale module builds poller 2017-12-11 13:27:30 -05:00
mprahl
f478e69307 Clarify and add log statements when an orphaned module-build-macros is used 2017-12-08 16:07:32 -05:00
mprahl
1fa6cc6fc5 Clarify log statements and code when tagging when the batch is done 2017-12-08 16:06:18 -05:00
mprahl
aa4ca009ef Fix situations where module-build-macros builds in Koji but fails in MBS and the build is resumed 2017-12-08 15:50:55 -05:00
mprahl
30ef85af01 Fix "instant complete" builds and reusing all components 2017-11-27 16:20:28 -05:00
mprahl
02e11b9b39 Don't try to untag stale module builds that don't have any completed components 2017-11-20 10:38:56 -05:00
mprahl
ef5dc64f2b Transition stale failed builds to the "garbage" state and untag their components 2017-11-17 12:07:51 -05:00
mprahl
fa6f43e748 Fail module builds directly when a component build in a batch fails 2017-11-17 10:44:15 -05:00
Ralph Bean
8431d2698b Explicit imports of builders in the test suite. 2017-11-10 16:03:14 -05:00
mprahl
bb0dde9936 Only complete the module build when *all components are tagged* and a KojiRepoRegen message is received 2017-11-10 08:33:53 -05:00
Ralph Bean
f369182d72 Merge #771 Make the module build log name configurable 2017-11-08 16:12:14 +00:00
Jakub Kadlcik
f098e6e3b7 Make the module build log name configurable 2017-11-07 00:04:14 +01:00
mprahl
11e39ab0c3 Fix multiple transitions to the failed state 2017-11-06 16:46:57 -05:00
mprahl
d8f126e978 Allow resuming from a failure during the "init" phase
This also shifts build failure transitions from individual functions
in utils.py to the init module handler.
2017-11-06 14:15:12 -05:00
mprahl
c7e6fff1d8 Handle module builds without components 2017-10-31 14:47:26 -04:00
Jan Kaluža
a7ab1249da Merge #736 Do not get buildroot_groups everytime we create KojiModuleBuilder. 2017-10-26 19:20:08 +00:00
Jan Kaluza
b56f56a486 Use dogpile.cache to cache the default_buildroot_groups result 2017-10-26 14:03:23 +02:00
Jan Kaluza
8fedf35b6c Log the original exception in consumer before trying to do anything else. Also commit the db.session before doing build.transition 2017-10-26 13:26:43 +02:00
Martin Curlej
60b3d97c97 flake8 cleanup
Signed-off-by: Martin Curlej <mcurlej@redhat.com>

removed some noqa tags
2017-10-25 12:13:59 +02:00
mprahl
a9bf4e9727 Add a sleep in the init handler to protect against a race condition 2017-10-16 14:45:04 -04:00
mprahl
6e8d103a0c Remove unneeded build transition 2017-10-16 14:45:04 -04:00
Jakub Kadlcik
e6a23cfd64 Record components through the backend after module submission 2017-10-16 14:45:04 -04:00
Ralph Bean
7d9edc8f92 Merge #719 Scan for modules stuck in the wait state. 2017-09-29 20:20:42 +00:00
Ralph Bean
6150000d1e Scan for modules stuck in the wait state.
And fake a message to get them building again.

But only if they look to have been stuck for more than 10 minutes.
2017-09-29 14:13:58 -04:00
Ralph Bean
8e27fe16fe Raise a special exception for special messages.
Today, we ignore koji messages with a None `task_id` in two ways.  First
with a conditional, and then with a second check in the message
`__init__` method.  This is a belt-and-suspenders approach.

For other reasons in the UMB messaging plugin, we'd like to put this
check in just one place and use a special exception in the initializer
instead of in a conditional beforehand.
2017-09-29 13:07:06 -04:00
Ralph Bean
f2fb71ccdf Fix NameError.
Here, `task_id` was referenced before it was defined.

This fixes that error and adds a little more color to the log statement.
2017-09-26 14:44:18 -04:00
Jan Kaluza
ad6874b0e6 Fix #670 - Tag Content Generator Koji build to special tag based on the base module stream 2017-09-25 08:36:29 +02:00
Ralph Bean
4d393b9e73 Handle python3 queue rename. 2017-09-19 13:21:29 -04:00
Ralph Bean
5e08d2ffe4 Introduce pluggable backends.
This allows an operator to write a custom messaging backend to handle
whatever transport and format.
2017-09-19 13:13:40 -04:00
Mike Bonnet
1f077a12ea pass the entire message to get_abstracted_msg()
Other messaging backends may use different formats, so pass the
entire message through and let get_abstracted_msg() handle it.
2017-09-19 13:12:45 -04:00
Jan Kaluza
999baa2992 Wait for components to be tagged also in final tag before marking module as done. 2017-09-15 15:25:29 +02:00
Filip Valder
3cb41aa5dc Changes in MBS restful API:
- Refactor MBS API code
- Unify module-/component_build API philosophy/design/approach
- Naming fixes
- _utc_datetime_to_iso moved from ModuleBuildAPI and is now a module-level function.
- Existing v1 API remains unchanged. ComponentBuildAPI now supports individual component build listing + verbose mode.
- documented in README
- various component_build API tests added
2017-09-11 14:48:22 +02:00
Jan Kaluza
83628ec74f Add 'requires' of 'build-required' modules to buildroot when building module. 2017-09-08 09:25:44 +02:00
Jan Kaluza
dfdd924bbf Always regen repository when starting module build to not wait on kojira. 2017-08-18 09:39:07 +02:00