Hello community,

here is the log from the commit of package cloud-init for openSUSE:Factory 
checked in at 2015-02-27 10:59:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cloud-init (Old)
 and      /work/SRC/openSUSE:Factory/.cloud-init.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cloud-init"

Changes:
--------
--- /work/SRC/openSUSE:Factory/cloud-init/cloud-init.changes    2015-02-13 
08:35:23.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.cloud-init.new/cloud-init.changes       
2015-02-27 10:59:07.000000000 +0100
@@ -1,0 +2,9 @@
+Tue Feb 24 15:52:13 UTC 2015 - [email protected]
+
+- Fix (bnc#919305 & bnc#918952)
+  - Properly handle persistent network device names for OpenNebula 
+    + add dataSourceOpenNebula.patch
+  - Properly set up network mode if interface config file 
+    + modified suseIntegratedHandler.patch
+
+-------------------------------------------------------------------

New:
----
  dataSourceOpenNebula.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cloud-init.spec ++++++
--- /var/tmp/diff_new_pack.C4SEMd/_old  2015-02-27 10:59:08.000000000 +0100
+++ /var/tmp/diff_new_pack.C4SEMd/_new  2015-02-27 10:59:08.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package cloud-init
 #
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -40,6 +40,7 @@
 Patch8:         cloudinit-datasources.patch
 Patch9:         cloud-init-no-dmidecode-on-ppc64.patch
 Patch10:        cloud-init-no-user-lock-if-already-locked.patch
+Patch11:        dataSourceOpenNebula.patch
 BuildRequires:  fdupes
 BuildRequires:  filesystem
 BuildRequires:  python-devel
@@ -133,6 +134,7 @@
 %patch8 -p1
 %patch9 -p1
 %patch10 -p1
+%patch11 -p2
 
 %if 0%{?suse_version} <= 1130
 # disable ecdsa for SLE 11 (not available)

++++++ dataSourceOpenNebula.patch ++++++
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
++++++ suseIntegratedHandler.patch ++++++
--- /var/tmp/diff_new_pack.C4SEMd/_old  2015-02-27 10:59:08.000000000 +0100
+++ /var/tmp/diff_new_pack.C4SEMd/_new  2015-02-27 10:59:08.000000000 +0100
@@ -1,6 +1,6 @@
 --- /dev/null
 +++ cloudinit/distros/opensuse.py
-@@ -0,0 +1,210 @@
+@@ -0,0 +1,209 @@
 +# vi: ts=4 expandtab
 +#
 +#    Copyright (C) 2014 SUSE LLC
@@ -176,8 +176,8 @@
 +        dev_names = entries.keys()
 +        for (dev, info) in entries.iteritems():
 +            net_fn = self.network_script_tpl % (dev)
-+            mode = info.get('auto')
-+            if mode and mode.lower() == 'true':
++            mode = None
++            if info.get('auto', None):
 +                mode = 'auto'
 +            else:
 +                mode = 'manual'
@@ -192,7 +192,6 @@
 +                'USERCONTROL': 'no'
 +            }
 +            if dev != 'lo':
-+                net_cfg['ETHERDEVICE'] = dev
 +                net_cfg['ETHTOOL_OPTIONS'] = ''
 +            else:
 +                net_cfg['FIREWALL'] = 'no'

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to