Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12:Update
cloud-init
dataSourceOpenNebula.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File dataSourceOpenNebula.patch of Package cloud-init
diff -Nurb suse/opensuse-13.2-orig/cloudinit/sources/DataSourceOpenNebula.py suse/opensuse-13.2-opennebula-patch/cloudinit/sources/DataSourceOpenNebula.py --- suse/opensuse-13.2-orig/cloudinit/sources/DataSourceOpenNebula.py 2015-02-21 18:33:37.148247653 +0200 +++ suse/opensuse-13.2-opennebula-patch/cloudinit/sources/DataSourceOpenNebula.py 2015-02-21 19:45:29.535835879 +0200 @@ -149,7 +149,7 @@ class OpenNebulaNetwork(object): REG_DEV_MAC = re.compile( - r'^\d+: (eth\d+):.*?link\/ether (..:..:..:..:..:..) ?', + r'^\d+: (\w+):.*?link\/\w+ (..:..:..:..:..:..) ?', re.MULTILINE | re.DOTALL) def __init__(self, ip, context): @@ -158,7 +158,11 @@ self.ifaces = self.get_ifaces() def get_ifaces(self): - return self.REG_DEV_MAC.findall(self.ip) + list = self.REG_DEV_MAC.findall(self.ip) + ifaces = dict() + for l in list: + ifaces[l[1]] = l[0] + return ifaces def mac2ip(self, mac): components = mac.split(':')[2:] @@ -206,6 +210,15 @@ else: return None + def get_context_interfaces(self): + + def device_mac(t): return re.match(r"ETH\d+_MAC", t) + + mac_vars = filter(device_mac, self.context.keys()) + + context_interfaces = [v.split('_')[0] for v in mac_vars] + return context_interfaces + def gen_conf(self): global_dns = [] if 'DNS' in self.context: @@ -216,27 +229,39 @@ conf.append('iface lo inet loopback') conf.append('') - for i in self.ifaces: - dev = i[0] - mac = i[1] + context_interfaces = self.get_context_interfaces() + + if len(context_interfaces): + try: + (out, _err) = util.subp(["systemctl", "stop", "NetworkManager"]) + (out, _err) = util.subp(["systemctl", "disable", "NetworkManager"]) + except util.ProcessExecutionError: + util.logexc(LOG, "Disable NetworkManager command failed") + + for interface in context_interfaces: + mac = self.context[interface+"_MAC"] + dev = self.ifaces.get(mac) + if dev is None: + continue + ip_components = self.mac2ip(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(interface, ip_components)) + conf.append(' network ' + self.get_network(interface, ip_components)) + conf.append(' netmask ' + self.get_mask(interface)) - gateway = self.get_gateway(dev) + gateway = self.get_gateway(interface) if gateway: conf.append(' gateway ' + gateway) - domain = self.get_domain(dev) + domain = self.get_domain(interface) if domain: conf.append(' dns-search ' + domain) # add global DNS servers to all interfaces - dns = self.get_dns(dev) + dns = self.get_dns(interface) if global_dns or dns: all_dns = global_dns if dns: @@ -404,8 +429,8 @@ if ssh_key_var: lines = context.get(ssh_key_var).splitlines() - results['metadata']['public-keys'] = [l for l in lines - if len(l) and not l.startswith("#")] + ssh_keys = [l for l in lines if len(l) and not l.startswith("#")] + results['metadata']['public-keys'] = ssh_keys # custom hostname -- try hostname or leave cloud-init # itself create hostname from IP address later
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor