From: Luca Boccassi Date: Mon, 24 Jun 2024 18:45:37 +0000 (+0200) Subject: Merge pull request #33042 from poettering/machined-unpriv X-Git-Tag: v257-rc1~1062 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f8f06462e5015addd37d901029f223a09a35aca5;p=thirdparty%2Fsystemd.git Merge pull request #33042 from poettering/machined-unpriv machined: unprivileged machine registration --- f8f06462e5015addd37d901029f223a09a35aca5 diff --cc src/shared/varlink-io.systemd.Machine.c index b5f8f5c0751,9c9b8570b6e..4d935272735 --- a/src/shared/varlink-io.systemd.Machine.c +++ b/src/shared/varlink-io.systemd.Machine.c @@@ -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(