diff --git a/cloudcontrol/node/hypervisor/domains/vm_tags.py b/cloudcontrol/node/hypervisor/domains/vm_tags.py index 0d8b09cffc408b5756b44bed5d2fcaebc3f3a569..2bb7effa47925b7c57baa03a928223e366ccdfa8 100644 --- a/cloudcontrol/node/hypervisor/domains/vm_tags.py +++ b/cloudcontrol/node/hypervisor/domains/vm_tags.py @@ -15,6 +15,7 @@ import logging +import itertools from functools import wraps from xml.etree import cElementTree as et from StringIO import StringIO @@ -197,6 +198,15 @@ def nic(dom): return u' '.join(map(str, xrange(len(dom.nics)))) or None +@ttl(10) +@refresh(10) +@_vir_tag +def nic_vlans(dom): + """VM network interfaces.""" + vlans = set(itertools.chain(*[x.vlans for x in dom.nics])) + return u' '.join(str(x) for x in sorted(vlans)) or None + + @refresh(10) @_vir_tag def autostart(dom):