Ivan Kruglov
38a0cf4172
machine: introduce io.systemd.MachineImage.Clone method
2024-11-01 15:30:34 +01:00
Ivan Kruglov
95d5b9097b
machine: use report_errno_and_exit() in dbus code
2024-11-01 15:21:22 +01:00
Ivan Kruglov
30a34657b8
machine: introduce report_errno_and_exit()
2024-11-01 15:21:22 +01:00
Ivan Kruglov
a52ce4a29d
machine: align polkit verb of io.systemd.MachineImage.Update with the rest of the code
2024-11-01 15:20:59 +01:00
Luca Boccassi
fdccba15be
util-lib/systemd-run: implement race-free PTY peer opening ( #34953 )
...
This makes use of the new TIOCGPTPEER pty ioctl() for directly opening a
PTY peer, without going via path names. This is nice because it closes a
race around allocating and opening the peer. And also has the nice
benefit that if we acquired an fd originating from some other
namespace/container, we can directly derive the peer fd from it, without
having to reenter the namespace again.
2024-11-01 11:29:19 +00:00
Yu Watanabe
76423f301e
machine: lookup_machine_by_name_or_pidref() returns negative errno on failure
...
This effectively reverts d2c1451b73 .
After the commit d2ebf5cc1d , sd_varlink_error()
returns negative errno, hence the function always return negative errno
on failure.
2024-10-31 11:02:35 +09:00
Yu Watanabe
0ef4a21b09
machine: use JSON_BUILD_PAIR_STRV_ENV_PAIR_NON_EMPTY()
...
Also use JSON_BUILD_PAIR_UNSIGNED_NOT_EQUAL().
2024-10-31 11:02:35 +09:00
Yu Watanabe
20e1237ce1
machined: ACQUIRE_METADATA_NO is zero
...
Follow-ups for a94fbcaa35 and
9de215219c .
2024-10-31 10:59:14 +09:00
Yu Watanabe
f283816acb
machine: use sd_json_variant_append_arraybo() and JSON_BUILD_PAIR_VARIANT_NON_NULL()
...
Follow-up for 45755275e5 .
2024-10-31 10:59:14 +09:00
Lennart Poettering
42c8f1c761
machined: port to pty_open_peer_racefree()
2024-10-30 22:37:44 +01:00
Ivan Kruglov
10a48938ef
machine: operation should not send a response when 'done' callback set
2024-10-26 02:45:53 +09:00
Ivan Kruglov
9de215219c
machine: use AcquireMetadata in io.systemd.MachineImage.List method
2024-10-21 17:42:37 +02:00
Ivan Kruglov
45755275e5
machine: add Addresses field in varlink io.systemd.Machine.List output
...
This is equivalent to DBus implementation of GetMachineAddresses.
2024-10-21 17:38:29 +02:00
Ivan Kruglov
a94fbcaa35
machine: add OSRelease and UIDShift fields in varlink io.systemd.Machine.List output
...
This commit adds support of the above mentioned fields. This is equivalent to DBus implementation of:
- GetMachineOSRelease
- GetMachineUIDShift
2024-10-21 17:38:28 +02:00
Ivan Kruglov
16b1b304ba
machine: enum AcquireMetadata
2024-10-21 17:34:11 +02:00
Ivan Kruglov
d8964f9d4d
machine: rework Operation logic to reuse in varlink interface
2024-10-21 17:08:14 +02:00
Yu Watanabe
cd4b71b861
machine: fix typo
...
Follow-up for ad0d4f9a4c .
2024-10-17 00:48:43 +09:00
Yu Watanabe
7a3ee9217e
machine: add MachineImage interface
...
Follow-up for fb0ea6a6a3 .
Fixes #34772 .
2024-10-15 20:44:13 +09:00
Lennart Poettering
6f9826b6d8
Merge pull request #34723 from poettering/machined-pidref-more
...
machined: switch remaining Varlink overs over to use json_dispatch_pidref() and friends
2024-10-15 11:37:39 +02:00
Yu Watanabe
10230b8251
machine: trivial coding style cleanups
2024-10-15 14:24:58 +09:00
Yu Watanabe
d1ac7d76b4
machine: fix memleak in vl_method_list_images()
...
Fixes an issue in fb0ea6a6a3 .
2024-10-15 14:24:58 +09:00
Yu Watanabe
d2c1451b73
machine: lookup_machine_by_name_or_pid() may return 1 on error and it is already replied
...
Follow-ups for 1bd979dddb and later
commits.
Fixes #34764 .
2024-10-15 14:24:58 +09:00
Lennart Poettering
6bca1a7c6c
machined: port all varlink APIs over to new PidRef serialization
2024-10-14 12:47:17 +02:00
Ivan Kruglov
84d7447a88
machine: listen on io.systemd.MachineImage socket
2024-10-14 11:09:18 +02:00
Ivan Kruglov
7809bd3ba7
machine: introduce io.systemd.MachineImage.Update varlink method
...
io.systemd.MachineImage.Update implements the following dbus org.freedesktop.machine1.Manager interfaces:
- RenameImage
- MarkImageReadOnly
- SetImageLimit
2024-10-14 11:09:18 +02:00
Ivan Kruglov
fb0ea6a6a3
machine: introduce io.systemd.MachineImage.List varlink method
...
io.systemd.MachineImage.List implements the following dbus org.freedesktop.machine1.Manager interfaces:
- GetImage
- ListImages
- GetImageHostname
- GetImageMachineID
- GetImageMachineInfo
- GetImageOSRelease
2024-10-14 10:57:36 +02:00
Ivan Kruglov
dd2d5952c9
machine: generalize rename_image_and_update_cache() logic
...
This is a prep step to reuse the function in varlink interface
2024-10-14 10:42:47 +02:00
Ivan Kruglov
ad0d4f9a4c
machine: move manager_acquire_image to src/machine/machined-core.c
...
This is a prep step to reuse the function in varlink interface.
2024-10-14 10:42:47 +02:00
Lennart Poettering
1fef1773c0
Merge pull request #34703 from poettering/pidref-varlink
...
Serialize "PidRef" in a reasonable way in Varlink interfaces
2024-10-11 13:33:44 +02:00
Lennart Poettering
755cb018c9
machined: also take new ProcessId structure when registering processes
2024-10-11 10:48:07 +02:00
Lennart Poettering
0fc530d157
machined: make List() varlink method return a full pidref JSON object for leader
...
This new call has not been released yet, hence we can still change the
encoding of the "leader" field.
2024-10-11 10:48:07 +02:00
Ivan Kruglov
d8aefe88c8
machine: use sd_json_dispatch_pid() in varlink code
2024-10-10 13:40:45 +02:00
Ivan Kruglov
f6cb4d4afb
machine: switch to use PidRef when lookup machine by pid in dbus and varlink interfaces
...
This commit includes adding introduce manager_get_machine_by_pidref() as a replacement for manager_get_machine_by_pid()
and moving surrounding code to utilise PidRef.
2024-10-10 13:40:45 +02:00
Ivan Kruglov
45a20e41df
machine: use sd_json_dispatch_signal() in varlink code
2024-10-10 13:40:45 +02:00
Ivan Kruglov
18897460cf
machine: remove redundant else if lookup_machine_by_name_or_pid()
2024-10-10 12:34:45 +02:00
Lennart Poettering
50ed3b1682
machined: use sd_json_dispatch_uint() when parsing CID
...
This is preferable, because we will accept CIDs encoded as strings too
now, as we do for all other integers. Also, it's shorter. Yay!
2024-10-10 11:34:47 +02:00
Daan De Meyer
61808636a7
Merge pull request #34679 from DaanDeMeyer/bus-log
...
Various logging improvements
2024-10-09 11:42:26 +02:00
Daan De Meyer
d8a77d55e6
bus-util: Log more information when connecting to a bus socket fails
...
Let's log about which bus we're trying to connect to and what transport
we're using to do it.
2024-10-09 10:27:53 +02:00
Ivan Kruglov
144128d317
machine: extend io.systemd.Machine.List output with sshPrivateKeyPath field
...
Effectivelly, this is an implementation of GetMachineSSHInfo in dbus.
2024-10-07 14:50:16 +02:00
Ivan Kruglov
0c3191a506
machine: use JSON_BUILD_PAIR_STRING_NON_EMPTY() in io.systemd.Machine.List output
2024-10-07 14:49:55 +02:00
Ivan Kruglov
17d9f172eb
machine: introduce io.systemd.Machine.Kill varlink method
2024-10-07 14:45:49 +02:00
Ivan Kruglov
6bb6354b4f
machine: introduce io.systemd.Machine.Terminate varlink method
2024-10-07 14:45:49 +02:00
Ivan Kruglov
7999aa2c79
machine: introduce io.systemd.Machine.Unregister varlink method
2024-10-07 14:45:49 +02:00
Ivan Kruglov
1bd979dddb
machine: io.systemd.Machine.List supports 'pid' filter
2024-10-07 14:45:48 +02:00
Yu Watanabe
f769518c9a
tree-wide: drop doubled empty lines
2024-10-07 09:51:37 +02:00
Daan De Meyer
f02f8b3ca7
Merge pull request #34546 from ikruglov/ikruglov/refactor-GetMachineAddresses
...
machine: generalise logic of GetMachineAddresses/GetOsRelease to later use it in corresponding varlink interfaces
2024-10-02 10:24:59 +02:00
Ivan Kruglov
31f9f589a8
machine: generalise logic GetOSRelease to later use it in varlink interface
2024-10-01 19:00:25 +02:00
Ivan Kruglov
f1daf9fb74
machine: generalise logic GetMachineAddresses to later use it in varlink interface
2024-10-01 19:00:25 +02:00
Lennart Poettering
0376ef36a1
json: add json_dispatch_const_user_group_name()
...
This is the same as json_dispatch_user_group_name() but fills in the
string as "const char*" to the JSON field. Or in other words, it's what
sd_json_dispatch_const_string() is to sd_json_dispatch_string().
Note this drops the SD_JSON_STRICT flags from various dispatch tables
for these fields, and replaces this by SD_JSON_RELAX, i.e. the opposite
behaviour. As #34558 correctly suggests we should validate user names
in lookup functions using the lax rules, rather than the strict ones,
since clients not knowing the rules might ask us for arbitrary
resolution.
(SD_JSON_RELAX internally translates to valid_user_group_name() with the
VALID_USER_RELAX flag).
See: #34558
2024-10-01 08:32:00 +02:00
Mike Yuan
f3270bed48
machined-dbus: move manager_add_machine() and _get_machine_by_pid() to -core
2024-09-21 00:35:38 +02:00