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

1680 Commits

Author SHA1 Message Date
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
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
Ruixin Bao
340a172108 syscontainer: make '_get_remote_location' into static method
This is regression from https://github.com/projectatomic/atomic/pull/1152.

It appears that 'self' is no longer used when '_resolve_remote_path' is moved into
'_get_remote_location'. Thus, '_get_remote_location' is made to be static

Closes: #1154
Approved by: giuseppe
2018-01-04 15:35:16 +00:00
Ruixin Bao
be415ea600 syscontainers: move rewrite remote rootfs into a function
In this commit, we move the code section related to rewriting remote rootfs
from '_do_checkout' into a function '_rewrite_rootfs'.

Similar to the other refactoring commits, this commit has no functional
impact to the user.

Closes: #1152
Approved by: giuseppe
2018-01-03 12:36:16 +00:00
Ruixin Bao
cf0a18c392 syscontainer: move '_resolve_remote_path' into refactored function
Since we started refactoring for handling remote part in 'do_checkout',
we can also move the '_resolve_remote_path' into the refactored remote
function.

Closes: #1152
Approved by: giuseppe
2018-01-03 12:36:16 +00:00
Ruixin Bao
64cc86e7ca syscontainer/unit: add test to test remote refactoring
Made a new class to track all the refactored functions' unit tests
(for future usage)

Added a unit test to test the functionality of the factored out
_get_remote_location function.

Closes: #1152
Approved by: giuseppe
2018-01-03 12:36:16 +00:00
Ruixin Bao
a551ba0648 syscontainers: refactor part of remote logic into a function
The code logic for getting remote path was "refactored" into a new
function to shorten the length of 'do_checkout' method.

Remote_rootfs is discarded as it appears that when 'remote_path' is
specified, the rootfs location will represent the remote_rootfs location

There shouldn't be any functional impact from this commit

Closes: #1152
Approved by: giuseppe
2018-01-03 12:36:16 +00:00
Ruixin Bao
e9ea013f57 syscontainers: refactor duplicated info reading
Removal of duplicated code sections for reading info fields from multiple functions.

Closes: #1151
Approved by: giuseppe
2017-12-22 23:24:16 +00:00
Giuseppe Scrivano
3241b63f67 tests: check copied files have the correct SELinux label
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1143
Approved by: rhatdan
2017-12-18 16:31:48 +00:00
Giuseppe Scrivano
e8814e64f0 syscontainers: set selinux label for files copied to the host
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1143
Approved by: rhatdan
2017-12-18 16:31:48 +00:00
Giuseppe Scrivano
7a14e05ac4 syscontainers: let the runtime fail if exec is not supported
This check was added for bwrap-oci, but other runtimes might
support it, so no need to fail early here.

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

Closes: #1141
Approved by: baude
2017-12-15 14:35:27 +00:00