Comment 27 for bug 1922739

Revision history for this message
Dan Watkins (oddbloke) wrote :

I'm performing verification of this locally using the cloud-init integration testing framework. Specifically, I'm running test_upgrade_package[0] with the following diff applied (to trigger this bug):

@@ -104,18 +104,19 @@ def test_upgrade(session_cloud: IntegrationCloud):

 @pytest.mark.ci
 @pytest.mark.ubuntu
-def test_upgrade_package(session_cloud: IntegrationCloud):
- if get_validated_source(session_cloud) != CloudInitSource.DEB_PACKAGE:
- not_run_message = 'Test only supports upgrading to build deb'
+def test_subsequent_boot_of_upgraded_package(session_cloud: IntegrationCloud):
+ source = get_validated_source(session_cloud)
+ if not source.installs_new_version():
         if os.environ.get('TRAVIS'):
             # If this isn't running on CI, we should know
- pytest.fail(not_run_message)
+ pytest.fail(UNSUPPORTED_INSTALL_METHOD_MSG.format(source))
         else:
- pytest.skip(not_run_message)
+ pytest.skip(UNSUPPORTED_INSTALL_METHOD_MSG.format(source))
+ return # type checking doesn't understand that skip raises

     launch_kwargs = {'image_id': session_cloud.released_image_id}

     with session_cloud.launch(launch_kwargs=launch_kwargs) as instance:
- instance.install_deb()
+ instance.install_new_cloud_init(source, take_snapshot=False, clean=False)
         instance.restart()
         assert instance.execute('cloud-init status --wait --long').ok

The important changes here are that I can run it against both the release pocket and -proposed, and that it doesn't perform a clean any longer. I'll propose these changes to cloud-init upstream after validation is complete.

[0] https://github.com/canonical/cloud-init/blob/master/tests/integration_tests/test_upgrade.py#L105-L121