BZ #1422448 actually points out one regression and one
bug related to atomic stop. The BZ itself points out
a TypeError exception in the code when trying to glue
together a python list and str.
Then the atomic stop command was failling in the case where a
STOP label was defined and it uses the variable $NAME resulting
in a subprocess exception.
The self.name variable was not being set by set_args after
refactoring occured. Ideally, this should all be moved
into the image|container object handling but for now we
just handle it in set_args.
Also added a test in test_display to catch any future
regressions.
Closes: #899
Approved by: rhatdan
Refactor the uninstall class to use the backends, container and image
objects.
Add --display so one can run atomic uninstall --display <image>
and see what the outcome would be. This will be helpful in integration
testing and was discussed in BZ https://bugzilla.redhat.com/show_bug.cgi?id=1248038.
Add --storage option so users can dictate priority when uninstalling
an image. This also mimics the newest install class as well.
Closes: #888
Approved by: giuseppe
To have parity function with pull, we need to add --storage
to install and run. This allows for overriding when atomic.type
is defined. For example, if you pull an image that has
atomic.type=system but you really want to store it
on the docker backend.
Closes: #861
Approved by: baude
Refactor:
`atomic update`
`atomic update --container`
`atomic update --container --rollback`
To:
`atomic images update`
`atomic containers update`
`atomic containers rollback`
And update corresponding tests, docs and auto-complete. Much like
other image commands (info, verify), the base verb is hidden but
still available for use.
Move update functionality from atomic.py to update.py, and use
new backendutils to abstract.
Signed-off-by: Yu Qi Zhang <jerzhang@redhat.com>
Closes: #773
Approved by: rhatdan
This patch will allow user to specify the graphdriver on atomic reset
If /var/lib/docker or /var/lib/docker-latest is the only thing installed
it will reset the correct path. If both exists or the user as chosen
a different location, the --graph option must be specified.
Closes: #745
Approved by: rhatdan
Using our refactoring model, verify is now streamlined. We no longer
compare base images as that is not currently possible for both
V1 and V2 schemas.
Verify will now always look at the release and version labels for
comparison. Should those labels not exist, it will use the
manifest digest for ostree; and it will use the image IDs for
docker.
Closes: #785
Approved by: rhatdan
The previous algorithm for comparing files used python's
dircmp and is considered to be a shallow comparision. This
allowed distinctly small possibilities that two files being
compared could be different but not caught.
We now use go-mtree to do the comparison. This can emulate the
shallow comparison we had before but we can also adding a
sha256digest as part of the comparison using the new --keywords
option.
Also, made slight tweaks to gomtree functions in Atomic.util
so we debug and influence the return of JSON data.
This solves https://github.com/projectatomic/atomic/issues/761
Closes: #777
Approved by: rhatdan
Fix the behaviour for atomic top where if you want to include
additional fields to monitor, you now specificy one field per
-o switch. For example:
atomic top -o ppid -o time
Closes: #780
Approved by: baude
Add --rollback flag to atomic update, which switches a system
container to the other deployment if one exists.
Signed-off-by: Yu Qi Zhang <jerzhang@redhat.com>
Closes: #762
Approved by: rhatdan
With the -m switch, we can now compare the metadata between
the two diff objects. We report only the differences between them. All
common data is deleted from the object structures.
This solves --> https://github.com/projectatomic/atomic/issues/760
Closes: #764
Approved by: baude
Add functionality to detect environment variables in template files.
The variables that can be set by the user through --set is displayed
on 'atomic images info'. The variables with overridable default
values will either have their default value displayed, or shown as
{SET_BY_OS} if atomic sets them. Variables without default value
must be set by the user and is listed separately.
Currently install --system already checks for variables that have no
value after install, and will error out.
Signed-off-by: Yu Qi Zhang <jerzhang@redhat.com>
Closes: #752
Approved by: giuseppe
Add an optional --storage flag to the following commands:
- images delete
- info
- mount
- verify
- version
If specified, the command will only look at the specified storage
(ostree/docker) for the image to perform the action. If not
specified, the command will look through both ostree/docker for
the image (as it was before). However, if the storage is not
specified and the image exists in both ostree and docker, the
command will error and prompt the user to specify. Image inspection
also no longer forces the user to delete/rename one or the other.
This is meant to address the duplicate naming issue (where a user
can have an image in both ostree and docker with the same name).
Signed-off-by: Yu Qi Zhang <jerzhang@redhat.com>
Closes: #720
Approved by: giuseppe
In order to cleanup code and simplify interface, i
move help, info, verify and version to the images subcommand.
Remove man pages for these atomic commands and add info to images subcommand.
Since these have been previously documented we will continue to support
atomic help
atomic info
atomic verify
atomic version
But we will not document them.
Closes: #676
Approved by: rhatdan
We need to default the gnukeyring to the users login directory. To
make it easier for the user.
Also add bash completions for -g option
Closes: #671
Approved by: rhatdan
Wrap atomic run/stop with systemctl start/stop for system
containers. This way the user can directly use the atomic
CLI for the full container cycle. In addition, the equivalent
functionality already exists for docker containers, so it
makes sense to allow system containers to start/stop in a
similar fashion.
Signed-off-by: Yu Qi Zhang <jerzhang@redhat.com>
Closes: #651
Approved by: rhatdan
Enabling signing and pushing at the same time. At the time of
this writing, we cannot verify that the atomic targets are
working but the code is there. THis is enabled with the
--type atomic switch. Otherwise, signatures are written locally
and the image is pushed.
Closes: #631
Approved by: rhatdan
The registries.d YAML files label for sigstore-write
has been changed to sigstore-staging for a more accurate
description. Skopeo has made this change in its
85e4551eab00f9c3c973b309544329eb5558dfcd commit in
the integrate-all-the-things branch.
Closes: #622
Approved by: rhatdan
Atomic cannot write a signature to web(http/https) target. We
now raise an error as such.
sudo ./atomic sign docker.io/library/hello-world
Writing to http://123 is not supported. Use a file:///location instead.
Closes: #618
Approved by: rhatdan
When using -d to override the signature write location, we now want
to make sure we also add in the presribed directory structure
of registry/repo/image@sha256:manfist/. So, something like:
atomic --debug sign -d /tmp docker.io/library/busybox:latest
results in:
/tmp/docker.io/library/busybox@sha256:a59906e...a1e0e6/signature-1
Closes: #617
Approved by: baude
Addressing:
# make all
/usr/bin/python setup.py build
Traceback (most recent call last):
File "setup.py", line 5, in <module>
import Atomic as _Atomic
File "/root/atomic/Atomic/__init__.py", line 1, in <module>
from .pulp import PulpServer, PulpConfig
File "/root/atomic/Atomic/pulp.py", line 8, in <module>
import requests
ImportError: No module named requests
Makefile:34: recipe for target 'python-build' failed
make: *** [python-build] Error 1
# make all
/usr/bin/python setup.py build
Traceback (most recent call last):
File "setup.py", line 5, in <module>
import Atomic as _Atomic
File "/root/atomic/Atomic/__init__.py", line 1, in <module>
from .pulp import PulpServer, PulpConfig
File "/root/atomic/Atomic/pulp.py", line 10, in <module>
from . import util
File "/root/atomic/Atomic/util.py", line 10, in <module>
import selinux
ImportError: No module named selinux
Makefile:34: recipe for target 'python-build' failed
make: *** [python-build] Error 1
# make all
/usr/bin/python setup.py build
Traceback (most recent call last):
File "setup.py", line 5, in <module>
import Atomic as _Atomic
File "/root/atomic/Atomic/__init__.py", line 1, in <module>
from .pulp import PulpServer, PulpConfig
File "/root/atomic/Atomic/pulp.py", line 10, in <module>
from . import util
File "/root/atomic/Atomic/util.py", line 11, in <module>
from .client import AtomicDocker
File "/root/atomic/Atomic/client.py", line 1, in <module>
import docker
ImportError: No module named docker
Makefile:34: recipe for target 'python-build' failed
make: *** [python-build] Error 1
# make all
/usr/bin/python setup.py build
Traceback (most recent call last):
File "setup.py", line 5, in <module>
import Atomic as _Atomic
File "/root/atomic/Atomic/__init__.py", line 1, in <module>
from .pulp import PulpServer, PulpConfig
File "/root/atomic/Atomic/pulp.py", line 10, in <module>
from . import util
File "/root/atomic/Atomic/util.py", line 12, in <module>
from yaml import load as yaml_load
ImportError: No module named yaml
Makefile:34: recipe for target 'python-build' failed
make: *** [python-build] Error 1
# make all
/usr/bin/python setup.py build
Traceback (most recent call last):
File "setup.py", line 5, in <module>
import Atomic as _Atomic
File "/root/atomic/Atomic/__init__.py", line 3, in <module>
from .atomic import Atomic
File "/root/atomic/Atomic/atomic.py", line 7, in <module>
from .syscontainers import SystemContainers
File "/root/atomic/Atomic/syscontainers.py", line 15, in <module>
from dateutil.parser import parse as dateparse
ImportError: No module named dateutil.parser
Makefile:34: recipe for target 'python-build' failed
# make all
[...]
/usr/bin/go-md2man -in docs/atomic-storage.1.md -out docs/atomic-storage.1.tmp && touch docs/atomic-storage.1.tmp && mv docs/atomic-storage.1.tmp docs/atomic-storage.1
/usr/bin/python -m pylint --disable=all --enable=E --enable=W --additional-builtins=_ *.py atomic Atomic tests/unit/*.py -d=no-absolute-import,print-statement,no-absolute-import,bad-builtin
/usr/bin/python: No module named pylint
Makefile:38: recipe for target 'pylint-check' failed
make: *** [pylint-check] Error 1
# make all
/usr/bin/python setup.py build
running build
running build_py
running build_scripts
/usr/bin/python -m pylint --disable=all --enable=E --enable=W --additional-builtins=_ *.py atomic Atomic tests/unit/*.py -d=no-absolute-import,print-statement,no-absolute-import,bad-builtin
No config file found, using default configuration
************* Module atomic_client
E: 8, 0: Unable to import 'slip.dbus' (import-error)
************* Module atomic_dbus
E: 9, 0: Unable to import 'gi.repository' (import-error)
E: 10, 0: Unable to import 'slip.dbus.service' (import-error)
************* Module Atomic.mount
E: 35, 0: Unable to import 'gi.repository' (import-error)
************* Module Atomic.syscontainers
E: 21, 8: Unable to import 'gi.repository' (import-error)
[...]
Makefile:38: recipe for target 'pylint-check' failed
make: *** [pylint-check] Error 2
Closes: #608
Approved by: rhatdan
Addressing:
# make test
[...]
/usr/bin/python3 -m pylint --disable=all --enable=E --enable=W --additional-builtins=_ *.py atomic Atomic tests/unit/*.py -d=no-absolute-import,print-statement,no-absolute-import,bad-builtin
/usr/bin/python3: No module named pylint
Makefile:20: recipe for target 'test-python3-pylint' failed
make: *** [test-python3-pylint] Error 1
# make test
[...]
./test.sh
Pulling standard images from Docker Hub...
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Makefile:27: recipe for target 'test' failed
make: *** [test] Error 1
# make test
[...]
UNIT TESTS:
./test.sh: line 153: /usr/bin/coverage2: No such file or directory
[...]
Coverage report:
./test.sh: line 200: /usr/bin/coverage2: No such file or directory
Makefile:27: recipe for target 'test' failed
make: *** [test] Error 1
Closes: #609
Approved by: rhatdan
We now derive the proper sigstore from a series of YAML
configuration files in /etc/containers/registries.d. These
configuration files can have: sigstore and sigstore-write as
keys and the values are a file path or http|s URL.
When signing an image, as long as the -d override is not used,
we use those values when writing local signatures.
Closes: #603
Approved by: rhatdan
atomic images delete --force
Should force the remove of images that are in use, not answer the prompt yes.
atomic -y|--assumeyes images delete foobar
Should force the answer to yes
Also lots of cleanups of the man page.
We want to be able to delete containers from the system, using the
new atomic containers delete call.
atomic containers delete --all
Comes in handy.
Closes: #598
Approved by: giuseppe