Merge ~chad.smith/cloud-init/+git/sru-info:sru-bug-updates into ~smoser/cloud-init/+git/sru-info:master

Proposed by Chad Smith
Status: Merged
Merged at revision: 966dda4288da922e85e27fdf88ff8029e3197fda
Proposed branch: ~chad.smith/cloud-init/+git/sru-info:sru-bug-updates
Merge into: ~smoser/cloud-init/+git/sru-info:master
Diff against target: 1185 lines (+1071/-0)
19 files modified
bugs/1686514.txt (+39/-0)
bugs/1692093.txt (+33/-0)
bugs/lp-1636531.txt (+37/-0)
bugs/lp-1644064.txt (+41/-0)
bugs/lp-1645644.txt (+42/-0)
bugs/lp-1673637.txt (+46/-0)
bugs/lp-1676908.txt (+42/-0)
bugs/lp-1681531.txt (+64/-0)
bugs/lp-1682160.txt (+34/-0)
bugs/lp-1684349.txt (+181/-0)
bugs/lp-1685810.txt (+40/-0)
bugs/lp-1685935.txt (+18/-0)
bugs/lp-1687485.txt (+24/-0)
bugs/lp-1689346.txt (+121/-0)
bugs/lp-1689944.txt (+136/-0)
bugs/lp-1691551.txt (+41/-0)
bugs/lp-1692093.txt (+78/-0)
bugs/lp-1692097.txt (+24/-0)
bugs/lp-1693582.txt (+30/-0)
Reviewer Review Type Date Requested Status
Scott Moser Pending
Review via email: mp+325017@code.launchpad.net

Description of the change

couple of additional SRU bugs from May 2017 SRU.

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/bugs/1686514.txt b/bugs/1686514.txt
2new file mode 100644
3index 0000000..2a6c74a
4--- /dev/null
5+++ b/bugs/1686514.txt
6@@ -0,0 +1,39 @@
7+http://pad.lv/1686514
8+https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1686514
9+
10+=== Begin SRU Template ===
11+[Impact]
12+VMs on MS Azure have an ephemeral disk attached to them. On first boot,
13+the disk has a empty ntfs formated filesystem. Cloud-init is expected
14+to notice that the empty ntfs filesystem should be reformatted with
15+a more linux-friendly ext4 filesystem. This function is working as
16+expected.
17+
18+However, the user can 'redeploy' a VM to a new azure host, or stop and
19+deallocate the vm for some time and then restart/reallocate the vm. After
20+that operation, a pristine ephemeral disk is attached. Cloud-init is
21+expected to re-format this pristine ephemeral disk, but clearly not
22+reformat a disk with user's data on it. On large (L32) size VMs, azure
23+presents a GPT formatted disk with 2 partitions where the second partition
24+is ntfs. Cloud-init currently does not consider disks with 2 partitions
25+to be re-formattable.
26+
27+[Test Case]
28+Test cases:
29+ 1. Deploy an L32(s) VM on Azure
30+ 2. Log in and ensure that the ephemeral disk is formatted and mounted to /mnt
31+ 3. Via the portal you can "Redeploy" the VM to a new Azure Host (or alternatively stop and deallocate the VM for some time, and then restart/reallocate the VM).
32+
33+Expected Results:
34+ - After reallocation we expect the ephemeral disk to be formatted and mounted to /mnt.
35+
36+Actual Results:
37+ - After reallocation /mnt is not mounted and there are errors in the cloud-init log.
38+
39+[Regression Potential]
40+
41+[Other Info]
42+Upstream commit at
43+ https://git.launchpad.net/cloud-init/commit/?id=XXXXXXXXXX
44+
45+=== End SRU Template ===
46diff --git a/bugs/1692093.txt b/bugs/1692093.txt
47new file mode 100644
48index 0000000..cfd0654
49--- /dev/null
50+++ b/bugs/1692093.txt
51@@ -0,0 +1,33 @@
52+http://pad.lv/1692093
53+https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1692093
54+
55+=== Begin SRU Template ===
56+[Impact]
57+VMs on MS Azure have an ephemeral disk attached to them.
58+On first boot, cloud-init properly notices the empty ntfs filesystem and
59+reformats it ext4.
60+
61+After deallocating the instance or moving to a new azure host,
62+the filesystem reformat is logged, but isn't actually performed because
63+the udev device creation may not have settled.
64+
65+[Test Case]
66+Test cases:
67+ 1. Deploy an instance VM on Azure
68+ 2. Log in and ensure that the ephemeral disk is formatted and mounted to /mnt
69+ 3. Via the portal you can "Redeploy" the VM to a new Azure Host (or alternatively stop and deallocate the VM for some time, and then restart/reallocate the VM).
70+
71+Expected Results:a
72+ - Check cloud-init.log expecting to see logs from cc_disk_setup about the mount.
73+ - After reallocation we expect the ephemeral disk to be formatted and mounted to /mnt.
74+
75+Actual Results:
76+ - After reallocation /mnt is not mounted and there are errors in the cloud-init log.
77+
78+[Regression Potential]
79+
80+[Other Info]
81+Upstream commit at
82+ https://git.launchpad.net/cloud-init/commit/?id=1815c6d801933c47a01f1a94a8e689824f6797b4
83+
84+=== End SRU Template ===
85diff --git a/bugs/lp-1636531.txt b/bugs/lp-1636531.txt
86new file mode 100644
87index 0000000..a374439
88--- /dev/null
89+++ b/bugs/lp-1636531.txt
90@@ -0,0 +1,37 @@
91+https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1636531
92+http://pad.lv/1636531
93+
94+=== Begin SRU Template ===
95+[Impact]
96+ Unit test updates to avoid leaking blkid calls from tests/unittests/test_datasource/test_altcloud.py.
97+
98+[Test Case]
99+
100+wget https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/plain/bin/lxc-proposed-snapshot
101+chmod 755 lxc-proposed-snapshot
102+
103+
104+# Create fake-blkid.sh
105+cat fake-blkid.sh
106+#!/bin/bash
107+echo "LEAKED BLKID CALL"
108+
109+name=proposed-test
110+for release in xenial yakkety zesty; do \
111+ ref=$release-proposed;
112+ lxc-proposed-snapshot --proposed --publish $release $ref;
113+ lxc init $ref $name;
114+ lxc start $name;
115+ sleep 10;
116+ lxc exec $name mv /sbin/blkid /sbin/blkid.orig;
117+ lxc file push fake-flkid.sh $name/sbin/blkid
118+ lxc exec $name git clone -b ubuntu/xenial https://git.launchpad.net/cloud-init
119+ tox -e py27 tests/unittests/test_datasource/test_altcloud.py | grep 'LEAKED BLKID';
120+done
121+
122+[Regression Potential]
123+None. Unit test changes only
124+
125+[Other Info]
126+
127+=== End SRU Template ===
128diff --git a/bugs/lp-1644064.txt b/bugs/lp-1644064.txt
129new file mode 100644
130index 0000000..5fb23fb
131--- /dev/null
132+++ b/bugs/lp-1644064.txt
133@@ -0,0 +1,41 @@
134+https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1644064
135+http://pad.lv/1644064
136+
137+=== Begin SRU Template ===
138+[Impact]
139+Existing security permissions on /etc/ssh/sshd_config file not honored.
140+
141+[Test Case]
142+if [ ! -f lxc-proposed-snapshot ]; then
143+ wget https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/plain/bin/lxc-proposed-snapshot
144+ chmod 755 lxc-proposed-snapshot
145+fi
146+
147+cat << EOF > config.yaml
148+#cloud-config
149+ntp:
150+ pools: [1.ntp.mypool]
151+ servers: [my.server.nonpool]
152+EOF
153+
154+for release in xenial yaketty zesty; do
155+ ref=$release-proposed;
156+ echo "$release START --------------";
157+ ./lxc-proposed-snapshot --proposed --install ntp --publish $release $ref;
158+ lxc init $ref test-$release;
159+ lxc config set test-$release user.user-data - < config.yaml
160+ lxc start test-$release;
161+ sleep 10
162+ # Should not see [0-3].ubuntu.pool.n
163+ lxc exec test-$release -- ntpq -p
164+ echo "$release DONE --------------";
165+done
166+
167+
168+[Regression Potential]
169+Minimal ntp service confguration could be stale if this breaks anything.
170+It is minimal regression potential as the fix only reorders the creation of /etc/ntp.conf prior to the package intall and adds a call to service ntp restart.
171+
172+[Other Info]
173+
174+=== End SRU Template ===
175diff --git a/bugs/lp-1645644.txt b/bugs/lp-1645644.txt
176new file mode 100644
177index 0000000..3ba10bf
178--- /dev/null
179+++ b/bugs/lp-1645644.txt
180@@ -0,0 +1,42 @@
181+
182+http://pad.lv/1645644
183+http://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1645644
184+
185+
186+=== Begin SRU Template ===
187+[Impact]
188+Existing security permissions on /etc/ssh/sshd_config file not honored.
189+
190+[Test Case]
191+if [ ! -f lxc-proposed-snapshot ]; then
192+  wget https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/plain/bin/lxc-proposed-snapshot
193+  chmod 755 lxc-proposed-snapshot
194+fi
195+
196+cat << EOF > config.yaml
197+#cloud-config
198+ntp:
199+  pools: [1.ntp.mypool]
200+  servers: [my.server.nonpool]
201+EOF
202+
203+for release in xenial yakkety zesty; do
204+        ref=$release-proposed;
205+        echo "$release START --------------";
206+        ./lxc-proposed-snapshot --proposed --install ntp --publish $release $ref;
207+        lxc init $ref test-$release;
208+        lxc config set test-$release user.user-data - < config.yaml
209+        lxc start test-$release;
210+        sleep 10
211+        # Should not see [0-3].ubuntu.pool.n
212+        lxc exec test-$release -- ntpq -p
213+        echo "$release DONE --------------";
214+done
215+
216+[Regression Potential]
217+Minimal ntp service confguration could be stale if this breaks anything.
218+It is minimal regression potential as the fix only reorders the creation of /etc/ntp.conf prior to the package intall and adds a call to service ntp restart.
219+
220+[Other Info]
221+
222+=== End SRU Template ===
223diff --git a/bugs/lp-1673637.txt b/bugs/lp-1673637.txt
224new file mode 100644
225index 0000000..e1cec15
226--- /dev/null
227+++ b/bugs/lp-1673637.txt
228@@ -0,0 +1,46 @@
229+http://pad.lv/1673637
230+https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1673637
231+
232+=== Begin cloud-init SRU Template ===
233+[Impact]
234+Softcloud user datasource is undetected when only openstack/latest config-drive is provided.
235+
236+[Test Case]
237+
238+For cloud-init, the easiest way to demonstrate this is to
239+create a lxc container and populate it with a '/config-drive' that only contains a openstack/latest path.
240+
241+wget https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/plain/bin/lxc-proposed-snapshot
242+chmod 755 lxc-proposed-snapshot
243+wget https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/plain/tools/make-configdrive-dir
244+chmod 755 make-configdrive-dir
245+name=test-proposed
246+
247+for release in xenial yaketty zesty; do
248+ ref=$release-proposed;
249+ ./lxc-proposed-snapshot --proposed --publish $release $ref;
250+ ./lxc init $ref $name;
251+
252+## populate a /config-drive with attached 'make-config-drive-dir'
253+## and push it to the container
254+
255+ d=$(mktemp -d)
256+ ./make-configdrive-dir "$d" "$name"
257+ rm -Rf "$d"
258+ lxc file pull $name/etc/cloud/cloud.cfg.d/90_dpkg.cfg - |
259+ sed 's/NoCloud, //' |
260+ lxc file push - $name/etc/cloud/cloud.cfg.d/90_dpkg.cfg;
261+
262+
263+ lxc start $name
264+ sleep 10
265+ lxc exec $name cp -r /config-drive /var/lib/cloud/seed/config_drive
266+ lxc exec $name rm -rf /var/lib/cloud/seed/config_drive/openstack/2015-10-15
267+ lxc exec $name sudo DEBUG_LEVEL=2 DI_LOG=stderr /usr/lib/cloud-init/ds-identify --force 2>&1 | grep latest
268+
269+
270+[Regression Potential]
271+
272+[Other Info]
273+
274+=== End cloud-init SRU Template ===
275diff --git a/bugs/lp-1676908.txt b/bugs/lp-1676908.txt
276new file mode 100644
277index 0000000..46b30a3
278--- /dev/null
279+++ b/bugs/lp-1676908.txt
280@@ -0,0 +1,42 @@
281+https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1676908
282+http://pad.lv/1676908
283+
284+=== Begin SRU Template ===
285+[Impact]
286+DigitalOcean instances are unable to bind nameserves to multiple interfaces.
287+
288+[Test Case]
289+
290+wget https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/plain/bin/lxc-proposed-snapshot
291+chmod 755 lxc-proposed-snapshot
292+
293+
294+# create config.yaml
295+cat config.yaml
296+#cloud-config
297+ssh_pwauth: true
298+
299+name=proposed-test
300+for release in xenial yakkety zesty; do \
301+ ref=$release-proposed;
302+ lxc-proposed-snapshot --proposed --publish $release $ref;
303+ lxc init $ref $name;
304+ lxc start $name;
305+ sleep 10;
306+ lxc file pull $name/etc/ssh/sshd_config .;
307+ chmod 600 sshd_config;
308+ lxc file push sshd_config $name/etc/ssh/sshd_config;
309+ lxc config set $name user.user-data - < config.yml;
310+ lxc start;
311+ sleep 10;
312+ lxc exec $name ls -ltr /etc/ssh/sshd_config; # should remain 600
313+ lxc stop $name;
314+ lxc delete $name;
315+done
316+
317+[Regression Potential]
318+Minimal as we are now honoring file permissions if an sshd_config file exists.
319+
320+[Other Info]
321+
322+=== End SRU Template ===
323diff --git a/bugs/lp-1681531.txt b/bugs/lp-1681531.txt
324new file mode 100644
325index 0000000..7ed04e7
326--- /dev/null
327+++ b/bugs/lp-1681531.txt
328@@ -0,0 +1,64 @@
329+http://pad.lv/1681531
330+https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1681531
331+
332+
333+[Impact]
334+The cloud-init datasource for DigitalOcean allows for multiple gateways on any NIC.
335+
336+On Ubuntu 16.04, this breaks networking.service. For 17.04 and later, Ubuntu _replaces_ the default gateway with the second gateway on 'ifup' after reboot.
337+
338+DigitalOcean is looking at changing the meta-data, however, this will result in another version of the meta-data JSON.
339+
340+[Regression Potential]
341+
342+Low. This change is scope to DigitalOcean only. DigitalOcean has tested this Datasource exhaustively.
343+
344+[TEST Cases]
345+- provision on DigitalOcean with a private IP
346+- reboot
347+- confirm that a single route exists in /etc/network/interfaces
348+
349+[LOGS]
350+
351+----------------------------------------------------------------------------------------------
352+From /var/log/cloud-init.log:
353+
354+2017-04-10 17:36:11,608 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'ens3', 'down'] with allowed return codes [0] (shell=False, capture=True)
355+2017-04-10 17:36:11,615 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'ens3', 'name', 'eth0'] with allowed return codes [0] (shell=False, capture=True)
356+2017-04-10 17:36:11,635 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'ens4', 'name', 'eth1'] with allowed return codes [0] (shell=False, capture=True)
357+2017-04-10 17:36:11,651 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'eth0', 'up'] with allowed return codes [0] (shell=False, capture=True)
358+2017-04-10 17:36:11,654 - stages.py[INFO]: Applying network configuration from ds bringup=False: {'version': 1, 'config': [{'name': 'eth0', 'subnets': [{'address': '138.197.88.85', 'netmask': '255.255.240.0', 'gateway': '138.197.80.1', 'type': 'static', 'control': 'auto'}, {'address': '2604:A880:0800:0010:0000:0000:2ECE:D001/64', 'gateway': '2604:A880:0800:0010:0000:0000:0000:0001', 'type': 'static', 'control': 'auto'}, {'address': '10.17.0.10', 'netmask': '255.255.0.0', 'type': 'static', 'control': 'auto'}], 'mac_address': 'ee:90:f2:c6:dc:db', 'type': 'physical'}, {'name': 'eth1', 'subnets': [{'address': '10.132.92.131', 'netmask': '255.255.0.0', 'gateway': '10.132.0.1', 'type': 'static', 'control': 'auto'}], 'mac_address': '1a:b6:7c:24:5e:cd', 'type': 'physical'}, {'address': ['2001:4860:4860::8844', '2001:4860:4860::8888', '8.8.8.8'], 'type': 'nameserver'}]}
359+2017-04-10 17:36:11,668 - util.py[DEBUG]: Writing to /etc/network/interfaces.d/50-cloud-init.cfg - wb: [420] 868 bytes
360+2017-04-10 17:36:11,669 - main.py[DEBUG]: [local] Exiting. datasource DataSourceDigitalOcean not in local mode.
361+2017-04-10 17:36:11,674 - util.py[DEBUG]: Reading from /proc/uptime (quiet=False)
362+
363+----------------------------------------------------------------------------------------------
364+From 'dmesg':
365+Apr 10 17:36:11 ubuntu systemd[1]: Started Initial cloud-init job (pre-networking).
366+Apr 10 17:36:12 ubuntu systemd[1]: Started LSB: AppArmor initialization.
367+Apr 10 17:36:12 ubuntu systemd[1]: Reached target Network (Pre).
368+Apr 10 17:36:12 ubuntu systemd[1]: Starting Raise network interfaces...
369+Apr 10 17:36:13 ubuntu ifup[1099]: Waiting for DAD... Done
370+Apr 10 17:36:13 ubuntu ifup[1099]: RTNETLINK answers: File exists
371+Apr 10 17:36:13 ubuntu ifup[1099]: Failed to bring up eth1.
372+
373+----------------------------------------------------------------------------------------------
374+$ sudo journalctl -xe -u networking
375+Apr 10 17:36:12 ubuntu systemd[1]: Starting Raise network interfaces...
376+-- Subject: Unit networking.service has begun start-up
377+-- Defined-By: systemd
378+-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
379+--
380+-- Unit networking.service has begun starting up.
381+Apr 10 17:36:13 ubuntu ifup[1099]: Waiting for DAD... Done
382+Apr 10 17:36:13 ubuntu ifup[1099]: RTNETLINK answers: File exists
383+Apr 10 17:36:13 ubuntu ifup[1099]: Failed to bring up eth1.
384+Apr 10 17:36:13 ubuntu systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
385+Apr 10 17:36:13 ubuntu systemd[1]: Failed to start Raise network interfaces.
386+-- Subject: Unit networking.service has failed
387+-- Defined-By: systemd
388+-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
389+--
390+-- Unit networking.service has failed.
391+--
392+
393diff --git a/bugs/lp-1682160.txt b/bugs/lp-1682160.txt
394new file mode 100644
395index 0000000..d794a45
396--- /dev/null
397+++ b/bugs/lp-1682160.txt
398@@ -0,0 +1,34 @@
399+https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1682160
400+http://pad.lv/1674766
401+
402+=== Begin SRU Template ===
403+[Impact]
404+update-grub-legacy-ec2 fails on system with missing /etc/fstab.
405+
406+[Test Case]
407+
408+Mimic missing /etc/fstab config using lxc-proposed-snapshot from
409+ https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot
410+
411+It publishes an image to lxd with proposed enabled and cloud-init upgraded.
412+
413+$ for release in xenial yakkety zesty; do
414+$ ref=$release-proposed
415+$ lxc-proposed-snapshot --proposed --publish $release $ref
416+$ lxc init $ref $name
417+$ lxc start $name
418+$ sleep 10
419+$ lxc exec $name apt install grub-legacy-ec2
420+$ lxc exec $name mv /etc/fstab /etc/fstab.orig
421+$ lxc exec $name dpkg-reconfigure grub-legacy-ec2
422+
423+# Ensure error message does not exist "This error is probably caused by an invalid /etc/fstab"
424+
425+[Regression Potential]
426+Low. oneliner in a script
427+
428+[Other Info]
429+Upstream commit:
430+ https://git.launchpad.net/cloud-init/commit/?id=fd9f36267541
431+
432+=== End SRU Template ===
433diff --git a/bugs/lp-1684349.txt b/bugs/lp-1684349.txt
434new file mode 100644
435index 0000000..718eb75
436--- /dev/null
437+++ b/bugs/lp-1684349.txt
438@@ -0,0 +1,181 @@
439+http://pad.lv/1684349
440+https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1684349
441+
442+
443+=== Begin SRU Template ===
444+[Impact]
445+On Openstack instances, when rendering sysconfig output, cloud-init
446+would stacktrace due to a TypeError.
447+This affects runtime only when rendering sysconfig networking, which
448+is what is used on CentOS and RedHat systems.
449+
450+[Test Case]
451+The basic idea below is:
452+ a.) launch an instance with proposed version of cloud-init.
453+ b.) inside instance, get cloud-init's network rendering tool from trunk
454+ c.) run the rendering tool against a config that failed before.
455+ d.) check rendered netplan config to verify it has the correct format.
456+     The failed output would have 'addresses' with a format like:
457+     172.19.1.34/255.255.255.0
458+     The expected output would be 'cidr' format:
459+     172.19.1.34/24
460+
461+## launch an instance.
462+$ release=xenial
463+$ ref=$release-proposed
464+$ lxc-proposed-snapshot --proposed --publish $release $ref
465+$ lxc launch $ref $name
466+$ lxc exec $name
467+
468+## get render tool
469+% wget https://git.launchpad.net/~cloud-init-dev/cloud-init/plain/tools/net-convert.py -O net-convert.py
470+
471+## write the network_data.json
472+% cat > simple-ipv6.yaml <<EOF
473+version: 1
474+config:
475+  - type: physical
476+    name: eth0
477+    subnets:
478+     - type: static
479+       address: "2000:192:168::5"
480+       netmask: 64
481+       routes:
482+        - netmask: 0
483+          gateway: "2000:192:168::1"
484+          network: "::"
485+EOF
486+
487+## run the converter
488+% ./net-convert.py --network-data=simple-ipv6.yaml \
489+     --kind=yaml --output-kind=eni --directory=out.d
490+
491+## check the output
492+% cat out.d/etc/network/interfaces
493+auto lo
494+iface lo inet loopback
495+
496+auto eth0
497+iface eth0 inet6 static
498+    address 2000:192:168::5
499+    netmask 64
500+    post-up route add -A inet6 default gw 2000:192:168::1 || true
501+    pre-down route del -A inet6 default gw 2000:192:168::1 || true
502+
503+## show the cloud-init versions
504+% dpkg-query --show cloud-init
505+...
506+
507+[Regression Potential]
508+The fix here was just to make a common networking method accept
509+a string input as intended rather than only an integer.
510+
511+The common code changes could shake out other failures in the networking
512+path.
513+
514+[Other Info]
515+Upstream commit at
516+  https://git.launchpad.net/cloud-init/commit/?id=16a7302f6a
517+
518+lxc-proposed-snapshot is
519+  https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot
520+It publishes an image to lxd with proposed enabled and cloud-init upgraded.
521+=== End SRU Template ===
522+
523+mask2cidr error with integer value - argument of type 'int' is not iterable
524+
525+~~~
526+def mask2cidr(mask):
527+    if ':' in str(mask):
528+        return ipv6mask2cidr(mask)
529+    elif '.' in mask:
530+        return ipv4mask2cidr(mask)
531+    else:
532+        return mask
533+~~~
534+
535+is not type safe. It tries to take into account that this can be a prefix (so it does not contain ':' not '.' and then return mask. The problem is that if mask is an integer, then this returns:
536+
537+~~~
538+Traceback (most recent call last):
539+  File "/usr/lib/python2.7/site-packages/cloudinit/cmd/main.py", line 513, in status_wrapper
540+    ret = functor(name, args)
541+  File "/usr/lib/python2.7/site-packages/cloudinit/cmd/main.py", line 269, in main_init
542+    init.apply_network_config(bring_up=bool(mode != sources.DSMODE_LOCAL))
543+  File "/usr/lib/python2.7/site-packages/cloudinit/stages.py", line 641, in apply_network_config
544+    return self.distro.apply_network_config(netcfg, bring_up=bring_up)
545+  File "/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.py", line 150, in apply_network_config
546+    dev_names = self._write_network_config(netconfig)
547+  File "/usr/lib/python2.7/site-packages/cloudinit/distros/rhel.py", line 59, in _write_network_config
548+    ns = parse_net_config_data(netconfig)
549+  File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 32, in parse_net_config_data
550+    nsi.parse_config(skip_broken=skip_broken)
551+  File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 205, in parse_config
552+    handler(self, command)
553+  File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 78, in decorator
554+    return func(self, command, *args, **kwargs)
555+  File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 239, in handle_physical
556+    subnet['netmask'] = mask2cidr(subnet['netmask'])
557+  File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 441, in mask2cidr
558+    elif '.' in mask:
559+~~~
560+
561+Made a modification to the code to troubleshoot this:
562+~~~
563+       # convert subnet ipv6 netmask to cidr as needed
564+        subnets = command.get('subnets')
565+        print subnets
566+        if subnets:
567+            for subnet in subnets:
568+                if subnet['type'] == 'static':
569+                    if 'netmask' in subnet and ':' in subnet['address']:
570+                        subnet['netmask'] = mask2cidr(subnet['netmask'])
571+                        for route in subnet.get('routes', []):
572+                            if 'netmask' in route:
573+                                route['netmask'] = mask2cidr(route['netmask'])
574+~~~
575+
576+This error can be hit on RHEL when running the following 2x (don't know why 2x):
577+
578+ rm -Rf /var/lib/cloud/data/* ; cloud-init --force init
579+
580+On the second run, this will be returned:
581+~~~
582+Traceback (most recent call last):
583+  File "/usr/lib/python2.7/site-packages/cloudinit/cmd/main.py", line 513, in status_wrapper
584+    ret = functor(name, args)
585+  File "/usr/lib/python2.7/site-packages/cloudinit/cmd/main.py", line 269, in main_init
586+    init.apply_network_config(bring_up=bool(mode != sources.DSMODE_LOCAL))
587+  File "/usr/lib/python2.7/site-packages/cloudinit/stages.py", line 641, in apply_network_config
588+    return self.distro.apply_network_config(netcfg, bring_up=bring_up)
589+  File "/usr/lib/python2.7/site-packages/cloudinit/distros/__init__.py", line 150, in apply_network_config
590+    dev_names = self._write_network_config(netconfig)
591+  File "/usr/lib/python2.7/site-packages/cloudinit/distros/rhel.py", line 59, in _write_network_config
592+    ns = parse_net_config_data(netconfig)
593+  File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 32, in parse_net_config_data
594+    nsi.parse_config(skip_broken=skip_broken)
595+  File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 205, in parse_config
596+    handler(self, command)
597+  File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 78, in decorator
598+    return func(self, command, *args, **kwargs)
599+  File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 239, in handle_physical
600+    subnet['netmask'] = mask2cidr(subnet['netmask'])
601+  File "/usr/lib/python2.7/site-packages/cloudinit/net/network_state.py", line 441, in mask2cidr
602+    elif '.' in mask:
603+TypeError: argument of type 'int' is not iterable
604+------------------------------------------------------------
605+[{u'routes': [{u'netmask': u'0.0.0.0', u'network': u'0.0.0.0', u'gateway': u'192.168.0.1'}], u'netmask': u'255.255.255.0', u'type': 'static', 'ipv4': True, 'address': u'192.168.0.11'}, {u'routes': [{u'netmask': 0, u'network': u'::', u'gateway': u'2000:192:168::1'}], u'netmask': 64, 'ipv6': True, u'type': 'static', 'address': u'2000:192:168::4'}]
606+~~~
607+
608+not the `u'netmask': 64` integer
609+
610+This can be fixed by changing the code to:
611+~~~
612+def mask2cidr(mask):
613+    if ':' in str(mask):
614+        return ipv6mask2cidr(mask)
615+    elif '.' in str(mask):
616+        return ipv4mask2cidr(mask)
617+    else:
618+        return mask
619+~~~
620diff --git a/bugs/lp-1685810.txt b/bugs/lp-1685810.txt
621new file mode 100644
622index 0000000..b15f7a3
623--- /dev/null
624+++ b/bugs/lp-1685810.txt
625@@ -0,0 +1,40 @@
626+http://pad.lv/1685810
627+https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1685810
628+
629+=== Begin SRU Template ===
630+[Impact]
631+Warning message for nova-lxd images in openstack clouds due to no valid datasource found.
632+
633+[Test Case]
634+# It downloads a cloud image of a given release, and then creates a -proposed
635+image with cloud-init upgraded.
636+wget https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/plain/bin/lxc-proposed-snapshot
637+chmod 755 get-proposed-image
638+
639+source novarc
640+
641+for release in xenial yakkety zesty do;
642+ ref=$release-proposed;
643+ lxc-proposed-snapshot --proposed --publish $release $ref;
644+ lxc image export $ref .;
645+ imagefile=`ls -tr *gz | tail -n 1`
646+ mkdir $ref;
647+ cd $ref;
648+ tar -zxvf ../$imagefile;
649+ cd rootfs;
650+ tar zcvf $ref.tar.gz *;
651+ #upload raw image to your cloud
652+ openstack image create --disk-format raw --container-format bare --file $ref.tar.gz testing/$ref.tar.gz;
653+ openstack server create --image testing/$ref.tar.gz --flavor=m1.tiny lxd-$release --key-name <your-key>;
654+ nova floating-ip-create;
655+ nova foating-ip-associate <server> <address>;
656+ ssh ubuntu@<address> 'sudo DEBUG_LEVEL=2 DI_LOG=stderr /usr/lib/cloud-init/ds-identify --force 2>&1 | grep Found'; # single datasource: OpenStack
657+done
658+
659+[Regression Potential]
660+Low as this only addresses the warning by correctly identifying the OpenStack cloud datasource.
661+
662+
663+[Other Info]
664+
665+=== End SRU Template ===
666diff --git a/bugs/lp-1685935.txt b/bugs/lp-1685935.txt
667new file mode 100644
668index 0000000..4d4fb50
669--- /dev/null
670+++ b/bugs/lp-1685935.txt
671@@ -0,0 +1,18 @@
672+
673+http://pad.lv/1685935
674+https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1685935
675+
676+
677+=== Begin SRU Template ===
678+[Impact]
679+Minor tweak to Makefile target make deb to announce missing devscripts package dependency in developer environments.
680+
681+[Test Case]
682+No test case as this Makefile and related bddeb script are developer tools and aren't part of cloud-init deb package.
683+
684+[Regression Potential]
685+None
686+[Other Info]
687+
688+=== End SRU Template ===
689+
690diff --git a/bugs/lp-1687485.txt b/bugs/lp-1687485.txt
691new file mode 100644
692index 0000000..4dd858f
693--- /dev/null
694+++ b/bugs/lp-1687485.txt
695@@ -0,0 +1,24 @@
696+http://pad.lv/1687485
697+https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1687485
698+
699+
700+=== Begin SRU Template ===
701+[Impact]
702+This code path is not applicable to Ubuntu.
703+The bug resolved properly detecting and raising ValueErrors if multiple default
704+gateways were defined in ipv4 or or ipv6 addresses for sysconfig
705+(Redhat/centos) format.
706+
707+[Test Case]
708+Launch an instance on lxd, make sure it has network.
709+
710+[Regression Potential]
711+Changes to network rendering could have negatively affected Ubuntu
712+the test above is valid to check that that didn't go horribly wrong.
713+
714+[Other Info]
715+Upstream commit:
716+ https://git.launchpad.net/cloud-init/commit/?id=dd03bb411c9a6f10854a3bbc3223b204c3d4d174
717+
718+=== End SRU Template ===
719+
720diff --git a/bugs/lp-1689346.txt b/bugs/lp-1689346.txt
721new file mode 100644
722index 0000000..1b191bb
723--- /dev/null
724+++ b/bugs/lp-1689346.txt
725@@ -0,0 +1,121 @@
726+http://pad.lv/1689346
727+https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1689346
728+
729+
730+=== Begin SRU Template ===
731+[Impact]
732+On Openstack instances, cloud-init incorrectly rendered netplan
733+configuration files. The result is that networking does not work
734+as expected.
735+
736+Note that this is not a default configuration on any Ubuntu provided images.
737+Default images use ifupdown (eni) rendering which did not have this issue.
738+
739+[Test Case]
740+The basic idea below is:
741+ a.) launch an instance with proposed version of cloud-init.
742+ b.) inside instance, get cloud-init's network rendering tool from trunk
743+ c.) run the rendering tool against a config that failed before.
744+ d.) check rendered netplan config to verify it has the correct format.
745+ The failed output would have 'addresses' with a format like:
746+ 172.19.1.34/255.255.255.0
747+ The expected output would be 'cidr' format:
748+ 172.19.1.34/24
749+
750+## launch an instance.
751+$ release=xenial
752+$ ref=$release-proposed
753+$ lxc-proposed-snapshot --proposed --publish $release $ref
754+$ lxc init $ref $name
755+
756+## get render tool
757+$ wget https://git.launchpad.net/~cloud-init-dev/cloud-init/plain/tools/net-convert.py -O net-convert.py
758+
759+## write the network_data.json
760+$ cat >network_data.json <<EOF
761+{
762+ "links": [
763+ {"ethernet_mac_address": "aa:ab:ac:ad:ae:00",
764+ "id": "tap1a", "type": "phy", "vif_id": "1a81968a"}
765+ ],
766+ "networks": [
767+ {"id": "network0", "ip_address": "172.19.1.34", "link": "tap1a",
768+ "netmask": "255.255.255.0", "network_id": "dacd568d", "type": "ipv4",
769+ "routes": [
770+ {"gateway": "172.19.3.254", "netmask": "0.0.0.0",
771+ "network": "0.0.0.0"}]}
772+ ],
773+ "services": [{"address": "172.19.0.12", "type": "dns"}]
774+}
775+EOF
776+
777+## run the converter
778+$ ./net-convert.py --network-data=network_data.json \
779+ --kind=network_data.json --output-kind=netplan \
780+ -m eth1,aa:ab:ac:ad:ae:00 --directory=./out.d
781+
782+
783+## check the output
784+$ cat out.d/etc/netplan/50-cloud-init.yaml
785+network:
786+ version: 2
787+ ethernets:
788+ eth1:
789+ addresses:
790+ - 172.19.1.34/24
791+ match:
792+ macaddress: aa:ab:ac:ad:ae:00
793+ nameservers:
794+ addresses:
795+ - 172.19.0.12
796+ routes:
797+ - to: 0.0.0.0/0
798+ via: 172.19.3.254
799+ set-name: eth1
800+
801+## show the cloud-init versions
802+$ dpkg-query --show cloud-init
803+...
804+
805+[Regression Potential]
806+The change is fairly safe in that it basically renders:
807+ 172.19.1.34/24
808+instead of
809+ 172.19.1.34/255.255.255.0
810+
811+The previous rendering just plain did not work as it is not valid
812+input for netplan. So the regression path there should be low.
813+
814+The common code changes could shake out other failures in the networking
815+path.
816+
817+[Other Info]
818+Upstream commit at
819+ https://git.launchpad.net/cloud-init/commit/?id=16a7302f6a
820+
821+lxc-proposed-snapshot is
822+ https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot
823+It publishes an image to lxd with proposed enabled and cloud-init upgraded.
824+=== End SRU Template ===
825+
826+
827+networking data josn has:
828+
829+"ip_address" : "104.130.20.155",
830+"netmask" : "255.255.255.0"
831+
832+"ip_address" : "10.184.3.234",
833+"netmask" : "255.255.240.0",
834+
835+that got rendered into nplan as:
836+ - 104.130.20.155/255.255.255.0
837+ - 10.184.3.234/255.255.240.0
838+
839+which it failed to parse
840+
841+Stderr: Error in network definition //etc/netplan/50-cloud-init.yaml line 32 column 12: invalid prefix length in address '104.130.20.155/255.255.255.0'
842+
843+I believe nplan is expecing CIDR notation of /24 or some such. I belive the current plan is to fix cloud-init to generate /24 cidr notation in the nplan renderer.
844+
845+This needs SRU into xenial.
846+
847diff --git a/bugs/lp-1689944.txt b/bugs/lp-1689944.txt
848new file mode 100644
849index 0000000..4b4daaf
850--- /dev/null
851+++ b/bugs/lp-1689944.txt
852@@ -0,0 +1,136 @@
853+http://pad.lv/1689944
854+https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1689944
855+
856+
857+=== Begin SRU Template ===
858+[Impact]
859+Cloud-init when running in Ubuntu core does not recognize it is
860+running on a 'snappy. As a result the snappy specific code paths are not
861+taken.
862+
863+[Test Case]
864+There are fairly extensive unit tests added to cover the code path
865+that has been added to detect when system is snappy. See the upstream
866+commit link below for that. Those tests run on package build, so
867+the fact that this is in the archive means those have run.
868+
869+In addition to that we will:
870+a.) boot an instance of Ubuntu in lxd with cloud-init from proposed
871+ to verify it is not regressed.
872+b.) craft an lxd instance with /etc/os-release that appears to be snappy.
873+ and then verify via log inspection that it thinks it is.
874+
875+The test is admittedly superficial, the real end test is having cloud-init
876+inside a ubuntu core image and it recognizing that it is snappy there.
877+That test is much more involved.
878+
879+## launch an instance
880+$ release=xenial
881+$ ref=$release-proposed
882+$ lxc-proposed-snapshot --proposed --publish $release $ref
883+$ lxc launch $ref $name
884+$ lxc exec $name
885+
886+## let it boot
887+$ sleep 10
888+## check log for warnings
889+$ lxc exec $name -- cat /run/cloud-init/result.json
890+{
891+ "v1": {
892+ "datasource": "DataSourceNoCloud [seed=/var/lib/cloud/seed/nocloud-net][dsmode=net]",
893+ "errors": []
894+ }
895+}
896+
897+$ lxc exec $name -- grep WARN /var/log/cloud-init.log || echo no warnings
898+no warnings
899+
900+
901+## write to /etc/os-release so it thinks it is Ubuntu core.
902+$ lxc exec $name -- sh -c 'echo ID=ubuntu-core >> /etc/os-release'
903+$ lxc exec $name -- sh -c 'd=/etc/system-image; mkdir -p $d; cd $d; echo ubuntu-core > channel.ini'
904+
905+## Now clear the instance state so it thinks it is first boot.
906+$ lxc exec $name -- sh -c 'rm -Rf /var/log/cloud-init*'
907+$ lxc exec $name -- sh -xec 'cd /var/lib/cloud; mv seed .x; rm -Rf *; mv .x seed'
908++ cd /var/lib/cloud
909++ mv seed .x
910++ rm -Rf data handlers instance instances scripts sem
911++ mv .x seed
912+
913+$ lxc restart $name
914+$ sleep 10
915+$ lxc exec $name -- grep "running on snappy" /var/log/cloud-init.log
916+2017-06-01 20:53:24,346 - cc_apt_configure.py[DEBUG]: Nothing to do: No apt config and running on snappy
917+
918+[Regression Potential]
919+The regression potential would be
920+a.) cloud-init falsely identifies it is running on snappy when it is not.
921+b.) cloud-init does not recognize it is on snappy when it is.
922+
923+[Other Info]
924+Upstream commit at
925+ https://git.launchpad.net/cloud-init/commit/?id=4bcc947301b
926+
927+lxc-proposed-snapshot is
928+ https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot
929+It publishes an image to lxd with proposed enabled and cloud-init upgraded.
930+
931+=== End SRU Template ===
932+
933+Recent core snap images (edge channel revision 1886) do not contain the previously known files used to detect that a system is ubuntu core.
934+
935+In this bug, we should collect as many known paths/files/commands so we're hopefully defensive against further changes.
936+
937+Ubuntu Core 16
938+--------------
939+% cat etc/os-release
940+NAME="Ubuntu Core"
941+VERSION="16"
942+ID=ubuntu-core
943+PRETTY_NAME="Ubuntu Core 16"
944+VERSION_ID="16"
945+HOME_URL="http://www.snapcraft.io/"
946+BUG_REPORT_URL="http://bugs.launchpad.net/snappy/"
947+
948+% snap version
949+snap 2.24+201704201952.git.2ba71ec~ubuntu16.04.1
950+snapd 2.24+201704201952.git.2ba71ec~ubuntu16.04.1
951+series 16
952+kernel 4.4.0-59-generic
953+
954+% lsb_release -rd
955+bash: lsb_release: command not found
956+
957+% test -e /writable/system-data/var/lib/snapd; echo $?
958+0
959+
960+Ubuntu 16.04 (Classic)
961+-----------------------
962+ % cat /etc/os-release
963+NAME="Ubuntu"
964+VERSION="16.04.2 LTS (Xenial Xerus)"
965+ID=ubuntu
966+ID_LIKE=debian
967+PRETTY_NAME="Ubuntu 16.04.2 LTS"
968+VERSION_ID="16.04"
969+HOME_URL="http://www.ubuntu.com/"
970+SUPPORT_URL="http://help.ubuntu.com/"
971+BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
972+VERSION_CODENAME=xenial
973+UBUNTU_CODENAME=xenial
974+
975+% snap version
976+snap unknown
977+snapd 2.24.1
978+series 16
979+ubuntu 16.04
980+kernel 4.4.0-75-generic
981+
982+% lsb_release -rd
983+Description: Ubuntu 16.04.2 LTS
984+Release: 16.04
985+
986+% test -e /writable/system-data/var/lib/snapd; echo $?
987+1
988+
989diff --git a/bugs/lp-1691551.txt b/bugs/lp-1691551.txt
990new file mode 100644
991index 0000000..ed3e18f
992--- /dev/null
993+++ b/bugs/lp-1691551.txt
994@@ -0,0 +1,41 @@
995+http://pad.lv/1691551
996+https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1691551
997+
998+
999+=== Begin SRU Template ===
1000+[Impact]
1001+Warnings are not suppressed when /var/lib/cloud/instance/warnings/.skip exists.
1002+
1003+[Test Case]
1004+if [ ! -f lxc-proposed-snapshot ]; then
1005+  wget https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/plain/bin/lxc-proposed-snapshot
1006+  chmod 755 lxc-proposed-snapshot
1007+fi
1008+
1009+for release in xenial yakkety zesty; do
1010+        ref=$release-proposed;
1011+        echo "$release START --------------";
1012+        ./lxc-proposed-snapshot --proposed --install ntp --publish $release $ref;
1013+        lxc init $ref test-$release;
1014+        lxc start test-$release;
1015+        sleep 10
1016+        # Create a warning
1017+        lxc exec test-$release -- sh -c 'd=/var/lib/cloud/instance/warnings/; mkdir -p $d; echo "WARNING WARNING FOO" > "$d/warn-foo"'
1018+        # Validate warning exists
1019+        echo -n "Warning should exist on login: "
1020+        lxc exec test-$release -- bash --login </dev/null 2>&1 | grep WARNING
1021+        lxc exec test-$release -- touch /var/lib/cloud/instance/warnings/.skip
1022+        echo -n "Warning should now be suppressed on login: "
1023+        lxc exec test-$release -- bash --login </dev/null 2>&1 | grep WARNING
1024+        echo "$release DONE --------------";
1025+done
1026+
1027+[Regression Potential]
1028+Minimal as the alternative warning suppression file works if you touch /root/.cloud-warnings.skip
1029+
1030+[Other Info]
1031+Upstream commit:
1032+ https://git.launchpad.net/cloud-init/commit/?id=66e46d8ec290737fd74f50eb8c7672d627d9b516
1033+
1034+=== End SRU Template ===
1035+
1036diff --git a/bugs/lp-1692093.txt b/bugs/lp-1692093.txt
1037new file mode 100644
1038index 0000000..82391c1
1039--- /dev/null
1040+++ b/bugs/lp-1692093.txt
1041@@ -0,0 +1,78 @@
1042+http://pad.lv/1692093
1043+https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1692093
1044+
1045+
1046+=== Begin SRU Template ===
1047+[Impact]
1048+VMs on MS Azure have an ephemeral disk attached to them.
1049+On first boot, cloud-init properly notices the empty ntfs filesystem and
1050+reformats it ext4.
1051+
1052+After deallocating the instance or moving to a new azure host,
1053+the filesystem reformat is logged, but isn't actually performed because
1054+the udev device creation may not have settled.
1055+
1056+[Test Case]
1057+Test cases:
1058+ 1. Deploy an instance VM on Azure
1059+ 2. Log in and ensure that the ephemeral disk is formatted and mounted to /mnt
1060+ 3. Via the portal you can "Redeploy" the VM to a new Azure Host (or alternatively stop and deallocate the VM for some time, and then restart/reallocate the VM).
1061+
1062+Expected Results:a
1063+ - Check cloud-init.log expecting to see logs from cc_disk_setup about the mount.
1064+ - After reallocation we expect the ephemeral disk to be formatted and mounted to /mnt.
1065+
1066+Actual Results:
1067+ - After reallocation /mnt is not mounted and there are errors in the cloud-init log.
1068+
1069+[Regression Potential]
1070+
1071+[Other Info]
1072+Upstream commit at
1073+  https://git.launchpad.net/cloud-init/commit/?id=1815c6d801933c47a01f1a94a8e689824f6797b4
1074+
1075+=== End SRU Template ===
1076+
1077+Cloud Provider: Azure
1078+dpkg-query -W -f='${Version}' cloud-init output: 0.7.9-90-g61eb03fe-0ubuntu1~16.04.1
1079+
1080+When the following is specified in cloud init it seems to be re-executing fs and disk setup (even though run command does not seem to re run)
1081+disk_setup:
1082+  /dev/sdc:
1083+      table_type: gpt
1084+      layout: true
1085+      overwrite: false
1086+
1087+fs_setup:
1088+- label: etcd_disk
1089+  filesystem: ext4
1090+  device: /dev/sdc1
1091+  extra_opts:
1092+    - "-F"
1093+    - "-E"
1094+    - "lazy_itable_init=1,lazy_journal_init=1"
1095+
1096+mounts:
1097+- - /dev/sdc1
1098+  - /var/lib/etcddisk
1099+
1100+From cloud-init-output.log:
1101+
1102+Cloud-init v. 0.7.9 running 'modules:final' at Mon, 15 May 2017 18:33:15 +0000. Up 64.24 seconds.
1103+Cloud-init v. 0.7.9 finished at Mon, 15 May 2017 18:34:46 +0000. Datasource DataSourceAzureNet [seed=/dev/sr0]. Up 155.34 seconds
1104+Cloud-init v. 0.7.9 running 'init-local' at Tue, 16 May 2017 01:52:37 +0000. Up 10.33 seconds.
1105+Cloud-init v. 0.7.9 running 'init' at Tue, 16 May 2017 01:52:39 +0000. Up 12.06 seconds.
1106+
1107+From cloud-init.log for the initial provision:
1108+
1109+2017-05-15 18:32:46,820 - cc_disk_setup.py[DEBUG]: Creating file system etcd_disk on /dev/sdc1
1110+2017-05-15 18:32:46,820 - cc_disk_setup.py[DEBUG]: Using cmd: /sbin/mkfs.ext4 /dev/sdc1 -L etcd_disk -F -E lazy_itable_init=1,lazy_journal_init=1
1111+2017-05-15 18:32:46,820 - util.py[DEBUG]: Running command ['/sbin/mkfs.ext4', '/dev/sdc1', '-L', 'etcd_disk', '-F', '-E', 'lazy_itable_init=1,lazy_journal_init=1'] with allowed return codes [0] (shell=False, capture=True)
1112+2017-05-15 18:33:04,054 - util.py[DEBUG]: Creating fs for /dev/sdc1 took 17.237 seconds
1113+
1114+and after reboot (cloud-init.log)
1115+
1116+2017-05-16 01:52:40,245 - cc_disk_setup.py[DEBUG]: Creating file system etcd_disk on /dev/sdc1
1117+2017-05-16 01:52:40,246 - cc_disk_setup.py[DEBUG]: Using cmd: /sbin/mkfs.ext4 /dev/sdc1 -L etcd_disk -F -E lazy_itable_init=1,lazy_journal_init=1
1118+2017-05-16 01:52:40,246 - util.py[DEBUG]: Running command ['/sbin/mkfs.ext4', '/dev/sdc1', '-L', 'etcd_disk', '-F', '-E', 'lazy_itable_init=1,lazy_journal_init=1'] with allowed return codes [0] (shell=False, capture=True)
1119+
1120diff --git a/bugs/lp-1692097.txt b/bugs/lp-1692097.txt
1121new file mode 100644
1122index 0000000..012fa07
1123--- /dev/null
1124+++ b/bugs/lp-1692097.txt
1125@@ -0,0 +1,24 @@
1126+http://pad.lv/1692097
1127+https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1692097
1128+
1129+
1130+Evergreen circ 2.12
1131+
1132+The Grunt-driven minification and concatenation configuration is missing some parts and not doing all that it could to make JS file downloads more efficient.
1133+
1134+I have put together a patch to do the following:
1135+
1136+* Support minifying the core Evergreen services files (i.e. service/*.js). Previously, they were only concatenated.
1137+
1138+* Create one concatenated file for external dependencies (jquery, angular, etc.) and a separate concatenated file for Evergreen core service files.
1139+
1140+Included in this is replacing the template variable EXPAND_WEB_IMPORTS with EXPAND_WEB_DEP_IMPORTS and EXPAND_WEB_CORE_IMPORTS.
1141+
1142+The thinking here is that concatenating 3rd party files (which are already minified) is an easy win and should not complicate debugging, whereas minifying and concatenating EG service files will require more testing. It's also nice that you can expand one or the other as needed for debugging.
1143+
1144+The build creates evergreen-staff-client.0.0.1.deps.min.js and evergreen-staff-client.0.0.1.core.min.js
1145+
1146+* Various fixes to the Gruntfile, including missing dependency references and fixing some faulty assumptions from early iterations of the file.
1147+
1148+* Remove OpenSRF JS from the minify/concat processes. Otherwise, we have to add some variable replacements in Gruntfile to avoid hard-coding the path to the OpenSRF js files. Not sure it's worth it for 3 small-ish files.
1149+
1150diff --git a/bugs/lp-1693582.txt b/bugs/lp-1693582.txt
1151new file mode 100644
1152index 0000000..6521a49
1153--- /dev/null
1154+++ b/bugs/lp-1693582.txt
1155@@ -0,0 +1,30 @@
1156+
1157+http://pad.lv/1693582
1158+https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1693582
1159+
1160+
1161+=== Begin SRU Template ===
1162+[Impact]
1163+This code path is only exercised on GCE datasources and in such cases get_data
1164+would have not configured GCE-configured authorized ssh keys for the default user.
1165+
1166+[Test Case]
1167+Launch an instance on GCE
1168+Update cloud-init deb
1169+run sudo cloud-init single -n cc_ntp
1170+curl -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/ssh-keys
1171+validate .ssh/authorized_keys contains keys listed in the above curl
1172+
1173+[Regression Potential]
1174+GCE instances with don't support instance/attributes/ssh-keys would only be able
1175+to configure ssh access via #cloud-config ssh declarations.
1176+
1177+
1178+[Other Info]
1179+Upstream commit:
1180+ https://git.launchpad.net/cloud-init/commit/?id=d27c49391df343d25bd2e24045d2be6bf39c30d2
1181+GCE metadata docs:
1182+ https://cloud.google.com/compute/docs/storing-retrieving-metadata
1183+
1184+=== End SRU Template ===
1185+

Subscribers

People subscribed via source and target branches

to all changes: