Hello community, here is the log from the commit of package python-podman for openSUSE:Factory checked in at 2020-02-21 16:41:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-podman (Old) and /work/SRC/openSUSE:Factory/.python-podman.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-podman" Fri Feb 21 16:41:58 2020 rev:2 rq:777795 version:1.6.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-podman/python-podman.changes 2019-10-28 16:59:15.909678464 +0100 +++ /work/SRC/openSUSE:Factory/.python-podman.new.26092/python-podman.changes 2020-02-21 16:42:14.570019239 +0100 @@ -1,0 +2,15 @@ +Fri Feb 21 01:58:37 UTC 2020 - Steve Kowalik <[email protected]> + +- Update to 1.6.0: + * Update code and tests for changes in API + * Introduce mocked unit tests + * Refactor for changes in containers API + * ModuleNotFoundError: No module named 'pbr' + * Improve testing + * Apply pep8 and clean code + * remove redundant license file + * How to install from pypi +- Correct BuildRequires. +- Drop unshipped file from %license macro. + +------------------------------------------------------------------- Old: ---- podman-0.12.0.tar.gz New: ---- podman-1.6.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-podman.spec ++++++ --- /var/tmp/diff_new_pack.bBOXF4/_old 2020-02-21 16:42:15.486021069 +0100 +++ /var/tmp/diff_new_pack.bBOXF4/_new 2020-02-21 16:42:15.486021069 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-podman # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,22 +18,23 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-podman -Version: 0.12.0 +Version: 1.6.0 Release: 0 Summary: A library to interact with a Podman server License: Apache-2.0 Group: Development/Languages/Python -Url: https://github.com/containers/python-podman +URL: https://github.com/containers/python-podman Source: https://files.pythonhosted.org/packages/source/p/podman/podman-%{version}.tar.gz -BuildRequires: %{python_module devel} BuildRequires: %{python_module pbr} BuildRequires: %{python_module setuptools} BuildRequires: python-rpm-macros # SECTION test requirements +BuildRequires: %{python_module flake8} BuildRequires: %{python_module psutil} BuildRequires: %{python_module python-dateutil} BuildRequires: %{python_module setuptools >= 39} BuildRequires: %{python_module varlink} +BuildRequires: %{python_module wheel} # /SECTION BuildRequires: fdupes Requires: python-psutil @@ -64,7 +65,7 @@ %files %{python_files} %doc AUTHORS CHANGES.txt ChangeLog README.md -%license LICENSE LICENSE.txt +%license LICENSE %{python_sitelib}/* %changelog ++++++ podman-0.12.0.tar.gz -> podman-1.6.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/.travis.yml new/podman-1.6.0/.travis.yml --- old/podman-0.12.0/.travis.yml 2019-06-28 22:35:48.000000000 +0200 +++ new/podman-1.6.0/.travis.yml 2019-10-11 21:14:58.000000000 +0200 @@ -1,19 +1,31 @@ dist: xenial language: python cache: -- pip + - pip python: -- '3.6' -- '3.5' -- '3.4' + - '3.7' + - '3.6' + - '3.5' + - '3.4' before_install: -- pip install -U pip -- pip install -U setuptools -- pip install -U wheel + - pip install -U pip + - pip install -U setuptools + - pip install -U wheel + - pip install -U twine install: -- pip install tox-travis .[devel] + - pip install tox-travis .[devel] script: -- echo "test" + # Check packaging (README format etc...) + - pip install -U setuptools + - pip install -U wheel + - pip install -U twine + - pip list + - rm -rf dist + - python setup.py sdist + - python setup.py bdist_wheel + - twine check dist/* + # Execture tests + - tox deploy: - provider: pypi user: containers-libpod diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/AUTHORS new/podman-1.6.0/AUTHORS --- old/podman-0.12.0/AUTHORS 2019-07-01 20:47:26.000000000 +0200 +++ new/podman-1.6.0/AUTHORS 2019-10-11 21:15:55.000000000 +0200 @@ -5,3 +5,4 @@ Hervé Beraud <[email protected]> Jhon Honce <[email protected]> Jhon Honce <[email protected]> +vmulaje <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/ChangeLog new/podman-1.6.0/ChangeLog --- old/podman-0.12.0/ChangeLog 2019-07-01 20:47:26.000000000 +0200 +++ new/podman-1.6.0/ChangeLog 2019-10-11 21:15:55.000000000 +0200 @@ -1,6 +1,26 @@ CHANGES ======= +1.6.0 +----- + +* Update code and tests for changes in API +* Update code and tests for changes in API +* Introduce mocked unit tests +* Refactor for changes in containers API +* ModuleNotFoundError: No module named 'pbr' +* Improve testing +* Apply pep8 and clean code +* remove redundant license file +* How to install from pypi + +0.0.3 +----- + +* API version retrieval +* Fix pypi deployment by using documentation at markdown format +* Introduce python 3.7 support + v0.12.0 ------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/LICENSE.txt new/podman-1.6.0/LICENSE.txt --- old/podman-0.12.0/LICENSE.txt 2019-05-02 00:34:27.000000000 +0200 +++ new/podman-1.6.0/LICENSE.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,13 +0,0 @@ -Copyright 2018 Red Hat, Inc - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/PKG-INFO new/podman-1.6.0/PKG-INFO --- old/podman-0.12.0/PKG-INFO 2019-07-01 20:47:26.000000000 +0200 +++ new/podman-1.6.0/PKG-INFO 2019-10-11 21:15:55.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: podman -Version: 0.12.0 +Version: 1.6.0 Summary: A library to interact with a Podman server Home-page: https://github.com/containers/python-podman Author: Jhon Honce @@ -10,6 +10,11 @@ Project-URL: Source Code, https://github.com/containers/python-podman Description: # podman - pythonic library for working with varlink interface to Podman + [](https://travis-ci.org/containers/python-podman) +  +  +  + ## Status: Active Development See [libpod](https://github.com/containers/python-podman) @@ -28,7 +33,42 @@ * OpenSSH 6.7+ * Python dependencies in requirements.txt - ### Building + ### Install + + #### From pypi + + Install `python-podman` to the standard location for third-party + Python modules: + + ```sh + python3 -m pip install podman + ``` + + To use this method on Unix/Linux system you need to have permission to write + to the standard third-party module directory. + + Else, you can install the latest version of python-podman published on + pypi to the Python user install directory for your platform. + Typically ~/.local/. ([See the Python documentation for site.USER_BASE for full + details.](https://pip.pypa.io/en/stable/user_guide/#user-installs)) + You can install like this by using the `--user` option: + + ```sh + python3 -m pip install --user podman + ``` + + This method can be useful in many situations, for example, + on a Unix system you might not have permission to write to the + standard third-party module directory. Or you might wish to try out a module + before making it a standard part of your local Python installation. + This is especially true when upgrading a distribution already present: you want + to make sure your existing base of scripts still works with the new version + before actually upgrading. + + For further reading about how python installation works [you can read + this documentation](https://docs.python.org/3/install/index.html#how-installation-works). + + #### By building from source To build the podman egg and install as user: @@ -67,6 +107,42 @@ c.id[:12], c.image[:32], podman.datetime_format(created_at))) ``` + CHANGES + ======= + + * Fix pypi deployment by using documentation at markdown format + + v0.0.2 + ------ + + * Fix up pushing to pypi + + v0.0.1 + ------ + + * Pull image function throws KeyError for id + * Secure Travis + * Introduce travis-ci and autodeployments on tags + * Improve packaging by using PBR + * Add base requirements to README.md + * Remove pypodman to python-pypodman repo + * Update module to align with varlink API changes + * Use GetVersion instead of Ping, as recommended + * Improve README + * pypodman: add options to handle ssh host keys + * Update README.md + * add missing bits + * Initial copy from containers/libpod + * Initial commit + + Anders F Björklund <[email protected]> + Brent Baude <[email protected]> + Daniel J Walsh <[email protected]> + Dhanisha Phadate <[email protected]> + Hervé Beraud <[email protected]> + Jhon Honce <[email protected]> + Jhon Honce <[email protected]> + Keywords: varlink,libpod,podman Platform: UNKNOWN @@ -74,6 +150,10 @@ Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 Classifier: Topic :: Software Development Description-Content-Type: text/markdown Provides-Extra: devel +Provides-Extra: test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/README.md new/podman-1.6.0/README.md --- old/podman-0.12.0/README.md 2019-06-15 00:02:57.000000000 +0200 +++ new/podman-1.6.0/README.md 2019-10-11 21:14:58.000000000 +0200 @@ -1,5 +1,10 @@ # podman - pythonic library for working with varlink interface to Podman +[](https://travis-ci.org/containers/python-podman) + + + + ## Status: Active Development See [libpod](https://github.com/containers/python-podman) @@ -18,7 +23,42 @@ * OpenSSH 6.7+ * Python dependencies in requirements.txt -### Building +### Install + +#### From pypi + +Install `python-podman` to the standard location for third-party +Python modules: + +```sh +python3 -m pip install podman +``` + +To use this method on Unix/Linux system you need to have permission to write +to the standard third-party module directory. + +Else, you can install the latest version of python-podman published on +pypi to the Python user install directory for your platform. +Typically ~/.local/. ([See the Python documentation for site.USER_BASE for full +details.](https://pip.pypa.io/en/stable/user_guide/#user-installs)) +You can install like this by using the `--user` option: + +```sh +python3 -m pip install --user podman +``` + +This method can be useful in many situations, for example, +on a Unix system you might not have permission to write to the +standard third-party module directory. Or you might wish to try out a module +before making it a standard part of your local Python installation. +This is especially true when upgrading a distribution already present: you want +to make sure your existing base of scripts still works with the new version +before actually upgrading. + +For further reading about how python installation works [you can read +this documentation](https://docs.python.org/3/install/index.html#how-installation-works). + +#### By building from source To build the podman egg and install as user: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/podman/__init__.py new/podman-1.6.0/podman/__init__.py --- old/podman-0.12.0/podman/__init__.py 2019-05-02 00:34:27.000000000 +0200 +++ new/podman-1.6.0/podman/__init__.py 2019-10-11 21:14:58.000000000 +0200 @@ -1,16 +1,17 @@ """A client for communicating with a Podman server.""" -import pkg_resources + +from pbr.version import VersionInfo from .client import Client from .libs import FoldedString, datetime_format, datetime_parse from .libs.errors import (ContainerNotFound, ErrorOccurred, ImageNotFound, - NoContainerRunning, NoContainersInPod, + InvalidState, NoContainerRunning, NoContainersInPod, PodContainerError, PodmanError, PodNotFound) assert FoldedString try: - __version__ = pkg_resources.get_distribution('podman').version + __version__ = VersionInfo("podman") except Exception: # pylint: disable=broad-except __version__ = '0.0.0' @@ -21,6 +22,7 @@ 'datetime_parse', 'ErrorOccurred', 'ImageNotFound', + 'InvalidState', 'NoContainerRunning', 'NoContainersInPod', 'PodContainerError', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/podman/client.py new/podman-1.6.0/podman/client.py --- old/podman-0.12.0/podman/client.py 2019-05-02 00:34:27.000000000 +0200 +++ new/podman-1.6.0/podman/client.py 2019-10-11 21:14:58.000000000 +0200 @@ -46,7 +46,8 @@ raise ValueError('interface is required and cannot be None') unsupported = set(kwargs.keys()).difference( - ('uri', 'interface', 'remote_uri', 'identity_file', 'ignore_hosts', 'known_hosts')) + ('uri', 'interface', 'remote_uri', 'identity_file', + 'ignore_hosts', 'known_hosts')) if unsupported: raise ValueError('Unknown keyword arguments: {}'.format( ', '.join(unsupported))) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/podman/libs/__init__.py new/podman-1.6.0/podman/libs/__init__.py --- old/podman-0.12.0/podman/libs/__init__.py 2019-05-02 00:34:27.000000000 +0200 +++ new/podman-1.6.0/podman/libs/__init__.py 2019-10-11 21:14:58.000000000 +0200 @@ -9,6 +9,7 @@ 'cached_property', 'datetime_format', 'datetime_parse', + 'flatten', 'fold_keys', ] @@ -73,3 +74,20 @@ raise ValueError('Unable to format {}. Type {} not supported.'.format( dt, type(dt))) + + +def flatten(list_, ltypes=(list, tuple)): + """Flatten lists of list into a list.""" + ltype = type(list_) + list_ = list(list_) + i = 0 + while i < len(list_): + while isinstance(list_[i], ltypes): + if not list_[i]: + list_.pop(i) + i -= 1 + break + else: + list_[i:i + 1] = list_[i] + i += 1 + return ltype(list_) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/podman/libs/containers.py new/podman-1.6.0/podman/libs/containers.py --- old/podman-0.12.0/podman/libs/containers.py 2019-05-02 00:34:27.000000000 +0200 +++ new/podman-1.6.0/podman/libs/containers.py 2019-10-11 21:14:58.000000000 +0200 @@ -144,7 +144,7 @@ with self._client() as podman: results = podman.Commit(self._id, image_name, change, author, message, pause) - return results['image'] + return results['reply']['id'] def stop(self, timeout=25): """Stop container, return id on success.""" @@ -167,20 +167,6 @@ podman.RestartContainer(self._id, timeout) return self._refresh(podman) - def rename(self, target): # pylint: disable=unused-argument - """Rename container, return id on success.""" - with self._client() as podman: - # TODO: Need arguments - results = podman.RenameContainer() - # TODO: fixup objects cached information - return results['container'] - - def resize_tty(self, width, height): # pylint: disable=unused-argument - """Resize container tty.""" - with self._client() as podman: - # TODO: magic re: attach(), arguments - podman.ResizeContainerTty() - def pause(self): """Pause container, return id on success.""" with self._client() as podman: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/podman/libs/errors.py new/podman-1.6.0/podman/libs/errors.py --- old/podman-0.12.0/podman/libs/errors.py 2019-05-02 00:34:27.000000000 +0200 +++ new/podman-1.6.0/podman/libs/errors.py 2019-10-11 21:14:58.000000000 +0200 @@ -57,10 +57,15 @@ """Raised when Client fails to connect to runtime.""" +class InvalidState(VarlinkErrorProxy): + """Raised when container is in invalid state for operation.""" + + ERROR_MAP = { 'io.podman.ContainerNotFound': ContainerNotFound, 'io.podman.ErrorOccurred': ErrorOccurred, 'io.podman.ImageNotFound': ImageNotFound, + 'io.podman.InvalidState': InvalidState, 'io.podman.NoContainerRunning': NoContainerRunning, 'io.podman.NoContainersInPod': NoContainersInPod, 'io.podman.PodContainerError': PodContainerError, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/podman/libs/images.py new/podman-1.6.0/podman/libs/images.py --- old/podman-0.12.0/podman/libs/images.py 2019-06-28 17:59:35.000000000 +0200 +++ new/podman-1.6.0/podman/libs/images.py 2019-10-11 21:14:58.000000000 +0200 @@ -4,7 +4,7 @@ import json import logging -from . import ConfigDict, fold_keys +from . import ConfigDict, flatten, fold_keys from .containers import Container @@ -29,9 +29,7 @@ def _split_token(values=None, sep='='): if not values: return {} - return { - k: v1 for k, v1 in (v0.split(sep, 1) for v0 in values) - } + return {k: v1 for k, v1 in (v0.split(sep, 1) for v0 in values)} def create(self, *args, **kwargs): """Create container from image. @@ -45,8 +43,10 @@ config['env'] = self._split_token(details.config.get('env')) config['image'] = copy.deepcopy(details.repotags[0]) config['labels'] = copy.deepcopy(details.labels) + # TODO: Are these settings still required? config['net_mode'] = 'bridge' config['network'] = 'bridge' + config['args'] = flatten([config['image'], config['command']]) logging.debug('Image %s: create config: %s', self._id, config) with self._client() as podman: @@ -75,11 +75,18 @@ obj = json.loads(results['image'], object_hook=fold_keys()) return collections.namedtuple('ImageInspect', obj.keys())(**obj) - def push(self, target, tlsverify=True): + def push(self, + target, + compress=False, + manifest_format="", + remove_signatures=False, + sign_by=""): """Copy image to target, return id on success.""" with self._client() as podman: - results = podman.PushImage(self._id, target, tlsverify) - return results['image'] + results = podman.PushImage(self._id, target, compress, + manifest_format, remove_signatures, + sign_by) + return results['reply']['id'] def remove(self, force=False): """Delete image, return id on success. @@ -118,12 +125,12 @@ """ if dockerfile is None: raise ValueError('"dockerfile" is a required argument.') - elif not hasattr(dockerfile, '__iter__'): + if not hasattr(dockerfile, '__iter__'): raise ValueError('"dockerfile" is required to be an iter.') if tags is None: raise ValueError('"tags" is a required argument.') - elif not hasattr(tags, '__iter__'): + if not hasattr(tags, '__iter__'): raise ValueError('"tags" is required to be an iter.') config = ConfigDict(dockerfile=dockerfile, tags=tags, **kwargs) @@ -150,11 +157,25 @@ results = podman.PullImage(source) return results['reply']['id'] - def search(self, id_, limit=25): + def search(self, + id_, + limit=25, + is_official=None, + is_automated=None, + star_count=None): """Search registries for id.""" + constraints = {} + + if is_official is not None: + constraints['is_official'] = is_official + if is_automated is not None: + constraints['is_automated'] = is_automated + if star_count is not None: + constraints['star_count'] = star_count + with self._client() as podman: - results = podman.SearchImage(id_, limit) - for img in results['images']: + results = podman.SearchImages(id_, limit, constraints) + for img in results['results']: yield collections.namedtuple('ImageSearch', img.keys())(**img) def get(self, id_): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/podman/libs/pods.py new/podman-1.6.0/podman/libs/pods.py --- old/podman-0.12.0/podman/libs/pods.py 2019-05-02 00:34:27.000000000 +0200 +++ new/podman-1.6.0/podman/libs/pods.py 2019-10-11 21:14:58.000000000 +0200 @@ -115,12 +115,6 @@ podman.UnpausePod(self._ident) return self._refresh(podman) - def wait(self): - """Wait for all containers to exit.""" - with self._client() as podman: - results = podman.WaitPod(self._ident) - return results['pod'] - class Pods(): """Model for accessing pods.""" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/podman/libs/tunnel.py new/podman-1.6.0/podman/libs/tunnel.py --- old/podman-0.12.0/podman/libs/tunnel.py 2019-05-02 00:49:31.000000000 +0200 +++ new/podman-1.6.0/podman/libs/tunnel.py 2019-10-11 21:14:58.000000000 +0200 @@ -127,7 +127,8 @@ cmd.extend(('-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null')) elif self.context.known_hosts: - cmd.extend(('-o', 'UserKnownHostsFile=%s' % self.context.known_hosts)) + cmd.extend(('-o', 'UserKnownHostsFile={known_hosts}'.format( + known_hosts=self.context.known_hosts))) if self.context.identity_file: cmd.extend(('-i', self.context.identity_file)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/podman.egg-info/PKG-INFO new/podman-1.6.0/podman.egg-info/PKG-INFO --- old/podman-0.12.0/podman.egg-info/PKG-INFO 2019-07-01 20:47:26.000000000 +0200 +++ new/podman-1.6.0/podman.egg-info/PKG-INFO 2019-10-11 21:15:55.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: podman -Version: 0.12.0 +Version: 1.6.0 Summary: A library to interact with a Podman server Home-page: https://github.com/containers/python-podman Author: Jhon Honce @@ -10,6 +10,11 @@ Project-URL: Source Code, https://github.com/containers/python-podman Description: # podman - pythonic library for working with varlink interface to Podman + [](https://travis-ci.org/containers/python-podman) +  +  +  + ## Status: Active Development See [libpod](https://github.com/containers/python-podman) @@ -28,7 +33,42 @@ * OpenSSH 6.7+ * Python dependencies in requirements.txt - ### Building + ### Install + + #### From pypi + + Install `python-podman` to the standard location for third-party + Python modules: + + ```sh + python3 -m pip install podman + ``` + + To use this method on Unix/Linux system you need to have permission to write + to the standard third-party module directory. + + Else, you can install the latest version of python-podman published on + pypi to the Python user install directory for your platform. + Typically ~/.local/. ([See the Python documentation for site.USER_BASE for full + details.](https://pip.pypa.io/en/stable/user_guide/#user-installs)) + You can install like this by using the `--user` option: + + ```sh + python3 -m pip install --user podman + ``` + + This method can be useful in many situations, for example, + on a Unix system you might not have permission to write to the + standard third-party module directory. Or you might wish to try out a module + before making it a standard part of your local Python installation. + This is especially true when upgrading a distribution already present: you want + to make sure your existing base of scripts still works with the new version + before actually upgrading. + + For further reading about how python installation works [you can read + this documentation](https://docs.python.org/3/install/index.html#how-installation-works). + + #### By building from source To build the podman egg and install as user: @@ -67,6 +107,42 @@ c.id[:12], c.image[:32], podman.datetime_format(created_at))) ``` + CHANGES + ======= + + * Fix pypi deployment by using documentation at markdown format + + v0.0.2 + ------ + + * Fix up pushing to pypi + + v0.0.1 + ------ + + * Pull image function throws KeyError for id + * Secure Travis + * Introduce travis-ci and autodeployments on tags + * Improve packaging by using PBR + * Add base requirements to README.md + * Remove pypodman to python-pypodman repo + * Update module to align with varlink API changes + * Use GetVersion instead of Ping, as recommended + * Improve README + * pypodman: add options to handle ssh host keys + * Update README.md + * add missing bits + * Initial copy from containers/libpod + * Initial commit + + Anders F Björklund <[email protected]> + Brent Baude <[email protected]> + Daniel J Walsh <[email protected]> + Dhanisha Phadate <[email protected]> + Hervé Beraud <[email protected]> + Jhon Honce <[email protected]> + Jhon Honce <[email protected]> + Keywords: varlink,libpod,podman Platform: UNKNOWN @@ -74,6 +150,10 @@ Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 Classifier: Topic :: Software Development Description-Content-Type: text/markdown Provides-Extra: devel +Provides-Extra: test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/podman.egg-info/SOURCES.txt new/podman-1.6.0/podman.egg-info/SOURCES.txt --- old/podman-0.12.0/podman.egg-info/SOURCES.txt 2019-07-01 20:47:26.000000000 +0200 +++ new/podman-1.6.0/podman.egg-info/SOURCES.txt 2019-10-11 21:15:55.000000000 +0200 @@ -4,13 +4,13 @@ CHANGES.txt ChangeLog LICENSE -LICENSE.txt MANIFEST.in Makefile README.md requirements.txt setup.cfg setup.py +test-requirements.txt tox.ini examples/eg_attach.py examples/eg_containers_by_image.py @@ -37,4 +37,6 @@ podman/libs/images.py podman/libs/pods.py podman/libs/system.py -podman/libs/tunnel.py \ No newline at end of file +podman/libs/tunnel.py +tests/libs/__init__.py +tests/libs/test_pod.py \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/podman.egg-info/pbr.json new/podman-1.6.0/podman.egg-info/pbr.json --- old/podman-0.12.0/podman.egg-info/pbr.json 2019-07-01 20:47:26.000000000 +0200 +++ new/podman-1.6.0/podman.egg-info/pbr.json 2019-10-11 21:15:55.000000000 +0200 @@ -1 +1 @@ -{"git_version": "6ddac54", "is_release": false} \ No newline at end of file +{"git_version": "629316a", "is_release": false} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/podman.egg-info/requires.txt new/podman-1.6.0/podman.egg-info/requires.txt --- old/podman-0.12.0/podman.egg-info/requires.txt 2019-07-01 20:47:26.000000000 +0200 +++ new/podman-1.6.0/podman.egg-info/requires.txt 2019-10-11 21:15:55.000000000 +0200 @@ -1,10 +1,16 @@ +setuptools +wheel psutil python-dateutil setuptools>=39 varlink +pbr [devel] fixtures pbr tox bandit + +[test] +flake8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/requirements.txt new/podman-1.6.0/requirements.txt --- old/podman-0.12.0/requirements.txt 2019-05-02 00:34:27.000000000 +0200 +++ new/podman-1.6.0/requirements.txt 2019-10-11 21:14:58.000000000 +0200 @@ -2,3 +2,4 @@ python-dateutil setuptools>=39 varlink +pbr diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/setup.cfg new/podman-1.6.0/setup.cfg --- old/podman-0.12.0/setup.cfg 2019-07-01 20:47:26.000000000 +0200 +++ new/podman-1.6.0/setup.cfg 2019-10-11 21:15:55.000000000 +0200 @@ -1,25 +1,31 @@ [metadata] name = podman home-page = https://github.com/containers/python-podman -project_urls = - Bug Tracker = https://github.com/containers/python-podman/issues - Source Code = https://github.com/containers/python-podman summary = A library to interact with a Podman server -description_file = README.md -description_content_type = text/markdown +description-file = + README.md + ChangeLog + AUTHORS author = Jhon Honce +long_description_content_type = text/markdown author_email = [email protected] license = Apache Software License +project_urls = + Bug Tracker = https://github.com/containers/python-podman/issues + Source Code = https://github.com/containers/python-podman classifier = Development Status :: 3 - Alpha Intended Audience :: Developers License :: OSI Approved :: Apache Software License Programming Language :: Python :: 3.4 + Programming Language :: Python :: 3.5 + Programming Language :: Python :: 3.6 + Programming Language :: Python :: 3.7 Topic :: Software Development -keywords = - varlink - libpod - podman +keywords = varlink, libpod, podman +requires-dist = + setuptools + wheel [files] packages = @@ -32,7 +38,7 @@ tox bandit -[wheel] +[bdist_wheel] universal = 1 [egg_info] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/test-requirements.txt new/podman-1.6.0/test-requirements.txt --- old/podman-0.12.0/test-requirements.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/podman-1.6.0/test-requirements.txt 2019-10-11 21:14:58.000000000 +0200 @@ -0,0 +1,7 @@ +# Put your test dependencies here. +# The order of packages is significant, +# because pip processes them in the order +# of appearance. Changing the order has +# an impact on the overall integration +# process, which may cause wedges in the CI later. +flake8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/tests/libs/test_pod.py new/podman-1.6.0/tests/libs/test_pod.py --- old/podman-0.12.0/tests/libs/test_pod.py 1970-01-01 01:00:00.000000000 +0100 +++ new/podman-1.6.0/tests/libs/test_pod.py 2019-10-11 21:14:58.000000000 +0200 @@ -0,0 +1,87 @@ +import unittest +from varlink import mock +import varlink + +import podman +from podman.libs.pods import Pod + + +pod_id_1 = "135d71b9495f7c3967f536edad57750bfdb569336cd107d8aabab45565ffcfb6" +short_pod_id_1 = "135d71b9495f" +pod_id_2 = "49a5cce72093a5ca47c6de86f10ad7bb36391e2d89cef765f807e460865a0ec6" +short_pod_id_2 = "49a5cce72093" +pods = { + short_pod_id_1: pod_id_1, + short_pod_id_2: pod_id_2, +} + +types = """ +type ListPodData ( + id: string, + name: string, + createdat: string, + cgroup: string, + status: string, + labels: [string]string, + numberofcontainers: string, + containersinfo: []ListPodContainerInfo +) + +type ListPodContainerInfo ( + name: string, + id: string, + status: string +) +""" + + +class ServicePod(): + + def StartPod(self, name: str) -> str: + """return pod""" + return { + "pod": "135d71b9495f7c3967f536edad57750bfdb569336cd107d8aabab45565ffcfb6" + } + + def GetPod(self, name: str) -> str: + """return pod: ListPodData""" + return { + "pod": { + "cgroup": "machine.slice", + "containersinfo": [ + { + "id": "1840835294cf076a822e4e12ba4152411f131bd869e7f6a4e8b16df9b0ea5c7f", + "name": "1840835294cf-infra", + "status": "running" + }, + { + "id": "49a5cce72093a5ca47c6de86f10ad7bb36391e2d89cef765f807e460865a0ec6", + "name": "upbeat_murdock", + "status": "running" + } + ], + "createdat": "2018-12-07 13:10:15.014139258 -0600 CST", + "id": "135d71b9495f7c3967f536edad57750bfdb569336cd107d8aabab45565ffcfb6", + "name": "foobar", + "numberofcontainers": "2", + "status": "Running" + } + } + + def GetVersion(self) -> str: + """return version""" + return {"version": "testing"} + + +class TestPod(unittest.TestCase): + + @mock.mockedservice( + fake_service=ServicePod, + fake_types=types, + name='io.podman', + address='unix:@podmantests' + ) + def test_start(self): + client = podman.Client(uri="unix:@podmantests") + pod = Pod(client._client, short_pod_id_1, {"foo": "bar"}) + self.assertEqual(pod.start()["numberofcontainers"], "2") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-0.12.0/tox.ini new/podman-1.6.0/tox.ini --- old/podman-0.12.0/tox.ini 2019-05-02 00:34:27.000000000 +0200 +++ new/podman-1.6.0/tox.ini 2019-10-11 21:14:58.000000000 +0200 @@ -1,8 +1,16 @@ [tox] -envlist = py34,py35,py36 +envlist = py{34,35,36,37},pep8 skipdist = True [testenv] -deps=-rrequirements.txt +usedevelop = True +install_command = pip install {opts} {packages} +deps = + -r{toxinidir}/test-requirements.txt + -r{toxinidir}/requirements.txt whitelist_externals = bash -commands=bash test/test_runner.sh +commands=python -m unittest discover tests/ + +[testenv:pep8] +basepython = python3 +commands = flake8 {posargs}
