275
278
return final_list
278
def _set_rhel_networking(network_details=[]):
281
def _set_rhel_networking(network_details=None):
282
network_details = network_details or []
279
283
all_dns_servers = []
280
284
for network_detail in network_details:
281
285
mac_address, ip_address, subnet_mask, gateway, broadcast,\
315
319
_execute(['/sbin/service', 'network', 'restart'])
322
def _set_ubuntu_networking(network_details=None):
323
network_details = network_details or []
324
""" Set IPv4 network settings for Ubuntu """
326
for network_detail in network_details:
327
mac_address, ip_address, subnet_mask, gateway, broadcast,\
328
dns_servers = network_detail
329
all_dns_servers.extend(dns_servers)
330
adapter_name, current_ip_address = \
331
_get_linux_adapter_name_and_ip_address(mac_address)
333
if adapter_name and not ip_address == current_ip_address:
334
interface_file_name = \
335
'/etc/network/interfaces'
337
os.remove(interface_file_name)
339
_execute(['touch', interface_file_name])
340
interface_file = open(interface_file_name, 'w')
341
interface_file.write('\nauto %s' % adapter_name)
342
interface_file.write('\niface %s inet static' % adapter_name)
343
interface_file.write('\nbroadcast %s' % broadcast)
344
interface_file.write('\ngateway %s' % gateway)
345
interface_file.write('\nnetmask %s' % subnet_mask)
346
interface_file.write('\naddress %s' % ip_address)
347
interface_file.close()
349
dns_file_name = "/etc/resolv.conf"
350
os.remove(dns_file_name)
351
_execute(['touch', dns_file_name])
352
dns_file = open(dns_file_name, 'w')
353
dns_file.write("; generated by OpenStack guest tools")
354
unique_entries = _filter_duplicates(all_dns_servers)
355
for dns_server in unique_entries:
356
dns_file.write("\nnameserver %s" % dns_server)
358
print "\nRestarting networking....\n"
359
_execute(['/etc/init.d/networking', 'restart'])
318
362
def _linux_set_networking():
319
363
"""Set IP address for the Linux VM."""
320
364
vmware_tools_bin = None
330
374
cmd = [vmware_tools_bin, '--cmd', 'machine.id.get']
331
375
network_details = _parse_network_details(_execute(cmd,
332
376
check_exit_code=False))
333
# TODO(sateesh): For other distros like ubuntu, suse, debian, BSD, etc.
334
_set_rhel_networking(network_details)
377
# TODO(sateesh): For other distros like suse, debian, BSD, etc.
378
if(platform.dist()[0] == 'Ubuntu'):
379
_set_ubuntu_networking(network_details)
380
elif (platform.dist()[0] == 'redhat'):
381
_set_rhel_networking(network_details)
383
logging.warn(_("Distro '%s' not supported") % platform.dist()[0])
336
385
logging.warn(_("VMware Tools is not installed"))