Package: cloud-init
Version: 0.7.6~bzr976-2
Severity: normal

Hello,

I'm trying to use the Openstack vendor-data functionality. It works on 
Ubuntu/Fedora/Centos VM, but not on Debian (either the cloud-ready available on 
cdimage.debian.org, or a private one)
While looking at the cloud-init logs, I found several issues.

Looking at the vendor-data part, cloud-init is not calling the openstack api 
for the vendor-data value, as it does on other OS

Results of 'cat /var/log/cloud-init.log | grep "vendor"'

Logs Debian:
Oct 17 09:05:33 test [CLOUDINIT] util.py[DEBUG]: Reading from 
/var/lib/cloud/seed/nocloud/vendor-data (quiet=False)
Oct 17 09:05:33 test [CLOUDINIT] util.py[DEBUG]: Reading from 
/var/lib/cloud/seed/nocloud-net/vendor-data (quiet=False)
Oct 17 09:05:40 test [CLOUDINIT] util.py[DEBUG]: Writing to 
/var/lib/cloud/instances/i-00000051/vendor-data.txt - wb: [384] 4 bytes
Oct 17 09:05:40 test [CLOUDINIT] util.py[DEBUG]: Writing to 
/var/lib/cloud/instances/i-00000051/vendor-data.txt.i - wb: [384] 345 bytes
Oct 17 09:05:41 test [CLOUDINIT] stages.py[DEBUG]: no vendordata from datasource

Logs Ubuntu
Oct 17 07:51:27 ubuntu [CLOUDINIT] util.py[DEBUG]: Reading from 
/var/lib/cloud/seed/nocloud/vendor-data (quiet=False)
Oct 17 07:51:27 ubuntu [CLOUDINIT] util.py[DEBUG]: Reading from 
/var/lib/cloud/seed/nocloud-net/vendor-data (quiet=False)
Oct 17 07:51:28 ubuntu [CLOUDINIT] util.py[DEBUG]: Reading from 
/var/lib/cloud/seed/nocloud/vendor-data (quiet=False)
Oct 17 07:51:28 ubuntu [CLOUDINIT] util.py[DEBUG]: Reading from 
/var/lib/cloud/seed/nocloud-net/vendor-data (quiet=False)
Oct 17 07:51:37 ubuntu [CLOUDINIT] url_helper.py[DEBUG]: [0/6] open 
'http://169.254.169.254/openstack/latest/vendor_data.json' with {'url': 
'http://169.254.169.254/openstack/latest/vendor_data.json', 'timeout': 5.0, 
'allow_redirects': True, 'method': 'GET', 'headers': {'User-Agent': 
'Cloud-Init/0.7.8'}} configuration
Oct 17 07:51:37 ubuntu [CLOUDINIT] url_helper.py[DEBUG]: Read from 
http://169.254.169.254/openstack/latest/vendor_data.json (200, 81b) after 1 
attempts
Oct 17 07:51:43 ubuntu [CLOUDINIT] util.py[DEBUG]: Writing to 
/var/lib/cloud/instances/bb80327c-08be-4868-a638-8d8e57fcf36f/vendor-data.txt - 
wb: [384] 62 bytes
Oct 17 07:51:43 ubuntu [CLOUDINIT] util.py[DEBUG]: Writing to 
/var/lib/cloud/instances/bb80327c-08be-4868-a638-8d8e57fcf36f/vendor-data.txt.i 
- wb: [384] 367 bytes
Oct 17 07:51:43 ubuntu [CLOUDINIT] handlers.py[DEBUG]: start: 
init-network/consume-vendor-data: reading and applying vendor-data

With a further look at the logs, I found several failures when importing python 
modules:

Small sample of'cat /var/log/cloud-init.log | grep "Failed"'

Oct 17 09:03:33 host-192-168-100-91 [CLOUDINIT] importer.py[DEBUG]: Failed at 
attempted import of 'debian' due to: No module named debian
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'debian' due to: No module named debian
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'DataSourceNoCloud' due to: No module named DataSourceNoCloud
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'DataSourceAltCloud' due to: No module named DataSourceAltCloud
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'DataSourceCloudStack' due to: No module named DataSourceCloudStack
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'DataSourceConfigDrive' due to: No module named DataSourceConfigDrive
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'DataSourceMAAS' due to: No module named DataSourceMAAS
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'DataSourceOVF' due to: No module named DataSourceOVF
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'DataSourceGCE' due to: No module named DataSourceGCE
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'DataSourceNone' due to: No module named DataSourceNone
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'debian' due to: No module named debian
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'DataSourceNoCloud' due to: No module named DataSourceNoCloud
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'DataSourceAltCloud' due to: No module named DataSourceAltCloud
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'DataSourceCloudStack' due to: No module named DataSourceCloudStack
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'DataSourceConfigDrive' due to: No module named DataSourceConfigDrive
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'DataSourceEc2' due to: No module named DataSourceEc2
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'DataSourceMAAS' due to: No module named DataSourceMAAS
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'DataSourceOVF' due to: No module named DataSourceOVF
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'DataSourceGCE' due to: No module named DataSourceGCE
Oct 17 09:05:33 test [CLOUDINIT] importer.py[DEBUG]: Failed at attempted import 
of 'DataSourceNone' due to: No module named DataSourceNone

However, all these modules are available:
'find / -name "DataSourceNone.py"'

/usr/lib/python2.7/dist-packages/cloudinit/sources/DataSourceNone.py

And they can be manually imported with a python2.7 script.
With the other OSs, the modules appears to be in the python3 folder instead of 
2.7

Ubuntu 'find / -name "DataSourceNone.py"'

/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceNone.py

Maybe the issue stems from a python2.7/3 mix-up when calling the modules?

-- System Information:
Debian Release: 8.6
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.16.0-4-amd64 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Reply via email to