** Description changed:

- When supplying a network config to cloud-init with MAC address values
- using Upper case letters, this will fail to match MAC address values
- returned from sysfs.  THe result is that cloud-init gives up on the
- renaming of the interface.
+ === Begin SRU Template ===
+ [Impact]
+ cloud-init takes network configuration input in a variety of formats.
+ It then applies that network configuration, including renaming devices
+ based on their mac address and provided name.
+ 
+ If the mac address provided contained upper case letters (hex values,
+ so A-F) then cloud-init would fail to rename the devices and show a
+ WARN message in /var/log/cloud-init.log.
+ 
+ The warn message would look like:
+   Failed to rename devices: [nic not present] Cannot rename 
+     mac=00:16:3E:FC:3D:65 to eth0, not available.
+ 
+ [Test Case]
+ The basic idea below is:
+  a.) launch an lxd instance with proposed version of cloud-init.
+  b.) inside instance, change the provided network config to use upper case
+      for mac addresses.
+  c.) clean the system and reboot.
+  d.) check no errors in /var/log/cloud-init.log
+ 
+ ## launch an instance.
+ $ release=xenial
+ $ ref=$release-proposed
+ $ lxc-proposed-snapshot --proposed --publish $release $ref
+ $ lxc launch $ref $name
+ $ lxc exec $name -- /bin/bash
+ 
+ 
+ ## inside
+ % read lower < /sys/class/net/eth0/address
+ % echo $lower
+ 00:16:3e:fc:3d:65
+ 
+ % upper=$(echo "$lower" | tr '[a-z]' '[A-Z]')
+ % sed -i.dist -e 's,\( *\)name: eth0,\1name: nic0\n\1mac_address: 
"'$upper'",' \
+      /var/lib/cloud/seed/nocloud-net/network-config
+ % ( cd /var/lib/cloud/seed/nocloud-net/ && diff -u network-config.dist 
network-config )
+ --- network-config.dist 2017-08-01 20:44:48.445568094 +0000
+ +++ network-config   2017-08-01 20:44:58.277456919 +0000
+ @@ -1,7 +1,8 @@
+  version: 1
+  config:
+      - type: physical
+ -      name: eth0
+ +      name: nic0
+ +      mac_address: "00:16:3E:5D:72:AE"
+        subnets:
+            - type: dhcp
+              control: auto
+ 
+ ## clean up skipping the 'seed' directory.
+ % ( cd /var/lib/cloud && for i in *; do [ "$i" = "seed" ] || rm -Rf $i; done )
+ % rm -Rf /var/log/cloud-init*
+ % reboot
+ 
+ ## back outside, wait a bit, then
+ 
+ % lxc exec $name -- /bin/bash
+ % grep WARN /var/log/cloud-init.log || echo "no warnings"
+ 
+ % ip addr show nic0
+ 90: nic0@if91: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state 
UP group default qlen 1000
+     link/ether 00:16:3e:5d:72:ae brd ff:ff:ff:ff:ff:ff link-netnsid 0
+     inet 10.75.205.253/24 brd 10.75.205.255 scope global nic0
+        valid_lft forever preferred_lft forever
+     inet6 fe80::216:3eff:fe5d:72ae/64 scope link 
+        valid_lft forever preferred_lft forever
+ 
+ [Regression Potential]
+ Regression potential here should be very low.  The fix was essentially to
+ be more liberal on matching mac addresses by using '.lower()' on both values.
+ 
+ [Other Info]
+ Upstream commit at
+   https://git.launchpad.net/cloud-init/commit/?id=c0060fe489
+ 
+ lxc-proposed-snapshot is
+   
https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot
+ It publishes an image to lxd with proposed enabled and cloud-init upgraded.
+ 
+ === End SRU Template ===
+ 
+ 
+ When supplying a network config to cloud-init with MAC address values using 
Upper case letters, this will fail to match MAC address values returned from 
sysfs.  THe result is that cloud-init gives up on the renaming of the interface.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1705147

Title:
  cloud-init interface renaming should apply .lower() to mac_address
  values to match sysfs entries

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1705147/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to