Commit Graph

96 Commits

Author SHA1 Message Date
Qixiang Wan
d83e6897ca Change ModuleBuild.context to db column
1. Changed ModuleBuild's context property to db column, it's
non-nullable and default value is '00000000' to keep it consistent
with previous behaviour.

2. Changed ModuleBuild.contexts_from_mmd to return a tuple of
(ref_build_context, build_context, runtime_context, context).

3. Updated tests affected by this change.
2018-04-28 11:46:31 +08:00
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
8d1d439737 Generate 'context' from hash based on buildrequires/requires stream. Reuse components only from module with the same stream_build_context. 2018-04-24 15:45:26 +02:00
Jan Kaluza
9b6fd2ba39 Split utils.py to multiple files based on the methods use-case. 2018-04-03 09:58:57 -04:00
Jan Kaluza
6fc8c646de Add 'mbs-manager import_module'. 2018-04-03 09:58:57 -04:00
Jan Kaluza
e5e9a24fce Allow adding bool to XMD. Fix flake8 issues. 2018-04-03 09:58:57 -04:00
mprahl
eb0b2e1c38 Add the database resolver plugin 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
f5530d9b16 Fix flake8 errors made by jkaluza 2018-02-09 09:12:00 -05:00
Jan Kaluza
6a5d7267fd Save another 20s in tests. 2018-02-09 11:46:12 +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
e91d09f7ca Change the format of the unit tests to pytest 2018-01-31 16:34:21 -05:00
Filip Valder
5b4a8f6240 New: Resolver API for pluggable resolvers 2018-01-29 15:54:19 +01:00
Ralph Bean
01c8295269 Add an incrementing prefix to the dist_hash.
For #823.
2018-01-17 16:54:02 -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
6925187f9f Improve the stale builds poller handler test 2017-12-11 13:27:30 -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
Ralph Bean
318117c0c5 Make our builders into setuptools plugins. 2017-11-13 11:16:13 -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
mprahl
b0eada3e33 Fix KojiContentGenerator from a bug in PR 771 2017-11-10 08:33:53 -05:00
mprahl
a8421568f9 Fix Flake8 errors 2017-11-08 08:45:58 -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
45cce653eb Add the ability to specify different rebuild methods 2017-11-01 15:39:43 -04: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
f5de140521 Schedule components based on build time 2017-10-23 15:33:57 -04:00
mprahl
8e41f9f335 Try to reuse all components in the batch before starting it 2017-10-23 15:33:57 -04:00
Igor Gnatenko
1e6708b34f MockedSCM -> FakeSCM
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2017-10-18 17:37:13 +02:00
mprahl
62d438651a Fix tests 2017-10-16 15:09:42 -04: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
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
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
2a3aea9c97 add tests for MBSConsumer 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
dfdd924bbf Always regen repository when starting module build to not wait on kojira. 2017-08-18 09:39:07 +02:00
Jan Kaluza
4bbb0cc416 Create module-build-macros component just once - do not duplicate it for each resubmition of a module. 2017-08-08 06:52:28 +02:00
Filip Valder
7ef2975984 PEP8 fixes 2017-07-17 18:29:10 +02:00
Jan Kaluza
1621c1e4fd Create app_context before database session. 2017-07-11 09:41:55 +02:00
Stanislav Ochotnicky
40074b088e Fix test for logging change
Change of configuration to enable logging by default caused the test to
fail because mocked object had no id. This change fixes the test and
sets up cleanup for logs
2017-07-04 08:51:53 +02:00
Jan Kaluza
f27b0ddb81 Regenerate the repo when module-build-macros is reused to ensure it is in the buildroot. 2017-05-24 14:26:08 +02:00
Jan Kaluza
22758419c0 Delete build target after config.koji_target_delete_time seconds. 2017-05-11 14:43:05 +02:00
Jan Kaluža
85554e519a Merge #520 Do not build module-build-macros when all the components will be reused from previous module build. 2017-05-02 10:12:50 +00:00
Jan Kaluza
024877592c Do not build module-build-macros when all the components will be reused from previous module build. 2017-05-02 12:09:23 +02:00
Nils Philippsen
ec2be36d6e pep8: don't surround '=' with spaces for keyword args 2017-04-21 12:54:06 +02:00