MCPcopy Index your code
hub / github.com/retspen/webvirtcloud / wvmNetworks

Class wvmNetworks

vrtManager/network.py:20–68  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

18
19
20class wvmNetworks(wvmConnect):
21 def get_networks_info(self):
22 get_networks = self.get_networks()
23 networks = []
24 for network in get_networks:
25 net = self.get_network(network)
26 net_status = net.isActive()
27 net_bridge = net.bridgeName()
28 net_forwd = util.get_xml_path(net.XMLDesc(0), "/network/forward/@mode")
29 networks.append({'name': network, 'status': net_status,
30 'device': net_bridge, 'forward': net_forwd})
31 return networks
32
33 def define_network(self, xml):
34 self.wvm.networkDefineXML(xml)
35
36 def create_network(self, name, forward, gateway, mask, dhcp, bridge, openvswitch, fixed=False):
37 xml = """
38 <network>
39 <name>%s</name>""" % name
40 if forward in ['nat', 'route', 'bridge']:
41 xml += """<forward mode='%s'/>""" % forward
42 xml += """<bridge """
43 if forward in ['nat', 'route', 'none']:
44 xml += """stp='on' delay='0'"""
45 if forward == 'bridge':
46 xml += """name='%s'""" % bridge
47 xml += """/>"""
48 if openvswitch is True:
49 xml += """<virtualport type='openvswitch'/>"""
50 if forward != 'bridge':
51 xml += """
52 <ip address='%s' netmask='%s'>""" % (gateway, mask)
53 if dhcp:
54 xml += """<dhcp>
55 <range start='%s' end='%s' />""" % (dhcp[0], dhcp[1])
56 if fixed:
57 fist_oct = int(dhcp[0].strip().split('.')[3])
58 last_oct = int(dhcp[1].strip().split('.')[3])
59 for ip in range(fist_oct, last_oct + 1):
60 xml += """<host mac='%s' ip='%s.%s' />""" % (util.randomMAC(), gateway[:-2], ip)
61 xml += """</dhcp>"""
62
63 xml += """</ip>"""
64 xml += """</network>"""
65 self.define_network(xml)
66 net = self.get_network(name)
67 net.create()
68 net.setAutostart(1)
69
70
71class wvmNetwork(wvmConnect):

Callers 1

networksFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected