Zbigniew Jędrzejewski-Szmek b32641
From c93a24119977a11791aab0f3df5e5cb9973a34de Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek b32641
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Zbigniew Jędrzejewski-Szmek b32641
Date: Sat, 11 May 2024 13:27:12 +0200
Zbigniew Jędrzejewski-Szmek b32641
Subject: [PATCH] Revert "machined: add varlink interface for registering
Zbigniew Jędrzejewski-Szmek b32641
 machines"
Zbigniew Jędrzejewski-Szmek b32641
Zbigniew Jędrzejewski-Szmek b32641
This reverts commit 5b44c81ff868a4d1b78a74e4770f7a8b2f1d0f91.
Zbigniew Jędrzejewski-Szmek b32641
---
Zbigniew Jędrzejewski-Szmek b32641
 man/systemd-machined.service.xml        |  6 +--
Zbigniew Jędrzejewski-Szmek b32641
 src/machine/machine-varlink.h           |  6 ---
Zbigniew Jędrzejewski-Szmek b32641
 src/machine/machined-varlink.c          | 62 ++-----------------------
Zbigniew Jędrzejewski-Szmek b32641
 src/machine/machined.c                  |  5 +-
Zbigniew Jędrzejewski-Szmek b32641
 src/machine/machined.h                  |  3 +-
Zbigniew Jędrzejewski-Szmek b32641
 src/machine/meson.build                 |  1 -
Zbigniew Jędrzejewski-Szmek b32641
 src/shared/meson.build                  |  1 -
Zbigniew Jędrzejewski-Szmek b32641
 src/shared/varlink-io.systemd.Machine.h |  6 ---
Zbigniew Jędrzejewski-Szmek b32641
 8 files changed, 8 insertions(+), 82 deletions(-)
Zbigniew Jędrzejewski-Szmek b32641
 delete mode 100644 src/machine/machine-varlink.h
Zbigniew Jędrzejewski-Szmek b32641
 delete mode 100644 src/shared/varlink-io.systemd.Machine.h
Zbigniew Jędrzejewski-Szmek b32641
Zbigniew Jędrzejewski-Szmek b32641
diff --git a/man/systemd-machined.service.xml b/man/systemd-machined.service.xml
Zbigniew Jędrzejewski-Szmek b32641
index b2899ff0fd..f3d7755973 100644
Zbigniew Jędrzejewski-Szmek b32641
--- a/man/systemd-machined.service.xml
Zbigniew Jędrzejewski-Szmek b32641
+++ b/man/systemd-machined.service.xml
Zbigniew Jędrzejewski-Szmek b32641
@@ -100,12 +100,10 @@
Zbigniew Jędrzejewski-Szmek b32641
 
Zbigniew Jędrzejewski-Szmek b32641
     <para>The daemon provides both a C library interface
Zbigniew Jędrzejewski-Szmek b32641
     (which is shared with <citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>)
Zbigniew Jędrzejewski-Szmek b32641
-    as well as a D-Bus interface and a Varlink interface.
Zbigniew Jędrzejewski-Szmek b32641
+    as well as a D-Bus interface.
Zbigniew Jędrzejewski-Szmek b32641
     The library interface may be used to introspect and watch the state of virtual machines/containers.
Zbigniew Jędrzejewski-Szmek b32641
     The bus interface provides the same but in addition may also be used to register or terminate
Zbigniew Jędrzejewski-Szmek b32641
-    machines. The Varlink interface may be used to register machines with optional extensions, e.g. with an
Zbigniew Jędrzejewski-Szmek b32641
-    SSH key / address; it can be queried with
Zbigniew Jędrzejewski-Szmek b32641
-    <command>varlinkctl introspect /run/systemd/machine/io.systemd.Machine io.systemd.Machine</command>.
Zbigniew Jędrzejewski-Szmek b32641
+    machines.
Zbigniew Jędrzejewski-Szmek b32641
     For more information please consult
Zbigniew Jędrzejewski-Szmek b32641
     <citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>
Zbigniew Jędrzejewski-Szmek b32641
     and
Zbigniew Jędrzejewski-Szmek b32641
diff --git a/src/machine/machine-varlink.h b/src/machine/machine-varlink.h
Zbigniew Jędrzejewski-Szmek b32641
deleted file mode 100644
Zbigniew Jędrzejewski-Szmek b32641
index ce4ec54dc1..0000000000
Zbigniew Jędrzejewski-Szmek b32641
--- a/src/machine/machine-varlink.h
Zbigniew Jędrzejewski-Szmek b32641
+++ /dev/null
Zbigniew Jędrzejewski-Szmek b32641
@@ -1,6 +0,0 @@
Zbigniew Jędrzejewski-Szmek b32641
-/* SPDX-License-Identifier: LGPL-2.1-or-later */
Zbigniew Jędrzejewski-Szmek b32641
-#pragma once
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-#include "varlink.h"
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-int vl_method_register(Varlink *link, JsonVariant *parameters, VarlinkMethodFlags flags, void *userdata);
Zbigniew Jędrzejewski-Szmek b32641
diff --git a/src/machine/machined-varlink.c b/src/machine/machined-varlink.c
Zbigniew Jędrzejewski-Szmek b32641
index 0d3ae627c1..6ca98e27cf 100644
Zbigniew Jędrzejewski-Szmek b32641
--- a/src/machine/machined-varlink.c
Zbigniew Jędrzejewski-Szmek b32641
+++ b/src/machine/machined-varlink.c
Zbigniew Jędrzejewski-Szmek b32641
@@ -1,12 +1,10 @@
Zbigniew Jędrzejewski-Szmek b32641
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
Zbigniew Jędrzejewski-Szmek b32641
 
Zbigniew Jędrzejewski-Szmek b32641
 #include "format-util.h"
Zbigniew Jędrzejewski-Szmek b32641
-#include "machine-varlink.h"
Zbigniew Jędrzejewski-Szmek b32641
 #include "machined-varlink.h"
Zbigniew Jędrzejewski-Szmek b32641
 #include "mkdir.h"
Zbigniew Jędrzejewski-Szmek b32641
 #include "user-util.h"
Zbigniew Jędrzejewski-Szmek b32641
 #include "varlink.h"
Zbigniew Jędrzejewski-Szmek b32641
-#include "varlink-io.systemd.Machine.h"
Zbigniew Jędrzejewski-Szmek b32641
 #include "varlink-io.systemd.UserDatabase.h"
Zbigniew Jędrzejewski-Szmek b32641
 
Zbigniew Jędrzejewski-Szmek b32641
 typedef struct LookupParameters {
Zbigniew Jędrzejewski-Szmek b32641
@@ -380,13 +378,13 @@ static int vl_method_get_memberships(Varlink *link, JsonVariant *parameters, Var
Zbigniew Jędrzejewski-Szmek b32641
         return varlink_error(link, "io.systemd.UserDatabase.NoRecordFound", NULL);
Zbigniew Jędrzejewski-Szmek b32641
 }
Zbigniew Jędrzejewski-Szmek b32641
 
Zbigniew Jędrzejewski-Szmek b32641
-static int manager_varlink_init_userdb(Manager *m) {
Zbigniew Jędrzejewski-Szmek b32641
+int manager_varlink_init(Manager *m) {
Zbigniew Jędrzejewski-Szmek b32641
         _cleanup_(varlink_server_unrefp) VarlinkServer *s = NULL;
Zbigniew Jędrzejewski-Szmek b32641
         int r;
Zbigniew Jędrzejewski-Szmek b32641
 
Zbigniew Jędrzejewski-Szmek b32641
         assert(m);
Zbigniew Jędrzejewski-Szmek b32641
 
Zbigniew Jędrzejewski-Szmek b32641
-        if (m->varlink_userdb_server)
Zbigniew Jędrzejewski-Szmek b32641
+        if (m->varlink_server)
Zbigniew Jędrzejewski-Szmek b32641
                 return 0;
Zbigniew Jędrzejewski-Szmek b32641
 
Zbigniew Jędrzejewski-Szmek b32641
         r = varlink_server_new(&s, VARLINK_SERVER_ACCOUNT_UID|VARLINK_SERVER_INHERIT_USERDATA);
Zbigniew Jędrzejewski-Szmek b32641
@@ -417,64 +415,12 @@ static int manager_varlink_init_userdb(Manager *m) {
Zbigniew Jędrzejewski-Szmek b32641
         if (r < 0)
Zbigniew Jędrzejewski-Szmek b32641
                 return log_error_errno(r, "Failed to attach varlink connection to event loop: %m");
Zbigniew Jędrzejewski-Szmek b32641
 
Zbigniew Jędrzejewski-Szmek b32641
-        m->varlink_userdb_server = TAKE_PTR(s);
Zbigniew Jędrzejewski-Szmek b32641
-        return 0;
Zbigniew Jędrzejewski-Szmek b32641
-}
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-static int manager_varlink_init_machine(Manager *m) {
Zbigniew Jędrzejewski-Szmek b32641
-        _cleanup_(varlink_server_unrefp) VarlinkServer *s = NULL;
Zbigniew Jędrzejewski-Szmek b32641
-        int r;
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-        assert(m);
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-        if (m->varlink_machine_server)
Zbigniew Jędrzejewski-Szmek b32641
-                return 0;
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-        r = varlink_server_new(&s, VARLINK_SERVER_ROOT_ONLY|VARLINK_SERVER_INHERIT_USERDATA);
Zbigniew Jędrzejewski-Szmek b32641
-        if (r < 0)
Zbigniew Jędrzejewski-Szmek b32641
-                return log_error_errno(r, "Failed to allocate varlink server object: %m");
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-        varlink_server_set_userdata(s, m);
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-        r = varlink_server_add_interface(s, &vl_interface_io_systemd_Machine);
Zbigniew Jędrzejewski-Szmek b32641
-        if (r < 0)
Zbigniew Jędrzejewski-Szmek b32641
-                return log_error_errno(r, "Failed to add UserDatabase interface to varlink server: %m");
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-        r = varlink_server_bind_method(s, "io.systemd.Machine.Register", vl_method_register);
Zbigniew Jędrzejewski-Szmek b32641
-        if (r < 0)
Zbigniew Jędrzejewski-Szmek b32641
-                return log_error_errno(r, "Failed to register varlink methods: %m");
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-        (void) mkdir_p("/run/systemd/machine", 0755);
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-        r = varlink_server_listen_address(s, "/run/systemd/machine/io.systemd.Machine", 0666);
Zbigniew Jędrzejewski-Szmek b32641
-        if (r < 0)
Zbigniew Jędrzejewski-Szmek b32641
-                return log_error_errno(r, "Failed to bind to varlink socket: %m");
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-        r = varlink_server_attach_event(s, m->event, SD_EVENT_PRIORITY_NORMAL);
Zbigniew Jędrzejewski-Szmek b32641
-        if (r < 0)
Zbigniew Jędrzejewski-Szmek b32641
-                return log_error_errno(r, "Failed to attach varlink connection to event loop: %m");
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-        m->varlink_machine_server = TAKE_PTR(s);
Zbigniew Jędrzejewski-Szmek b32641
-        return 0;
Zbigniew Jędrzejewski-Szmek b32641
-}
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-int manager_varlink_init(Manager *m) {
Zbigniew Jędrzejewski-Szmek b32641
-        int r;
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-        r = manager_varlink_init_userdb(m);
Zbigniew Jędrzejewski-Szmek b32641
-        if (r < 0)
Zbigniew Jędrzejewski-Szmek b32641
-                return r;
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-        r = manager_varlink_init_machine(m);
Zbigniew Jędrzejewski-Szmek b32641
-        if (r < 0)
Zbigniew Jędrzejewski-Szmek b32641
-                return r;
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
+        m->varlink_server = TAKE_PTR(s);
Zbigniew Jędrzejewski-Szmek b32641
         return 0;
Zbigniew Jędrzejewski-Szmek b32641
 }
Zbigniew Jędrzejewski-Szmek b32641
 
Zbigniew Jędrzejewski-Szmek b32641
 void manager_varlink_done(Manager *m) {
Zbigniew Jędrzejewski-Szmek b32641
         assert(m);
Zbigniew Jędrzejewski-Szmek b32641
 
Zbigniew Jędrzejewski-Szmek b32641
-        m->varlink_userdb_server = varlink_server_unref(m->varlink_userdb_server);
Zbigniew Jędrzejewski-Szmek b32641
-        m->varlink_machine_server = varlink_server_unref(m->varlink_machine_server);
Zbigniew Jędrzejewski-Szmek b32641
+        m->varlink_server = varlink_server_unref(m->varlink_server);
Zbigniew Jędrzejewski-Szmek b32641
 }
Zbigniew Jędrzejewski-Szmek b32641
diff --git a/src/machine/machined.c b/src/machine/machined.c
Zbigniew Jędrzejewski-Szmek b32641
index d7087e4672..2638ed572e 100644
Zbigniew Jędrzejewski-Szmek b32641
--- a/src/machine/machined.c
Zbigniew Jędrzejewski-Szmek b32641
+++ b/src/machine/machined.c
Zbigniew Jędrzejewski-Szmek b32641
@@ -316,10 +316,7 @@ static bool check_idle(void *userdata) {
Zbigniew Jędrzejewski-Szmek b32641
         if (m->operations)
Zbigniew Jędrzejewski-Szmek b32641
                 return false;
Zbigniew Jędrzejewski-Szmek b32641
 
Zbigniew Jędrzejewski-Szmek b32641
-        if (varlink_server_current_connections(m->varlink_userdb_server) > 0)
Zbigniew Jędrzejewski-Szmek b32641
-                return false;
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-        if (varlink_server_current_connections(m->varlink_machine_server) > 0)
Zbigniew Jędrzejewski-Szmek b32641
+        if (varlink_server_current_connections(m->varlink_server) > 0)
Zbigniew Jędrzejewski-Szmek b32641
                 return false;
Zbigniew Jędrzejewski-Szmek b32641
 
Zbigniew Jędrzejewski-Szmek b32641
         manager_gc(m, true);
Zbigniew Jędrzejewski-Szmek b32641
diff --git a/src/machine/machined.h b/src/machine/machined.h
Zbigniew Jędrzejewski-Szmek b32641
index 67abed0fd6..280c32bab6 100644
Zbigniew Jędrzejewski-Szmek b32641
--- a/src/machine/machined.h
Zbigniew Jędrzejewski-Szmek b32641
+++ b/src/machine/machined.h
Zbigniew Jędrzejewski-Szmek b32641
@@ -40,8 +40,7 @@ struct Manager {
Zbigniew Jędrzejewski-Szmek b32641
         sd_event_source *nscd_cache_flush_event;
Zbigniew Jędrzejewski-Szmek b32641
 #endif
Zbigniew Jędrzejewski-Szmek b32641
 
Zbigniew Jędrzejewski-Szmek b32641
-        VarlinkServer *varlink_userdb_server;
Zbigniew Jędrzejewski-Szmek b32641
-        VarlinkServer *varlink_machine_server;
Zbigniew Jędrzejewski-Szmek b32641
+        VarlinkServer *varlink_server;
Zbigniew Jędrzejewski-Szmek b32641
 };
Zbigniew Jędrzejewski-Szmek b32641
 
Zbigniew Jędrzejewski-Szmek b32641
 int manager_add_machine(Manager *m, const char *name, Machine **_machine);
Zbigniew Jędrzejewski-Szmek b32641
diff --git a/src/machine/meson.build b/src/machine/meson.build
Zbigniew Jędrzejewski-Szmek b32641
index 3150b33de5..c82a32589d 100644
Zbigniew Jędrzejewski-Szmek b32641
--- a/src/machine/meson.build
Zbigniew Jędrzejewski-Szmek b32641
+++ b/src/machine/meson.build
Zbigniew Jędrzejewski-Szmek b32641
@@ -3,7 +3,6 @@
Zbigniew Jędrzejewski-Szmek b32641
 libmachine_core_sources = files(
Zbigniew Jędrzejewski-Szmek b32641
         'image-dbus.c',
Zbigniew Jędrzejewski-Szmek b32641
         'machine-dbus.c',
Zbigniew Jędrzejewski-Szmek b32641
-        'machine-varlink.c',
Zbigniew Jędrzejewski-Szmek b32641
         'machine.c',
Zbigniew Jędrzejewski-Szmek b32641
         'machined-core.c',
Zbigniew Jędrzejewski-Szmek b32641
         'machined-dbus.c',
Zbigniew Jędrzejewski-Szmek b32641
diff --git a/src/shared/meson.build b/src/shared/meson.build
Zbigniew Jędrzejewski-Szmek b32641
index d01367a159..17313aefed 100644
Zbigniew Jędrzejewski-Szmek b32641
--- a/src/shared/meson.build
Zbigniew Jędrzejewski-Szmek b32641
+++ b/src/shared/meson.build
Zbigniew Jędrzejewski-Szmek b32641
@@ -180,7 +180,6 @@ shared_sources = files(
Zbigniew Jędrzejewski-Szmek b32641
         'varlink-io.systemd.Credentials.c',
Zbigniew Jędrzejewski-Szmek b32641
         'varlink-io.systemd.Hostname.c',
Zbigniew Jędrzejewski-Szmek b32641
         'varlink-io.systemd.Journal.c',
Zbigniew Jędrzejewski-Szmek b32641
-        'varlink-io.systemd.Machine.c',
Zbigniew Jędrzejewski-Szmek b32641
         'varlink-io.systemd.ManagedOOM.c',
Zbigniew Jędrzejewski-Szmek b32641
         'varlink-io.systemd.MountFileSystem.c',
Zbigniew Jędrzejewski-Szmek b32641
         'varlink-io.systemd.NamespaceResource.c',
Zbigniew Jędrzejewski-Szmek b32641
diff --git a/src/shared/varlink-io.systemd.Machine.h b/src/shared/varlink-io.systemd.Machine.h
Zbigniew Jędrzejewski-Szmek b32641
deleted file mode 100644
Zbigniew Jędrzejewski-Szmek b32641
index c9fc85f150..0000000000
Zbigniew Jędrzejewski-Szmek b32641
--- a/src/shared/varlink-io.systemd.Machine.h
Zbigniew Jędrzejewski-Szmek b32641
+++ /dev/null
Zbigniew Jędrzejewski-Szmek b32641
@@ -1,6 +0,0 @@
Zbigniew Jędrzejewski-Szmek b32641
-/* SPDX-License-Identifier: LGPL-2.1-or-later */
Zbigniew Jędrzejewski-Szmek b32641
-#pragma once
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-#include "varlink-idl.h"
Zbigniew Jędrzejewski-Szmek b32641
-
Zbigniew Jędrzejewski-Szmek b32641
-extern const VarlinkInterface vl_interface_io_systemd_Machine;