** Description changed: [Impact]: The cloud-init version Precise uses the wrong is_true test from util instead of futil for the SmartOS datasource. If a user sends over a user-script or user-data, the instance will be unaccessable due to a stack trace. This means that user-data or user-scripts are fatal to the instance as the user will be unable to access system using SmartOS as the virtualization platform. + + This only affects 12.04. futil is a backport of utilities in future + version. util.is_true is valid for 12.10 and later. As result, there is + no fix needed for quantal and later. [Test Case]: 1. Create a simple user-data script 2. Boot up 12.04 in SmartOS 3. Update the instance meta-data with user-script 4. delete /var/lib/cloud 5. Run "cloud-init start" and "cloud-init-cfg all" 6. Check /var/log/cloud-init.log for errors 7. Confirm that simple user-data script ran 8. The user-data script should be found in /var/lib/cloud/instance/user-data.txt [REGRESSION] None. This change is fixes broken functionality and is a two line change. This has been tested on SmartOS and confirmed to fix the problem. datasource for smartos uses util.is_true instead of futil.is_true, this causes a stack trace on SmartOS 2013-11-01 18:21:39,683 - cloud-init[INFO]: cloud-init start-local running: Fri, 01 Nov 2013 18:21:39 +0000. up 7.28 seconds 2013-11-01 18:21:39,874 - __init__.py[DEBUG]: searching for data source in [] 2013-11-01 18:21:39,874 - __init__.py[DEBUG]: Did not find data source. searched classes: [] 2013-11-01 18:21:43,765 - cloud-init[INFO]: cloud-init start running: Fri, 01 Nov 2013 18:21:43 +0000. up 11.19 seconds 2013-11-01 18:21:43,861 - __init__.py[DEBUG]: searching for data source in ['DataSourceSmartOS'] 2013-11-01 18:21:43,861 - DataSourceSmartOS.py[DEBUG]: Getting hostname from dmidecode 2013-11-01 18:21:43,864 - DataSourceSmartOS.py[DEBUG]: Determining hypervisor product name via dmidecode 2013-11-01 18:21:45,485 - __init__.py[WARNING]: get_data of DataSourceSmartOS raised 'module' object has no attribute 'is_true' 2013-11-01 18:21:45,500 - 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/DataSourceSmartOS.py", line 144, in get_data md[ci_noun] = self.query(smartos_noun, strip=strip) File "/usr/lib/python2.7/dist-packages/cloudinit/DataSourceSmartOS.py", line 178, in query b64=b64) File "/usr/lib/python2.7/dist-packages/cloudinit/DataSourceSmartOS.py", line 240, in query_data b64 = util.is_true(b64) AttributeError: 'module' object has no attribute 'is_true' 2013-11-01 18:21:45,500 - __init__.py[DEBUG]: Did not find data source. searched classes: ['DataSourceSmartOS'] {noformat} {noformat}
-- You received this bug notification because you are a member of Ubuntu Server Team, which is subscribed to cloud-init in Ubuntu. https://bugs.launchpad.net/bugs/1247262 Title: [SRU] datasource for smartos uses util.is_true instead of futil.is_true To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1247262/+subscriptions -- Ubuntu-server-bugs mailing list Ubuntu-server-bugs@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-server-bugs