Jan Kaluza
f2a236bc74
Pass buildrequired modules built against all compatible base module streams to MMDResolver.
...
Imagine we have "platform:f29.0.0" and "platform:f29.1.0" base modules.
We also have "DBI" module we want to build agaisnt "platform:f29.1.0".
This "DBI" module depends on "perl" module which is only build against
"platform:f29.0.0".
Currently, DBI build would fail to resolve the dependencies, because
it wouldn't find "perl" module, because it is built against different
platform stream.
This PR changes the MSE code to include buildrequired module builds built
against all the compatible platform streams.
It does so by introducing following changes:
- MSE code uses new get_base_module_mmds() method to find out all the
compatible platform modules. This needed new methods in DBResolver
and MBSResolver.
- For each buildrequired module defined by name:stream, the MSE code then
finds particular NSVC built against each compatible platform module.
Side effect of these code changes is that every module now must buildrequire
some base module.
2018-10-26 14:02:36 +02:00
mprahl
599c881714
Add the ability to query by the base modules a module build buildrequires
...
Future use cases will require the ability to find compatible module builds
to buildrequire based on the base module the module used to build. This
commit adds an association table that will contain module build IDs
and the base module they buildrequire.
Addresses FACTORY-3353
2018-10-17 07:47:31 -04:00
mprahl
4f9fffff3b
Move some of the logic in get_prefixed_version to a ModuleBuild static method
...
The logic used to parse the stream version will need to be reused elsewhere
to support the filtering and ordering of a base module stream version.
2018-10-16 10:26:39 -04:00
Chenxiong Qi
cf4e5f47c0
Avoid repeating default context with literal text
...
Signed-off-by: Chenxiong Qi <cqi@redhat.com >
2018-09-13 10:08:17 +08:00
Jan Kaluza
78f94d117b
Cast 'version' in get_build_from_nsvc to str.
2018-08-22 09:45:00 +02:00
mprahl
f08135352a
Use the NVR instead of the component name when responding to a tag message
...
This addresses an issue when a module contains builds that have different
names in their NVR than the component name in MBS. This happens with
SCLs for instance. MBS wouldn't be able to find the component to mark
as tagged in the database since it was searching by the wrong name, so the
build would just stall. This uses the NVR now to find the correct build
in the database.
2018-08-07 11:54:28 -04:00
mprahl
3969b2fb1e
Expose the component batch in the API to help in future debugging
2018-08-07 10:33:56 -04:00
mprahl
8a54b26fd7
Expose the NVR of component builds in the API to help future debugging
2018-08-07 10:33:14 -04:00
mprahl
a78c564073
Revert "Store the component's build ID and use that to identify the build when acting on a tag message"
...
This reverts commit 9bd16beeef .
2018-08-07 10:32:50 -04:00
mprahl
9bd16beeef
Store the component's build ID and use that to identify the build when acting on a tag message
...
This resolves an issue where the component name is different than the
package being tagged due to a macro such as those used for SCLs.
2018-08-03 20:45:00 -04:00
mprahl
36a9026ca8
Remove references to COPR
2018-06-28 10:00:06 -04:00
Owen W. Taylor
19bf94f0ea
Load 'context' for local builds
...
'context' needed to be stored into the in-memory database and then
propagated for builds added to a MockModuleBuild with --add-local-build.
2018-05-30 15:47:14 -04:00
mprahl
574c3eae92
Query by the context directly
2018-05-21 13:33:39 -04:00
mprahl
b0728b1080
Make the published messages smaller
2018-05-10 11:49:02 -04:00
mprahl
00e46c205b
Show siblings and component_builds in the standard modules API
2018-05-10 11:48:00 -04:00
Ralph Bean
d0ae77c324
py3: Unicode strings must be encoded to bytes before hashing.
2018-05-08 14:17:36 -04:00
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
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
mprahl
19db295795
Fix flake8 errors
2018-04-03 09:58:57 -04:00
Jan Kaluza
bf873dbaea
Do not set app.config['SERVER_NAME'] if app_context exists.
2018-04-03 09:58:57 -04:00
mprahl
5b278211e6
Add API v2 which will return a list of modules on build submissions based on module stream expansion
2018-04-03 09:58:57 -04:00
mprahl
41814b42de
Add siblings to the extended JSON output of module builds
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
Jan Kaluza
2482e47c07
Fix issues from review. Drop xmd['mbs']['requires']. Do not allow building MSE builds against non-MSE builds.
2018-04-03 09:58:57 -04: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
Jan Kaluza
253d29bcef
Rewrite ModuleBuild methods to get all streams and all builds using the latest version, not build id.
2018-04-03 09:58:57 -04:00
Jan Kaluza
1bbe8d69f1
Add ModuleBuild methods for getting list of streams, last build in a name:stream and all builds in name:stream:version.
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
Yash Nanavati
ed25afd9ec
Code changes for Python 3 support
2018-03-04 03:22:38 -05:00
Jan Kaluza
4001d3c488
Use in-memory SQLite database in tests to make them 40% faster.
2018-02-08 08:01:24 +01:00
mprahl
f16bf5f5a5
Add a SQLAlchemy hook to modify "time_modified" on module build entries
2018-02-06 10:45:07 -05:00
mprahl
0f13164ac8
Use a set instead of a list when making sure the buildrequires match on a modulemd
2018-02-05 22:11:31 -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
Jan Kaluza
7de120c17b
Get the weight of Koji tasks and use it to sort the components in a batch instead of builds time.
2017-11-28 10:52:17 -05:00
mprahl
0e7dd2dad3
Add a "short" query parameter to show less detail on the "module-builds" API
2017-11-17 13:19:48 -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
9890277620
Make "state_url" optional in the "extended_json" function since creating an app context causes SQLAlchemy issues on the backend
2017-11-17 12:07:51 -05:00
mprahl
243e8873d5
Don't trigger init handler when importing a local build and mark the build as done after import
2017-11-10 08:33:53 -05:00
mprahl
3ccbb3dd57
Fix duplicate state traces
2017-11-08 10:18:47 -05:00
mprahl
18e7f608b1
Solidify how the previous module state is determined when resuming a failed module build
2017-11-06 16:54:10 -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
089a0c3db4
Fix typo
2017-11-02 08:37:59 -04:00
mprahl
45cce653eb
Add the ability to specify different rebuild methods
2017-11-01 15:39:43 -04:00
Martin Curlej
1eb3c653dd
Changed the filters so they execute when everything is build
...
Signed-off-by: Martin Curlej <mcurlej@redhat.com >
2017-10-31 16:04:31 -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
eedf0a1684
Default verbose to false but present a lot more information when verbose is false
2017-10-23 20:19:51 -04:00
mprahl
2de4b592d6
Set 'time_modified' at module creation
2017-10-16 14:45:04 -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
3b93dc7143
Restore the old message format.
...
The message format broke in 3cb41aa5dc
The resulted in tracebacks in pdc-updater when it tried to learn things
about a module that was just submitted. It relied on certain fields
(`stream`) being in the message body. This change restores those fields
to get things working again.
2017-09-15 23:34:57 +02: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