manager/qubesmanager/qvm_net.py
Marta Marczykowska-Górecka fb3dc6ecf7
update qubesmanager to compile under python3.
note: qvm-net.py has changed location to a weird one.
2017-06-25 17:53:23 +02:00

40 lines
1.1 KiB
Python
Executable File

#!/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)