mirror of
https://github.com/systemd/systemd.git
synced 2025-03-02 12:58:35 +03:00
machine: follow ups for varlink PRs recently merged (#35940)
Follow ups for: - https://github.com/systemd/systemd/pull/35880 - https://github.com/systemd/systemd/pull/35066
This commit is contained in:
commit
97ac59f18d
@ -2221,20 +2221,25 @@ int read_errno(int errno_fd) {
|
||||
|
||||
assert(errno_fd >= 0);
|
||||
|
||||
ssize_t n = loop_read(errno_fd, &r, sizeof(r), /* do_pool = */ 0);
|
||||
/* The issue here is that it's impossible to distinguish between
|
||||
* an error code returned by child and IO error arrised when reading it.
|
||||
* So, the function logs errors and return EIO for the later case. */
|
||||
|
||||
ssize_t n = loop_read(errno_fd, &r, sizeof(r), /* do_poll = */ false);
|
||||
if (n < 0) {
|
||||
log_debug_errno(n, "Failed to read errno: %m");
|
||||
return -EIO;
|
||||
}
|
||||
if (n == sizeof(r)) {
|
||||
/* child processes reported a error, return it */
|
||||
if (r < 0)
|
||||
if (r == 0)
|
||||
return 0;
|
||||
if (r < 0) /* child process reported an error, return it */
|
||||
return log_debug_errno(r, "Child process failed with errno: %m");
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(EIO), "Received a errno, but it's a positive value");
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(EIO), "Received an errno, but it's a positive value.");
|
||||
}
|
||||
if (n != 0)
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(EIO), "Received unexpected amount of bytes while reading errno");
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(EIO), "Received unexpected amount of bytes while reading errno.");
|
||||
|
||||
/* the process exited without reporting a error, assuming success */
|
||||
/* the process exited without reporting an error, assuming success */
|
||||
return 0;
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ int vl_method_update_image(sd_varlink *link, sd_json_variant *parameters, sd_var
|
||||
|
||||
r = manager_acquire_image(manager, p.name, &image);
|
||||
if (r == -ENOENT)
|
||||
return sd_varlink_error(link, "io.systemd.MachineImage.NoSuchImage", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_IMAGE_NO_SUCH_IMAGE, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@ -111,7 +111,7 @@ int vl_method_clone_image(sd_varlink *link, sd_json_variant *parameters, sd_varl
|
||||
assert(parameters);
|
||||
|
||||
if (manager->n_operations >= OPERATIONS_MAX)
|
||||
return sd_varlink_error(link, "io.systemd.MachineImage.TooManyOperations", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_IMAGE_TOO_MANY_OPERATIONS, NULL);
|
||||
|
||||
r = sd_varlink_dispatch(link, parameters, dispatch_table, &p);
|
||||
if (r != 0)
|
||||
@ -125,7 +125,7 @@ int vl_method_clone_image(sd_varlink *link, sd_json_variant *parameters, sd_varl
|
||||
|
||||
r = manager_acquire_image(manager, p.name, &image);
|
||||
if (r == -ENOENT)
|
||||
return sd_varlink_error(link, "io.systemd.MachineImage.NoSuchImage", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_IMAGE_NO_SUCH_IMAGE, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@ -182,7 +182,7 @@ int vl_method_remove_image(sd_varlink *link, sd_json_variant *parameters, sd_var
|
||||
assert(parameters);
|
||||
|
||||
if (manager->n_operations >= OPERATIONS_MAX)
|
||||
return sd_varlink_error(link, "io.systemd.MachineImage.TooManyOperations", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_IMAGE_TOO_MANY_OPERATIONS, NULL);
|
||||
|
||||
r = sd_varlink_dispatch(link, parameters, dispatch_table, &image_name);
|
||||
if (r != 0)
|
||||
@ -193,7 +193,7 @@ int vl_method_remove_image(sd_varlink *link, sd_json_variant *parameters, sd_var
|
||||
|
||||
r = manager_acquire_image(manager, image_name, &image);
|
||||
if (r == -ENOENT)
|
||||
return sd_varlink_error(link, "io.systemd.MachineImage.NoSuchImage", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_IMAGE_NO_SUCH_IMAGE, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
|
@ -3,6 +3,9 @@
|
||||
|
||||
#include "sd-varlink.h"
|
||||
|
||||
#define VARLINK_ERROR_MACHINE_IMAGE_NO_SUCH_IMAGE "io.systemd.MachineImage.NoSuchImage"
|
||||
#define VARLINK_ERROR_MACHINE_IMAGE_TOO_MANY_OPERATIONS "io.systemd.MachineImage.TooManyOperations"
|
||||
|
||||
int vl_method_update_image(sd_varlink *link, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata);
|
||||
int vl_method_clone_image(sd_varlink *link, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata);
|
||||
int vl_method_remove_image(sd_varlink *link, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata);
|
||||
|
@ -166,7 +166,7 @@ int vl_method_register(sd_varlink *link, sd_json_variant *parameters, sd_varlink
|
||||
|
||||
r = machine_link(manager, machine);
|
||||
if (r == -EEXIST)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.MachineExists", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_EXISTS, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@ -352,7 +352,7 @@ int vl_method_kill(sd_varlink *link, sd_json_variant *parameters, sd_varlink_met
|
||||
Machine *machine;
|
||||
r = lookup_machine_by_name_or_pidref(link, manager, p.name, &p.pidref, &machine);
|
||||
if (r == -ESRCH)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoSuchMachine", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_SUCH_MACHINE, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@ -501,7 +501,7 @@ int vl_method_open(sd_varlink *link, sd_json_variant *parameters, sd_varlink_met
|
||||
|
||||
r = lookup_machine_by_name_or_pidref(link, manager, p.name, &p.pidref, &machine);
|
||||
if (r == -ESRCH)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoSuchMachine", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_SUCH_MACHINE, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@ -517,7 +517,7 @@ int vl_method_open(sd_varlink *link, sd_json_variant *parameters, sd_varlink_met
|
||||
|
||||
ptmx_fd = machine_openpt(machine, O_RDWR|O_NOCTTY|O_CLOEXEC, &ptmx_name);
|
||||
if (ERRNO_IS_NEG_NOT_SUPPORTED(ptmx_fd))
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NotSupported", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NOT_SUPPORTED, NULL);
|
||||
if (ptmx_fd < 0)
|
||||
return log_debug_errno(ptmx_fd, "Failed to open pseudo terminal: %m");
|
||||
|
||||
@ -529,9 +529,9 @@ int vl_method_open(sd_varlink *link, sd_json_variant *parameters, sd_varlink_met
|
||||
case MACHINE_OPEN_MODE_LOGIN:
|
||||
r = machine_start_getty(machine, ptmx_name, /* error = */ NULL);
|
||||
if (r == -ENOENT)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoIPC", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_IPC, NULL);
|
||||
if (ERRNO_IS_NEG_NOT_SUPPORTED(r))
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NotSupported", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NOT_SUPPORTED, NULL);
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "Failed to start getty for machine '%s': %m", machine->name);
|
||||
|
||||
@ -541,9 +541,9 @@ int vl_method_open(sd_varlink *link, sd_json_variant *parameters, sd_varlink_met
|
||||
assert(user && path && args); /* to avoid gcc complaining about possible uninitialized variables */
|
||||
r = machine_start_shell(machine, ptmx_fd, ptmx_name, user, path, args, p.env, /* error = */ NULL);
|
||||
if (r == -ENOENT)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoIPC", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_IPC, NULL);
|
||||
if (ERRNO_IS_NEG_NOT_SUPPORTED(r))
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NotSupported", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NOT_SUPPORTED, NULL);
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "Failed to start shell for machine '%s': %m", machine->name);
|
||||
|
||||
@ -619,17 +619,17 @@ int vl_method_map_from(sd_varlink *link, sd_json_variant *parameters, sd_varlink
|
||||
|
||||
r = lookup_machine_by_name_or_pidref(link, manager, p.name, &p.pidref, &machine);
|
||||
if (r == -ESRCH)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoSuchMachine", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_SUCH_MACHINE, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
if (machine->class != MACHINE_CONTAINER)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NotSupported", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NOT_SUPPORTED, NULL);
|
||||
|
||||
if (p.uid != UID_INVALID) {
|
||||
r = machine_translate_uid(machine, p.uid, &converted_uid);
|
||||
if (r == -ESRCH)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoSuchUser", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_SUCH_USER, NULL);
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "Failed to map uid=%u for machine '%s': %m", p.uid, machine->name);
|
||||
}
|
||||
@ -637,7 +637,7 @@ int vl_method_map_from(sd_varlink *link, sd_json_variant *parameters, sd_varlink
|
||||
if (p.gid != UID_INVALID) {
|
||||
r = machine_translate_gid(machine, p.gid, &converted_gid);
|
||||
if (r == -ESRCH)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoSuchGroup", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_SUCH_GROUP, NULL);
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "Failed to map gid=%u for machine '%s': %m", p.gid, machine->name);
|
||||
}
|
||||
@ -682,14 +682,14 @@ int vl_method_map_to(sd_varlink *link, sd_json_variant *parameters, sd_varlink_m
|
||||
if (!uid_is_valid(p.uid))
|
||||
return sd_varlink_error_invalid_parameter_name(link, "uid");
|
||||
if (p.uid < 0x10000)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.UserInHostRange", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_USER_IN_HOST_RANGE, NULL);
|
||||
}
|
||||
|
||||
if (p.gid != GID_INVALID) {
|
||||
if (!gid_is_valid(p.gid))
|
||||
return sd_varlink_error_invalid_parameter_name(link, "gid");
|
||||
if (p.gid < 0x10000)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.GroupInHostRange", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_GROUP_IN_HOST_RANGE, NULL);
|
||||
}
|
||||
|
||||
if (p.uid != UID_INVALID) {
|
||||
@ -697,7 +697,7 @@ int vl_method_map_to(sd_varlink *link, sd_json_variant *parameters, sd_varlink_m
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "Failed to find machine for uid=%u: %m", p.uid);
|
||||
if (!r)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoSuchUser", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_SUCH_USER, NULL);
|
||||
}
|
||||
|
||||
if (p.gid != GID_INVALID) {
|
||||
@ -705,12 +705,12 @@ int vl_method_map_to(sd_varlink *link, sd_json_variant *parameters, sd_varlink_m
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "Failed to find machine for gid=%u: %m", p.gid);
|
||||
if (!r)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoSuchGroup", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_SUCH_GROUP, NULL);
|
||||
}
|
||||
|
||||
if (machine_by_uid && machine_by_gid && machine_by_uid != machine_by_gid) {
|
||||
log_debug_errno(SYNTHETIC_ERRNO(ESRCH), "Mapping of UID %u and GID %u resulted in two different machines", p.uid, p.gid);
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoSuchMachine", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_SUCH_MACHINE, NULL);
|
||||
}
|
||||
|
||||
if (machine_by_uid)
|
||||
@ -718,7 +718,7 @@ int vl_method_map_to(sd_varlink *link, sd_json_variant *parameters, sd_varlink_m
|
||||
else if (machine_by_gid)
|
||||
machine_name = machine_by_gid->name;
|
||||
else
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoSuchMachine", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_SUCH_MACHINE, NULL);
|
||||
|
||||
r = sd_json_buildo(&v,
|
||||
JSON_BUILD_PAIR_UNSIGNED_NOT_EQUAL("uid", converted_uid, UID_INVALID),
|
||||
@ -777,12 +777,12 @@ int vl_method_bind_mount(sd_varlink *link, sd_json_variant *parameters, sd_varli
|
||||
Machine *machine;
|
||||
r = lookup_machine_by_name_or_pidref(link, manager, p.name, &p.pidref, &machine);
|
||||
if (r == -ESRCH)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoSuchMachine", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_SUCH_MACHINE, NULL);
|
||||
if (r != 0)
|
||||
return r;
|
||||
|
||||
if (machine->class != MACHINE_CONTAINER)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NotSupported", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NOT_SUPPORTED, NULL);
|
||||
|
||||
r = varlink_verify_polkit_async(
|
||||
link,
|
||||
@ -801,7 +801,7 @@ int vl_method_bind_mount(sd_varlink *link, sd_json_variant *parameters, sd_varli
|
||||
return log_debug_errno(r, "Failed to get machine UID shift: %m");
|
||||
if (uid_shift != 0) {
|
||||
log_debug("Can't bind mount on container '%s' with user namespacing applied", machine->name);
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NotSupported", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NOT_SUPPORTED, NULL);
|
||||
}
|
||||
|
||||
if (p.read_only)
|
||||
@ -845,7 +845,7 @@ static int copy_done(Operation *operation, int ret, sd_bus_error *error) {
|
||||
if (ERRNO_IS_PRIVILEGE(ret))
|
||||
return sd_varlink_error(operation->link, SD_VARLINK_ERROR_PERMISSION_DENIED, NULL);
|
||||
if (ERRNO_IS_NEG_NOT_SUPPORTED(ret))
|
||||
return sd_varlink_error(operation->link, "io.systemd.Machine.NotSupported", NULL);
|
||||
return sd_varlink_error(operation->link, VARLINK_ERROR_MACHINE_NOT_SUPPORTED, NULL);
|
||||
if (ret < 0)
|
||||
return sd_varlink_error_errno(operation->link, ret);
|
||||
|
||||
@ -872,7 +872,7 @@ int vl_method_copy_internal(sd_varlink *link, sd_json_variant *parameters, sd_va
|
||||
assert(parameters);
|
||||
|
||||
if (manager->n_operations >= OPERATIONS_MAX)
|
||||
return sd_varlink_error(link, "io.systemd.MachineImage.TooManyOperations", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_TOO_MANY_OPERATIONS, NULL);
|
||||
|
||||
r = sd_varlink_dispatch(link, parameters, dispatch_table, &p);
|
||||
if (r != 0)
|
||||
@ -888,12 +888,12 @@ int vl_method_copy_internal(sd_varlink *link, sd_json_variant *parameters, sd_va
|
||||
Machine *machine;
|
||||
r = lookup_machine_by_name_or_pidref(link, manager, p.name, &p.pidref, &machine);
|
||||
if (r == -ESRCH)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoSuchMachine", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_SUCH_MACHINE, NULL);
|
||||
if (r != 0)
|
||||
return r;
|
||||
|
||||
if (machine->class != MACHINE_CONTAINER)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NotSupported", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NOT_SUPPORTED, NULL);
|
||||
|
||||
r = varlink_verify_polkit_async(
|
||||
link,
|
||||
@ -936,7 +936,7 @@ int vl_method_open_root_directory_internal(sd_varlink *link, sd_json_variant *pa
|
||||
|
||||
fd = machine_open_root_directory(machine);
|
||||
if (ERRNO_IS_NEG_NOT_SUPPORTED(fd))
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NotSupported", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NOT_SUPPORTED, NULL);
|
||||
if (fd < 0)
|
||||
return log_debug_errno(fd, "Failed to open root directory of machine '%s': %m", machine->name);
|
||||
|
||||
|
@ -5,6 +5,20 @@
|
||||
|
||||
#include "machine.h"
|
||||
|
||||
#define VARLINK_ERROR_MACHINE_NO_SUCH_MACHINE "io.systemd.Machine.NoSuchMachine"
|
||||
#define VARLINK_ERROR_MACHINE_EXISTS "io.systemd.Machine.MachineExists"
|
||||
#define VARLINK_ERROR_MACHINE_NO_PRIVATE_NETWORKING "io.systemd.Machine.NoPrivateNetworking"
|
||||
#define VARLINK_ERROR_MACHINE_NO_OS_RELEASE_INFORMATION "io.systemd.Machine.NoOSReleaseInformation"
|
||||
#define VARLINK_ERROR_MACHINE_NO_UID_SHIFT "io.systemd.Machine.NoUIDShift"
|
||||
#define VARLINK_ERROR_MACHINE_NOT_AVAILABLE "io.systemd.Machine.NotAvailable"
|
||||
#define VARLINK_ERROR_MACHINE_NOT_SUPPORTED "io.systemd.Machine.NotSupported"
|
||||
#define VARLINK_ERROR_MACHINE_TOO_MANY_OPERATIONS "io.systemd.Machine.TooManyOperations"
|
||||
#define VARLINK_ERROR_MACHINE_NO_IPC "io.systemd.Machine.NoIPC"
|
||||
#define VARLINK_ERROR_MACHINE_NO_SUCH_USER "io.systemd.Machine.NoSuchUser"
|
||||
#define VARLINK_ERROR_MACHINE_NO_SUCH_GROUP "io.systemd.Machine.NoSuchGroup"
|
||||
#define VARLINK_ERROR_MACHINE_USER_IN_HOST_RANGE "io.systemd.Machine.UserInHostRange"
|
||||
#define VARLINK_ERROR_MACHINE_GROUP_IN_HOST_RANGE "io.systemd.Machine.GroupInHostRange"
|
||||
|
||||
#define VARLINK_DISPATCH_MACHINE_LOOKUP_FIELDS(t) { \
|
||||
.name = "name", \
|
||||
.type = SD_JSON_VARIANT_STRING, \
|
||||
|
@ -1403,8 +1403,8 @@ int machine_open_root_directory(Machine *machine) {
|
||||
|
||||
dfd = open("/", O_RDONLY|O_CLOEXEC|O_DIRECTORY);
|
||||
if (dfd < 0) {
|
||||
log_debug_errno(dfd, "Failed to open root directory of machine '%s': %m", machine->name);
|
||||
report_errno_and_exit(errno_pipe_fd[1], dfd);
|
||||
log_debug_errno(errno, "Failed to open root directory of machine '%s': %m", machine->name);
|
||||
report_errno_and_exit(errno_pipe_fd[1], -errno);
|
||||
}
|
||||
|
||||
r = send_one_fd(fd_pass_socket[1], dfd, /* flags = */ 0);
|
||||
|
@ -429,9 +429,9 @@ static int list_machine_one_and_maybe_read_metadata(sd_varlink *link, Machine *m
|
||||
if (r < 0 && am == ACQUIRE_METADATA_GRACEFUL)
|
||||
log_debug_errno(r, "Failed to get address (graceful mode), ignoring: %m");
|
||||
else if (r == -ENONET)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoPrivateNetworking", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_PRIVATE_NETWORKING, NULL);
|
||||
else if (ERRNO_IS_NEG_NOT_SUPPORTED(r))
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NotAvailable", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NOT_AVAILABLE, NULL);
|
||||
else if (r < 0)
|
||||
return log_debug_errno(r, "Failed to get addresses: %m");
|
||||
else {
|
||||
@ -444,9 +444,9 @@ static int list_machine_one_and_maybe_read_metadata(sd_varlink *link, Machine *m
|
||||
if (r < 0 && am == ACQUIRE_METADATA_GRACEFUL)
|
||||
log_debug_errno(r, "Failed to get OS release (graceful mode), ignoring: %m");
|
||||
else if (r == -ENONET)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoOSReleaseInformation", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_OS_RELEASE_INFORMATION, NULL);
|
||||
else if (ERRNO_IS_NEG_NOT_SUPPORTED(r))
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NotAvailable", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NOT_AVAILABLE, NULL);
|
||||
else if (r < 0)
|
||||
return log_debug_errno(r, "Failed to get OS release: %m");
|
||||
|
||||
@ -454,9 +454,9 @@ static int list_machine_one_and_maybe_read_metadata(sd_varlink *link, Machine *m
|
||||
if (r < 0 && am == ACQUIRE_METADATA_GRACEFUL)
|
||||
log_debug_errno(r, "Failed to get UID shift (graceful mode), ignoring: %m");
|
||||
else if (r == -ENXIO)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoUIDShift", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_UID_SHIFT, NULL);
|
||||
else if (ERRNO_IS_NEG_NOT_SUPPORTED(r))
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NotAvailable", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NOT_AVAILABLE, NULL);
|
||||
else if (r < 0)
|
||||
return log_debug_errno(r, "Failed to get UID shift: %m");
|
||||
}
|
||||
@ -526,7 +526,7 @@ static int vl_method_list(sd_varlink *link, sd_json_variant *parameters, sd_varl
|
||||
if (p.name || pidref_is_set(&p.pidref) || pidref_is_automatic(&p.pidref)) {
|
||||
r = lookup_machine_by_name_or_pidref(link, m, p.name, &p.pidref, &machine);
|
||||
if (r == -ESRCH)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoSuchMachine", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_SUCH_MACHINE, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@ -550,7 +550,7 @@ static int vl_method_list(sd_varlink *link, sd_json_variant *parameters, sd_varl
|
||||
if (previous)
|
||||
return list_machine_one_and_maybe_read_metadata(link, previous, /* more = */ false, p.acquire_metadata);
|
||||
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoSuchMachine", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_SUCH_MACHINE, NULL);
|
||||
}
|
||||
|
||||
static int lookup_machine_and_call_method(sd_varlink *link, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata, sd_varlink_method_t method) {
|
||||
@ -576,7 +576,7 @@ static int lookup_machine_and_call_method(sd_varlink *link, sd_json_variant *par
|
||||
|
||||
r = lookup_machine_by_name_or_pidref(link, manager, p.name, &p.pidref, &machine);
|
||||
if (r == -ESRCH)
|
||||
return sd_varlink_error(link, "io.systemd.Machine.NoSuchMachine", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_NO_SUCH_MACHINE, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@ -682,7 +682,7 @@ static int vl_method_list_images(sd_varlink *link, sd_json_variant *parameters,
|
||||
|
||||
r = image_find(m->runtime_scope, IMAGE_MACHINE, p.image_name, /* root = */ NULL, &found);
|
||||
if (r == -ENOENT)
|
||||
return sd_varlink_error(link, "io.systemd.MachineImage.NoSuchImage", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_IMAGE_NO_SUCH_IMAGE, NULL);
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "Failed to find image: %m");
|
||||
|
||||
@ -714,7 +714,7 @@ static int vl_method_list_images(sd_varlink *link, sd_json_variant *parameters,
|
||||
if (previous)
|
||||
return list_image_one_and_maybe_read_metadata(link, previous, /* more = */ false, p.acquire_metadata);
|
||||
|
||||
return sd_varlink_error(link, "io.systemd.MachineImage.NoSuchImage", NULL);
|
||||
return sd_varlink_error(link, VARLINK_ERROR_MACHINE_IMAGE_NO_SUCH_IMAGE, NULL);
|
||||
}
|
||||
|
||||
static int manager_varlink_init_userdb(Manager *m) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user