text: #!/usr/bin/env python
  # domstart - make sure a given domU is running, if not start it
  
  import libvirt
  import sys
  import os
  import libxml2
  import pdb
  
  # Parse the XML description of domU from FNAME
  # and return a tuple (name, xmldesc) where NAME
  # is the name of the domain, and xmldesc is the contetn of FNAME
  def read_domain(fname):
      fp = open(fname, "r")
      xmldesc = fp.read()
      fp.close()
  
      doc = libxml2.parseDoc(xmldesc)
      name = doc.xpathNewContext().xpathEval("/domain/name")[0].content
      return (name, xmldesc)
  
  def usage():
     print('Usage: %s domain.xml' % sys.argv[0])
     print('       Check that the domain described by DOMAIN.XML is running')
     print('       If the domain is not running, create it')
     print('       DOMAIN.XML must be a XML description of the domain')
     print('       in libvirt\'s XML format')
  
  if len(sys.argv) != 2:
      usage()
      sys.exit(2)
  
  (name, xmldesc) = read_domain(sys.argv[1])
  
  conn = libvirt.open(None)
  if conn is None:
      print('Failed to open connection to the hypervisor')
      sys.exit(1)
  
  try:
      dom = conn.lookupByName(name)
  except libvirt.libvirtError:
      print("Starting domain %s ... " % name)
      dom = conn.createLinux(xmldesc, 0)
      if dom is None:
          print("failed")
          sys.exit(1)
      else:
          print("done")
  