diff options
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'] |