diff options
author | Jhon Honce <jhonce@redhat.com> | 2018-09-06 14:32:14 -0700 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2018-09-21 19:36:01 +0000 |
commit | e6074eb9acbd3964ee0c1ea6a9b5ec68fa309687 (patch) | |
tree | d179de82395003a6281427b1642ef40a1f577ef5 /contrib/python/podman | |
parent | 09f506930c1c585b12e9ad89044528da23d2851a (diff) | |
download | podman-e6074eb9acbd3964ee0c1ea6a9b5ec68fa309687.tar.gz podman-e6074eb9acbd3964ee0c1ea6a9b5ec68fa309687.tar.bz2 podman-e6074eb9acbd3964ee0c1ea6a9b5ec68fa309687.zip |
Implement new subcommands
* Refactor create subparser to share arguments with run subparser
* Add argparse.*Action subclasses to reduce duplicate code in parsers
* Using BooleanAction now accept True/False value as expected
* .pylintrc added to loosen variable name policing
* Update AbstractBaseAction to remove unset arguments before
transmitting to podman service
* Align logging messages to podman output
* Renamed global argument from --user to --username, to avoid conflict
with create/run podman commands
* Add new subcommands: run, create, history, import, info, push,
restart and search
Signed-off-by: Jhon Honce <jhonce@redhat.com>
Closes: #1519
Approved by: rhatdan
Diffstat (limited to 'contrib/python/podman')
-rw-r--r-- | contrib/python/podman/Makefile | 6 | ||||
-rw-r--r-- | contrib/python/podman/podman/libs/_containers_start.py | 1 | ||||
-rw-r--r-- | contrib/python/podman/podman/libs/containers.py | 32 | ||||
-rwxr-xr-x | contrib/python/podman/test/test_runner.sh | 3 |
4 files changed, 30 insertions, 12 deletions
diff --git a/contrib/python/podman/Makefile b/contrib/python/podman/Makefile index e7e365a9c..f691092b7 100644 --- a/contrib/python/podman/Makefile +++ b/contrib/python/podman/Makefile @@ -1,5 +1,6 @@ PYTHON ?= /usr/bin/python3 DESTDIR ?= / +PODMAN_VERSION ?= '0.0.4' .PHONY: python-podman python-podman: @@ -17,6 +18,11 @@ integration: install: $(PYTHON) setup.py install --root ${DESTDIR} +.PHONY: upload +upload: + $(PODMAN_VERSION) $(PYTHON) setup.py sdist bdist_wheel + twine upload --repository-url https://test.pypi.org/legacy/ dist/* + .PHONY: clobber clobber: uninstall clean diff --git a/contrib/python/podman/podman/libs/_containers_start.py b/contrib/python/podman/podman/libs/_containers_start.py index 8e705771a..20130f5d6 100644 --- a/contrib/python/podman/podman/libs/_containers_start.py +++ b/contrib/python/podman/podman/libs/_containers_start.py @@ -20,6 +20,7 @@ class Mixin: Will block if container has been detached. """ with self._client() as podman: + logging.debug('Starting Container "%s"', self._id) results = podman.StartContainer(self._id) logging.debug('Started Container "%s"', results['container']) diff --git a/contrib/python/podman/podman/libs/containers.py b/contrib/python/podman/podman/libs/containers.py index f56137e12..e211a284e 100644 --- a/contrib/python/podman/podman/libs/containers.py +++ b/contrib/python/podman/podman/libs/containers.py @@ -3,6 +3,7 @@ import collections import functools import getpass import json +import logging import signal import time @@ -32,17 +33,26 @@ class Container(AttachMixin, StartMixin, collections.UserDict): """Get items from parent dict.""" return super().__getitem__(key) - def _refresh(self, podman): - ctnr = podman.GetContainer(self._id) - super().update(ctnr['container']) - - for k, v in self.data.items(): - setattr(self, k, v) - if 'containerrunning' in self.data: - setattr(self, 'running', self.data['containerrunning']) - self.data['running'] = self.data['containerrunning'] - - return self + def _refresh(self, podman, tries=1): + try: + ctnr = podman.GetContainer(self._id) + except BrokenPipeError: + logging.debug('Failed GetContainer(%s) try %d/3', self._id, tries) + if tries > 3: + raise + else: + with self._client() as pman: + self._refresh(pman, tries + 1) + else: + super().update(ctnr['container']) + + for k, v in self.data.items(): + setattr(self, k, v) + if 'containerrunning' in self.data: + setattr(self, 'running', self.data['containerrunning']) + self.data['running'] = self.data['containerrunning'] + + return self def refresh(self): """Refresh status fields for this container.""" diff --git a/contrib/python/podman/test/test_runner.sh b/contrib/python/podman/test/test_runner.sh index c37d9cf6e..76432cf47 100755 --- a/contrib/python/podman/test/test_runner.sh +++ b/contrib/python/podman/test/test_runner.sh @@ -97,11 +97,12 @@ EOT cat >$TMPDIR/ctnr/hello.sh <<-EOT echo 'Hello, World' +exit 0 EOT cat >$TMPDIR/ctnr/Dockerfile <<-EOT FROM alpine:latest -COPY ./hello.sh /tmp/hello.sh +COPY ./hello.sh /tmp/ RUN chmod 755 /tmp/hello.sh ENTRYPOINT ["/tmp/hello.sh"] EOT |