]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
machine: add MachineImage interface
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 15 Oct 2024 08:39:00 +0000 (17:39 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 15 Oct 2024 11:44:13 +0000 (20:44 +0900)
Follow-up for fb0ea6a6a36b5fa97e6c57d608bb9f7acb63c8b2.
Fixes #34772.

src/machine/machined-varlink.c
src/shared/meson.build
src/shared/varlink-io.systemd.MachineImage.c
src/test/test-varlink-idl.c
test/units/TEST-13-NSPAWN.machined.sh

index 5932d5edabadca70143ffd5083f87b51208e1b0f..47dbbe226e34a4c3c241f18d77dbaff060ed3ed8 100644 (file)
@@ -15,6 +15,7 @@
 #include "socket-util.h"
 #include "user-util.h"
 #include "varlink-io.systemd.Machine.h"
+#include "varlink-io.systemd.MachineImage.h"
 #include "varlink-io.systemd.UserDatabase.h"
 
 typedef struct LookupParameters {
@@ -687,9 +688,12 @@ static int manager_varlink_init_machine(Manager *m) {
 
         sd_varlink_server_set_userdata(s, m);
 
-        r = sd_varlink_server_add_interface(s, &vl_interface_io_systemd_Machine);
+        r = sd_varlink_server_add_interface_many(
+                        s,
+                        &vl_interface_io_systemd_Machine,
+                        &vl_interface_io_systemd_MachineImage);
         if (r < 0)
-                return log_error_errno(r, "Failed to add Machine interface to varlink server: %m");
+                return log_error_errno(r, "Failed to add Machine and MachineImage interfaces to varlink server: %m");
 
         r = sd_varlink_server_bind_method_many(
                         s,
index 42dd32024a24d209eb47538ee0bb4590940a48aa..1141efa45381dabd5f9d2c7054903550f9fe2f17 100644 (file)
@@ -184,6 +184,7 @@ shared_sources = files(
         'varlink-io.systemd.Import.c',
         'varlink-io.systemd.Journal.c',
         'varlink-io.systemd.Machine.c',
+        'varlink-io.systemd.MachineImage.c',
         'varlink-io.systemd.ManagedOOM.c',
         'varlink-io.systemd.MountFileSystem.c',
         'varlink-io.systemd.NamespaceResource.c',
index 514c5720c6b8981c41ba0846e37d95f45c2f0d2d..d417af802748f621710e68f395177a94a441132e 100644 (file)
@@ -2,6 +2,7 @@
 
 #include "sd-varlink-idl.h"
 
+#include "bus-polkit.h"
 #include "varlink-io.systemd.MachineImage.h"
 
 static SD_VARLINK_DEFINE_METHOD_FULL(
index 519056d044657be089cb396e30deee7d10f691ac..c54b24aa8b492469d8689418e14279b8cb099b05 100644 (file)
@@ -15,6 +15,7 @@
 #include "varlink-io.systemd.Import.h"
 #include "varlink-io.systemd.Journal.h"
 #include "varlink-io.systemd.Machine.h"
+#include "varlink-io.systemd.MachineImage.h"
 #include "varlink-io.systemd.ManagedOOM.h"
 #include "varlink-io.systemd.MountFileSystem.h"
 #include "varlink-io.systemd.NamespaceResource.h"
@@ -190,6 +191,8 @@ TEST(parse_format) {
         print_separator();
         test_parse_format_one(&vl_interface_io_systemd_Machine);
         print_separator();
+        test_parse_format_one(&vl_interface_io_systemd_MachineImage);
+        print_separator();
         test_parse_format_one(&vl_interface_xyz_test);
 }
 
index 176fe6fb69a2be3d9f7b7d14d5c105b733d4e7dd..da62b465ea2350d49df0528fb291402d02ffc657 100755 (executable)
@@ -256,6 +256,11 @@ done
 
 long_running_machine_start
 
+varlinkctl introspect /run/systemd/machine/io.systemd.Machine io.systemd.Machine
+varlinkctl introspect /run/systemd/machine/io.systemd.Machine io.systemd.MachineImage
+varlinkctl introspect /run/systemd/machine/io.systemd.MachineImage io.systemd.Machine
+varlinkctl introspect /run/systemd/machine/io.systemd.MachineImage io.systemd.MachineImage
+
 # test io.systemd.Machine.List
 varlinkctl --more call /run/systemd/machine/io.systemd.Machine io.systemd.Machine.List '{}' | grep 'long-running'
 varlinkctl --more call /run/systemd/machine/io.systemd.Machine io.systemd.Machine.List '{}' | grep '.host'