mirror of
https://github.com/containers/podman.git
synced 2025-06-28 14:29:04 +08:00
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:
4
contrib/libpodpy/__init__.py
Normal file
4
contrib/libpodpy/__init__.py
Normal file
@ -0,0 +1,4 @@
|
||||
|
||||
|
||||
#__version__ = version
|
||||
__title__ = 'libpod'
|
45
contrib/libpodpy/client.py
Normal file
45
contrib/libpodpy/client.py
Normal 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)
|
8
contrib/libpodpy/containers.py
Normal file
8
contrib/libpodpy/containers.py
Normal file
@ -0,0 +1,8 @@
|
||||
|
||||
class Containers(object):
|
||||
|
||||
def __init__(self, client):
|
||||
self.client = client
|
||||
|
||||
def List(self):
|
||||
pass
|
15
contrib/libpodpy/images.py
Normal file
15
contrib/libpodpy/images.py
Normal 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()
|
10
contrib/libpodpy/system.py
Normal file
10
contrib/libpodpy/system.py
Normal 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()
|
Reference in New Issue
Block a user