Commit Graph

30 Commits

Author SHA1 Message Date
Alexandru Avadanii ce756a309a deb_driver: logger: Fix formatting typo
No functional impact, just fix a recurring traceback when verbose:
"TypeError: %d format: a number is required, not str"

Change-Id: I4a88e7eba81b4a470bd6a442762336d4110ea548
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2017-01-14 00:02:11 +01:00
Jenkins 485618fd5f Merge "AArch64 support: api, cli, controllers, drivers" 2016-12-13 15:33:57 +00:00
Alexandru Avadanii 874d9bd900 deb_driver: Translate repository.architecture
When generating repository metadata, the Release file gets the
architecture list in an untranslated format, ending up with
'x86_64' instead of 'amd64'.

Closes-bug: 1638628

Change-Id: I8471db6d54157175ff275c969ed5195d4616fa0f
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2016-11-02 20:07:06 +01:00
Alexandru Avadanii fd5b8c0359 AArch64 support: api, cli, controllers, drivers
Enable new architecture 'aarch64' ('arm64' on Ubuntu).
Tested with DEB driver.

Closes-bug: 1638635

Change-Id: I9761322020837186c109c18e849128791ab909d8
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2016-11-02 18:13:42 +01:00
Bulat Gaifullin cae6df70bf Added packaging driver to build RPM by using mock
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
2016-07-05 16:49:06 +03:00
Jenkins 86aec07ca7 Merge "Fix createrepo workers racing" 2016-06-30 10:12:25 +00:00
Bulat Gaifullin 406bdaa7e2 Introduced packaging API
This change introduces API for building packages.
The commit includes Controller object and interface for PackagingDriver.

Change-Id: I1ce0f746c1cbc5cf8ff29d08d09175acb5d79586
2016-06-22 13:09:23 +03:00
Sergey Kulanov e1f7a5975a [priority] Merge repos with the same priority
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
2016-06-14 13:42:34 +03:00
Sergey Kulanov 54e5912a88 Fix rpm package equality issue
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
2016-06-06 15:15:05 +03:00
Sergey Kulanov 07079a0b55 [RPM] Use yum library for packages comparison
Closes-bug: #1587032

Change-Id: I8c857edb839a441b71864d915ef4a814463ed81b
2016-06-01 15:18:08 +03:00
Bulat Gaifullin d661055322 Introduced new scheme to declare requirements
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
2016-05-19 15:26:16 +03:00
Vladimir Kozhukalov c193aa6c60 Fix createrepo workers racing
Sometimes packetary hangs forever when spawning
mutiple createrepo workers. This patch sets
number of workers to 1.

Change-Id: Ica52245b20343428e663e9397ffa8b52d6f46ffc
Closes-Bug: #1552138
2016-04-15 20:13:29 +03:00
Bulat Gaifullin 161b80907c RPM dirver: Extended provides with list of primary files
Change-Id: I7795bf1259d16ed69d83fe79cbf958624e11d51d
Closes-Bug: 1552148
2016-03-02 13:44:17 +03:00
Bulat Gaifullin ee7193c277 Made release argment of PackageVersion optional
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
2016-03-01 16:42:05 +03:00
Jenkins d84ae63612 Merge "Fixed retrieve groups.xml on merge repositories" 2016-03-01 13:30:38 +00:00
Bulat Gaifullin d644789905 Fixed retrieve groups.xml on merge repositories
Also add package name when warn about unresolved

Closes-Bug: 1551614
Change-Id: I9545b5c419f03fd9095a6a0abb5d5f21fb3a1ac0
2016-03-01 15:51:08 +03:00
Jenkins 06645584de Merge "Copied groups index upon fork of repository" 2016-02-25 08:47:37 +00:00
Bulat Gaifullin f27bed00a5 Copied groups index upon fork of repository
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
2016-02-24 22:12:17 +03:00
Jenkins 0188265c39 Merge "Fixed building destination path on forking repository" 2016-02-20 13:47:40 +00:00
Bulat Gaifullin c0f04443b5 Fixed building destination path on forking repository
Also fixed handling 'path' argument for centos repositories

Change-Id: I3292e64d47e0ea58a44d3ce625649d4bb934f3c6
Closes-Bug: 1547820
2016-02-20 13:20:14 +03:00
Vladimir Kozhukalov 1238b33ebd Add package filtering feature
Change-Id: Ia8bf716e9902d250c9fb26bbad325fbe2a204b54
2016-02-20 07:00:52 +03:00
Bulat Gaifullin 9e107cde9a Implemented input data validation
Change-Id: I8407cf4cbb69e60b7def891625522f3ca3c822fe
Implements:  blueprint unify-input-data
2016-02-05 17:07:48 +03:00
Bulat Gaifullin d99d1228ef Ignore 404 error on dowloading release file
Some debian repositories does not contain Release file.

Change-Id: Iad69241856e62b74cdee3a68481957ef38c3ab59
Closes-Bug: #1539703
2016-02-02 10:33:54 +03:00
Bulat Gaifullin aff85a919e Introduced API to build DEB and RPM repository
Change-Id: I7abc2705f66228e81b36febe146d06988efb7b00
Implements: blueprint build-repository
2016-01-28 18:22:39 +00:00
Bulat Gaifullin 1ce69b4fef Unify input data format
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
2016-01-28 17:27:15 +00:00
Bulat Gaifullin 15cbcf5e0a Update file-headers 2015-12-29 12:08:39 +03:00
Bulat Gaifullin d0b144b0b2 Introduced fuel-mirror
Avaliable commands:
- create - Creates a new local mirrors.
  fuel-mirror create --input ubuntu.yaml

- apply - Applies local mirrors for Fuel-environments.
  fuel-mirror apply --input centos.yaml -e "ENV1"

Change-Id: I6cbf4e581a93b47cf75fb3c89aa1020a352784c8
Closes-Bug: #1487077
Implements: blueprint refactor-local-mirror-scripts
2015-11-26 16:35:47 +03:00
Bulat Gaifullin 994fed9b1e [packetary] Introduce driver for rpm-repository
Change-Id: Ib9b9208964dba25d585fb9345a6ef95e7782a9ff
Implements: blueprint refactor-local-mirror-scripts
Partial-Bug: #1487077
2015-11-19 16:32:31 +03:00
Bulat Gaifullin aa570b1f98 [packetary] Introduce driver for debian-repository
Change-Id: Icb8f6964bd0a9080ace50b4786ac76ae5dbb9976
Implements: blueprint refactor-local-mirror-scripts
Partial-Bug: #1487077
2015-11-16 15:00:55 +03:00
Bulat Gaifullin 671af8e611 [packetary] Repository class
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
2015-11-09 16:22:18 +03:00