]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Merge pull request #33042 from poettering/machined-unpriv
authorLuca Boccassi <bluca@debian.org>
Mon, 24 Jun 2024 18:45:37 +0000 (20:45 +0200)
committerGitHub <noreply@github.com>
Mon, 24 Jun 2024 18:45:37 +0000 (20:45 +0200)
machined: unprivileged machine registration

1  2 
src/machine/machined-varlink.c
src/shared/varlink-io.systemd.Machine.c

Simple merge
index b5f8f5c0751428bf6ec171ed6caa2e136467c96d,9c9b8570b6ebbbe69981a580cb7746ba8ecbc6d0..4d9352727355b240cffbf6e4481157dba38a6c46
@@@ -14,41 -14,12 +14,45 @@@ static VARLINK_DEFINE_METHOD
                  VARLINK_DEFINE_INPUT(ifIndices,         VARLINK_INT,    VARLINK_ARRAY|VARLINK_NULLABLE),
                  VARLINK_DEFINE_INPUT(vSockCid,          VARLINK_INT,    VARLINK_NULLABLE),
                  VARLINK_DEFINE_INPUT(sshAddress,        VARLINK_STRING, VARLINK_NULLABLE),
-                 VARLINK_DEFINE_INPUT(sshPrivateKeyPath, VARLINK_STRING, VARLINK_NULLABLE));
+                 VARLINK_DEFINE_INPUT(sshPrivateKeyPath, VARLINK_STRING, VARLINK_NULLABLE),
+                 VARLINK_FIELD_COMMENT("Controls whether to allocate a scope unit for the machine to register. If false, the client already took care of that and registered a service/scope specific to the machine."),
+                 VARLINK_DEFINE_INPUT(allocateUnit,      VARLINK_BOOL,   VARLINK_NULLABLE),
+                 VARLINK_FIELD_COMMENT("Whether to allow interactive authentication on this operation."),
+                 VARLINK_DEFINE_INPUT(allowInteractiveAuthentication, VARLINK_BOOL, VARLINK_NULLABLE));
  
 +static VARLINK_DEFINE_STRUCT_TYPE(
 +                Timestamp,
 +                VARLINK_FIELD_COMMENT("Timestamp in µs in the CLOCK_REALTIME clock (wallclock)"),
 +                VARLINK_DEFINE_FIELD(realtime, VARLINK_INT, VARLINK_NULLABLE),
 +                VARLINK_FIELD_COMMENT("Timestamp in µs in the CLOCK_MONOTONIC clock"),
 +                VARLINK_DEFINE_FIELD(monotonic, VARLINK_INT, VARLINK_NULLABLE));
 +
 +static VARLINK_DEFINE_METHOD(
 +                List,
 +                VARLINK_FIELD_COMMENT("If non-null the name of a running machine to report details on. If null/unspecified enumerates all running machines."),
 +                VARLINK_DEFINE_INPUT(name, VARLINK_STRING, VARLINK_NULLABLE),
 +                VARLINK_FIELD_COMMENT("Name of the machine"),
 +                VARLINK_DEFINE_OUTPUT(name, VARLINK_STRING, 0),
 +                VARLINK_FIELD_COMMENT("128bit ID identifying this machine, formatted in hexadecimal"),
 +                VARLINK_DEFINE_OUTPUT(id, VARLINK_STRING, VARLINK_NULLABLE),
 +                VARLINK_FIELD_COMMENT("Name of the software that registered this machine"),
 +                VARLINK_DEFINE_OUTPUT(service, VARLINK_STRING, VARLINK_NULLABLE),
 +                VARLINK_FIELD_COMMENT("The class of this machine"),
 +                VARLINK_DEFINE_OUTPUT(class, VARLINK_STRING, 0),
 +                VARLINK_FIELD_COMMENT("Leader process PID of this machine"),
 +                VARLINK_DEFINE_OUTPUT(leader, VARLINK_INT, VARLINK_NULLABLE),
 +                VARLINK_FIELD_COMMENT("Root directory of this machine, if known, relative to host file system"),
 +                VARLINK_DEFINE_OUTPUT(rootDirectory, VARLINK_STRING, VARLINK_NULLABLE),
 +                VARLINK_FIELD_COMMENT("The service manager unit this machine resides in"),
 +                VARLINK_DEFINE_OUTPUT(unit, VARLINK_STRING, VARLINK_NULLABLE),
 +                VARLINK_FIELD_COMMENT("Timestamp when the machine was activated"),
 +                VARLINK_DEFINE_OUTPUT_BY_TYPE(timestamp, Timestamp, VARLINK_NULLABLE),
 +                VARLINK_FIELD_COMMENT("AF_VSOCK CID of the machine if known and applicable"),
 +                VARLINK_DEFINE_OUTPUT(vSockCid, VARLINK_INT, VARLINK_NULLABLE),
 +                VARLINK_FIELD_COMMENT("SSH address to connect to"),
 +                VARLINK_DEFINE_OUTPUT(sshAddress, VARLINK_STRING, VARLINK_NULLABLE));
 +
 +static VARLINK_DEFINE_ERROR(NoSuchMachine);
  static VARLINK_DEFINE_ERROR(MachineExists);
  
  VARLINK_DEFINE_INTERFACE(