X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-remote.git/blobdiff_plain/ccdd1009d00397d0f81fa9a95aa96faf448b9e94..affb298cb15db064910b5d8b8f919c2f6e94bf8e:/host/usr/sbin/invirt-listvms diff --git a/host/usr/sbin/invirt-listvms b/host/usr/sbin/invirt-listvms index 890931a..d71d6eb 100755 --- a/host/usr/sbin/invirt-listvms +++ b/host/usr/sbin/invirt-listvms @@ -17,7 +17,7 @@ def live_vms(): name, data = get_dom(int(domid)) except (xs.Error, TypeError): continue # went down since we started - if name.startswith('d_'): + if name is not None and name.startswith('d_'): name = name[2:] vms[name] = data return vms @@ -32,6 +32,16 @@ def get_dom(domid): data['vm'] = xsc.read('', '/local/domain/%d/vm' % domid) data['start_time'] = float(xsc.read('', '%s/start_time' % data['vm'])) data['uptime'] = time.time()-data['start_time'] + # CD or autoinstall, if we're using either + vbds = xsc.ls('', '/local/domain/%d/device/vbd' % domid) + for vbd in vbds: + dev = '/local/domain/%d/device/vbd/%s' % (domid, vbd) + dev_type = xsc.read('', '%s/device-type' % dev) + dev_params = xsc.read('', '%s/params' % xsc.read('', '%s/backend' % dev)) + if dev_type == 'cdrom': + data['cdrom'] = dev_params + elif dev_type == 'disk' and dev_params == '/dev/xenvg/s_install_hda': + data['autoinstall'] = True return name, data