summaryrefslogtreecommitdiff
path: root/contrib/python/podman/libs/system.py
blob: c59867760410e349f92996bdf0395bdb829fe363 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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']