mirror of
https://github.com/systemd/systemd.git
synced 2024-10-27 01:55:22 +03:00
parent
01e554e2e7
commit
5db7eb21f9
@ -95,6 +95,10 @@ node /org/freedesktop/hostname1 {
|
||||
readonly s FirmwareVendor = '...';
|
||||
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
|
||||
readonly t FirmwareDate = ...;
|
||||
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
|
||||
readonly ay MachineID = [...];
|
||||
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
|
||||
readonly ay BootID = [...];
|
||||
};
|
||||
interface org.freedesktop.DBus.Peer { ... };
|
||||
interface org.freedesktop.DBus.Introspectable { ... };
|
||||
@ -116,6 +120,10 @@ node /org/freedesktop/hostname1 {
|
||||
|
||||
<!--property FirmwareDate is not documented!-->
|
||||
|
||||
<!--property MachineID is not documented!-->
|
||||
|
||||
<!--property BootID is not documented!-->
|
||||
|
||||
<!--Autogenerated cross-references for systemd.directives, do not edit-->
|
||||
|
||||
<variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.hostname1"/>
|
||||
@ -184,6 +192,10 @@ node /org/freedesktop/hostname1 {
|
||||
|
||||
<variablelist class="dbus-property" generated="True" extra-ref="FirmwareDate"/>
|
||||
|
||||
<variablelist class="dbus-property" generated="True" extra-ref="MachineID"/>
|
||||
|
||||
<variablelist class="dbus-property" generated="True" extra-ref="BootID"/>
|
||||
|
||||
<!--End of Autogenerated section-->
|
||||
|
||||
<para>Whenever the hostname or other metadata is changed via the daemon,
|
||||
@ -428,6 +440,8 @@ node /org/freedesktop/hostname1 {
|
||||
<para><varname>OperatingSystemSupportEnd</varname>,
|
||||
<varname>FirmwareVendor</varname>, and
|
||||
<varname>FirmwareDate</varname> were added in version 253.</para>
|
||||
<para><varname>MachineID</varname>, and
|
||||
<varname>BootID</varname> were added in version 256.</para>
|
||||
</refsect2>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
@ -335,29 +335,29 @@ static int show_all_names(sd_bus *bus) {
|
||||
StatusInfo info = {};
|
||||
|
||||
static const struct bus_properties_map hostname_map[] = {
|
||||
{ "Hostname", "s", NULL, offsetof(StatusInfo, hostname) },
|
||||
{ "StaticHostname", "s", NULL, offsetof(StatusInfo, static_hostname) },
|
||||
{ "PrettyHostname", "s", NULL, offsetof(StatusInfo, pretty_hostname) },
|
||||
{ "IconName", "s", NULL, offsetof(StatusInfo, icon_name) },
|
||||
{ "Chassis", "s", NULL, offsetof(StatusInfo, chassis) },
|
||||
{ "Deployment", "s", NULL, offsetof(StatusInfo, deployment) },
|
||||
{ "Location", "s", NULL, offsetof(StatusInfo, location) },
|
||||
{ "KernelName", "s", NULL, offsetof(StatusInfo, kernel_name) },
|
||||
{ "KernelRelease", "s", NULL, offsetof(StatusInfo, kernel_release) },
|
||||
{ "OperatingSystemPrettyName", "s", NULL, offsetof(StatusInfo, os_pretty_name) },
|
||||
{ "OperatingSystemCPEName", "s", NULL, offsetof(StatusInfo, os_cpe_name) },
|
||||
{ "OperatingSystemSupportEnd", "t", NULL, offsetof(StatusInfo, os_support_end) },
|
||||
{ "HomeURL", "s", NULL, offsetof(StatusInfo, home_url) },
|
||||
{ "HardwareVendor", "s", NULL, offsetof(StatusInfo, hardware_vendor) },
|
||||
{ "HardwareModel", "s", NULL, offsetof(StatusInfo, hardware_model) },
|
||||
{ "FirmwareVersion", "s", NULL, offsetof(StatusInfo, firmware_version) },
|
||||
{ "FirmwareDate", "t", NULL, offsetof(StatusInfo, firmware_date) },
|
||||
{ "Hostname", "s", NULL, offsetof(StatusInfo, hostname) },
|
||||
{ "StaticHostname", "s", NULL, offsetof(StatusInfo, static_hostname) },
|
||||
{ "PrettyHostname", "s", NULL, offsetof(StatusInfo, pretty_hostname) },
|
||||
{ "IconName", "s", NULL, offsetof(StatusInfo, icon_name) },
|
||||
{ "Chassis", "s", NULL, offsetof(StatusInfo, chassis) },
|
||||
{ "Deployment", "s", NULL, offsetof(StatusInfo, deployment) },
|
||||
{ "Location", "s", NULL, offsetof(StatusInfo, location) },
|
||||
{ "KernelName", "s", NULL, offsetof(StatusInfo, kernel_name) },
|
||||
{ "KernelRelease", "s", NULL, offsetof(StatusInfo, kernel_release) },
|
||||
{ "OperatingSystemPrettyName", "s", NULL, offsetof(StatusInfo, os_pretty_name) },
|
||||
{ "OperatingSystemCPEName", "s", NULL, offsetof(StatusInfo, os_cpe_name) },
|
||||
{ "OperatingSystemSupportEnd", "t", NULL, offsetof(StatusInfo, os_support_end) },
|
||||
{ "HomeURL", "s", NULL, offsetof(StatusInfo, home_url) },
|
||||
{ "HardwareVendor", "s", NULL, offsetof(StatusInfo, hardware_vendor) },
|
||||
{ "HardwareModel", "s", NULL, offsetof(StatusInfo, hardware_model) },
|
||||
{ "FirmwareVersion", "s", NULL, offsetof(StatusInfo, firmware_version) },
|
||||
{ "FirmwareDate", "t", NULL, offsetof(StatusInfo, firmware_date) },
|
||||
{ "MachineID", "ay", bus_map_id128, offsetof(StatusInfo, machine_id) },
|
||||
{ "BootID", "ay", bus_map_id128, offsetof(StatusInfo, boot_id) },
|
||||
{}
|
||||
};
|
||||
|
||||
static const struct bus_properties_map manager_map[] = {
|
||||
{ "Virtualization", "s", NULL, offsetof(StatusInfo, virtualization) },
|
||||
{ "Architecture", "s", NULL, offsetof(StatusInfo, architecture) },
|
||||
}, manager_map[] = {
|
||||
{ "Virtualization", "s", NULL, offsetof(StatusInfo, virtualization) },
|
||||
{ "Architecture", "s", NULL, offsetof(StatusInfo, architecture) },
|
||||
{}
|
||||
};
|
||||
|
||||
@ -387,6 +387,7 @@ static int show_all_names(sd_bus *bus) {
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to query system properties: %s", bus_error_message(&error, r));
|
||||
|
||||
/* For older version of hostnamed. */
|
||||
if (!arg_host) {
|
||||
if (sd_id128_is_null(info.machine_id))
|
||||
(void) sd_id128_get_machine(&info.machine_id);
|
||||
|
@ -995,6 +995,44 @@ static int property_get_uname_field(
|
||||
return sd_bus_message_append(reply, "s", (char*) &u + PTR_TO_SIZE(userdata));
|
||||
}
|
||||
|
||||
static int property_get_machine_id(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
sd_id128_t id;
|
||||
int r;
|
||||
|
||||
r = sd_id128_get_machine(&id);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
return bus_property_get_id128(bus, path, interface, property, reply, &id, error);
|
||||
}
|
||||
|
||||
static int property_get_boot_id(
|
||||
sd_bus *bus,
|
||||
const char *path,
|
||||
const char *interface,
|
||||
const char *property,
|
||||
sd_bus_message *reply,
|
||||
void *userdata,
|
||||
sd_bus_error *error) {
|
||||
|
||||
sd_id128_t id;
|
||||
int r;
|
||||
|
||||
r = sd_id128_get_boot(&id);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
return bus_property_get_id128(bus, path, interface, property, reply, &id, error);
|
||||
}
|
||||
|
||||
static int method_set_hostname(sd_bus_message *m, void *userdata, sd_bus_error *error) {
|
||||
Context *c = ASSERT_PTR(userdata);
|
||||
const char *name;
|
||||
@ -1302,7 +1340,7 @@ static int method_describe(sd_bus_message *m, void *userdata, sd_bus_error *erro
|
||||
usec_t firmware_date = USEC_INFINITY, eol = USEC_INFINITY;
|
||||
_cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
|
||||
_cleanup_(json_variant_unrefp) JsonVariant *v = NULL;
|
||||
sd_id128_t product_uuid = SD_ID128_NULL;
|
||||
sd_id128_t machine_id, boot_id, product_uuid = SD_ID128_NULL;
|
||||
Context *c = ASSERT_PTR(userdata);
|
||||
bool privileged;
|
||||
struct utsname u;
|
||||
@ -1369,6 +1407,14 @@ static int method_describe(sd_bus_message *m, void *userdata, sd_bus_error *erro
|
||||
if (c->data[PROP_OS_SUPPORT_END])
|
||||
(void) os_release_support_ended(c->data[PROP_OS_SUPPORT_END], /* quiet= */ false, &eol);
|
||||
|
||||
r = sd_id128_get_machine(&machine_id);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to get machine ID: %m");
|
||||
|
||||
r = sd_id128_get_boot(&boot_id);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to get boot ID: %m");
|
||||
|
||||
r = json_build(&v, JSON_BUILD_OBJECT(
|
||||
JSON_BUILD_PAIR("Hostname", JSON_BUILD_STRING(hn)),
|
||||
JSON_BUILD_PAIR("StaticHostname", JSON_BUILD_STRING(c->data[PROP_STATIC_HOSTNAME])),
|
||||
@ -1392,6 +1438,8 @@ static int method_describe(sd_bus_message *m, void *userdata, sd_bus_error *erro
|
||||
JSON_BUILD_PAIR("FirmwareVersion", JSON_BUILD_STRING(firmware_version)),
|
||||
JSON_BUILD_PAIR("FirmwareVendor", JSON_BUILD_STRING(firmware_vendor)),
|
||||
JSON_BUILD_PAIR_FINITE_USEC("FirmwareDate", firmware_date),
|
||||
JSON_BUILD_PAIR_ID128("MachineID", machine_id),
|
||||
JSON_BUILD_PAIR_ID128("BootID", boot_id),
|
||||
JSON_BUILD_PAIR_CONDITION(!sd_id128_is_null(product_uuid), "ProductUUID", JSON_BUILD_ID128(product_uuid)),
|
||||
JSON_BUILD_PAIR_CONDITION(sd_id128_is_null(product_uuid), "ProductUUID", JSON_BUILD_NULL)));
|
||||
|
||||
@ -1436,6 +1484,8 @@ static const sd_bus_vtable hostname_vtable[] = {
|
||||
SD_BUS_PROPERTY("FirmwareVersion", "s", property_get_firmware_version, 0, SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("FirmwareVendor", "s", property_get_firmware_vendor, 0, SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("FirmwareDate", "t", property_get_firmware_date, 0, SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("MachineID", "ay", property_get_machine_id, 0, SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("BootID", "ay", property_get_boot_id, 0, SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
|
||||
SD_BUS_METHOD_WITH_ARGS("SetHostname",
|
||||
SD_BUS_ARGS("s", hostname, "b", interactive),
|
||||
|
Loading…
Reference in New Issue
Block a user