A python wrapper on LXC commands
Python
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lxc
.gitignore
AUTHORS
LICENSE
MANIFEST.in
README.md
distribute_setup.py
setup.py

README.md

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