freebsd: enable correct behavior on Ec2.
Take care of FreeBSD nic devicenames since they differ depending on the platform involved. Xen/KVM use different drivers, which results in different device names.
This commit is contained in:
commit
a21d8cec76
|
@ -106,14 +106,34 @@ class Distro(distros.Distro):
|
|||
val = None
|
||||
return val
|
||||
|
||||
# NOVA will inject something like eth0, rewrite that to use the
|
||||
# virtio-based BSD adapter.
|
||||
# NOVA will inject something like eth0, rewrite that to use the FreeBSD
|
||||
# adapter. Since this adapter is based on the used driver, we need to
|
||||
# figure out which interfaces are available. On KVM platforms this is
|
||||
# vtnet0, where Xen would use xn0.
|
||||
def getnetifname(self, dev):
|
||||
LOG.debug("Translating network interface %s", dev)
|
||||
if dev.startswith('lo'):
|
||||
return dev
|
||||
|
||||
n = re.search('\d+$', dev)
|
||||
return 'vtnet' + n.group(0)
|
||||
index = n.group(0)
|
||||
|
||||
(out, err) = util.subp(['ifconfig', '-a'])
|
||||
ifconfigoutput = [x for x in (out.strip()).splitlines() if len(x.split()) > 0]
|
||||
for line in ifconfigoutput:
|
||||
m = re.match('^\w+', line)
|
||||
if m:
|
||||
if m.group(0).startswith('lo'):
|
||||
continue
|
||||
# Just settle with the first non-lo adapter we find, since it's
|
||||
# rather unlikely there will be multiple nicdrivers involved.
|
||||
bsddev = m.group(0)
|
||||
break
|
||||
|
||||
# Replace the index with the one we're after.
|
||||
bsddev = re.sub('\d+$', index, bsddev)
|
||||
LOG.debug("Using network interface %s", bsddev)
|
||||
return bsddev
|
||||
|
||||
def _read_system_hostname(self):
|
||||
sys_hostname = self._read_hostname(filename=None)
|
||||
|
|
|
@ -5,7 +5,7 @@ syslog_fix_perms: root:wheel
|
|||
|
||||
# This should not be required, but leave it in place until the real cause of
|
||||
# not beeing able to find -any- datasources is resolved.
|
||||
datasource_list: ['ConfigDrive', 'OpenStack']
|
||||
datasource_list: ['ConfigDrive', 'OpenStack', 'Ec2']
|
||||
|
||||
# A set of users which may be applied and/or used by various modules
|
||||
# when a 'default' entry is found it will reference the 'default_user'
|
||||
|
|
Loading…
Reference in New Issue