diff -Nru ubuntu-advantage-tools-31.2.2~22.04/debian/changelog ubuntu-advantage-tools-31.2.3~22.04/debian/changelog --- ubuntu-advantage-tools-31.2.2~22.04/debian/changelog 2024-03-25 14:52:09.000000000 +0000 +++ ubuntu-advantage-tools-31.2.3~22.04/debian/changelog 2024-04-05 13:09:04.000000000 +0000 @@ -1,20 +1,33 @@ -ubuntu-advantage-tools (31.2.2~22.04) jammy; urgency=medium +ubuntu-advantage-tools (31.2.3~22.04) jammy; urgency=medium - * version.py: match version from d/changelog (LP: #2058934) + * Backport new upstream release to jammy (LP: #2059952) - -- Andreas Hasenack Mon, 25 Mar 2024 11:52:09 -0300 + -- Lucas Moura Fri, 05 Apr 2024 10:09:04 -0300 -ubuntu-advantage-tools (31.2.1~22.04) jammy; urgency=medium +ubuntu-advantage-tools (31.2.3) noble; urgency=medium - * apt-news.service: ignore apparmor errors when starting (LP: #2057937) + * daemon: wait for cloud-init.service to fully activate (LP: #2059952) + + -- Lucas Moura Tue, 02 Apr 2024 10:13:32 -0300 + +ubuntu-advantage-tools (31.2.2build1) noble; urgency=medium + + * No-change rebuild for CVE-2024-3094 - -- Andreas Hasenack Wed, 20 Mar 2024 09:24:03 -0300 + -- Steve Langasek Sun, 31 Mar 2024 00:15:29 +0000 -ubuntu-advantage-tools (31.2~22.04) jammy; urgency=medium +ubuntu-advantage-tools (31.2.2) noble; urgency=medium - * Backport new upstream release (LP: #2048921) + * version.py: fix internal version to match ubuntu package version (it was + missed in the previous upload, so 31.2.1 is "burned" now) + + -- Andreas Hasenack Sun, 24 Mar 2024 10:52:02 -0300 + +ubuntu-advantage-tools (31.2.1) noble; urgency=medium + + * apt-news.service: ignore apparmor errors when starting (LP: #2057937) - -- Grant Orndorff Thu, 29 Feb 2024 09:03:11 -0500 + -- Andreas Hasenack Tue, 19 Mar 2024 11:02:58 -0300 ubuntu-advantage-tools (31.2) noble; urgency=medium diff -Nru ubuntu-advantage-tools-31.2.2~22.04/lib/daemon.py ubuntu-advantage-tools-31.2.3~22.04/lib/daemon.py --- ubuntu-advantage-tools-31.2.2~22.04/lib/daemon.py 2024-03-25 14:52:09.000000000 +0000 +++ ubuntu-advantage-tools-31.2.3~22.04/lib/daemon.py 2024-04-05 13:09:04.000000000 +0000 @@ -20,8 +20,15 @@ LOG.debug("waiting for cloud-config.service to finish") for i in range(WAIT_FOR_CLOUD_CONFIG_POLL_TIMES + 1): state = system.get_systemd_unit_active_state("cloud-config.service") + ci_state = system.get_systemd_unit_active_state("cloud-init.service") LOG.debug("cloud-config.service state: %r", state) - if state is not None and state == "activating": + LOG.debug("cloud-init.service state: %r", ci_state) + # if cloud-config.service is not yet activating but cloud-init is + # running, wait for cloud-config to start + if state == "activating" or ( + state == "inactive" + and (ci_state == "activating" or ci_state == "active") + ): if i < WAIT_FOR_CLOUD_CONFIG_POLL_TIMES: LOG.debug( "cloud-config.service is activating. " diff -Nru ubuntu-advantage-tools-31.2.2~22.04/uaclient/tests/test_lib_daemon.py ubuntu-advantage-tools-31.2.3~22.04/uaclient/tests/test_lib_daemon.py --- ubuntu-advantage-tools-31.2.2~22.04/uaclient/tests/test_lib_daemon.py 2024-03-18 19:01:23.000000000 +0000 +++ ubuntu-advantage-tools-31.2.3~22.04/uaclient/tests/test_lib_daemon.py 2024-04-05 13:09:04.000000000 +0000 @@ -17,24 +17,41 @@ ( # not activating ( - ["active"], + ["active"] * 2, [], ), + # inactive (all cloud-init) ( - ["inactive"], + ["inactive"] * 2, [], ), ( - [None], + [None] * 2, [], ), - # activating, then finishes + # cloud-config activating, then finishes + # cloud-init is active ( - (["activating"] * 11) + ["active"], + (["activating", "active"] * 11) + ["active"] * 2, [mock.call(WAIT_FOR_CLOUD_CONFIG_SLEEP_TIME)] * 11, ), ( - (["activating"] * 11) + ["failed"], + (["activating", "active"] * 11) + ["failed"] + ["active"], + [mock.call(WAIT_FOR_CLOUD_CONFIG_SLEEP_TIME)] * 11, + ), + # inactive cloud-config, active cloud-init + ( + (["inactive", "active"] * 6) + + (["activating", "active"] * 5) + + ["active"] * 2, + [mock.call(WAIT_FOR_CLOUD_CONFIG_SLEEP_TIME)] * 11, + ), + # inactive cloud-config, activating cloud-init + ( + (["inactive", "activating"] * 2) + + (["inactive", "active"] * 4) + + (["activating", "active"] * 5) + + ["active"] * 2, [mock.call(WAIT_FOR_CLOUD_CONFIG_SLEEP_TIME)] * 11, ), # still activating after polling maximum times diff -Nru ubuntu-advantage-tools-31.2.2~22.04/uaclient/version.py ubuntu-advantage-tools-31.2.3~22.04/uaclient/version.py --- ubuntu-advantage-tools-31.2.2~22.04/uaclient/version.py 2024-03-25 14:52:09.000000000 +0000 +++ ubuntu-advantage-tools-31.2.3~22.04/uaclient/version.py 2024-04-05 13:09:04.000000000 +0000 @@ -14,7 +14,7 @@ from uaclient.exceptions import ProcessExecutionError from uaclient.system import subp -__VERSION__ = "31.2.2" +__VERSION__ = "31.2.3" PACKAGED_VERSION = "@@PACKAGED_VERSION@@"