From 39a7a773a653176e294382bc6301275fd57aff6b Mon Sep 17 00:00:00 2001 From: baude Date: Mon, 23 Apr 2018 13:32:41 -0500 Subject: 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 Closes: #669 Approved by: baude --- contrib/libpodpy/__init__.py | 4 ++++ contrib/libpodpy/client.py | 45 ++++++++++++++++++++++++++++++++++++++++++ contrib/libpodpy/containers.py | 8 ++++++++ contrib/libpodpy/images.py | 15 ++++++++++++++ contrib/libpodpy/system.py | 10 ++++++++++ 5 files changed, 82 insertions(+) create mode 100644 contrib/libpodpy/__init__.py create mode 100644 contrib/libpodpy/client.py create mode 100644 contrib/libpodpy/containers.py create mode 100644 contrib/libpodpy/images.py create mode 100644 contrib/libpodpy/system.py (limited to 'contrib') 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() -- cgit v1.2.3-54-g00ecf