]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
portablectl: fix detaching when an extension image has been deleted
authorLuca Boccassi <bluca@debian.org>
Thu, 9 Nov 2023 20:22:26 +0000 (20:22 +0000)
committerFrantisek Sumsal <frantisek@sumsal.cz>
Fri, 10 Nov 2023 12:58:45 +0000 (12:58 +0000)
src/portable/portablectl.c
test/units/testsuite-29.sh

index 6f804e65ee51831796716df50cb63bf8ea28a663..532e8d93455b62540255939fa980f1e2fbecbb49 100644 (file)
@@ -108,7 +108,10 @@ static int attach_extensions_to_message(sd_bus_message *m, const char *method, c
         STRV_FOREACH(p, extensions) {
                 _cleanup_free_ char *resolved_extension_image = NULL;
 
-                r = determine_image(*p, false, &resolved_extension_image);
+                r = determine_image(
+                                *p,
+                                startswith_strv(method, STRV_MAKE("Get", "Detach")),
+                                &resolved_extension_image);
                 if (r < 0)
                         return r;
 
index 66256a40c8d0d93dc5587f901eaa08d0ca56d596..536827311b92c662d0f30b88199b83f64104fe4b 100755 (executable)
@@ -186,7 +186,11 @@ status="$(portablectl is-attached --extension /tmp/app10.raw /usr/share/minimal_
 
 portablectl inspect --force --cat --extension /tmp/app10.raw /usr/share/minimal_0.raw app0 | grep -q -F "Extension Release: /tmp/app10.raw"
 
-portablectl detach --force --now --runtime --extension /tmp/app10.raw /usr/share/minimal_0.raw app0
+# Ensure that we can detach even when an image has been deleted already (stop the unit manually as
+# portablectl won't find it)
+rm -f /tmp/app10.raw
+systemctl stop app0.service
+portablectl detach --force --runtime --extension /tmp/app10.raw /usr/share/minimal_0.raw app0
 
 # portablectl also accepts confexts
 portablectl "${ARGS[@]}" attach --now --runtime --extension /usr/share/app0.raw --extension /usr/share/conf0.raw /usr/share/minimal_0.raw app0