elif task[0] == 'new-ovsbridge':
print self.name, ": Creating compute OVS bridge"
self.create_ovs_bridge()
- break
elif task[0] == 'new-vxlan':
print self.name, ": Creating vxlan tunnel=" + task[1] + ", remote ip=" + task[2]
self.create_ovs_vxlan_tunnel(task[1], task[2])
- break
elif task[0] == 'del-ovsbridge':
print self.name, ": Deleting OVS bridge"
self.delete_ovs_bridge()
- break
elif task[0] == 'del-vxlan':
print self.name, ": Deleting vxlan " + task[1] + " tunnel"
self.delete_ovs_vxlan_tunnel(task[1])
- break
elif task[0] == 'create-ovs-bridge-port':
print self.name, ": Adding port ovim-" + task[1] + " to OVS bridge"
self.create_ovs_bridge_port(task[1])
elif task[0] == 'del-ovs-port':
+ print self.name, ": Delete bridge attached to ovs port vlan {} net {}".format(task[1], task[2])
self.delete_bridge_port_attached_to_ovs(task[1], task[2])
else:
print self.name, ": unknown task", task
self.tab()+'<apic/>' +\
self.tab()+'<pae/>'+ \
self.dec_tab() +'</features>'
- if windows_os or topo=="oneSocket":
- text += self.tab() + "<cpu mode='host-model'> <topology sockets='1' cores='%d' threads='1' /> </cpu>"% vcpus
+ if topo == "oneSocket:hyperthreading":
+ if vcpus % 2 != 0:
+ return -1, 'Cannot expose hyperthreading with an odd number of vcpus'
+ text += self.tab() + "<cpu mode='host-model'> <topology sockets='1' cores='%d' threads='2' /> </cpu>" % vcpus/2
+ elif windows_os or topo == "oneSocket":
+ text += self.tab() + "<cpu mode='host-model'> <topology sockets='1' cores='%d' threads='1' /> </cpu>" % vcpus
else:
text += self.tab() + "<cpu mode='host-model'></cpu>"
text += self.tab() + "<clock offset='utc'/>" +\
else:
return False
- def launch_dhcp_server(self, vlan, ip_range, netmask, dhcp_path):
+ def launch_dhcp_server(self, vlan, ip_range, netmask, dhcp_path, gateway):
"""
Generate a linux bridge and attache the port to a OVS bridge
:param self:
:param ip_range: IP dhcp range
:param netmask: network netmask
:param dhcp_path: dhcp conf file path that live in namespace side
+ :param gateway: Gateway address for dhcp net
:return: True if success
"""
if not content:
command = 'sudo ip netns exec ' + net_namespace + ' /usr/sbin/dnsmasq --strict-order --except-interface=lo ' \
'--interface=' + interface + ' --bind-interfaces --dhcp-hostsdir=' + dhcp_path + \
- ' --dhcp-range ' + dhcp_range + ' --pid-file=' + pid_file + ' --dhcp-leasefile=' + leases_path + ' --listen-address ' + ip_range[0]
+ ' --dhcp-range ' + dhcp_range + ' --pid-file=' + pid_file + ' --dhcp-leasefile=' + leases_path + \
+ ' --listen-address ' + gateway
print self.name, ': command:', command
(_, stdout, _) = self.ssh_conn.exec_command(command)