cloud-init-dev team mailing list archive
-
cloud-init-dev team
-
Mailing list archive
-
Message #06012
[Merge] ~aromito/cloud-init:cloud-init-BZ_1673170 into cloud-init:master
Antonio Romito has proposed merging ~aromito/cloud-init:cloud-init-BZ_1673170 into cloud-init:master.
Commit message:
I had a look to the /usr/lib/python2.7/site-packages/cloudinit/cmd/main.py script and I found that it fail in the following part of code:
~~~
...
if mode == "modules-final":
# write the 'finished' file
errors = []
for m in modes:
if v1[m]['errors']: <<<--- Unhandled exception
errors.extend(v1[m].get('errors', []))
...
~~~
The for cycle loop into modes list that contains ('init', 'init-local', 'modules-init', 'modules-config', 'modules-final'):
The v1 array do not contains "modules-init" key and for this reason if generate an exception.
Requested reviews:
cloud-init commiters (cloud-init-dev)
For more details, see:
https://code.launchpad.net/~aromito/cloud-init/+git/cloud-init/+merge/362884
Applying the following patch the script make a double check on the keys present into the array before the if statement.
[root@rhvm ~]# diff -u /usr/lib/python2.7/site-packages/cloudinit/cmd/main.py /usr/lib/python2.7/site-packages/cloudinit/cmd/main.py.fixed
--- /usr/lib/python2.7/site-packages/cloudinit/cmd/main.py 2018-03-27 14:49:38.000000000 -0400
+++ /usr/lib/python2.7/site-packages/cloudinit/cmd/main.py.fixed 2019-02-06 15:17:45.128944937 -0500
@@ -676,8 +676,9 @@
# write the 'finished' file
errors = []
for m in modes:
- if v1[m]['errors']:
- errors.extend(v1[m].get('errors', []))
+ if m in v1:
+ if v1[m]['errors']:
+ errors.extend(v1[m].get('errors', []))
atomic_helper.write_json(
result_path, {'v1': {'datasource': v1['datasource'],
--
Your team cloud-init commiters is requested to review the proposed merge of ~aromito/cloud-init:cloud-init-BZ_1673170 into cloud-init:master.
diff --git a/cloudinit/cmd/main.py b/cloudinit/cmd/main.py
index 933c019..a8e645a 100644
--- a/cloudinit/cmd/main.py
+++ b/cloudinit/cmd/main.py
@@ -673,8 +673,9 @@ def status_wrapper(name, args, data_d=None, link_d=None):
# write the 'finished' file
errors = []
for m in modes:
- if v1[m]['errors']:
- errors.extend(v1[m].get('errors', []))
+ if m in v1:
+ if v1[m]['errors']:
+ errors.extend(v1[m].get('errors', []))
atomic_helper.write_json(
result_path, {'v1': {'datasource': v1['datasource'],
Follow ups