diff options
author | Jhon Honce <jhonce@redhat.com> | 2018-05-14 18:01:08 -0700 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2018-05-16 14:01:10 +0000 |
commit | 1aaf8df5be32d755a3f72f9259c66c70fbf850d8 (patch) | |
tree | 6e573fc7ae988e36d6d94973cec238aee72feaad /contrib/python/podman/libs/system.py | |
parent | c7bc7580a6a9faf6a3159d6c17ff1dfb3710e318 (diff) | |
download | podman-1aaf8df5be32d755a3f72f9259c66c70fbf850d8.tar.gz podman-1aaf8df5be32d755a3f72f9259c66c70fbf850d8.tar.bz2 podman-1aaf8df5be32d755a3f72f9259c66c70fbf850d8.zip |
Refactor libpod python varlink bindings
- More pythonic
- Leverage context managers to help with socket leaks
- Add system unittest's
- Add image unittest's
- Add container unittest's
- Add models for system, containers and images, and their collections
- Add helper functions for datetime parsing/formatting
- GetInfo() implemented
- Add support for setuptools
- Update documentation
- Support for Python 3.4-3.6
Signed-off-by: Jhon Honce <jhonce@redhat.com>
Closes: #748
Approved by: baude
Diffstat (limited to 'contrib/python/podman/libs/system.py')
-rw-r--r-- | contrib/python/podman/libs/system.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/contrib/python/podman/libs/system.py b/contrib/python/podman/libs/system.py new file mode 100644 index 000000000..c59867760 --- /dev/null +++ b/contrib/python/podman/libs/system.py @@ -0,0 +1,40 @@ +"""Models for accessing details from varlink server.""" +import collections + +import pkg_resources + +from . import cached_property + + +class System(object): + """Model for accessing system resources.""" + + def __init__(self, client): + """Construct system model.""" + self._client = client + + @cached_property + def versions(self): + """Access versions.""" + with self._client() as podman: + vers = podman.GetVersion()['version'] + + client = '0.0.0' + try: + client = pkg_resources.get_distribution('podman').version + except Exception: + pass + vers['client_version'] = client + return collections.namedtuple('Version', vers.keys())(**vers) + + def info(self): + """Return podman info.""" + with self._client() as podman: + info = podman.GetInfo()['info'] + return collections.namedtuple('Info', info.keys())(**info) + + def ping(self): + """Return True if server awake.""" + with self._client() as podman: + response = podman.Ping() + return 'OK' == response['ping']['message'] |