** Description changed:

- Latest Cloud-init on Windows Azure fails to provision on Windows Azure
- due to incorrect import.
+ [SRU Justification]
+ 
+ [Explanation] SRU for 1292648 added the ability Cloud-init to format
+ ephemeral devices when a new ephemeral device was put into place. The
+ backport used util.* instead of futil.*.
+ 
+ [IMPACT] Cloud-init stack traces when attempting unmount a device that is not 
mounted
+ Cloud-init tries to unmount the default ephemeral disk and uses "try/except" 
method. Since the wrong util is used, it will stack trace, preventing users 
from provisioning on Windows Azure. 
+ 
+ [TEST-CASE]
+ 1. Build new image from scratch
+ 2. Boot, it should work with ephemeral mounted
+ 
+  
+ Latest Cloud-init on Windows Azure fails to provision on Windows Azure due to 
incorrect import. 
  
  2014-04-03 21:53:24,330 - __init__.py[WARNING]: get_data of 
DataSourceAzureNet raised 'module' object has no attribute 
'ProcessExecutionError'
  2014-04-03 21:53:24,374 - util.py[DEBUG]: Traceback (most recent call last):
-   File "/usr/lib/python2.7/dist-packages/cloudinit/__init__.py", line 215, in 
get_data_source
-     if s.get_data():
-   File "/usr/lib/python2.7/dist-packages/cloudinit/DataSourceAzure.py", line 
215, in get_data
-     cc_modules_override = support_new_ephemeral(self.sys_cfg)
-   File "/usr/lib/python2.7/dist-packages/cloudinit/DataSourceAzure.py", line 
288, in support_new_ephemeral
-     except util.ProcessExecutionError as e:
+   File "/usr/lib/python2.7/dist-packages/cloudinit/__init__.py", line 215, in 
get_data_source
+     if s.get_data():
+   File "/usr/lib/python2.7/dist-packages/cloudinit/DataSourceAzure.py", line 
215, in get_data
+     cc_modules_override = support_new_ephemeral(self.sys_cfg)
+   File "/usr/lib/python2.7/dist-packages/cloudinit/DataSourceAzure.py", line 
288, in support_new_ephemeral
+     except util.ProcessExecutionError as e:
  AttributeError: 'module' object has no attribute 'ProcessExecutionError'
  
  2014-04-03 21:53:24,374 - __init__.py[DEBUG]: Did not find data source. 
searched classes: ['DataSourceAzureNet']
  (END)
- 
- 
- This is fixed with:
- === modified file 'cloudinit/DataSourceAzure.py'
- --- cloudinit/DataSourceAzure.py      2014-03-19 22:11:57 +0000
- +++ cloudinit/DataSourceAzure.py      2014-04-03 22:23:19 +0000
- @@ -285,7 +285,7 @@
-          # to have a false positive. so just unmount and then check.
-          try:
-              util.subp(['umount', device])
- -        except util.ProcessExecutionError as e:
- +        except futil.ProcessExecutionError as e:
-              if device in util.mounts():
-                  LOG.warn("Failed to unmount %s, will not reformat.", device)
-                  LOG.debug("Failed umount: %s", e)

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

Title:
  cloud-init datasource uses util.ProcessExecutionError instead of
  futil.ProcessExecutionError

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+bug/1302229/+subscriptions

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

Reply via email to