from app import * import ipaddress from xml.dom import minidom def diff_net(min_dhcp,max_dhcp): ip1 = ipaddress.IPv4Address(min_dhcp) ip2 = ipaddress.IPv4Address(max_dhcp) nb_ip = int(ip2) - int(ip1) + 1 return nb_ip def get_int(net_name): network = conn.networkLookupByName(net_name) net_int = network.bridgeName() return net_int def create_vswitch_int(net_int): cmd="ovs-vsctl add-br "+net_int subprocess.call(cmd, shell=True) def delete_network(net_name,net_int): cmd = "ovs-vsctl del-br "+net_int subprocess.call(cmd, shell=True) network = conn.networkLookupByName(net_name) #Lapin network.destroy() network.undefine() cmd2="kill $(cat /run/dhypecp_"+net_int+".pid)" subprocess.call(cmd2, shell=True) cmd3="rm -f /run/dhypecp_"+net_int+".pid" subprocess.call(cmd3, shell=True) def create_network(net_name,net_int): create_vswitch_int(net_int) xml = f""" { net_name } """ conn.networkDefineXML(xml) net_use = conn.networkLookupByName(net_name) net_use.create() net_use.setAutostart(True) def list_network_VM(): net_tree = [] net_na = [] #Host Interfaces net_hard_int = conn.listInterfaces() #Virtual Interfaces net_list = conn.listAllNetworks() for net_name in net_list: if net_name.isActive(): net_sub_tree=[] net_sub_tree.append(net_name.name()) net_use = conn.networkLookupByName(net_name.name()) ports = net_use.listAllPorts() net_ports = [] for port in ports: raw_xml = port.XMLDesc() net_xml = minidom.parseString(raw_xml) net_element = net_xml.documentElement net_VM = net_element.getElementsByTagName("name")[0] net_ports.append(net_VM.firstChild.data) net_sub_tree.append(net_ports) net_tree.append(net_sub_tree) else: net_na.append(net_name.name()) return net_hard_int,net_tree,net_na