← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1596690] [NEW] restoring from datasource without dsmode causes stacktrace

 

Public bug reported:

On reboot, if cloud-init found a cached /var/lib/cloud/instance/obj.pkl it would restore from it.
If that class did not have a 'dsmode', then main would stack trace like:
| "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 530, in status_wrapper
|     ret = functor(name, args)
|   File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 247, in main_init
|     if mode == sources.DSMODE_NETWORK and init.datasource.dsmode != mode:
| AttributeError: 'DataSourceAzureNet' object has no attribute 'dsmode'

This would affect upgrade and reboot on any datasource that did not have
a dsmode previously.

That list is
  cloudinit/sources/DataSourceAzure.py
  cloudinit/sources/DataSourceBigstep.py
  cloudinit/sources/DataSourceCloudStack.py
  cloudinit/sources/DataSourceDigitalOcean.py
  cloudinit/sources/DataSourceEc2.py
  cloudinit/sources/DataSourceGCE.py
  cloudinit/sources/DataSourceMAAS.py
  cloudinit/sources/DataSourceNone.py
  cloudinit/sources/DataSourceOVF.py
  cloudinit/sources/DataSourceSmartOS.py

The non-broken datasources then were the ones that previously had a dsmode:
  cloudinit/sources/DataSourceAltCloud.py
  cloudinit/sources/DataSourceCloudSigma.py
  cloudinit/sources/DataSourceConfigDrive.py
  cloudinit/sources/DataSourceNoCloud.py
  cloudinit/sources/DataSourceOpenNebula.py
  cloudinit/sources/DataSourceOpenStack.py

** Affects: cloud-init
     Importance: Undecided
         Status: New

** Affects: cloud-init (Ubuntu)
     Importance: Undecided
         Status: New

** Also affects: cloud-init (Ubuntu)
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to cloud-init.
https://bugs.launchpad.net/bugs/1596690

Title:
  restoring from datasource without dsmode causes stacktrace

Status in cloud-init:
  New
Status in cloud-init package in Ubuntu:
  New

Bug description:
  On reboot, if cloud-init found a cached /var/lib/cloud/instance/obj.pkl it would restore from it.
  If that class did not have a 'dsmode', then main would stack trace like:
  | "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 530, in status_wrapper
  |     ret = functor(name, args)
  |   File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 247, in main_init
  |     if mode == sources.DSMODE_NETWORK and init.datasource.dsmode != mode:
  | AttributeError: 'DataSourceAzureNet' object has no attribute 'dsmode'

  This would affect upgrade and reboot on any datasource that did not
  have a dsmode previously.

  That list is
    cloudinit/sources/DataSourceAzure.py
    cloudinit/sources/DataSourceBigstep.py
    cloudinit/sources/DataSourceCloudStack.py
    cloudinit/sources/DataSourceDigitalOcean.py
    cloudinit/sources/DataSourceEc2.py
    cloudinit/sources/DataSourceGCE.py
    cloudinit/sources/DataSourceMAAS.py
    cloudinit/sources/DataSourceNone.py
    cloudinit/sources/DataSourceOVF.py
    cloudinit/sources/DataSourceSmartOS.py

  The non-broken datasources then were the ones that previously had a dsmode:
    cloudinit/sources/DataSourceAltCloud.py
    cloudinit/sources/DataSourceCloudSigma.py
    cloudinit/sources/DataSourceConfigDrive.py
    cloudinit/sources/DataSourceNoCloud.py
    cloudinit/sources/DataSourceOpenNebula.py
    cloudinit/sources/DataSourceOpenStack.py

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1596690/+subscriptions


Follow ups