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)