1
0
mirror of https://github.com/projectatomic/atomic.git synced 2026-02-05 18:45:01 +01:00
Commit Graph

1689 Commits

Author SHA1 Message Date
Tomas Tomecek
d69f76580b depend on version 2 of docker-py
which is now available as 'docker' in PyPI and as a `python{2,3}-docker`
in Fedora.

Signed-off-by: Tomas Tomecek <ttomecek@redhat.com>

Closes: #902
Approved by: rhatdan
2018-02-12 20:19:08 +00:00
Giuseppe Scrivano
1d9df1cc1c rpm: install from local cache only
do not update the cache when installing a local rpm.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1183
Approved by: TomasTomecek
2018-02-12 19:59:18 +00:00
Giuseppe Scrivano
8c7648283c rpmwriter: specify RPMTAG_SOURCERPM
latest dnf failed the installation with:

"Error: Will not install a source rpm package"

Specify an empty source rpm tag so that the rpm is not considered a
source rpm.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1183
Approved by: TomasTomecek
2018-02-12 19:59:18 +00:00
Jonathan Lebon
6861975111 ci: use centos/7/atomic/smoketested
The `/alpha` image has been deprecated a while ago and now no longer
exists. Use the `/smoketested` image instead. For more information, see:

https://github.com/projectatomic/papr/blob/master/docs/DISTROS.md

Closes: #1184
Approved by: miabbott
2018-02-12 16:49:00 +00:00
Giuseppe Scrivano
ffadf3a5e7 rpm_host_install: fix TypeError with SELinux bindings
It solves a TypeError exception:

Traceback (most recent call last):
  File "/bin/atomic", line 185, in <module>
    sys.exit(_func())
  File "/usr/lib/python2.7/site-packages/Atomic/install.py", line 134, in install
    return be.install(self.image, self.name)
  File "/usr/lib/python2.7/site-packages/Atomic/backends/_ostree.py", line 128, in install
    return self.syscontainers.install(image, name)
  File "/usr/lib/python2.7/site-packages/Atomic/syscontainers.py", line 563, in install
    return_value = self._install(image, name)
  File "/usr/lib/python2.7/site-packages/Atomic/syscontainers.py", line 686, in _install
    self._checkout_wrapper(repo, name, image, 0, SystemContainers.CHECKOUT_MODE_INSTALL, values=values, remote=self.args.remote, system_package=self.args.system_package)
  File "/usr/lib/python2.7/site-packages/Atomic/syscontainers.py", line 797, in _checkout_wrapper
    return self._checkout(repo, options)
  File "/usr/lib/python2.7/site-packages/Atomic/syscontainers.py", line 813, in _checkout
    return self._do_checkout(repo, options)
  File "/usr/lib/python2.7/site-packages/Atomic/syscontainers.py", line 1126, in _do_checkout
    rpm_install_content = self._handle_system_package_files(options, manifest, exports)
  File "/usr/lib/python2.7/site-packages/Atomic/syscontainers.py", line 469, in _handle_system_package_files
    new_installed_files_checksum = RPMHostInstall.rm_add_files_to_host(options["installed_files_checksum"], exports, options["prefix"] or "/", files_template=installed_files_template, values=options["values"], rename_files=rename_files, use_links=use_links)
  File "/usr/lib/python2.7/site-packages/Atomic/rpm_host_install.py", line 155, in rm_add_files_to_host
    created = RPMHostInstall._copyfile(selinux_hnd, src_file, dest_path, try_hardlink=try_hardlink)
  File "/usr/lib/python2.7/site-packages/Atomic/rpm_host_install.py", line 24, in _copyfile
    ctx = selinux.selabel_lookup_raw(selinux_hnd, dest, mode)
TypeError: in method 'selabel_lookup_raw', argument 3 of type 'char const *'

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1542144

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1175
Approved by: peterbaouoft
2018-02-05 20:16:54 +00:00
Brent Baude
1170769006 Merge pull request #1172 from baude/1.21
Bump to V1.21.1
2018-02-01 13:09:46 -06:00
baude
3c0457427c Bump to V1.21.1
Signed-off-by: baude <bbaude@redhat.com>
2018-02-01 13:08:46 -06:00
Brent Baude
e983379253 Merge pull request #1170 from giuseppe/atomic-read-labels-fromv1Compatibility-block
syscontainers: read labels from v1Compatibility
2018-02-01 13:03:45 -06:00
Giuseppe Scrivano
ef871e7147 util: change RUNC and BWRAP_OCI env variable
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1171
Approved by: baude
2018-02-01 18:15:15 +00:00
Giuseppe Scrivano
7378da5ac4 util: look for runc under /usr/bin
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1171
Approved by: baude
2018-02-01 18:15:15 +00:00
Giuseppe Scrivano
f4cacde67f docs: add missing dependencies on Debian
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1171
Approved by: baude
2018-02-01 18:15:15 +00:00
Giuseppe Scrivano
38a2e54bd6 util: do not expect Registries in Docker info
upstream Docker has no support for additional registries, if that is
the case hardcode to ['docker.io'].

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1171
Approved by: baude
2018-02-01 18:15:15 +00:00
Giuseppe Scrivano
79a8f90d34 install: --system-package is supported also by Docker
so it should not depend on ostree being present.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1171
Approved by: baude
2018-02-01 18:15:15 +00:00
Giuseppe Scrivano
12edeebb0e syscontainers: read labels from v1Compatibility
Images coming from registry.access.redhat.com through "skopeo copy"
have this information in the "v1Compatibility" block.  Use this
information so we can correctly catch "atomic.run".

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2018-02-01 17:36:34 +01:00
Alex Jia
772b8c9dc7 Atomic.util: delete extra comma in the skopeo_delete()
Signed-off-by: Alex Jia <ajia@redhat.com>

Closes: #1168
Approved by: giuseppe
2018-02-01 13:26:04 +00:00
Alex Jia
9f87c4ad58 Atomic.run: fix help doc
Signed-off-by: Alex Jia <ajia@redhat.com>

Closes: #1169
Approved by: giuseppe
2018-02-01 13:08:35 +00:00
Giuseppe Scrivano
f1d36a2126 syscontainers: allow the container name to end in .[01]
We skipped file names just based on their ending without checking if
it is a symlink.  This prevented container with a name ending in .0 or
.1 to be uninstalled.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1166
Approved by: peterbaouoft
2018-02-01 09:46:58 +00:00
Ruixin Bao
6e55cc8e6b unit: add unit test for rpm_host_install
A unit test for rm_add_files_to_host is added. The basic/expected
functionality of that function is tested by the new test

Other functions in rpm_host_install are mostly covered
by the integration test already, and thus not tested here

Closes: #1155
Approved by: giuseppe
2018-01-31 14:45:14 +00:00
Ruixin Bao
deb87057c5 unit: add unit test for refactored 'system_package' function
A 'high-level' unit test is added that covers basic functionality
check for refactored function '_handle_system_package_files'.

Closes: #1155
Approved by: giuseppe
2018-01-31 14:45:14 +00:00
Ruixin Bao
a707343a7a syscontainers: refactor syscontainer manifest dup
Since most of the local variables rooted from manifest are removed,
now it is safe to refactor the manifest duplication into a function.

There are two places that uses the similar style of reading manifest
and thus duplication is removed once the refactoring is done.

Closes: #1155
Approved by: giuseppe
2018-01-31 14:45:14 +00:00
Ruixin Bao
dfb54df58c syscontainer/unit: refactor writing info into a function
This commit refactors the writing info part from 'do_checkout'
into a function.

Also, because of the above action, two of the local variables
'installed_files_template' and 'rename_files' are also removed

Other than those, an extra error case was added to the except list.

A unit test is added for future regression

Closes: #1155
Approved by: giuseppe
2018-01-31 14:45:14 +00:00
Ruixin Bao
bfe1737897 syscontainer: refactor system_package related handle
Refactor the code section for handling system_package
into a function.

Another worthy point to note is that now the old local
variables from the previous code section is refactored into
a dictionary to reduce the number of local variables and coupling
among other parts in '_do_checkout'

Closes: #1155
Approved by: giuseppe
2018-01-31 14:45:14 +00:00
Ruixin Bao
c25101e7db syscontainers/unit: refactor rename files part
This commit refactors the "rename file value substitution" code
section in '_do_checkout' function

There should not be any functional impact with this commit

A unit test is added for future regression

Closes: #1155
Approved by: giuseppe
2018-01-31 14:45:14 +00:00
Ruixin Bao
676ad7cb5f syscontainer: refactor tmpfile cleanup and manifest
This commit contains small refactoring of getting manifest
attributes and refactoring of the "tempfile cleaning during
upgrade" code section in '_do_checkout'

Also, 'has_container_service' local variable is genereated in the
function instead of being passed in as a parameter. This is done
because in the future refactoring we might want to elminate the
usage of local variables related to manifest completly.

A unit test is added to verify getting manifest attribute works
as expected

Closes: #1155
Approved by: giuseppe
2018-01-31 14:45:14 +00:00
Giuseppe Scrivano
b800b1ee50 install: do not fail when ostree is not installed
Solves this exception:

'Namespace' object has no attribute 'system'
Traceback (most recent call last):
File "/usr/bin/atomic", line 185, in <module> sys.exit(_func())
File "/usr/local/lib/python2.7/dist-packages/Atomic/install.py", line
110, in install str_backend = 'ostree' if self.args.system else
self.args.storage or storage AttributeError: 'Namespace' object has no
attribute 'system'

Closes: https://github.com/projectatomic/atomic/issues/1165

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1167
Approved by: baude
2018-01-30 17:48:28 +00:00
Giuseppe Scrivano
5fcc8051db tests, syscontainers: add tests for useLinks
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1163
Approved by: peterbaouoft
2018-01-25 14:33:37 +00:00
Giuseppe Scrivano
b68436a19f syscontainers: allow way to override use-links
we use hard links now by default when copying files to /usr, allow a
way to override this behavior through the manifest file.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1163
Approved by: peterbaouoft
2018-01-25 14:33:37 +00:00
Giuseppe Scrivano
6c122f5a8b rpm_host_install: use hard links for files copied under /usr
Assume files under /usr are not going to be overwritten so create an
hard link instead of copying these files from the container
/exports/hostfs checkout directory.

Depends on: https://github.com/containers/image/pull/401

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1163
Approved by: peterbaouoft
2018-01-25 14:33:37 +00:00
Giuseppe Scrivano
993edca4c6 rpm_host_install: _copyfile supports copy by hard links
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1163
Approved by: peterbaouoft
2018-01-25 14:33:37 +00:00
Ruixin Bao
c41a3c55b2 syscontainers: refactoring duplicated write config function
This commit contains refactoring for write config in '_do_checkout' function,
this refactoring also removes the duplication of writing config in 'run_once'

There should not be functional impact with this commit.

A unit test is added for future regression

Closes: #1160
Approved by: giuseppe
2018-01-17 09:21:09 +00:00
Ruixin Bao
5dda2f7c29 syscontainer: fix for previous refactoring
This is regression from https://github.com/projectatomic/atomic/pull/1164

The values local variable should instead be options["values"]

Closes: #1160
Approved by: giuseppe
2018-01-17 09:21:09 +00:00
Ruixin Bao
0b1222c4be syscontainer: remove unused function
This commit is regression from 0902503ea7

This unused function was removed, and no functional impact should be introduced

Closes: #1160
Approved by: giuseppe
2018-01-17 09:21:09 +00:00
Ruixin Bao
cd6822c1c9 syscontainer: refactor parameter list
According to discussion, the '_checkout' function is now being replaced
temporarily with '_checkout_wrapper'. Now, the parameters other than
repo is being packed into a dictionary and the parameter list for
'_do_checkout' and '_checkout' is greatly shortened

This commit also contains a small  "if fix", by refactoring the same
if statements into one.

This commit enables further refactoring on '_do_checkout' and should
not introduce any functional change. With the help with other future
refactoring that builds on top of this commit, '_do_checkout' function
should look nicer in the future =).

Closes: #1164
Approved by: giuseppe
2018-01-16 18:24:08 +00:00
Tomas Tomecek
c7a9f51ccc mount: re-raising hides real cause of an exc
which makes it impossible to figure out what went wrong

Signed-off-by: Tomas Tomecek <ttomecek@redhat.com>

Closes: #1156
Approved by: rhatdan
2018-01-10 19:12:47 +00:00
Tomas Tomecek
2baeb2586d mount: use findmnt -n to get device type
Signed-off-by: Tomas Tomecek <ttomecek@redhat.com>

Closes: #1156
Approved by: rhatdan
2018-01-10 19:12:47 +00:00
Tomas Tomecek
7179eab364 add support for mounting overlay objects live
using bind-mount

Fixes #1153

Signed-off-by: Tomas Tomecek <ttomecek@redhat.com>

Closes: #1156
Approved by: rhatdan
2018-01-10 19:12:47 +00:00
Giuseppe Scrivano
a242c42871 validate: add option --all
it will validate all the images in a storage.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1150
Approved by: rhatdan
2018-01-05 09:35:43 +00:00
Giuseppe Scrivano
9d358c72c9 verify: validate images again
The image validation was not done anymore, use the backend specific
code for doing it.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1150
Approved by: rhatdan
2018-01-05 09:35:43 +00:00
Giuseppe Scrivano
36fad306ea syscontainers: validate uses _get_ostree_image_branch to resolve the img name
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1150
Approved by: rhatdan
2018-01-05 09:35:43 +00:00
Giuseppe Scrivano
6492cba2ee syscontainers: read labels from the config file
If the labels are not found in the manifest file, then look them up in
the config layer.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1150
Approved by: rhatdan
2018-01-05 09:35:43 +00:00
Giuseppe Scrivano
e3bde4c094 docker: implement validate_layer
use the implementation of validate_image_manifest and
adapt it to be used in place of validate_layer.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1150
Approved by: rhatdan
2018-01-05 09:35:43 +00:00
Giuseppe Scrivano
0fbd768d50 verify: move Docker specific code to backends/_docker.py
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1150
Approved by: rhatdan
2018-01-05 09:35:43 +00:00
Giuseppe Scrivano
dff5080bfa validate: drop dead code
It is not used anymore since the backend abstration supports ostree.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1150
Approved by: rhatdan
2018-01-05 09:35:43 +00:00
Giuseppe Scrivano
9218fe0516 containers, update: add --all option
If specified, tries to update all the installed containers.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1136
Approved by: baude
2018-01-04 15:46:33 +00:00
Giuseppe Scrivano
a7a67c9d57 images, update: add --all option
If specified, pull the latest version for all the images in a
storage.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1136
Approved by: baude
2018-01-04 15:46:33 +00:00
Giuseppe Scrivano
7b98212218 syscontainers: make sure _resolve_image drop img prefixes
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1136
Approved by: baude
2018-01-04 15:46:33 +00:00
Giuseppe Scrivano
140e486898 syscontainers: get_containers() includes the default tag
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1136
Approved by: baude
2018-01-04 15:46:33 +00:00
Giuseppe Scrivano
71fe6e6b58 syscontainers: support controlled upgrades
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1136
Approved by: baude
2018-01-04 15:46:33 +00:00
Giuseppe Scrivano
7b7fc9f612 syscontainers: change upgrade boolean to enum
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1136
Approved by: baude
2018-01-04 15:46:33 +00:00
Ruixin Bao
78340b47c7 syscontainers: refactor handling rootfs into a function
In _do_checkout, we refactor the part for getting rootfs location
into a function.

A todo comment( refactoring 'missing image layer check') is also added
in this commit based on discussions on irc

A unit test is added for future regression

Closes: #1154
Approved by: giuseppe
2018-01-04 15:35:16 +00:00