Skip to content
vm_tags.py 1.44 KiB
Newer Older
Anael Beutot's avatar
Anael Beutot committed
from xml.etree import cElementTree as et
from StringIO import StringIO


def uuid(dom):
    """Unique identifier of the domain."""
    return dom.uuid


def status(dom):
    return dom.state
Anael Beutot's avatar
Anael Beutot committed
status.ttl = 5
Anael Beutot's avatar
Anael Beutot committed


def hv(dom):
    #FIXME: what shoud be the value of this tag ?
    return dom.hypervisor.name


def htype(dom):
    return dom.hypervisor.type


def arch(dom):
    """VM CPU architecture."""
    try:
        return dict(i686='x86', x86_64='x64')[et.ElementTree().parse(
            StringIO(dom.lv_dom.XMLDesc(0))).find('os/type').get('arch')]
    except Exception:
        logger.exception('Error while get Architecture tag')


def h():
    pass


def cpu(dom):
    """Number of CPU of the VM."""
    return dom.lv_dom.info()[3]


def cpuuse():
    pass
Anael Beutot's avatar
Anael Beutot committed
cpuuse.ttl = 10
Anael Beutot's avatar
Anael Beutot committed


def mem(dom):
    """Memory currently allocated."""
    return dom.lv_dom.info()[2] * 1024


def memmax(dom):
    """Maximum memory allocation."""
    return dom.lv_dom.info()[1] * 1024


def vncport(dom):
    """VNC port for the VM console access."""
    try:
        return et.ElementTree().parse(
            StringIO(dom.lv_dom.XMLDesc(0))
        ).find('devices/graphics').get('port')
    except Exception:
        logger.exception('VNCPort')


def disk(dom):
    """Get backend disks."""
Anael Beutot's avatar
Anael Beutot committed
    return u' '.join(map(str, xrange(len(dom.disks)))) or None
Anael Beutot's avatar
Anael Beutot committed
disk.ttl = 10
Anael Beutot's avatar
Anael Beutot committed
def nic(dom):
    """VM network interfaces."""
    return u' '.join(map(str, xrange(len(dom.nics)))) or None
Anael Beutot's avatar
Anael Beutot committed
disk.nic = 10