Mike Yuan
92b8e5e72f
namespace-util: introduce pidref_in_same_namespace()
2025-01-04 17:08:01 +01:00
Mike Yuan
0577339d7d
various: add missing include for namespace-util.h
...
Preparation for later commits for removing inclusion
of namespace-util from process-util.h
2025-01-04 17:08:00 +01:00
Daan De Meyer
d0d647e084
Introduce systemd-pty-forward ( #35761 )
...
This allows running a command with tinted terminal background.
2025-01-03 19:34:42 +01:00
Daan De Meyer
9fbecf12fb
tree-wide: Rename ret_slave to ret_peer
2025-01-03 09:28:13 +01:00
Ivan Kruglov
d12b63f168
machine: introduce io.systemd.Machine.BindMount method
2025-01-02 16:58:16 +01:00
Yu Watanabe
51a0a3b049
machine: GC machine when no leader PID is set
...
After d8854ff1ac , if a serialized
leader PID of a machine is already dead when deserialized, then the
leader PID and PIDFD are unset for the machine, and subsequent
machine_start() -> machine_watch_pidfd() will trigger an assertion.
This makes a Machine object without leader PID GCed.
Fixes a bug introduced by the combination of
d8854ff1ac (v255) and
1762c2c045 (v257).
Fixes #35602 .
2024-12-28 12:03:20 +00:00
Ivan Kruglov
544b7718b3
machine: add debugging info to trace #35115
2024-12-23 16:38:22 +00:00
Lennart Poettering
1c0ade2e1f
discover-image: introduce per-user image directories
...
We nowadays support unprivileged invocation of systemd-nspawn +
systemd-vmspawn, but there was no support for discovering suitable disk
images (i.e. no per-user counterpart of /var/lib/machines). Add this
now, and hook it up everywhere.
Instead of hardcoding machined's, importd's, portabled's, sysupdated's
image discovery to RUNTIME_SCOPE_SYSTEM I introduced a field that make
the scope variable, even if this field is always initialized to
RUNTIME_SCOPE_SYSTEM for now. I think these four services should
eventually be updated to support a per-user concept too, this is
preparation for that, even though it doesn't outright add support for
this.
This is for the largest part not user visible, except for in nspawn,
vmspawn and the dissect tool. For the latter I added a pair of
--user/--system switches to select the discovery scope.
2024-12-20 18:04:01 +01:00
Yu Watanabe
64b504bde3
machinectl: explicitly assign PTY forwarder to sd_bus_slot
...
No functional change, just refactoring.
2024-12-18 20:28:28 +09:00
Yu Watanabe
12807b5a49
ptyfwd: always flush buffer and disconnect before exit
...
Then, it is not necessary to manually drain PTY forwarder by the user
side. Also, not necessary to free PTY forwarder earlier explicitly to
make it disconnected.
2024-12-18 20:28:07 +09:00
Yu Watanabe
4a4e7ec0e9
ptyfwd: always write additional line break on stop
...
Currently we do that in the user of PTY forwarder, e.g. nspawn.
But, let's do that unconditionally in the PTY forwarder.
2024-12-18 20:26:58 +09:00
Ivan Kruglov
8351463f67
machine: introduce io.systemd.Machine.{MapFrom, MapTo} methods
2024-12-17 11:25:24 +01:00
Zbigniew Jędrzejewski-Szmek
fd409ff0e0
various: set info on varlink server object
...
The values that were previously hardcoded in sd-varlink.c are now defined
in new varlink_set_info_systemd() and that function is called everywhere
where we create a server.
2024-12-10 10:51:56 +01:00
Luca Boccassi
d99fe076b5
introduce report_errno_and_exit() helper ( #35028 )
...
This is a follow for https://github.com/systemd/systemd/pull/34853 . In
particular, this comment
https://github.com/systemd/systemd/pull/34853#discussion_r1825837705 .
2024-11-06 13:51:10 +00:00
Ivan Kruglov
a686bedb88
machine: introduce io.systemd.Machine.Open method
2024-11-06 11:37:51 +01:00
Ivan Kruglov
b0eca6dee0
machine: machine_default_shell_path() & machine_default_shell_args() helper functions
2024-11-06 11:37:51 +01:00
Ivan Kruglov
41f1f283d7
machine: introduce machine_start_getty() and machine_start_shell() helpers
2024-11-06 11:37:51 +01:00
Ivan Kruglov
a567de392d
process-util: introduce report_errno_and_exit() as part of src/basic/process-util.{h,c}
2024-11-06 11:18:38 +01:00
Ivan Kruglov
88d0b72833
machine: use ImageUpdateParameters in io.systemd.MachineImage.Update
2024-11-01 15:30:39 +01:00
Ivan Kruglov
1663455b63
machine: introduce io.systemd.MachineImage.Remove method
2024-11-01 15:30:39 +01:00
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