mirror of
https://github.com/xcat2/confluent.git
synced 2024-11-29 13:00:03 +00:00
50c150f4b4
When installer boots, the autonic behavior it tries is discarded by default. Explicitly preserve the autonic behavior into the install phase and the installed system.
47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
#!/usr/bin/python
|
|
import re
|
|
import subprocess
|
|
|
|
uplinkmatch = re.compile('^\s*Uplinks:\s*(.*)')
|
|
nodename = None
|
|
for inf in open('/etc/confluent/confluent.info', 'r').read().split('\n'):
|
|
if inf.startswith('NODENAME: '):
|
|
nodename = inf.replace('NODENAME: ', '')
|
|
break
|
|
|
|
deploycfg = open('/etc/confluent/confluent.deploycfg', 'r').read().split('\n')
|
|
cfg = {}
|
|
nslist = False
|
|
nameservers = []
|
|
for line in deploycfg:
|
|
kv = line.split(': ')
|
|
if not kv[0]:
|
|
continue
|
|
if len(kv) == 2:
|
|
cfg[kv[0]] = kv[1]
|
|
if kv[0] == 'nameservers:':
|
|
nslist = True
|
|
continue
|
|
if nslist and kv[0].startswith('- '):
|
|
nameservers.append(kv[0].split(' ', 1)[1])
|
|
else:
|
|
nslist=False
|
|
cfg['nameservers'] = ','.join(nameservers)
|
|
vswinfo = subprocess.check_output(['localcli', 'network', 'vswitch', 'standard', 'list']).decode('utf8')
|
|
vmnic = None
|
|
for info in vswinfo.split('\n'):
|
|
upinfo = uplinkmatch.match(info)
|
|
if upinfo:
|
|
vmnic = upinfo.group(1)
|
|
netline = 'network --hostname={0} --bootproto={1}'.format(nodename, cfg['ipv4_method'])
|
|
if vmnic:
|
|
netline += ' --device={0}'.format(vmnic)
|
|
if cfg['ipv4_method'] == 'static':
|
|
netline += ' --ip={0} --netmask={1}'.format(cfg['ipv4_address'], cfg['ipv4_netmask'])
|
|
if cfg.get('ipv4_gateway', 'null') not in (None, '', 'null'):
|
|
netline += ' --gateway={0}'.format(cfg['ipv4_gateway'])
|
|
if cfg['nameservers']:
|
|
netline += ' --nameserver={0}'.format(cfg['nameservers'])
|
|
print(netline)
|
|
|