From: Ivan Kruglov Date: Thu, 9 Jan 2025 14:13:22 +0000 (+0100) Subject: machine: VARLINK_ERROR_MACHINE_* defines X-Git-Tag: v258-rc1~1639^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c85e8377443db6dc33fda15a3075892b1e8eb566;p=thirdparty%2Fsystemd.git machine: VARLINK_ERROR_MACHINE_* defines --- diff --git a/src/machine/machine-varlink.c b/src/machine/machine-varlink.c index f680b5c3da6..a5240ddccf0 100644 --- a/src/machine/machine-varlink.c +++ b/src/machine/machine-varlink.c @@ -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); diff --git a/src/machine/machine-varlink.h b/src/machine/machine-varlink.h index 3d56e2150e9..1c089bc7bc3 100644 --- a/src/machine/machine-varlink.h +++ b/src/machine/machine-varlink.h @@ -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, \ diff --git a/src/machine/machined-varlink.c b/src/machine/machined-varlink.c index da8d5615385..f8faab6eafa 100644 --- a/src/machine/machined-varlink.c +++ b/src/machine/machined-varlink.c @@ -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;