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
This commit is contained in:
baude
2018-04-23 13:32:41 -05:00
committed by Atomic Bot
parent 0ccfd7dc20
commit 39a7a773a6
55 changed files with 1576 additions and 997 deletions

View File

@ -0,0 +1,4 @@
#__version__ = version
__title__ = 'libpod'

View File

@ -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)

View File

@ -0,0 +1,8 @@
class Containers(object):
def __init__(self, client):
self.client = client
def List(self):
pass

View File

@ -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()

View File

@ -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()