#!/usr/bin/python # -*- coding: utf-8 -*- """ Show network tree @author: unman """ from qubes.qubes import QubesVmCollection qvm_collection = QubesVmCollection() qvm_collection.lock_db_for_reading() qvm_collection.load() qvm_collection.unlock_db() qvm_collection.pop(0) def tree(netvm, padding): names={} padding = padding + ' ' connected = netvm.connected_vms for i in connected: names[i] = connected[i].name for name in sorted(names.values()): vm = qvm_collection.get_qid_by_name(name) if qvm_collection[vm].is_running(): vm_name = qvm_collection[vm].name + '* ' else: vm_name = qvm_collection[vm].name if qvm_collection[vm].is_template(): print padding,'|->',vm_name,'(Tpl)' else: print padding,'|->',vm_name if qvm_collection[vm].is_netvm() : tree(qvm_collection[vm], padding) padding='' for vm in qvm_collection: if qvm_collection[vm].is_netvm() and not qvm_collection[vm].netvm : print qvm_collection[vm].name tree(qvm_collection[vm], padding)