Skip to content

Latest commit

 

History

History
65 lines (44 loc) · 1.43 KB

README.md

File metadata and controls

65 lines (44 loc) · 1.43 KB

pylxc

A simple python wrapper on LXC commands

Note: This currently wraps lxc-* command line, probably will be converted to wrap liblxc instead using Cython or Swig

Installation

pip install pylxc

Usage

You can query current containers using

import lxc
lxc.all_as_list()
>> ['Container1', 'Container2', 'Container3']
lxc.all_as_dict()
>> {'Running': ['Container1']
    'Stopped': ['Container2', 'Container3']
   }

to get the running or stopped list

import lxc
lxc.running()
>> ['Container1']
lxc.stopped()
>> ['Container2', 'Container3']

Check if a container exists

import lxc
lxc.exists("Container1")

You can also get notified when a certain container reaches a given state(s) asynchronously

import lxc
def myCallback():
    print "Hey, The Container is Running!"

lxc.notify("Container2", "RUNNING", myCallback)
lxc.notify("Container1", "RUNNING|STOPPED", myCallback)

You can also start the LXC Monitor to keep getting updates about certain container or a set of containers

import lxc
def myCallback(state):
    print "The state is now %s" % state

lxc.monitor("Container1", myCallback)
lxc.monitor("Container2", myCallback)

to stop monitoring a certain container

import lxc
lxc.unmonitor("Container1")

to stop the whole LXC Monitor

import lxc
lxc.stop_monitor()