** 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