diff options
author | baude <bbaude@redhat.com> | 2018-04-23 13:32:41 -0500 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2018-04-26 19:14:44 +0000 |
commit | 39a7a773a653176e294382bc6301275fd57aff6b (patch) | |
tree | 334db314ef5681bd6979e2be91dd39640f8e00ff /contrib/libpodpy | |
parent | 0ccfd7dc20c11bc2f9d646c98cc67fb399cd9013 (diff) | |
download | podman-39a7a773a653176e294382bc6301275fd57aff6b.tar.gz podman-39a7a773a653176e294382bc6301275fd57aff6b.tar.bz2 podman-39a7a773a653176e294382bc6301275fd57aff6b.zip |
varlink images
implement varlink image functions for working with libpod with the exception of a
couple due to incompletions on the libpod side of things (build).
also, created a first pass at a libpodpy package which will stand as a client to
working with libpod's varlink methods using python.
Signed-off-by: baude <bbaude@redhat.com>
Closes: #669
Approved by: baude
Diffstat (limited to 'contrib/libpodpy')
-rw-r--r-- | contrib/libpodpy/__init__.py | 4 | ||||
-rw-r--r-- | contrib/libpodpy/client.py | 45 | ||||
-rw-r--r-- | contrib/libpodpy/containers.py | 8 | ||||
-rw-r--r-- | contrib/libpodpy/images.py | 15 | ||||
-rw-r--r-- | contrib/libpodpy/system.py | 10 |
5 files changed, 82 insertions, 0 deletions
diff --git a/contrib/libpodpy/__init__.py b/contrib/libpodpy/__init__.py new file mode 100644 index 000000000..8c2caf670 --- /dev/null +++ b/contrib/libpodpy/__init__.py @@ -0,0 +1,4 @@ + + +#__version__ = version +__title__ = 'libpod'
\ No newline at end of file diff --git a/contrib/libpodpy/client.py b/contrib/libpodpy/client.py new file mode 100644 index 000000000..d9bac6dbb --- /dev/null +++ b/contrib/libpodpy/client.py @@ -0,0 +1,45 @@ + +from varlink import Client +from libpodpy.images import Images +from libpodpy.system import System +from libpodpy.containers import Containers + +class LibpodClient(object): + + + """ + A client for communicating with a Docker server. + + Example: + + >>> from libpodpy import client + >>> c = client.LibpodClient("unix:/run/podman/io.projectatomic.podman") + + Args: + Requires the varlink URI for libpod + """ + + def __init__(self, varlink_uri): + c = Client(address=varlink_uri) + self.conn = c.open("io.projectatomic.podman") + + @property + def images(self): + """ + An object for managing images through libpod + """ + return Images(self.conn) + + @property + def system(self): + """ + An object for system related calls through libpod + """ + return System(self.conn) + + @property + def containers(self): + """ + An object for managing containers through libpod + """ + return Containers(self.conn) diff --git a/contrib/libpodpy/containers.py b/contrib/libpodpy/containers.py new file mode 100644 index 000000000..921bf0491 --- /dev/null +++ b/contrib/libpodpy/containers.py @@ -0,0 +1,8 @@ + +class Containers(object): + + def __init__(self, client): + self.client = client + + def List(self): + pass
\ No newline at end of file diff --git a/contrib/libpodpy/images.py b/contrib/libpodpy/images.py new file mode 100644 index 000000000..f54736a21 --- /dev/null +++ b/contrib/libpodpy/images.py @@ -0,0 +1,15 @@ + +class Images(object): + """ + The Images class deals with image related functions for libpod. + """ + + def __init__(self, client): + self.client = client + + def List(self): + """ + Lists all images in the libpod image store + return: a list of ImageList objects + """ + return self.client.ListImages() diff --git a/contrib/libpodpy/system.py b/contrib/libpodpy/system.py new file mode 100644 index 000000000..563cc6566 --- /dev/null +++ b/contrib/libpodpy/system.py @@ -0,0 +1,10 @@ + +class System(object): + def __init__(self, client): + self.client = client + + def Ping(self): + return self.client.Ping() + + def Version(self): + return self.client.GetVersion() |