machined: add dbus parameter names

This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2020-04-07 15:42:08 +02:00
parent de2efb75f7
commit bbe17ca1cb
2 changed files with 393 additions and 51 deletions

View file

@ -1334,18 +1334,92 @@ const sd_bus_vtable machine_vtable[] = {
SD_BUS_PROPERTY("RootDirectory", "s", NULL, offsetof(Machine, root_directory), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("NetworkInterfaces", "ai", property_get_netif, 0, SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("State", "s", property_get_state, 0, 0),
SD_BUS_METHOD("Terminate", NULL, NULL, bus_machine_method_terminate, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("Kill", "si", NULL, bus_machine_method_kill, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetAddresses", NULL, "a(iay)", bus_machine_method_get_addresses, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetOSRelease", NULL, "a{ss}", bus_machine_method_get_os_release, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetUIDShift", NULL, "u", bus_machine_method_get_uid_shift, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("OpenPTY", NULL, "hs", bus_machine_method_open_pty, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("OpenLogin", NULL, "hs", bus_machine_method_open_login, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("OpenShell", "ssasas", "hs", bus_machine_method_open_shell, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("BindMount", "ssbb", NULL, bus_machine_method_bind_mount, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("CopyFrom", "ss", NULL, bus_machine_method_copy, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("CopyTo", "ss", NULL, bus_machine_method_copy, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("OpenRootDirectory", NULL, "h", bus_machine_method_open_root_directory, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("Terminate",
NULL,
NULL,
bus_machine_method_terminate,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("Kill",
"si",
SD_BUS_PARAM(who)
SD_BUS_PARAM(signal),
NULL,,
bus_machine_method_kill,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("GetAddresses",
NULL,,
"a(iay)",
SD_BUS_PARAM(addresses),
bus_machine_method_get_addresses,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("GetOSRelease",
NULL,,
"a{ss}",
SD_BUS_PARAM(fields),
bus_machine_method_get_os_release,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("GetUIDShift",
NULL,,
"u",
SD_BUS_PARAM(shift),
bus_machine_method_get_uid_shift,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("OpenPTY",
NULL,,
"hs",
SD_BUS_PARAM(pty)
SD_BUS_PARAM(pty_path),
bus_machine_method_open_pty,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("OpenLogin",
NULL,,
"hs",
SD_BUS_PARAM(pty)
SD_BUS_PARAM(pty_path),
bus_machine_method_open_login,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("OpenShell",
"ssasas",
SD_BUS_PARAM(user)
SD_BUS_PARAM(path)
SD_BUS_PARAM(args)
SD_BUS_PARAM(environment),
"hs",
SD_BUS_PARAM(pty)
SD_BUS_PARAM(pty_path),
bus_machine_method_open_shell,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("BindMount",
"ssbb",
SD_BUS_PARAM(source)
SD_BUS_PARAM(destination)
SD_BUS_PARAM(read_only)
SD_BUS_PARAM(mkdir),
NULL,,
bus_machine_method_bind_mount,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("CopyFrom",
"ss",
SD_BUS_PARAM(source)
SD_BUS_PARAM(destination),
NULL,,
bus_machine_method_copy,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("CopyTo",
"ss",
SD_BUS_PARAM(source)
SD_BUS_PARAM(destination),
NULL,,
bus_machine_method_copy,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("OpenRootDirectory",
NULL,,
"h",
SD_BUS_PARAM(fd),
bus_machine_method_open_root_directory,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_VTABLE_END
};

View file

@ -1127,48 +1127,316 @@ static int method_map_to_machine_group(sd_bus_message *message, void *groupdata,
const sd_bus_vtable manager_vtable[] = {
SD_BUS_VTABLE_START(0),
SD_BUS_PROPERTY("PoolPath", "s", property_get_pool_path, 0, 0),
SD_BUS_PROPERTY("PoolUsage", "t", property_get_pool_usage, 0, 0),
SD_BUS_PROPERTY("PoolLimit", "t", property_get_pool_limit, 0, 0),
SD_BUS_METHOD("GetMachine", "s", "o", method_get_machine, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetImage", "s", "o", method_get_image, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetMachineByPID", "u", "o", method_get_machine_by_pid, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("ListMachines", NULL, "a(ssso)", method_list_machines, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("ListImages", NULL, "a(ssbttto)", method_list_images, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("CreateMachine", "sayssusa(sv)", "o", method_create_machine, 0),
SD_BUS_METHOD("CreateMachineWithNetwork", "sayssusaia(sv)", "o", method_create_machine_with_network, 0),
SD_BUS_METHOD("RegisterMachine", "sayssus", "o", method_register_machine, 0),
SD_BUS_METHOD("RegisterMachineWithNetwork", "sayssusai", "o", method_register_machine_with_network, 0),
SD_BUS_METHOD("UnregisterMachine", "s", NULL, method_unregister_machine, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("TerminateMachine", "s", NULL, method_terminate_machine, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("KillMachine", "ssi", NULL, method_kill_machine, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetMachineAddresses", "s", "a(iay)", method_get_machine_addresses, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetMachineOSRelease", "s", "a{ss}", method_get_machine_os_release, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("OpenMachinePTY", "s", "hs", method_open_machine_pty, 0),
SD_BUS_METHOD("OpenMachineLogin", "s", "hs", method_open_machine_login, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("OpenMachineShell", "sssasas", "hs", method_open_machine_shell, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("BindMountMachine", "sssbb", NULL, method_bind_mount_machine, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("CopyFromMachine", "sss", NULL, method_copy_machine, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("CopyToMachine", "sss", NULL, method_copy_machine, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("OpenMachineRootDirectory", "s", "h", method_open_machine_root_directory, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetMachineUIDShift", "s", "u", method_get_machine_uid_shift, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("RemoveImage", "s", NULL, method_remove_image, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("RenameImage", "ss", NULL, method_rename_image, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("CloneImage", "ssb", NULL, method_clone_image, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("MarkImageReadOnly", "sb", NULL, method_mark_image_read_only, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetImageHostname", "s", "s", method_get_image_hostname, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetImageMachineID", "s", "ay", method_get_image_machine_id, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetImageMachineInfo", "s", "a{ss}", method_get_image_machine_info, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetImageOSRelease", "s", "a{ss}", method_get_image_os_release, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("SetPoolLimit", "t", NULL, method_set_pool_limit, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("SetImageLimit", "st", NULL, method_set_image_limit, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("CleanPool", "s", "a(st)", method_clean_pool, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("MapFromMachineUser", "su", "u", method_map_from_machine_user, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("MapToMachineUser", "u", "sou", method_map_to_machine_user, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("MapFromMachineGroup", "su", "u", method_map_from_machine_group, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("MapToMachineGroup", "u", "sou", method_map_to_machine_group, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_SIGNAL("MachineNew", "so", 0),
SD_BUS_SIGNAL("MachineRemoved", "so", 0),
SD_BUS_METHOD_WITH_NAMES("GetMachine",
"s",
SD_BUS_PARAM(name),
"o",
SD_BUS_PARAM(machine),
method_get_machine,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("GetImage",
"s",
SD_BUS_PARAM(name),
"o",
SD_BUS_PARAM(image),
method_get_image,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("GetMachineByPID",
"u",
SD_BUS_PARAM(pid),
"o",
SD_BUS_PARAM(machine),
method_get_machine_by_pid,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("ListMachines",
NULL,,
"a(ssso)",
SD_BUS_PARAM(machines),
method_list_machines,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("ListImages",
NULL,,
"a(ssbttto)",
SD_BUS_PARAM(images),
method_list_images,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("CreateMachine",
"sayssusa(sv)",
SD_BUS_PARAM(name)
SD_BUS_PARAM(id)
SD_BUS_PARAM(service)
SD_BUS_PARAM(class)
SD_BUS_PARAM(leader)
SD_BUS_PARAM(root_directory)
SD_BUS_PARAM(scope_properties),
"o",
SD_BUS_PARAM(path),
method_create_machine, 0),
SD_BUS_METHOD_WITH_NAMES("CreateMachineWithNetwork",
"sayssusaia(sv)",
SD_BUS_PARAM(name)
SD_BUS_PARAM(id)
SD_BUS_PARAM(service)
SD_BUS_PARAM(class)
SD_BUS_PARAM(leader)
SD_BUS_PARAM(root_directory)
SD_BUS_PARAM(ifindices)
SD_BUS_PARAM(scope_properties),
"o",
SD_BUS_PARAM(path),
method_create_machine_with_network, 0),
SD_BUS_METHOD_WITH_NAMES("RegisterMachine",
"sayssus",
SD_BUS_PARAM(name)
SD_BUS_PARAM(id)
SD_BUS_PARAM(service)
SD_BUS_PARAM(class)
SD_BUS_PARAM(leader)
SD_BUS_PARAM(root_directory),
"o",
SD_BUS_PARAM(path),
method_register_machine, 0),
SD_BUS_METHOD_WITH_NAMES("RegisterMachineWithNetwork",
"sayssusai",
SD_BUS_PARAM(name)
SD_BUS_PARAM(id)
SD_BUS_PARAM(service)
SD_BUS_PARAM(class)
SD_BUS_PARAM(leader)
SD_BUS_PARAM(root_directory)
SD_BUS_PARAM(ifindices),
"o",
SD_BUS_PARAM(path),
method_register_machine_with_network, 0),
SD_BUS_METHOD_WITH_NAMES("UnregisterMachine",
"s",
SD_BUS_PARAM(name),
NULL,,
method_unregister_machine,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("TerminateMachine",
"s",
SD_BUS_PARAM(id),
NULL,,
method_terminate_machine,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("KillMachine",
"ssi",
SD_BUS_PARAM(name)
SD_BUS_PARAM(who)
SD_BUS_PARAM(signal),
NULL,,
method_kill_machine,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("GetMachineAddresses",
"s",
SD_BUS_PARAM(name),
"a(iay)",
SD_BUS_PARAM(addresses),
method_get_machine_addresses,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("GetMachineOSRelease",
"s",
SD_BUS_PARAM(name),
"a{ss}",
SD_BUS_PARAM(fields),
method_get_machine_os_release,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("OpenMachinePTY",
"s",
SD_BUS_PARAM(name),
"hs",
SD_BUS_PARAM(pty)
SD_BUS_PARAM(pty_path),
method_open_machine_pty,
0),
SD_BUS_METHOD_WITH_NAMES("OpenMachineLogin",
"s",
SD_BUS_PARAM(name),
"hs",
SD_BUS_PARAM(pty)
SD_BUS_PARAM(pty_path),
method_open_machine_login,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("OpenMachineShell",
"sssasas",
SD_BUS_PARAM(name)
SD_BUS_PARAM(user)
SD_BUS_PARAM(path)
SD_BUS_PARAM(args)
SD_BUS_PARAM(environment),
"hs",
SD_BUS_PARAM(pty)
SD_BUS_PARAM(pty_path),
method_open_machine_shell,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("BindMountMachine",
"sssbb",
SD_BUS_PARAM(name)
SD_BUS_PARAM(source)
SD_BUS_PARAM(destination)
SD_BUS_PARAM(read_only)
SD_BUS_PARAM(mkdir),
NULL,,
method_bind_mount_machine,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("CopyFromMachine",
"sss",
SD_BUS_PARAM(name)
SD_BUS_PARAM(source)
SD_BUS_PARAM(destination),
NULL,,
method_copy_machine,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("CopyToMachine",
"sss",
SD_BUS_PARAM(name)
SD_BUS_PARAM(source)
SD_BUS_PARAM(destination),
NULL,,
method_copy_machine,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("OpenMachineRootDirectory",
"s",
SD_BUS_PARAM(name),
"h",
SD_BUS_PARAM(fd),
method_open_machine_root_directory,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("GetMachineUIDShift",
"s",
SD_BUS_PARAM(name),
"u",
SD_BUS_PARAM(shift),
method_get_machine_uid_shift,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("RemoveImage",
"s",
SD_BUS_PARAM(name),
NULL,,
method_remove_image,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("RenameImage",
"ss",
SD_BUS_PARAM(name)
SD_BUS_PARAM(new_name),
NULL,,
method_rename_image,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("CloneImage",
"ssb",
SD_BUS_PARAM(name)
SD_BUS_PARAM(new_name)
SD_BUS_PARAM(read_only),
NULL,,
method_clone_image,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("MarkImageReadOnly",
"sb",
SD_BUS_PARAM(name)
SD_BUS_PARAM(read_only),
NULL,,
method_mark_image_read_only,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("GetImageHostname",
"s",
SD_BUS_PARAM(name),
"s",
SD_BUS_PARAM(hostname),
method_get_image_hostname,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("GetImageMachineID",
"s",
SD_BUS_PARAM(name),
"ay",
SD_BUS_PARAM(id),
method_get_image_machine_id,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("GetImageMachineInfo",
"s",
SD_BUS_PARAM(name),
"a{ss}",
SD_BUS_PARAM(machine_info),
method_get_image_machine_info,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("GetImageOSRelease",
"s",
SD_BUS_PARAM(name),
"a{ss}",
SD_BUS_PARAM(os_release),
method_get_image_os_release,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("SetPoolLimit",
"t",
SD_BUS_PARAM(size),
NULL,,
method_set_pool_limit,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("SetImageLimit",
"st",
SD_BUS_PARAM(name)
SD_BUS_PARAM(size),
NULL,,
method_set_image_limit,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("CleanPool",
"s",
SD_BUS_PARAM(mode),
"a(st)",
SD_BUS_PARAM(images),
method_clean_pool,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("MapFromMachineUser",
"su",
SD_BUS_PARAM(name)
SD_BUS_PARAM(uid_inner),
"u",
SD_BUS_PARAM(uid_outer),
method_map_from_machine_user,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("MapToMachineUser",
"u",
SD_BUS_PARAM(uid_outer),
"sou",
SD_BUS_PARAM(machine_name)
SD_BUS_PARAM(machine_path)
SD_BUS_PARAM(uid_inner),
method_map_to_machine_user,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("MapFromMachineGroup",
"su",
SD_BUS_PARAM(name)
SD_BUS_PARAM(gid_inner),
"u",
SD_BUS_PARAM(gid_outer),
method_map_from_machine_group,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD_WITH_NAMES("MapToMachineGroup",
"u",
SD_BUS_PARAM(gid_outer),
"sou",
SD_BUS_PARAM(machine_name)
SD_BUS_PARAM(machine_path)
SD_BUS_PARAM(gid_inner),
method_map_to_machine_group,
SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_SIGNAL_WITH_NAMES("MachineNew",
"so",
SD_BUS_PARAM(machine)
SD_BUS_PARAM(path),
0),
SD_BUS_SIGNAL_WITH_NAMES("MachineRemoved",
"so",
SD_BUS_PARAM(machine)
SD_BUS_PARAM(path),
0),
SD_BUS_VTABLE_END
};