summaryrefslogtreecommitdiff
path: root/contrib/python/podman
diff options
context:
space:
mode:
authorJhon Honce <jhonce@redhat.com>2018-09-06 14:32:14 -0700
committerAtomic Bot <atomic-devel@projectatomic.io>2018-09-21 19:36:01 +0000
commite6074eb9acbd3964ee0c1ea6a9b5ec68fa309687 (patch)
treed179de82395003a6281427b1642ef40a1f577ef5 /contrib/python/podman
parent09f506930c1c585b12e9ad89044528da23d2851a (diff)
downloadpodman-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/Makefile6
-rw-r--r--contrib/python/podman/podman/libs/_containers_start.py1
-rw-r--r--contrib/python/podman/podman/libs/containers.py32
-rwxr-xr-xcontrib/python/podman/test/test_runner.sh3
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