diff --git a/src/machine/machined-varlink.c b/src/machine/machined-varlink.c index 5932d5edab..47dbbe226e 100644 --- a/src/machine/machined-varlink.c +++ b/src/machine/machined-varlink.c @@ -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, diff --git a/src/shared/meson.build b/src/shared/meson.build index 42dd32024a..1141efa453 100644 --- a/src/shared/meson.build +++ b/src/shared/meson.build @@ -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', diff --git a/src/shared/varlink-io.systemd.MachineImage.c b/src/shared/varlink-io.systemd.MachineImage.c index 514c5720c6..d417af8027 100644 --- a/src/shared/varlink-io.systemd.MachineImage.c +++ b/src/shared/varlink-io.systemd.MachineImage.c @@ -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( diff --git a/src/test/test-varlink-idl.c b/src/test/test-varlink-idl.c index 519056d044..c54b24aa8b 100644 --- a/src/test/test-varlink-idl.c +++ b/src/test/test-varlink-idl.c @@ -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); } diff --git a/test/units/TEST-13-NSPAWN.machined.sh b/test/units/TEST-13-NSPAWN.machined.sh index 176fe6fb69..da62b465ea 100755 --- a/test/units/TEST-13-NSPAWN.machined.sh +++ b/test/units/TEST-13-NSPAWN.machined.sh @@ -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'