44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
"""Models for accessing details from varlink server."""
|
|
|
|
from __future__ import absolute_import
|
|
|
|
import collections
|
|
|
|
import pkg_resources
|
|
|
|
from . import cached_property
|
|
|
|
|
|
class System():
|
|
"""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()
|
|
|
|
client = '0.0.0'
|
|
try:
|
|
client = pkg_resources.get_distribution('podman').version
|
|
except Exception: # pylint: disable=broad-except
|
|
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.GetVersion()
|
|
return 'version' in response
|