Update requirements with filter option:
"mandatory": {
"enum": ["exact", "newest"]
}
1) [RPM] We need to search the newest mandatory packages in all
forest but not from the exact tree, also repo priority should
be take into account
2) Add priority to gen_repository in tests, since this is
mandatory parameter
3) [Tests] Add package10 with different version to check mandatory
values:
- None
- "exact"
- "newest"
match for mandatory packages
Change-Id: I36a1463b495075bf6c44a46b557c3ac524de0220
Closes-bug: #1585103
Option 'cache_dir' uses to specify directory where
will be downloaded remote files
The packaging controller allows to use files which
are available via HTTP as source or spec file
Each driver has its own section in input data,
this allows to use same input data for several drivers.
Change-Id: I1fb3b08fe305c3413e5aa4a9213762208a2479da
Usage of command:
packetary build -t "the name of driver" \
-i "the path of file with input data" \
-o "the path to output directory" \
[-C "the config for driver"]
Change-Id: I71df1b8a36342a9ea238d5b6ebb686e5bce71007
This change introduces API for building packages.
The commit includes Controller object and interface for PackagingDriver.
Change-Id: I1ce0f746c1cbc5cf8ff29d08d09175acb5d79586
Override method 'redirect_request' for patching
new request, that has been created on handling
http redirect.
Closes-Bug: 1592464
Change-Id: Id32bc46cce2c0eabb91f645d01378b6da3128469
1) We need to merge trees with the same priority in order
to catch case when we have package with different versions in
repos with the same priority, eg:
repo2, priority=10, package=foo-5.3
repo1, priority=5, package=asd-1.2
repo3, priority=10, package=foo-7.1
--> sort(key=priority) can result:
repo1, priority=5, package=asd-1.2
repo2, priority=10, package=foo-5.3
repo3, priority=10, package=foo-7.1
so we will return: foo-5.3 instead we must return foo-7.1
2) priority must be a mandatory parameter for Repository
3) Align rpm default priority _DEFAULT_PRIORITY: N, where
N is an integer from 1 to 99. The default priority for
repositories is 99. The repositories with the lowest
numerical priority number have the highest priority.
Closes-bug: #1590525
Change-Id: I8299b1502775cc68bd1c783487ce7dc802a31a05
If package depends on exact equality of =name+version
we also need to search candidates in release section:
=name+version+(>=release)
eg:
name: foo-1.1-3
Requires: bar == 5.5
then the below package must meet the requiremets:
name: bar-5.5-56.el7
To make this true we need:
* always search for candidates in package.name and package.provides,
package.obsoletes, [check PackagesTree.find_all()]
* make an assumption that foo-1.1 and foo-1.1-33 has intersection,
[check RpmPackageVersion.cmp()]
Tests:
======
gen_package() in stubs.generator must always generate Provides
section, which is always: name=version, eg:
1) Name: my-python-requests
Version: 2.10.0
Release: 1.el7~mos1
will result PROVIDES:
my-python-requests = 2.10.0-1.el7~mos1
2) Name: my-python-urllib3
Version: 1.15.1
Release: 7777
Provides: test
will result PROVIDES:
test
my-python-urllib3 = 1.15.1-7777
Change-Id: Ib26918b2e1d98733fbd49f1fc05403ca5665e3fe
Closes-Bug: #1588399
the requirements can contain the following sections:
packages - the list of packages that are needed
repositories - the list of repositories, packages from that are needed
mandatory - boolean flag that uses to automatically copy mandatory packages
Change-Id: Ic26f991c0bf1e9819005cd4bbe7ed40228b2ce1b
The reletion may ommit the release component of version,
that means any release
Aslo the strignify for PackageVersion was changed,
now ':' is used to separate epoch
Change-Id: I8d74c9cc82720103a5b6d9189f85276bda4ec082
Also keep original group index durring rebuild repository index.
Build only meta-files without package information durring create and fork
repository
Change-Id: I613ce2084750f02035a13c301aa5812e08a90482
Closes-Bug: 1549413
Also make versions as optional field in packages_schema.
Fixed ValidationError formatting when path contains int indexes.
Closes-Bug: 1543503
Change-Id: Idf070b4431bdac2c49340e9e09902a5b39d2a548
The code does not properly handle situation when server returns http error.
Also added option 'retries_delay' to specify timeout between retries
Change-Id: I2908f5d774d6d388085e48a965e5888773578530
Closes-Bug: #1539025
The input data is described in YAML or JSON format
Also implemented support of priorities for repositories
Change-Id: I02f11714ba8880dd06c3ceeadf230c1d812ff0be
Implements: blueprint unify-input-data
class Repository composes from:
* RepositryDriver - low-level support for physical repository. deb, yum, etc.
* RepositoryController - infrastcuture method to communicate with driver
* RepositoryApi - high-level class, that provides methods to work with repository
Change-Id: Iaf868fca982d91089e369d13a6fb381ff879ea73
Implements: blueprint refactor-local-mirror-scripts
Partial-Bug: #1487077
* Added retry for 404 (HTTP Status).
* Added method for downloading the file to the ConnectionManager.
* AsynchronousSection collects all exceptions with traceback and
log it after all tasks has been completed.
* generator.gen_relation returns object instead of list
* GzipDecompress: fixed case when there is not enough data to decompress next chunk
Change-Id: Ie2014aeee0c4776ed411ef6f28a996ef2d029c95
the project structure was created by cookiecutter.
Implements: blueprint refactor-local-mirror-scripts
Partial-Bug: #1487077
Change-Id: Ib33955ba1d4013bc1491a503610885367924b0e9