Enol Fernández has proposed merging ~enolfc/cloud-init:bug-1716397 into cloud-init:master.
Requested reviews: cloud-init commiters (cloud-init-dev) For more details, see: https://code.launchpad.net/~enolfc/cloud-init/+git/cloud-init/+merge/330518 Fixes bug #1716397 -- Your team cloud-init commiters is requested to review the proposed merge of ~enolfc/cloud-init:bug-1716397 into cloud-init:master.
diff --git a/cloudinit/sources/DataSourceOpenNebula.py b/cloudinit/sources/DataSourceOpenNebula.py index 5fdac19..b6feb98 100644 --- a/cloudinit/sources/DataSourceOpenNebula.py +++ b/cloudinit/sources/DataSourceOpenNebula.py @@ -19,6 +19,7 @@ import string from cloudinit import log as logging from cloudinit import net +from cloudinit.net import eni from cloudinit import sources from cloudinit import util @@ -86,7 +87,7 @@ class DataSourceOpenNebula(sources.DataSource): return False self.seed = seed - self.network_eni = results.get("network_config") + self.network_eni = results.get("network-interfaces") self.metadata = md self.userdata_raw = results.get('userdata') return True @@ -99,6 +100,12 @@ class DataSourceOpenNebula(sources.DataSource): resolve_ip = False return sources.DataSource.get_hostname(self, fqdn, resolve_ip) + @property + def network_config(self): + if self.network_eni: + return eni.convert_eni_data(self.network_eni) + return None + class NonContextDiskDir(Exception): pass @@ -161,6 +168,13 @@ class OpenNebulaNetwork(object): else: return None + def mac2dev(self, mac): + for k in self.context: + m = re.match(r'(ETH\d+)_MAC$', k) + if self.context[k] == mac: + return m.groups()[0] + + def gen_conf(self): global_dns = [] if 'DNS' in self.context: @@ -174,22 +188,24 @@ class OpenNebulaNetwork(object): for mac, dev in self.ifaces.items(): ip_components = self.mac2ip(mac) + one_dev = self.mac2dev(mac) + conf.append('auto ' + dev) conf.append('iface ' + dev + ' inet static') - conf.append(' address ' + self.get_ip(dev, ip_components)) - conf.append(' network ' + self.get_network(dev, ip_components)) - conf.append(' netmask ' + self.get_mask(dev)) + conf.append(' address ' + self.get_ip(one_dev, ip_components)) + conf.append(' network ' + self.get_network(one_dev, ip_components)) + conf.append(' netmask ' + self.get_mask(one_dev)) - gateway = self.get_gateway(dev) + gateway = self.get_gateway(one_dev) if gateway: conf.append(' gateway ' + gateway) - domain = self.get_domain(dev) + domain = self.get_domain(one_dev) if domain: conf.append(' dns-search ' + domain) # add global DNS servers to all interfaces - dns = self.get_dns(dev) + dns = self.get_dns(one_dev) if global_dns or dns: all_dns = global_dns if dns:
_______________________________________________ Mailing list: https://launchpad.net/~cloud-init-dev Post to : cloud-init-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~cloud-init-dev More help : https://help.launchpad.net/ListHelp