[libvirt] [dbus PATCH 0/9] code cleanup

Pavel Hrdina (9): util: move bus_path_for_domain and domain_from_bus_path util: move and rename virDomainsFreep domain: split domain code into separate file events: split event code into separate file util: rename function to follow libvirt naming rules main: rename functions to follow libvirt naming rules manager: rename functions and structures to follow libvirt naming rules domain: rename functions to follow libvirt naming rules events: rename functions to follow libvirt naming rules src/Makefile.am | 4 +- src/domain.c | 549 +++++++++++++++++++++++++++++++++ src/domain.h | 10 + src/events.c | 252 ++++++++++++++++ src/events.h | 9 + src/main.c | 44 +-- src/manager.c | 920 ++++---------------------------------------------------- src/manager.h | 18 +- src/util.c | 35 ++- src/util.h | 39 ++- 10 files changed, 970 insertions(+), 910 deletions(-) create mode 100644 src/domain.c create mode 100644 src/domain.h create mode 100644 src/events.c create mode 100644 src/events.h -- 2.13.3

These functions don't require anything from libvirt-dbus. Make them generic and move them into util. Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/manager.c | 68 ++++++++++++++++++++++------------------------------------- src/util.c | 26 +++++++++++++++++++++++ src/util.h | 7 ++++++ 3 files changed, 58 insertions(+), 43 deletions(-) diff --git a/src/manager.c b/src/manager.c index f541287..6459ec9 100644 --- a/src/manager.c +++ b/src/manager.c @@ -12,32 +12,6 @@ struct VirtManager { int callback_ids[VIR_DOMAIN_EVENT_ID_LAST]; }; -static char * -bus_path_for_domain(virDomainPtr domain) -{ - char *path = NULL; - char uuid[VIR_UUID_STRING_BUFLEN] = ""; - - virDomainGetUUIDString(domain, uuid); - sd_bus_path_encode("/org/libvirt/domain", uuid, &path); - - return path; -} - -static virDomainPtr -domain_from_bus_path(VirtManager *manager, - const char *path) -{ - _cleanup_(freep) char *name = NULL; - int r; - - r = sd_bus_path_decode(path, "/org/libvirt/domain", &name); - if (r < 0) - return NULL; - - return virDomainLookupByUUIDString(manager->connection, name); -} - static void virDomainsFreep(virDomainPtr **domainsp) { @@ -65,7 +39,7 @@ domain_get_name(sd_bus *bus, _cleanup_(virDomainFreep) virDomainPtr domain = NULL; const char *name = ""; - domain = domain_from_bus_path(manager, path); + domain = domain_from_bus_path(manager->connection, path); if (domain == NULL) return sd_bus_message_append(reply, "s", ""); @@ -89,7 +63,7 @@ domain_get_uuid(sd_bus *bus, _cleanup_(virDomainFreep) virDomainPtr domain = NULL; char uuid[VIR_UUID_STRING_BUFLEN] = ""; - domain = domain_from_bus_path(manager, path); + domain = domain_from_bus_path(manager->connection, path); if (domain == NULL) return sd_bus_message_append(reply, "s", ""); @@ -110,7 +84,7 @@ domain_get_id(sd_bus *bus, VirtManager *manager = userdata; _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - domain = domain_from_bus_path(manager, path); + domain = domain_from_bus_path(manager->connection, path); if (domain == NULL) return sd_bus_message_append(reply, "u", 0); @@ -129,7 +103,7 @@ domain_get_vcpus(sd_bus *bus, VirtManager *manager = userdata; _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - domain = domain_from_bus_path(manager, path); + domain = domain_from_bus_path(manager->connection, path); if (domain == NULL) return sd_bus_message_append(reply, "u", 0); @@ -149,7 +123,7 @@ domain_get_os_type(sd_bus *bus, _cleanup_(virDomainFreep) virDomainPtr domain = NULL; _cleanup_(freep) char *os_type = NULL; - domain = domain_from_bus_path(manager, path); + domain = domain_from_bus_path(manager->connection, path); if (domain == NULL) return sd_bus_message_append(reply, "s", ""); @@ -173,7 +147,7 @@ domain_get_active(sd_bus *bus, _cleanup_(virDomainFreep) virDomainPtr domain = NULL; int active; - domain = domain_from_bus_path(manager, path); + domain = domain_from_bus_path(manager->connection, path); if (domain == NULL) return sd_bus_message_append(reply, "b", 0); @@ -197,7 +171,7 @@ domain_get_persistent(sd_bus *bus, _cleanup_(virDomainFreep) virDomainPtr domain = NULL; int persistent; - domain = domain_from_bus_path(manager, path); + domain = domain_from_bus_path(manager->connection, path); if (domain == NULL) return sd_bus_message_append(reply, "b", 0); @@ -222,7 +196,7 @@ domain_get_state(sd_bus *bus, int state = 0; const char *string; - domain = domain_from_bus_path(manager, path); + domain = domain_from_bus_path(manager->connection, path); if (domain == NULL) return sd_bus_message_append(reply, "s", ""); @@ -272,7 +246,7 @@ domain_get_autostart(sd_bus *bus, _cleanup_(virDomainFreep) virDomainPtr domain = NULL; int autostart = 0; - domain = domain_from_bus_path(manager, path); + domain = domain_from_bus_path(manager->connection, path); if (domain == NULL) return sd_bus_message_append(reply, "b", 0); @@ -292,7 +266,8 @@ domain_get_xml_desc(sd_bus_message *message, uint32_t flags; int r; - domain = domain_from_bus_path(manager, sd_bus_message_get_path(message)); + domain = domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); if (domain == NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -335,7 +310,8 @@ domain_get_stats(sd_bus_message *message, if (r < 0) return r; - domain = domain_from_bus_path(manager, sd_bus_message_get_path(message)); + domain = domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); if (domain == NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -369,7 +345,8 @@ domain_shutdown(sd_bus_message *message, _cleanup_(virDomainFreep) virDomainPtr domain = NULL; int r; - domain = domain_from_bus_path(manager, sd_bus_message_get_path(message)); + domain = domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); if (domain == NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -393,7 +370,8 @@ domain_destroy(sd_bus_message *message, _cleanup_(virDomainFreep) virDomainPtr domain = NULL; int r; - domain = domain_from_bus_path(manager, sd_bus_message_get_path(message)); + domain = domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); if (domain == NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -422,7 +400,8 @@ domain_reboot(sd_bus_message *message, if (r < 0) return r; - domain = domain_from_bus_path(manager, sd_bus_message_get_path(message)); + domain = domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); if (domain == NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -451,7 +430,8 @@ domain_reset(sd_bus_message *message, if (r < 0) return r; - domain = domain_from_bus_path(manager, sd_bus_message_get_path(message)); + domain = domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); if (domain == NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -475,7 +455,8 @@ domain_create(sd_bus_message *message, _cleanup_(virDomainFreep) virDomainPtr domain = NULL; int r; - domain = domain_from_bus_path(manager, sd_bus_message_get_path(message)); + domain = domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); if (domain == NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -499,7 +480,8 @@ domain_undefine(sd_bus_message *message, _cleanup_(virDomainFreep) virDomainPtr domain = NULL; int r; - domain = domain_from_bus_path(manager, sd_bus_message_get_path(message)); + domain = domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); if (domain == NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, diff --git a/src/util.c b/src/util.c index caf552d..99cd6b5 100644 --- a/src/util.c +++ b/src/util.c @@ -67,3 +67,29 @@ int bus_error_set_last_virt_error(sd_bus_error *error) return sd_bus_error_set(error, "org.libvirt.Error", vir_error->message); } + +char * +bus_path_for_domain(virDomainPtr domain) +{ + char *path = NULL; + char uuid[VIR_UUID_STRING_BUFLEN] = ""; + + virDomainGetUUIDString(domain, uuid); + sd_bus_path_encode("/org/libvirt/domain", uuid, &path); + + return path; +} + +virDomainPtr +domain_from_bus_path(virConnectPtr connection, + const char *path) +{ + _cleanup_(freep) char *name = NULL; + int r; + + r = sd_bus_path_decode(path, "/org/libvirt/domain", &name); + if (r < 0) + return NULL; + + return virDomainLookupByUUIDString(connection, name); +} diff --git a/src/util.h b/src/util.h index 1f34582..91e35d6 100644 --- a/src/util.h +++ b/src/util.h @@ -13,6 +13,13 @@ int bus_message_append_typed_parameters(sd_bus_message *message, int bus_error_set_last_virt_error(sd_bus_error *error); +char * +bus_path_for_domain(virDomainPtr domain); + +virDomainPtr +domain_from_bus_path(virConnectPtr connection, + const char *path); + static inline void freep(void *p) { -- 2.13.3

Move it to the same place as virDomainFreep(). Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/manager.c | 18 ++---------------- src/util.h | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/manager.c b/src/manager.c index 6459ec9..0cf0f8e 100644 --- a/src/manager.c +++ b/src/manager.c @@ -12,20 +12,6 @@ struct VirtManager { int callback_ids[VIR_DOMAIN_EVENT_ID_LAST]; }; -static void -virDomainsFreep(virDomainPtr **domainsp) -{ - virDomainPtr *domains = *domainsp; - - if (!domains) - return; - - for (int i = 0; domains[i] != NULL; i += 1) - virDomainFree(domains[i]); - - free(domains); -} - static int domain_get_name(sd_bus *bus, const char *path, @@ -504,7 +490,7 @@ enumerate_domains(sd_bus *bus, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainsFreep) virDomainPtr *domains = NULL; + _cleanup_(virDomainListFreep) virDomainPtr *domains = NULL; _cleanup_(strv_freep) char **paths = NULL; int n_domains; @@ -530,7 +516,7 @@ virt_manager_list_domains(sd_bus_message *message, { VirtManager *manager = userdata; _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL; - _cleanup_(virDomainsFreep) virDomainPtr *domains = NULL; + _cleanup_(virDomainListFreep) virDomainPtr *domains = NULL; uint32_t flags; int r; diff --git a/src/util.h b/src/util.h index 91e35d6..bc39f44 100644 --- a/src/util.h +++ b/src/util.h @@ -53,3 +53,17 @@ virDomainFreep(virDomainPtr *domainp) if (*domainp) virDomainFree(*domainp); } + +static inline void +virDomainListFreep(virDomainPtr **domainsp) +{ + virDomainPtr *domains = *domainsp; + + if (!domains) + return; + + for (int i = 0; domains[i] != NULL; i += 1) + virDomainFree(domains[i]); + + free(domains); +} -- 2.13.3

Instead of having all code only in one file split it logically to have one file for D-Bus object. Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/Makefile.am | 3 +- src/domain.c | 549 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/domain.h | 9 + src/manager.c | 551 +------------------------------------------------------- src/manager.h | 6 + 5 files changed, 568 insertions(+), 550 deletions(-) create mode 100644 src/domain.c create mode 100644 src/domain.h diff --git a/src/Makefile.am b/src/Makefile.am index e60f250..f066ed3 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -4,7 +4,8 @@ AM_CPPFLAGS = \ DAEMON_SOURCES = \ main.c \ manager.c manager.h \ - util.c util.h + util.c util.h \ + domain.c domain.h EXTRA_DIST = \ $(DAEMON_SOURCES) diff --git a/src/domain.c b/src/domain.c new file mode 100644 index 0000000..1bda3b8 --- /dev/null +++ b/src/domain.c @@ -0,0 +1,549 @@ +#include "domain.h" +#include "util.h" + +static int +domain_get_name(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) +{ + VirtManager *manager = userdata; + _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + const char *name = ""; + + domain = domain_from_bus_path(manager->connection, path); + if (domain == NULL) + return sd_bus_message_append(reply, "s", ""); + + name = virDomainGetName(domain); + if (name == NULL) + return sd_bus_message_append(reply, "s", ""); + + return sd_bus_message_append(reply, "s", name); +} + +static int +domain_get_uuid(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) +{ + VirtManager *manager = userdata; + _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + char uuid[VIR_UUID_STRING_BUFLEN] = ""; + + domain = domain_from_bus_path(manager->connection, path); + if (domain == NULL) + return sd_bus_message_append(reply, "s", ""); + + virDomainGetUUIDString(domain, uuid); + + return sd_bus_message_append(reply, "s", uuid); +} + +static int +domain_get_id(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) +{ + VirtManager *manager = userdata; + _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + + domain = domain_from_bus_path(manager->connection, path); + if (domain == NULL) + return sd_bus_message_append(reply, "u", 0); + + return sd_bus_message_append(reply, "u", virDomainGetID(domain)); +} + +static int +domain_get_vcpus(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) +{ + VirtManager *manager = userdata; + _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + + domain = domain_from_bus_path(manager->connection, path); + if (domain == NULL) + return sd_bus_message_append(reply, "u", 0); + + return sd_bus_message_append(reply, "u", virDomainGetVcpusFlags(domain, VIR_DOMAIN_VCPU_CURRENT)); +} + +static int +domain_get_os_type(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) +{ + VirtManager *manager = userdata; + _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + _cleanup_(freep) char *os_type = NULL; + + domain = domain_from_bus_path(manager->connection, path); + if (domain == NULL) + return sd_bus_message_append(reply, "s", ""); + + os_type = virDomainGetOSType(domain); + if (os_type == NULL) + return sd_bus_message_append(reply, "s", ""); + + return sd_bus_message_append(reply, "s", os_type); +} + +static int +domain_get_active(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) +{ + VirtManager *manager = userdata; + _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + int active; + + domain = domain_from_bus_path(manager->connection, path); + if (domain == NULL) + return sd_bus_message_append(reply, "b", 0); + + active = virDomainIsActive(domain); + if (active < 0) + return sd_bus_message_append(reply, "b", 0); + + return sd_bus_message_append(reply, "b", active); +} + +static int +domain_get_persistent(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) +{ + VirtManager *manager = userdata; + _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + int persistent; + + domain = domain_from_bus_path(manager->connection, path); + if (domain == NULL) + return sd_bus_message_append(reply, "b", 0); + + persistent = virDomainIsPersistent(domain); + if (persistent < 0) + return sd_bus_message_append(reply, "b", 0); + + return sd_bus_message_append(reply, "b", persistent); +} + +static int +domain_get_state(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) +{ + VirtManager *manager = userdata; + _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + int state = 0; + const char *string; + + domain = domain_from_bus_path(manager->connection, path); + if (domain == NULL) + return sd_bus_message_append(reply, "s", ""); + + virDomainGetState(domain, &state, NULL, 0); + + switch (state) { + case VIR_DOMAIN_NOSTATE: + default: + string = "nostate"; + break; + case VIR_DOMAIN_RUNNING: + string = "running"; + break; + case VIR_DOMAIN_BLOCKED: + string = "blocked"; + break; + case VIR_DOMAIN_PAUSED: + string = "paused"; + break; + case VIR_DOMAIN_SHUTDOWN: + string = "shutdown"; + break; + case VIR_DOMAIN_SHUTOFF: + string = "shutoff"; + break; + case VIR_DOMAIN_CRASHED: + string = "crashed"; + break; + case VIR_DOMAIN_PMSUSPENDED: + string = "pmsuspended"; + break; + } + + return sd_bus_message_append(reply, "s", string); +} + +static int +domain_get_autostart(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) +{ + VirtManager *manager = userdata; + _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + int autostart = 0; + + domain = domain_from_bus_path(manager->connection, path); + if (domain == NULL) + return sd_bus_message_append(reply, "b", 0); + + virDomainGetAutostart(domain, &autostart); + + return sd_bus_message_append(reply, "b", autostart); +} + +static int +domain_get_xml_desc(sd_bus_message *message, + void *userdata, + sd_bus_error *error) +{ + VirtManager *manager = userdata; + _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + _cleanup_(freep) char *description = NULL; + uint32_t flags; + int r; + + domain = domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); + if (domain == NULL) { + return sd_bus_reply_method_errorf(message, + SD_BUS_ERROR_UNKNOWN_OBJECT, + "Unknown object '%s'.", + sd_bus_message_get_path(message)); + } + + r = sd_bus_message_read(message, "u", &flags); + if (r < 0) + return r; + + description = virDomainGetXMLDesc(domain, flags); + if (!description) + return bus_error_set_last_virt_error(error); + + return sd_bus_reply_method_return(message, "s", description); +} + +static void +virDomainStatsRecordListFreep(virDomainStatsRecordPtr **statsp) +{ + if (*statsp) + virDomainStatsRecordListFree(*statsp); +} + +static int +domain_get_stats(sd_bus_message *message, + void *userdata, + sd_bus_error *error) +{ + VirtManager *manager = userdata; + _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + virDomainPtr domains[2]; + _cleanup_(virDomainStatsRecordListFreep) virDomainStatsRecordPtr *records = NULL; + _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL; + uint32_t flags, stats; + int r; + + r = sd_bus_message_read(message, "uu", &stats, &flags); + if (r < 0) + return r; + + domain = domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); + if (domain == NULL) { + return sd_bus_reply_method_errorf(message, + SD_BUS_ERROR_UNKNOWN_OBJECT, + "Unknown object '%s'.", + sd_bus_message_get_path(message)); + } + + domains[0] = domain; + domains[1] = NULL; + + if (virDomainListGetStats(domains, stats, &records, flags) != 1) + return bus_error_set_last_virt_error(error); + + r = sd_bus_message_new_method_return(message, &reply); + if (r < 0) + return r; + + r = bus_message_append_typed_parameters(reply, records[0]->params, records[0]->nparams); + if (r < 0) + return r; + + return sd_bus_send(NULL, reply, NULL); +} + +static int +domain_shutdown(sd_bus_message *message, + void *userdata, + sd_bus_error *error) +{ + VirtManager *manager = userdata; + _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + int r; + + domain = domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); + if (domain == NULL) { + return sd_bus_reply_method_errorf(message, + SD_BUS_ERROR_UNKNOWN_OBJECT, + "Unknown object '%s'.", + sd_bus_message_get_path(message)); + } + + r = virDomainShutdown(domain); + if (r < 0) + return bus_error_set_last_virt_error(error); + + return sd_bus_reply_method_return(message, ""); +} + +static int +domain_destroy(sd_bus_message *message, + void *userdata, + sd_bus_error *error) +{ + VirtManager *manager = userdata; + _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + int r; + + domain = domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); + if (domain == NULL) { + return sd_bus_reply_method_errorf(message, + SD_BUS_ERROR_UNKNOWN_OBJECT, + "Unknown object '%s'.", + sd_bus_message_get_path(message)); + } + + r = virDomainDestroy(domain); + if (r < 0) + return bus_error_set_last_virt_error(error); + + return sd_bus_reply_method_return(message, ""); +} + +static int +domain_reboot(sd_bus_message *message, + void *userdata, + sd_bus_error *error) +{ + VirtManager *manager = userdata; + _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + uint32_t flags; + int r; + + r = sd_bus_message_read(message, "u", &flags); + if (r < 0) + return r; + + domain = domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); + if (domain == NULL) { + return sd_bus_reply_method_errorf(message, + SD_BUS_ERROR_UNKNOWN_OBJECT, + "Unknown object '%s'.", + sd_bus_message_get_path(message)); + } + + r = virDomainReboot(domain, flags); + if (r < 0) + return bus_error_set_last_virt_error(error); + + return sd_bus_reply_method_return(message, ""); +} + +static int +domain_reset(sd_bus_message *message, + void *userdata, + sd_bus_error *error) +{ + VirtManager *manager = userdata; + _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + uint32_t flags; + int r; + + r = sd_bus_message_read(message, "u", &flags); + if (r < 0) + return r; + + domain = domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); + if (domain == NULL) { + return sd_bus_reply_method_errorf(message, + SD_BUS_ERROR_UNKNOWN_OBJECT, + "Unknown object '%s'.", + sd_bus_message_get_path(message)); + } + + r = virDomainReset(domain, flags); + if (r < 0) + return bus_error_set_last_virt_error(error); + + return sd_bus_reply_method_return(message, ""); +} + +static int +domain_create(sd_bus_message *message, + void *userdata, + sd_bus_error *error) +{ + VirtManager *manager = userdata; + _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + int r; + + domain = domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); + if (domain == NULL) { + return sd_bus_reply_method_errorf(message, + SD_BUS_ERROR_UNKNOWN_OBJECT, + "Unknown object '%s'.", + sd_bus_message_get_path(message)); + } + + r = virDomainCreate(domain); + if (r < 0) + return bus_error_set_last_virt_error(error); + + return sd_bus_reply_method_return(message, ""); +} + +static int +domain_undefine(sd_bus_message *message, + void *userdata, + sd_bus_error *error) +{ + VirtManager *manager = userdata; + _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + int r; + + domain = domain_from_bus_path(manager->connection, + sd_bus_message_get_path(message)); + if (domain == NULL) { + return sd_bus_reply_method_errorf(message, + SD_BUS_ERROR_UNKNOWN_OBJECT, + "Unknown object '%s'.", + sd_bus_message_get_path(message)); + } + + r = virDomainUndefine(domain); + if (r < 0) + return bus_error_set_last_virt_error(error); + + return sd_bus_reply_method_return(message, ""); +} + +static const sd_bus_vtable virt_domain_vtable[] = { + SD_BUS_VTABLE_START(0), + + SD_BUS_PROPERTY("Name", "s", domain_get_name, 0, 0), + SD_BUS_PROPERTY("UUID", "s", domain_get_uuid, 0, 0), + SD_BUS_PROPERTY("Id", "u", domain_get_id, 0, 0), + SD_BUS_PROPERTY("Vcpus", "u", domain_get_vcpus, 0, 0), + SD_BUS_PROPERTY("OSType", "s", domain_get_os_type, 0, 0), + SD_BUS_PROPERTY("Active", "b", domain_get_active, 0, 0), + SD_BUS_PROPERTY("Persistent", "b", domain_get_persistent, 0, 0), + SD_BUS_PROPERTY("State", "s", domain_get_state, 0, 0), + SD_BUS_PROPERTY("Autostart", "b", domain_get_autostart, 0, 0), + + SD_BUS_METHOD("GetXMLDesc", "u", "s", domain_get_xml_desc, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("GetStats", "uu", "a{sv}", domain_get_stats, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("Shutdown", "", "", domain_shutdown, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("Destroy", "", "", domain_destroy, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("Reboot", "u", "", domain_reboot, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("Reset", "u", "", domain_reset, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("Create", "", "", domain_create, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("Undefine", "", "", domain_undefine, SD_BUS_VTABLE_UNPRIVILEGED), + + SD_BUS_SIGNAL("DeviceAdded", "s", 0), + SD_BUS_SIGNAL("DeviceRemoved", "s", 0), + SD_BUS_SIGNAL("DiskChange", "ssss", 0), + SD_BUS_SIGNAL("TrayChange", "ss", 0), + + SD_BUS_VTABLE_END +}; + +static int +lookup_domain(sd_bus *bus, + const char *path, + const char *interface, + void *userdata, + void **found, + sd_bus_error *error) +{ + VirtManager *manager = userdata; + _cleanup_(freep) char *name = NULL; + _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + int r; + + r = sd_bus_path_decode(path, "/org/libvirt/domain", &name); + if (r < 0) + return r; + + if (*name == '\0') + return 0; + + domain = virDomainLookupByUUIDString(manager->connection, name); + if (!domain) + return 0; + + /* + * There's no way to unref the pointer we're returning here. So, + * return the manager object and look up the domain again in the + * domain_* callbacks. + */ + *found = manager; + + return 1; +} + +int +domain_register(VirtManager *manager, + sd_bus *bus) +{ + return sd_bus_add_fallback_vtable(bus, + NULL, + "/org/libvirt/domain", + "org.libvirt.Domain", + virt_domain_vtable, + lookup_domain, + manager); +} diff --git a/src/domain.h b/src/domain.h new file mode 100644 index 0000000..3f347e8 --- /dev/null +++ b/src/domain.h @@ -0,0 +1,9 @@ +#pragma once + +#include "manager.h" + +#include <libvirt/libvirt.h> +#include <systemd/sd-bus.h> + +int domain_register(VirtManager *manager, + sd_bus *bus); diff --git a/src/manager.c b/src/manager.c index 0cf0f8e..a2709b4 100644 --- a/src/manager.c +++ b/src/manager.c @@ -1,3 +1,4 @@ +#include "domain.h" #include "manager.h" #include "util.h" @@ -5,483 +6,6 @@ #include <errno.h> #include <stdlib.h> -struct VirtManager { - sd_bus *bus; - virConnectPtr connection; - - int callback_ids[VIR_DOMAIN_EVENT_ID_LAST]; -}; - -static int -domain_get_name(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) -{ - VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - const char *name = ""; - - domain = domain_from_bus_path(manager->connection, path); - if (domain == NULL) - return sd_bus_message_append(reply, "s", ""); - - name = virDomainGetName(domain); - if (name == NULL) - return sd_bus_message_append(reply, "s", ""); - - return sd_bus_message_append(reply, "s", name); -} - -static int -domain_get_uuid(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) -{ - VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - char uuid[VIR_UUID_STRING_BUFLEN] = ""; - - domain = domain_from_bus_path(manager->connection, path); - if (domain == NULL) - return sd_bus_message_append(reply, "s", ""); - - virDomainGetUUIDString(domain, uuid); - - return sd_bus_message_append(reply, "s", uuid); -} - -static int -domain_get_id(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) -{ - VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - - domain = domain_from_bus_path(manager->connection, path); - if (domain == NULL) - return sd_bus_message_append(reply, "u", 0); - - return sd_bus_message_append(reply, "u", virDomainGetID(domain)); -} - -static int -domain_get_vcpus(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) -{ - VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - - domain = domain_from_bus_path(manager->connection, path); - if (domain == NULL) - return sd_bus_message_append(reply, "u", 0); - - return sd_bus_message_append(reply, "u", virDomainGetVcpusFlags(domain, VIR_DOMAIN_VCPU_CURRENT)); -} - -static int -domain_get_os_type(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) -{ - VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - _cleanup_(freep) char *os_type = NULL; - - domain = domain_from_bus_path(manager->connection, path); - if (domain == NULL) - return sd_bus_message_append(reply, "s", ""); - - os_type = virDomainGetOSType(domain); - if (os_type == NULL) - return sd_bus_message_append(reply, "s", ""); - - return sd_bus_message_append(reply, "s", os_type); -} - -static int -domain_get_active(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) -{ - VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - int active; - - domain = domain_from_bus_path(manager->connection, path); - if (domain == NULL) - return sd_bus_message_append(reply, "b", 0); - - active = virDomainIsActive(domain); - if (active < 0) - return sd_bus_message_append(reply, "b", 0); - - return sd_bus_message_append(reply, "b", active); -} - -static int -domain_get_persistent(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) -{ - VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - int persistent; - - domain = domain_from_bus_path(manager->connection, path); - if (domain == NULL) - return sd_bus_message_append(reply, "b", 0); - - persistent = virDomainIsPersistent(domain); - if (persistent < 0) - return sd_bus_message_append(reply, "b", 0); - - return sd_bus_message_append(reply, "b", persistent); -} - -static int -domain_get_state(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) -{ - VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - int state = 0; - const char *string; - - domain = domain_from_bus_path(manager->connection, path); - if (domain == NULL) - return sd_bus_message_append(reply, "s", ""); - - virDomainGetState(domain, &state, NULL, 0); - - switch (state) { - case VIR_DOMAIN_NOSTATE: - default: - string = "nostate"; - break; - case VIR_DOMAIN_RUNNING: - string = "running"; - break; - case VIR_DOMAIN_BLOCKED: - string = "blocked"; - break; - case VIR_DOMAIN_PAUSED: - string = "paused"; - break; - case VIR_DOMAIN_SHUTDOWN: - string = "shutdown"; - break; - case VIR_DOMAIN_SHUTOFF: - string = "shutoff"; - break; - case VIR_DOMAIN_CRASHED: - string = "crashed"; - break; - case VIR_DOMAIN_PMSUSPENDED: - string = "pmsuspended"; - break; - } - - return sd_bus_message_append(reply, "s", string); -} - -static int -domain_get_autostart(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) -{ - VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - int autostart = 0; - - domain = domain_from_bus_path(manager->connection, path); - if (domain == NULL) - return sd_bus_message_append(reply, "b", 0); - - virDomainGetAutostart(domain, &autostart); - - return sd_bus_message_append(reply, "b", autostart); -} - -static int -domain_get_xml_desc(sd_bus_message *message, - void *userdata, - sd_bus_error *error) -{ - VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - _cleanup_(freep) char *description = NULL; - uint32_t flags; - int r; - - domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); - if (domain == NULL) { - return sd_bus_reply_method_errorf(message, - SD_BUS_ERROR_UNKNOWN_OBJECT, - "Unknown object '%s'.", - sd_bus_message_get_path(message)); - } - - r = sd_bus_message_read(message, "u", &flags); - if (r < 0) - return r; - - description = virDomainGetXMLDesc(domain, flags); - if (!description) - return bus_error_set_last_virt_error(error); - - return sd_bus_reply_method_return(message, "s", description); -} - -static void -virDomainStatsRecordListFreep(virDomainStatsRecordPtr **statsp) -{ - if (*statsp) - virDomainStatsRecordListFree(*statsp); -} - -static int -domain_get_stats(sd_bus_message *message, - void *userdata, - sd_bus_error *error) -{ - VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - virDomainPtr domains[2]; - _cleanup_(virDomainStatsRecordListFreep) virDomainStatsRecordPtr *records = NULL; - _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL; - uint32_t flags, stats; - int r; - - r = sd_bus_message_read(message, "uu", &stats, &flags); - if (r < 0) - return r; - - domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); - if (domain == NULL) { - return sd_bus_reply_method_errorf(message, - SD_BUS_ERROR_UNKNOWN_OBJECT, - "Unknown object '%s'.", - sd_bus_message_get_path(message)); - } - - domains[0] = domain; - domains[1] = NULL; - - if (virDomainListGetStats(domains, stats, &records, flags) != 1) - return bus_error_set_last_virt_error(error); - - r = sd_bus_message_new_method_return(message, &reply); - if (r < 0) - return r; - - r = bus_message_append_typed_parameters(reply, records[0]->params, records[0]->nparams); - if (r < 0) - return r; - - return sd_bus_send(NULL, reply, NULL); -} - -static int -domain_shutdown(sd_bus_message *message, - void *userdata, - sd_bus_error *error) -{ - VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - int r; - - domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); - if (domain == NULL) { - return sd_bus_reply_method_errorf(message, - SD_BUS_ERROR_UNKNOWN_OBJECT, - "Unknown object '%s'.", - sd_bus_message_get_path(message)); - } - - r = virDomainShutdown(domain); - if (r < 0) - return bus_error_set_last_virt_error(error); - - return sd_bus_reply_method_return(message, ""); -} - -static int -domain_destroy(sd_bus_message *message, - void *userdata, - sd_bus_error *error) -{ - VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - int r; - - domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); - if (domain == NULL) { - return sd_bus_reply_method_errorf(message, - SD_BUS_ERROR_UNKNOWN_OBJECT, - "Unknown object '%s'.", - sd_bus_message_get_path(message)); - } - - r = virDomainDestroy(domain); - if (r < 0) - return bus_error_set_last_virt_error(error); - - return sd_bus_reply_method_return(message, ""); -} - -static int -domain_reboot(sd_bus_message *message, - void *userdata, - sd_bus_error *error) -{ - VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - uint32_t flags; - int r; - - r = sd_bus_message_read(message, "u", &flags); - if (r < 0) - return r; - - domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); - if (domain == NULL) { - return sd_bus_reply_method_errorf(message, - SD_BUS_ERROR_UNKNOWN_OBJECT, - "Unknown object '%s'.", - sd_bus_message_get_path(message)); - } - - r = virDomainReboot(domain, flags); - if (r < 0) - return bus_error_set_last_virt_error(error); - - return sd_bus_reply_method_return(message, ""); -} - -static int -domain_reset(sd_bus_message *message, - void *userdata, - sd_bus_error *error) -{ - VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - uint32_t flags; - int r; - - r = sd_bus_message_read(message, "u", &flags); - if (r < 0) - return r; - - domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); - if (domain == NULL) { - return sd_bus_reply_method_errorf(message, - SD_BUS_ERROR_UNKNOWN_OBJECT, - "Unknown object '%s'.", - sd_bus_message_get_path(message)); - } - - r = virDomainReset(domain, flags); - if (r < 0) - return bus_error_set_last_virt_error(error); - - return sd_bus_reply_method_return(message, ""); -} - -static int -domain_create(sd_bus_message *message, - void *userdata, - sd_bus_error *error) -{ - VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - int r; - - domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); - if (domain == NULL) { - return sd_bus_reply_method_errorf(message, - SD_BUS_ERROR_UNKNOWN_OBJECT, - "Unknown object '%s'.", - sd_bus_message_get_path(message)); - } - - r = virDomainCreate(domain); - if (r < 0) - return bus_error_set_last_virt_error(error); - - return sd_bus_reply_method_return(message, ""); -} - -static int -domain_undefine(sd_bus_message *message, - void *userdata, - sd_bus_error *error) -{ - VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - int r; - - domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); - if (domain == NULL) { - return sd_bus_reply_method_errorf(message, - SD_BUS_ERROR_UNKNOWN_OBJECT, - "Unknown object '%s'.", - sd_bus_message_get_path(message)); - } - - r = virDomainUndefine(domain); - if (r < 0) - return bus_error_set_last_virt_error(error); - - return sd_bus_reply_method_return(message, ""); -} - static int enumerate_domains(sd_bus *bus, const char *path, @@ -808,40 +332,6 @@ handle_domain_tray_change_event(virConnectPtr connection, return sd_bus_send(manager->bus, message, NULL); } -static int -lookup_domain(sd_bus *bus, - const char *path, - const char *interface, - void *userdata, - void **found, - sd_bus_error *error) -{ - VirtManager *manager = userdata; - _cleanup_(freep) char *name = NULL; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - int r; - - r = sd_bus_path_decode(path, "/org/libvirt/domain", &name); - if (r < 0) - return r; - - if (*name == '\0') - return 0; - - domain = virDomainLookupByUUIDString(manager->connection, name); - if (!domain) - return 0; - - /* - * There's no way to unref the pointer we're returning here. So, - * return the manager object and look up the domain again in the - * domain_* callbacks. - */ - *found = manager; - - return 1; -} - static void virt_manager_register_event(VirtManager *manager, int id, @@ -877,36 +367,6 @@ static const sd_bus_vtable virt_manager_vtable[] = { SD_BUS_VTABLE_END }; -static const sd_bus_vtable virt_domain_vtable[] = { - SD_BUS_VTABLE_START(0), - - SD_BUS_PROPERTY("Name", "s", domain_get_name, 0, 0), - SD_BUS_PROPERTY("UUID", "s", domain_get_uuid, 0, 0), - SD_BUS_PROPERTY("Id", "u", domain_get_id, 0, 0), - SD_BUS_PROPERTY("Vcpus", "u", domain_get_vcpus, 0, 0), - SD_BUS_PROPERTY("OSType", "s", domain_get_os_type, 0, 0), - SD_BUS_PROPERTY("Active", "b", domain_get_active, 0, 0), - SD_BUS_PROPERTY("Persistent", "b", domain_get_persistent, 0, 0), - SD_BUS_PROPERTY("State", "s", domain_get_state, 0, 0), - SD_BUS_PROPERTY("Autostart", "b", domain_get_autostart, 0, 0), - - SD_BUS_METHOD("GetXMLDesc", "u", "s", domain_get_xml_desc, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("GetStats", "uu", "a{sv}", domain_get_stats, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("Shutdown", "", "", domain_shutdown, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("Destroy", "", "", domain_destroy, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("Reboot", "u", "", domain_reboot, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("Reset", "u", "", domain_reset, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("Create", "", "", domain_create, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("Undefine", "", "", domain_undefine, SD_BUS_VTABLE_UNPRIVILEGED), - - SD_BUS_SIGNAL("DeviceAdded", "s", 0), - SD_BUS_SIGNAL("DeviceRemoved", "s", 0), - SD_BUS_SIGNAL("DiskChange", "ssss", 0), - SD_BUS_SIGNAL("TrayChange", "ss", 0), - - SD_BUS_VTABLE_END -}; - int virt_manager_new(VirtManager **managerp, sd_bus *bus, @@ -958,14 +418,7 @@ virt_manager_new(VirtManager **managerp, if (r < 0) return r; - r = sd_bus_add_fallback_vtable(bus, - NULL, - "/org/libvirt/domain", - "org.libvirt.Domain", - virt_domain_vtable, - lookup_domain, - manager); - if (r < 0) + if ((r = domain_register(manager, bus) < 0)) return r; *managerp = manager; diff --git a/src/manager.h b/src/manager.h index 8f2aedb..06aaa04 100644 --- a/src/manager.h +++ b/src/manager.h @@ -5,6 +5,12 @@ #include <libvirt/libvirt.h> #include <systemd/sd-bus.h> +struct VirtManager { + sd_bus *bus; + virConnectPtr connection; + + int callback_ids[VIR_DOMAIN_EVENT_ID_LAST]; +}; typedef struct VirtManager VirtManager; int virt_manager_new(VirtManager **managerp, -- 2.13.3

Similarly to the previous patch, split the code into its separate file. Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/Makefile.am | 3 +- src/events.c | 252 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/events.h | 9 ++ src/manager.c | 243 +----------------------------------------------------- 4 files changed, 265 insertions(+), 242 deletions(-) create mode 100644 src/events.c create mode 100644 src/events.h diff --git a/src/Makefile.am b/src/Makefile.am index f066ed3..30e7a35 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -5,7 +5,8 @@ DAEMON_SOURCES = \ main.c \ manager.c manager.h \ util.c util.h \ - domain.c domain.h + domain.c domain.h \ + events.c events.h EXTRA_DIST = \ $(DAEMON_SOURCES) diff --git a/src/events.c b/src/events.c new file mode 100644 index 0000000..4572e39 --- /dev/null +++ b/src/events.c @@ -0,0 +1,252 @@ +#include "domain.h" +#include "events.h" +#include "util.h" + +#include <assert.h> +#include <systemd/sd-bus.h> + +static int +handle_domain_lifecycle_event(virConnectPtr connection, + virDomainPtr domain, + int event, + int detail, + void *opaque) +{ + VirtManager *manager = opaque; + _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; + const char *signal = NULL; + const char *name; + _cleanup_(freep) char *path = NULL; + int r; + + switch (event) { + case VIR_DOMAIN_EVENT_DEFINED: + signal = "DomainDefined"; + break; + case VIR_DOMAIN_EVENT_UNDEFINED: + signal = "DomainUndefined"; + break; + case VIR_DOMAIN_EVENT_STARTED: + signal = "DomainStarted"; + break; + case VIR_DOMAIN_EVENT_SUSPENDED: + signal = "DomainSuspended"; + break; + case VIR_DOMAIN_EVENT_RESUMED: + signal = "DomainResumed"; + break; + case VIR_DOMAIN_EVENT_STOPPED: + signal = "DomainStopped"; + break; + case VIR_DOMAIN_EVENT_SHUTDOWN: + signal = "DomainShutdown"; + break; + case VIR_DOMAIN_EVENT_PMSUSPENDED: + signal = "DomainPMSuspended"; + break; + case VIR_DOMAIN_EVENT_CRASHED: + signal = "DomainCrashed"; + break; + default: + return 0; + } + + r = sd_bus_message_new_signal(manager->bus, + &message, + "/org/libvirt/Manager", + "org.libvirt.Manager", + signal); + if (r < 0) + return r; + + name = virDomainGetName(domain); + path = bus_path_for_domain(domain); + + r = sd_bus_message_append(message, "so", name ? : "", path); + if (r < 0) + return r; + + return sd_bus_send(manager->bus, message, NULL); +} + +static int +handle_domain_device_added_event(virConnectPtr connection, + virDomainPtr domain, + const char *device, + void *opaque) +{ + VirtManager *manager = opaque; + _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; + _cleanup_(freep) char *path = NULL; + int r; + + path = bus_path_for_domain(domain); + + r = sd_bus_message_new_signal(manager->bus, + &message, + path, + "org.libvirt.Domain", + "DeviceAdded"); + if (r < 0) + return r; + + r = sd_bus_message_append(message, "s", device); + if (r < 0) + return r; + + return sd_bus_send(manager->bus, message, NULL); +} + +static int +handle_domain_device_removed_event(virConnectPtr connection, + virDomainPtr domain, + const char *device, + void *opaque) +{ + VirtManager *manager = opaque; + _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; + _cleanup_(freep) char *path = NULL; + int r; + + path = bus_path_for_domain(domain); + + r = sd_bus_message_new_signal(manager->bus, + &message, + path, + "org.libvirt.Domain", + "DeviceRemoved"); + if (r < 0) + return r; + + r = sd_bus_message_append(message, "s", device); + if (r < 0) + return r; + + return sd_bus_send(manager->bus, message, NULL); +} + +static int +handle_domain_disk_change_event(virConnectPtr connection, + virDomainPtr domain, + const char *device, + int reason, + void *opaque) +{ + VirtManager *manager = opaque; + _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; + _cleanup_(freep) char *path = NULL; + const char *reasonstr; + int r; + + path = bus_path_for_domain(domain); + + r = sd_bus_message_new_signal(manager->bus, + &message, + path, + "org.libvirt.Domain", + "TrayChange"); + if (r < 0) + return r; + + switch (reason) { + case VIR_DOMAIN_EVENT_TRAY_CHANGE_OPEN: + reasonstr = "open"; + break; + case VIR_DOMAIN_EVENT_TRAY_CHANGE_CLOSE: + reasonstr = "close"; + break; + default: + reasonstr = ""; + break; + } + + r = sd_bus_message_append(message, "ssss", device, reasonstr); + if (r < 0) + return r; + + return sd_bus_send(manager->bus, message, NULL); +} + +static int +handle_domain_tray_change_event(virConnectPtr connection, + virDomainPtr domain, + const char *old_src_path, + const char *new_src_path, + const char *device, + int reason, + void *opaque) +{ + VirtManager *manager = opaque; + _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; + _cleanup_(freep) char *path = NULL; + const char *reasonstr; + int r; + + path = bus_path_for_domain(domain); + + r = sd_bus_message_new_signal(manager->bus, + &message, + path, + "org.libvirt.Domain", + "DiskChange"); + if (r < 0) + return r; + + switch (reason) { + case VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START: + reasonstr = "missing-on-start"; + break; + case VIR_DOMAIN_EVENT_DISK_DROP_MISSING_ON_START: + reasonstr = "missing-on-start"; + break; + default: + reasonstr = ""; + break; + } + + r = sd_bus_message_append(message, "ssss", old_src_path, new_src_path, device, reasonstr); + if (r < 0) + return r; + + return sd_bus_send(manager->bus, message, NULL); +} + +static void +virt_manager_register_event(VirtManager *manager, + int id, + virConnectDomainEventGenericCallback callback) +{ + assert(manager->callback_ids[id] == -1); + + manager->callback_ids[id] = virConnectDomainEventRegisterAny(manager->connection, + NULL, + id, + VIR_DOMAIN_EVENT_CALLBACK(callback), + manager, + NULL); +} + +void +virt_manager_register_events(VirtManager *manager) +{ + virt_manager_register_event(manager, + VIR_DOMAIN_EVENT_ID_LIFECYCLE, + VIR_DOMAIN_EVENT_CALLBACK(handle_domain_lifecycle_event)); + + virt_manager_register_event(manager, + VIR_DOMAIN_EVENT_ID_DEVICE_ADDED, + VIR_DOMAIN_EVENT_CALLBACK(handle_domain_device_added_event)); + + virt_manager_register_event(manager, + VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED, + VIR_DOMAIN_EVENT_CALLBACK(handle_domain_device_removed_event)); + + virt_manager_register_event(manager, + VIR_DOMAIN_EVENT_ID_DISK_CHANGE, + VIR_DOMAIN_EVENT_CALLBACK(handle_domain_tray_change_event)); + + virt_manager_register_event(manager, + VIR_DOMAIN_EVENT_ID_TRAY_CHANGE, + VIR_DOMAIN_EVENT_CALLBACK(handle_domain_disk_change_event)); + +} diff --git a/src/events.h b/src/events.h new file mode 100644 index 0000000..7f1dfca --- /dev/null +++ b/src/events.h @@ -0,0 +1,9 @@ +#pragma once + +#include "manager.h" + +#include <libvirt/libvirt.h> + + +void +virt_manager_register_events(VirtManager *manager); diff --git a/src/manager.c b/src/manager.c index a2709b4..32f38bb 100644 --- a/src/manager.c +++ b/src/manager.c @@ -1,8 +1,8 @@ #include "domain.h" +#include "events.h" #include "manager.h" #include "util.h" -#include <assert.h> #include <errno.h> #include <stdlib.h> @@ -126,227 +126,6 @@ virt_manager_define_xml(sd_bus_message *message, return sd_bus_reply_method_return(message, "o", path); } -static int -handle_domain_lifecycle_event(virConnectPtr connection, - virDomainPtr domain, - int event, - int detail, - void *opaque) -{ - VirtManager *manager = opaque; - _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; - const char *signal = NULL; - const char *name; - _cleanup_(freep) char *path = NULL; - int r; - - switch (event) { - case VIR_DOMAIN_EVENT_DEFINED: - signal = "DomainDefined"; - break; - case VIR_DOMAIN_EVENT_UNDEFINED: - signal = "DomainUndefined"; - break; - case VIR_DOMAIN_EVENT_STARTED: - signal = "DomainStarted"; - break; - case VIR_DOMAIN_EVENT_SUSPENDED: - signal = "DomainSuspended"; - break; - case VIR_DOMAIN_EVENT_RESUMED: - signal = "DomainResumed"; - break; - case VIR_DOMAIN_EVENT_STOPPED: - signal = "DomainStopped"; - break; - case VIR_DOMAIN_EVENT_SHUTDOWN: - signal = "DomainShutdown"; - break; - case VIR_DOMAIN_EVENT_PMSUSPENDED: - signal = "DomainPMSuspended"; - break; - case VIR_DOMAIN_EVENT_CRASHED: - signal = "DomainCrashed"; - break; - default: - return 0; - } - - r = sd_bus_message_new_signal(manager->bus, - &message, - "/org/libvirt/Manager", - "org.libvirt.Manager", - signal); - if (r < 0) - return r; - - name = virDomainGetName(domain); - path = bus_path_for_domain(domain); - - r = sd_bus_message_append(message, "so", name ? : "", path); - if (r < 0) - return r; - - return sd_bus_send(manager->bus, message, NULL); -} - -static int -handle_domain_device_added_event(virConnectPtr connection, - virDomainPtr domain, - const char *device, - void *opaque) -{ - VirtManager *manager = opaque; - _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; - _cleanup_(freep) char *path = NULL; - int r; - - path = bus_path_for_domain(domain); - - r = sd_bus_message_new_signal(manager->bus, - &message, - path, - "org.libvirt.Domain", - "DeviceAdded"); - if (r < 0) - return r; - - r = sd_bus_message_append(message, "s", device); - if (r < 0) - return r; - - return sd_bus_send(manager->bus, message, NULL); -} - -static int -handle_domain_device_removed_event(virConnectPtr connection, - virDomainPtr domain, - const char *device, - void *opaque) -{ - VirtManager *manager = opaque; - _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; - _cleanup_(freep) char *path = NULL; - int r; - - path = bus_path_for_domain(domain); - - r = sd_bus_message_new_signal(manager->bus, - &message, - path, - "org.libvirt.Domain", - "DeviceRemoved"); - if (r < 0) - return r; - - r = sd_bus_message_append(message, "s", device); - if (r < 0) - return r; - - return sd_bus_send(manager->bus, message, NULL); -} - -static int -handle_domain_disk_change_event(virConnectPtr connection, - virDomainPtr domain, - const char *device, - int reason, - void *opaque) -{ - VirtManager *manager = opaque; - _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; - _cleanup_(freep) char *path = NULL; - const char *reasonstr; - int r; - - path = bus_path_for_domain(domain); - - r = sd_bus_message_new_signal(manager->bus, - &message, - path, - "org.libvirt.Domain", - "TrayChange"); - if (r < 0) - return r; - - switch (reason) { - case VIR_DOMAIN_EVENT_TRAY_CHANGE_OPEN: - reasonstr = "open"; - break; - case VIR_DOMAIN_EVENT_TRAY_CHANGE_CLOSE: - reasonstr = "close"; - break; - default: - reasonstr = ""; - break; - } - - r = sd_bus_message_append(message, "ssss", device, reasonstr); - if (r < 0) - return r; - - return sd_bus_send(manager->bus, message, NULL); -} - -static int -handle_domain_tray_change_event(virConnectPtr connection, - virDomainPtr domain, - const char *old_src_path, - const char *new_src_path, - const char *device, - int reason, - void *opaque) -{ - VirtManager *manager = opaque; - _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; - _cleanup_(freep) char *path = NULL; - const char *reasonstr; - int r; - - path = bus_path_for_domain(domain); - - r = sd_bus_message_new_signal(manager->bus, - &message, - path, - "org.libvirt.Domain", - "DiskChange"); - if (r < 0) - return r; - - switch (reason) { - case VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START: - reasonstr = "missing-on-start"; - break; - case VIR_DOMAIN_EVENT_DISK_DROP_MISSING_ON_START: - reasonstr = "missing-on-start"; - break; - default: - reasonstr = ""; - break; - } - - r = sd_bus_message_append(message, "ssss", old_src_path, new_src_path, device, reasonstr); - if (r < 0) - return r; - - return sd_bus_send(manager->bus, message, NULL); -} - -static void -virt_manager_register_event(VirtManager *manager, - int id, - virConnectDomainEventGenericCallback callback) -{ - assert(manager->callback_ids[id] == -1); - - manager->callback_ids[id] = virConnectDomainEventRegisterAny(manager->connection, - NULL, - id, - VIR_DOMAIN_EVENT_CALLBACK(callback), - manager, - NULL); -} - static const sd_bus_vtable virt_manager_vtable[] = { SD_BUS_VTABLE_START(0), @@ -385,25 +164,7 @@ virt_manager_new(VirtManager **managerp, if (!manager->connection) return -EINVAL; - virt_manager_register_event(manager, - VIR_DOMAIN_EVENT_ID_LIFECYCLE, - VIR_DOMAIN_EVENT_CALLBACK(handle_domain_lifecycle_event)); - - virt_manager_register_event(manager, - VIR_DOMAIN_EVENT_ID_DEVICE_ADDED, - VIR_DOMAIN_EVENT_CALLBACK(handle_domain_device_added_event)); - - virt_manager_register_event(manager, - VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED, - VIR_DOMAIN_EVENT_CALLBACK(handle_domain_device_removed_event)); - - virt_manager_register_event(manager, - VIR_DOMAIN_EVENT_ID_DISK_CHANGE, - VIR_DOMAIN_EVENT_CALLBACK(handle_domain_tray_change_event)); - - virt_manager_register_event(manager, - VIR_DOMAIN_EVENT_ID_TRAY_CHANGE, - VIR_DOMAIN_EVENT_CALLBACK(handle_domain_disk_change_event)); + virt_manager_register_events(manager); r = sd_bus_add_object_vtable(manager->bus, NULL, -- 2.13.3

All libvirt-dbus function should use virtDBus preffix and use only one coding style, camelCase. Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/domain.c | 110 +++++++++++++++++++++++++++++----------------------------- src/events.c | 20 +++++------ src/main.c | 2 +- src/manager.c | 32 ++++++++--------- src/util.c | 17 ++++----- src/util.h | 26 +++++++------- 6 files changed, 105 insertions(+), 102 deletions(-) diff --git a/src/domain.c b/src/domain.c index 1bda3b8..4bfb314 100644 --- a/src/domain.c +++ b/src/domain.c @@ -11,10 +11,10 @@ domain_get_name(sd_bus *bus, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; const char *name = ""; - domain = domain_from_bus_path(manager->connection, path); + domain = virtDBusVirDomainFromBusPath(manager->connection, path); if (domain == NULL) return sd_bus_message_append(reply, "s", ""); @@ -35,10 +35,10 @@ domain_get_uuid(sd_bus *bus, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; char uuid[VIR_UUID_STRING_BUFLEN] = ""; - domain = domain_from_bus_path(manager->connection, path); + domain = virtDBusVirDomainFromBusPath(manager->connection, path); if (domain == NULL) return sd_bus_message_append(reply, "s", ""); @@ -57,9 +57,9 @@ domain_get_id(sd_bus *bus, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; - domain = domain_from_bus_path(manager->connection, path); + domain = virtDBusVirDomainFromBusPath(manager->connection, path); if (domain == NULL) return sd_bus_message_append(reply, "u", 0); @@ -76,9 +76,9 @@ domain_get_vcpus(sd_bus *bus, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; - domain = domain_from_bus_path(manager->connection, path); + domain = virtDBusVirDomainFromBusPath(manager->connection, path); if (domain == NULL) return sd_bus_message_append(reply, "u", 0); @@ -95,10 +95,10 @@ domain_get_os_type(sd_bus *bus, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - _cleanup_(freep) char *os_type = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusFreep) char *os_type = NULL; - domain = domain_from_bus_path(manager->connection, path); + domain = virtDBusVirDomainFromBusPath(manager->connection, path); if (domain == NULL) return sd_bus_message_append(reply, "s", ""); @@ -119,10 +119,10 @@ domain_get_active(sd_bus *bus, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; int active; - domain = domain_from_bus_path(manager->connection, path); + domain = virtDBusVirDomainFromBusPath(manager->connection, path); if (domain == NULL) return sd_bus_message_append(reply, "b", 0); @@ -143,10 +143,10 @@ domain_get_persistent(sd_bus *bus, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; int persistent; - domain = domain_from_bus_path(manager->connection, path); + domain = virtDBusVirDomainFromBusPath(manager->connection, path); if (domain == NULL) return sd_bus_message_append(reply, "b", 0); @@ -167,11 +167,11 @@ domain_get_state(sd_bus *bus, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; int state = 0; const char *string; - domain = domain_from_bus_path(manager->connection, path); + domain = virtDBusVirDomainFromBusPath(manager->connection, path); if (domain == NULL) return sd_bus_message_append(reply, "s", ""); @@ -218,10 +218,10 @@ domain_get_autostart(sd_bus *bus, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; int autostart = 0; - domain = domain_from_bus_path(manager->connection, path); + domain = virtDBusVirDomainFromBusPath(manager->connection, path); if (domain == NULL) return sd_bus_message_append(reply, "b", 0); @@ -236,13 +236,13 @@ domain_get_xml_desc(sd_bus_message *message, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - _cleanup_(freep) char *description = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusFreep) char *description = NULL; uint32_t flags; int r; - domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); + domain = virtDBusVirDomainFromBusPath(manager->connection, + sd_bus_message_get_path(message)); if (domain == NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -256,7 +256,7 @@ domain_get_xml_desc(sd_bus_message *message, description = virDomainGetXMLDesc(domain, flags); if (!description) - return bus_error_set_last_virt_error(error); + return virtDBusSetLastVirtError(error); return sd_bus_reply_method_return(message, "s", description); } @@ -274,7 +274,7 @@ domain_get_stats(sd_bus_message *message, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; virDomainPtr domains[2]; _cleanup_(virDomainStatsRecordListFreep) virDomainStatsRecordPtr *records = NULL; _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL; @@ -285,8 +285,8 @@ domain_get_stats(sd_bus_message *message, if (r < 0) return r; - domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); + domain = virtDBusVirDomainFromBusPath(manager->connection, + sd_bus_message_get_path(message)); if (domain == NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -298,13 +298,13 @@ domain_get_stats(sd_bus_message *message, domains[1] = NULL; if (virDomainListGetStats(domains, stats, &records, flags) != 1) - return bus_error_set_last_virt_error(error); + return virtDBusSetLastVirtError(error); r = sd_bus_message_new_method_return(message, &reply); if (r < 0) return r; - r = bus_message_append_typed_parameters(reply, records[0]->params, records[0]->nparams); + r = virtDBusMessageAppendTypedParameters(reply, records[0]->params, records[0]->nparams); if (r < 0) return r; @@ -317,11 +317,11 @@ domain_shutdown(sd_bus_message *message, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; int r; - domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); + domain = virtDBusVirDomainFromBusPath(manager->connection, + sd_bus_message_get_path(message)); if (domain == NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -331,7 +331,7 @@ domain_shutdown(sd_bus_message *message, r = virDomainShutdown(domain); if (r < 0) - return bus_error_set_last_virt_error(error); + return virtDBusSetLastVirtError(error); return sd_bus_reply_method_return(message, ""); } @@ -342,11 +342,11 @@ domain_destroy(sd_bus_message *message, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; int r; - domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); + domain = virtDBusVirDomainFromBusPath(manager->connection, + sd_bus_message_get_path(message)); if (domain == NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -356,7 +356,7 @@ domain_destroy(sd_bus_message *message, r = virDomainDestroy(domain); if (r < 0) - return bus_error_set_last_virt_error(error); + return virtDBusSetLastVirtError(error); return sd_bus_reply_method_return(message, ""); } @@ -367,7 +367,7 @@ domain_reboot(sd_bus_message *message, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; uint32_t flags; int r; @@ -375,8 +375,8 @@ domain_reboot(sd_bus_message *message, if (r < 0) return r; - domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); + domain = virtDBusVirDomainFromBusPath(manager->connection, + sd_bus_message_get_path(message)); if (domain == NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -386,7 +386,7 @@ domain_reboot(sd_bus_message *message, r = virDomainReboot(domain, flags); if (r < 0) - return bus_error_set_last_virt_error(error); + return virtDBusSetLastVirtError(error); return sd_bus_reply_method_return(message, ""); } @@ -397,7 +397,7 @@ domain_reset(sd_bus_message *message, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; uint32_t flags; int r; @@ -405,8 +405,8 @@ domain_reset(sd_bus_message *message, if (r < 0) return r; - domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); + domain = virtDBusVirDomainFromBusPath(manager->connection, + sd_bus_message_get_path(message)); if (domain == NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -416,7 +416,7 @@ domain_reset(sd_bus_message *message, r = virDomainReset(domain, flags); if (r < 0) - return bus_error_set_last_virt_error(error); + return virtDBusSetLastVirtError(error); return sd_bus_reply_method_return(message, ""); } @@ -427,11 +427,11 @@ domain_create(sd_bus_message *message, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; int r; - domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); + domain = virtDBusVirDomainFromBusPath(manager->connection, + sd_bus_message_get_path(message)); if (domain == NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -441,7 +441,7 @@ domain_create(sd_bus_message *message, r = virDomainCreate(domain); if (r < 0) - return bus_error_set_last_virt_error(error); + return virtDBusSetLastVirtError(error); return sd_bus_reply_method_return(message, ""); } @@ -452,11 +452,11 @@ domain_undefine(sd_bus_message *message, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; int r; - domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); + domain = virtDBusVirDomainFromBusPath(manager->connection, + sd_bus_message_get_path(message)); if (domain == NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT, @@ -466,7 +466,7 @@ domain_undefine(sd_bus_message *message, r = virDomainUndefine(domain); if (r < 0) - return bus_error_set_last_virt_error(error); + return virtDBusSetLastVirtError(error); return sd_bus_reply_method_return(message, ""); } @@ -510,8 +510,8 @@ lookup_domain(sd_bus *bus, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(freep) char *name = NULL; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusFreep) char *name = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; int r; r = sd_bus_path_decode(path, "/org/libvirt/domain", &name); diff --git a/src/events.c b/src/events.c index 4572e39..74f3d6f 100644 --- a/src/events.c +++ b/src/events.c @@ -16,7 +16,7 @@ handle_domain_lifecycle_event(virConnectPtr connection, _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; const char *signal = NULL; const char *name; - _cleanup_(freep) char *path = NULL; + _cleanup_(virtDBusFreep) char *path = NULL; int r; switch (event) { @@ -60,7 +60,7 @@ handle_domain_lifecycle_event(virConnectPtr connection, return r; name = virDomainGetName(domain); - path = bus_path_for_domain(domain); + path = virtDBusBusPathForVirDomain(domain); r = sd_bus_message_append(message, "so", name ? : "", path); if (r < 0) @@ -77,10 +77,10 @@ handle_domain_device_added_event(virConnectPtr connection, { VirtManager *manager = opaque; _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; - _cleanup_(freep) char *path = NULL; + _cleanup_(virtDBusFreep) char *path = NULL; int r; - path = bus_path_for_domain(domain); + path = virtDBusBusPathForVirDomain(domain); r = sd_bus_message_new_signal(manager->bus, &message, @@ -105,10 +105,10 @@ handle_domain_device_removed_event(virConnectPtr connection, { VirtManager *manager = opaque; _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; - _cleanup_(freep) char *path = NULL; + _cleanup_(virtDBusFreep) char *path = NULL; int r; - path = bus_path_for_domain(domain); + path = virtDBusBusPathForVirDomain(domain); r = sd_bus_message_new_signal(manager->bus, &message, @@ -134,11 +134,11 @@ handle_domain_disk_change_event(virConnectPtr connection, { VirtManager *manager = opaque; _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; - _cleanup_(freep) char *path = NULL; + _cleanup_(virtDBusFreep) char *path = NULL; const char *reasonstr; int r; - path = bus_path_for_domain(domain); + path = virtDBusBusPathForVirDomain(domain); r = sd_bus_message_new_signal(manager->bus, &message, @@ -178,11 +178,11 @@ handle_domain_tray_change_event(virConnectPtr connection, { VirtManager *manager = opaque; _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; - _cleanup_(freep) char *path = NULL; + _cleanup_(virtDBusFreep) char *path = NULL; const char *reasonstr; int r; - path = bus_path_for_domain(domain); + path = virtDBusBusPathForVirDomain(domain); r = sd_bus_message_new_signal(manager->bus, &message, diff --git a/src/main.c b/src/main.c index a0cff38..a1d9cd1 100644 --- a/src/main.c +++ b/src/main.c @@ -100,7 +100,7 @@ main(int argc, char *argv[]) _cleanup_(virt_manager_freep) VirtManager *manager = NULL; _cleanup_(sd_bus_unrefp) sd_bus *bus = NULL; - _cleanup_(closep) int signal_fd = -1; + _cleanup_(virtDBusClosep) int signal_fd = -1; _cleanup_(virEventRemoveHandlep) int bus_watch = -1; _cleanup_(virEventRemoveHandlep) int signal_watch = -1; sigset_t mask; diff --git a/src/manager.c b/src/manager.c index 32f38bb..8b25354 100644 --- a/src/manager.c +++ b/src/manager.c @@ -14,18 +14,18 @@ enumerate_domains(sd_bus *bus, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainListFreep) virDomainPtr *domains = NULL; - _cleanup_(strv_freep) char **paths = NULL; + _cleanup_(virtDBusVirDomainListFreep) virDomainPtr *domains = NULL; + _cleanup_(virtDBusStrvFreep) char **paths = NULL; int n_domains; n_domains = virConnectListAllDomains(manager->connection, &domains, 0); if (n_domains < 0) - return bus_error_set_last_virt_error(error); + return virtDBusSetLastVirtError(error); paths = calloc(n_domains + 1, sizeof(char *)); for (int i = 0; i < n_domains; i += 1) - paths[i] = bus_path_for_domain(domains[i]); + paths[i] = virtDBusBusPathForVirDomain(domains[i]); *nodes = paths; paths = NULL; @@ -40,7 +40,7 @@ virt_manager_list_domains(sd_bus_message *message, { VirtManager *manager = userdata; _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL; - _cleanup_(virDomainListFreep) virDomainPtr *domains = NULL; + _cleanup_(virtDBusVirDomainListFreep) virDomainPtr *domains = NULL; uint32_t flags; int r; @@ -50,7 +50,7 @@ virt_manager_list_domains(sd_bus_message *message, r = virConnectListAllDomains(manager->connection, &domains, flags); if (r < 0) - return bus_error_set_last_virt_error(error); + return virtDBusSetLastVirtError(error); r = sd_bus_message_new_method_return(message, &reply); if (r < 0) @@ -61,9 +61,9 @@ virt_manager_list_domains(sd_bus_message *message, return r; for (int i = 0; domains[i] != NULL; i += 1) { - _cleanup_(freep) char *path = NULL; + _cleanup_(virtDBusFreep) char *path = NULL; - path = bus_path_for_domain(domains[i]); + path = virtDBusBusPathForVirDomain(domains[i]); r = sd_bus_message_append(reply, "o", path); if (r < 0) @@ -85,8 +85,8 @@ virt_manager_create_xml(sd_bus_message *message, VirtManager *manager = userdata; const char *xml; uint32_t flags; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - _cleanup_(freep) char *path = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusFreep) char *path = NULL; int r; r = sd_bus_message_read(message, "su", &xml, &flags); @@ -95,9 +95,9 @@ virt_manager_create_xml(sd_bus_message *message, domain = virDomainCreateXML(manager->connection, xml, flags); if (!domain) - return bus_error_set_last_virt_error(error); + return virtDBusSetLastVirtError(error); - path = bus_path_for_domain(domain); + path = virtDBusBusPathForVirDomain(domain); return sd_bus_reply_method_return(message, "o", path); } @@ -109,8 +109,8 @@ virt_manager_define_xml(sd_bus_message *message, { VirtManager *manager = userdata; const char *xml; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - _cleanup_(freep) char *path = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusFreep) char *path = NULL; int r; r = sd_bus_message_read(message, "s", &xml); @@ -119,9 +119,9 @@ virt_manager_define_xml(sd_bus_message *message, domain = virDomainDefineXML(manager->connection, xml); if (!domain) - return bus_error_set_last_virt_error(error); + return virtDBusSetLastVirtError(error); - path = bus_path_for_domain(domain); + path = virtDBusBusPathForVirDomain(domain); return sd_bus_reply_method_return(message, "o", path); } diff --git a/src/util.c b/src/util.c index 99cd6b5..21a9453 100644 --- a/src/util.c +++ b/src/util.c @@ -3,9 +3,9 @@ #include <libvirt/virterror.h> int -bus_message_append_typed_parameters(sd_bus_message *message, - virTypedParameterPtr parameters, - int n_parameters) +virtDBusMessageAppendTypedParameters(sd_bus_message *message, + virTypedParameterPtr parameters, + int n_parameters) { int r; @@ -57,7 +57,8 @@ bus_message_append_typed_parameters(sd_bus_message *message, return sd_bus_message_close_container(message); } -int bus_error_set_last_virt_error(sd_bus_error *error) +int +virtDBusSetLastVirtError(sd_bus_error *error) { virErrorPtr vir_error; @@ -69,7 +70,7 @@ int bus_error_set_last_virt_error(sd_bus_error *error) } char * -bus_path_for_domain(virDomainPtr domain) +virtDBusBusPathForVirDomain(virDomainPtr domain) { char *path = NULL; char uuid[VIR_UUID_STRING_BUFLEN] = ""; @@ -81,10 +82,10 @@ bus_path_for_domain(virDomainPtr domain) } virDomainPtr -domain_from_bus_path(virConnectPtr connection, - const char *path) +virtDBusVirDomainFromBusPath(virConnectPtr connection, + const char *path) { - _cleanup_(freep) char *name = NULL; + _cleanup_(virtDBusFreep) char *name = NULL; int r; r = sd_bus_path_decode(path, "/org/libvirt/domain", &name); diff --git a/src/util.h b/src/util.h index bc39f44..9ac7932 100644 --- a/src/util.h +++ b/src/util.h @@ -7,34 +7,36 @@ #define _cleanup_(_x) __attribute__((__cleanup__(_x))) -int bus_message_append_typed_parameters(sd_bus_message *message, - virTypedParameterPtr parameters, - int n_parameters); +int +virtDBusMessageAppendTypedParameters(sd_bus_message *message, + virTypedParameterPtr parameters, + int n_parameters); -int bus_error_set_last_virt_error(sd_bus_error *error); +int +virtDBusSetLastVirtError(sd_bus_error *error); char * -bus_path_for_domain(virDomainPtr domain); +virtDBusBusPathForVirDomain(virDomainPtr domain); virDomainPtr -domain_from_bus_path(virConnectPtr connection, - const char *path); +virtDBusVirDomainFromBusPath(virConnectPtr connection, + const char *path); static inline void -freep(void *p) +virtDBusFreep(void *p) { free(*(void **)p); } static inline void -closep(int *fdp) +virtDBusClosep(int *fdp) { if (*fdp >= 0) close(*fdp); } static inline void -strv_freep(void *p) +virtDBusStrvFreep(void *p) { char **strv = *(char ***)p; @@ -48,14 +50,14 @@ strv_freep(void *p) } static inline void -virDomainFreep(virDomainPtr *domainp) +virtDBusVirDomainFreep(virDomainPtr *domainp) { if (*domainp) virDomainFree(*domainp); } static inline void -virDomainListFreep(virDomainPtr **domainsp) +virtDBusVirDomainListFreep(virDomainPtr **domainsp) { virDomainPtr *domains = *domainsp; -- 2.13.3

On 07/24/2017 09:38 AM, Pavel Hrdina wrote:
All libvirt-dbus function should use virtDBus preffix and use only one coding style, camelCase.
s/preffix/prefix In general... Should "bus_path" just be Path - seems redundant to have "virtDBusBus"... It's not wrong, but mainly curious especially since the "bus_" prefix got changed to virtDBus. FWIW: Might also have been easier to convert all those domain_from_bus_path calls into a helper first... Since manager.c gets "virtDBusManager", domain.c gets "virtDBusDomain", and events.c gets "virtDBusEvents" should these be virtDBusUtil to distinguish them from main.c which also uses "virtDBus"?
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/domain.c | 110 +++++++++++++++++++++++++++++----------------------------- src/events.c | 20 +++++------ src/main.c | 2 +- src/manager.c | 32 ++++++++--------- src/util.c | 17 ++++----- src/util.h | 26 +++++++------- 6 files changed, 105 insertions(+), 102 deletions(-)
diff --git a/src/domain.c b/src/domain.c index 1bda3b8..4bfb314 100644 --- a/src/domain.c +++ b/src/domain.c
[...]
@@ -236,13 +236,13 @@ domain_get_xml_desc(sd_bus_message *message, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - _cleanup_(freep) char *description = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusFreep) char *description = NULL; uint32_t flags; int r;
- domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); + domain = virtDBusVirDomainFromBusPath(manager->connection, + sd_bus_message_get_path(message));
adjust alignment of 2nd argument (occurs a few more times too - domain_get_stats, domain_shutdown, domain_destroy, domain_reboot, domain_reset, domain_create, and domain_undefine)
if (domain == NULL) { return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_UNKNOWN_OBJECT,
[...]

On Tue, Aug 01, 2017 at 09:31:40AM -0400, John Ferlan wrote:
On 07/24/2017 09:38 AM, Pavel Hrdina wrote:
All libvirt-dbus function should use virtDBus preffix and use only one coding style, camelCase.
s/preffix/prefix
In general... Should "bus_path" just be Path - seems redundant to have "virtDBusBus"... It's not wrong, but mainly curious especially since the "bus_" prefix got changed to virtDBus.
I would like to keep the BusPath as a one unit, path can be something generic and this operates with dbus path that specifies objects.
FWIW: Might also have been easier to convert all those domain_from_bus_path calls into a helper first...
Since manager.c gets "virtDBusManager", domain.c gets "virtDBusDomain", and events.c gets "virtDBusEvents" should these be virtDBusUtil to distinguish them from main.c which also uses "virtDBus"?
I was considering it and I'll change it, it will follow the naming convention closely.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/domain.c | 110 +++++++++++++++++++++++++++++----------------------------- src/events.c | 20 +++++------ src/main.c | 2 +- src/manager.c | 32 ++++++++--------- src/util.c | 17 ++++----- src/util.h | 26 +++++++------- 6 files changed, 105 insertions(+), 102 deletions(-)
diff --git a/src/domain.c b/src/domain.c index 1bda3b8..4bfb314 100644 --- a/src/domain.c +++ b/src/domain.c
[...]
@@ -236,13 +236,13 @@ domain_get_xml_desc(sd_bus_message *message, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - _cleanup_(freep) char *description = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusFreep) char *description = NULL; uint32_t flags; int r;
- domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); + domain = virtDBusVirDomainFromBusPath(manager->connection, + sd_bus_message_get_path(message));
adjust alignment of 2nd argument (occurs a few more times too - domain_get_stats, domain_shutdown, domain_destroy, domain_reboot, domain_reset, domain_create, and domain_undefine)
Nice catch, I've actually noticed that while working on implementing new APIs, now I know in which patch I've introduced it. I'll fix it. Pavel

On 08/02/2017 04:35 AM, Pavel Hrdina wrote:
On Tue, Aug 01, 2017 at 09:31:40AM -0400, John Ferlan wrote:
On 07/24/2017 09:38 AM, Pavel Hrdina wrote:
All libvirt-dbus function should use virtDBus preffix and use only one coding style, camelCase.
s/preffix/prefix
In general... Should "bus_path" just be Path - seems redundant to have "virtDBusBus"... It's not wrong, but mainly curious especially since the "bus_" prefix got changed to virtDBus.
I would like to keep the BusPath as a one unit, path can be something generic and this operates with dbus path that specifies objects.
FWIW: Might also have been easier to convert all those domain_from_bus_path calls into a helper first...
Since manager.c gets "virtDBusManager", domain.c gets "virtDBusDomain", and events.c gets "virtDBusEvents" should these be virtDBusUtil to distinguish them from main.c which also uses "virtDBus"?
I was considering it and I'll change it, it will follow the naming convention closely.
I'm fine with keeping BusPath together - it was a suggestion, not a requirement. As for virtDBusUtil - I think it's the better way to go - if only to help figure out where to find code! Nothing in main.c is external (yet), so you could get away without doing it too. Still better to get it now than later too. John
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/domain.c | 110 +++++++++++++++++++++++++++++----------------------------- src/events.c | 20 +++++------ src/main.c | 2 +- src/manager.c | 32 ++++++++--------- src/util.c | 17 ++++----- src/util.h | 26 +++++++------- 6 files changed, 105 insertions(+), 102 deletions(-)
diff --git a/src/domain.c b/src/domain.c index 1bda3b8..4bfb314 100644 --- a/src/domain.c +++ b/src/domain.c
[...]
@@ -236,13 +236,13 @@ domain_get_xml_desc(sd_bus_message *message, sd_bus_error *error) { VirtManager *manager = userdata; - _cleanup_(virDomainFreep) virDomainPtr domain = NULL; - _cleanup_(freep) char *description = NULL; + _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; + _cleanup_(virtDBusFreep) char *description = NULL; uint32_t flags; int r;
- domain = domain_from_bus_path(manager->connection, - sd_bus_message_get_path(message)); + domain = virtDBusVirDomainFromBusPath(manager->connection, + sd_bus_message_get_path(message));
adjust alignment of 2nd argument (occurs a few more times too - domain_get_stats, domain_shutdown, domain_destroy, domain_reboot, domain_reset, domain_create, and domain_undefine)
Nice catch, I've actually noticed that while working on implementing new APIs, now I know in which patch I've introduced it. I'll fix it.
Pavel

Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/main.c | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/main.c b/src/main.c index a1d9cd1..493edcb 100644 --- a/src/main.c +++ b/src/main.c @@ -14,7 +14,7 @@ static int loop_status; static int -bus_get_libvirt_events(sd_bus *bus) +virtDBusGetLibvirtEvents(sd_bus *bus) { int events; int virt_events = 0; @@ -31,7 +31,7 @@ bus_get_libvirt_events(sd_bus *bus) } static int -bus_process_events(sd_bus *bus) +virtDBusProcessEvents(sd_bus *bus) { for (;;) { int r; @@ -48,35 +48,35 @@ bus_process_events(sd_bus *bus) } static void -virEventRemoveHandlep(int *watchp) +virtDBusVirEventRemoveHandlep(int *watchp) { if (*watchp >= 0) virEventRemoveHandle(*watchp); } static void -handle_signal(int watch, - int fd, - int events, - void *opaque) +virtDBusHandleSignal(int watch, + int fd, + int events, + void *opaque) { loop_status = -ECANCELED; } static void -handle_bus_event(int watch, - int fd, - int events, - void *opaque) +virtDBusHandleBusEvent(int watch, + int fd, + int events, + void *opaque) { sd_bus *bus = opaque; - loop_status = bus_process_events(bus); + loop_status = virtDBusProcessEvents(bus); if (loop_status < 0) return; - virEventUpdateHandle(watch, bus_get_libvirt_events(bus)); + virEventUpdateHandle(watch, virtDBusGetLibvirtEvents(bus)); } int @@ -101,8 +101,8 @@ main(int argc, char *argv[]) _cleanup_(virt_manager_freep) VirtManager *manager = NULL; _cleanup_(sd_bus_unrefp) sd_bus *bus = NULL; _cleanup_(virtDBusClosep) int signal_fd = -1; - _cleanup_(virEventRemoveHandlep) int bus_watch = -1; - _cleanup_(virEventRemoveHandlep) int signal_watch = -1; + _cleanup_(virtDBusVirEventRemoveHandlep) int bus_watch = -1; + _cleanup_(virtDBusVirEventRemoveHandlep) int signal_watch = -1; sigset_t mask; int c; int r; @@ -168,20 +168,20 @@ main(int argc, char *argv[]) return EXIT_FAILURE; } - r = bus_process_events(bus); + r = virtDBusProcessEvents(bus); if (r < 0) return EXIT_FAILURE; bus_watch = virEventAddHandle(sd_bus_get_fd(bus), - bus_get_libvirt_events(bus), - handle_bus_event, + virtDBusGetLibvirtEvents(bus), + virtDBusHandleBusEvent, bus, NULL); signal_fd = signalfd(-1, &mask, SFD_NONBLOCK | SFD_CLOEXEC); signal_watch = virEventAddHandle(signal_fd, VIR_EVENT_HANDLE_READABLE, - handle_signal, + virtDBusHandleSignal, NULL, NULL); -- 2.13.3

Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/domain.c | 38 ++++++++++++++++++------------------ src/domain.h | 2 +- src/events.c | 14 +++++++------- src/events.h | 2 +- src/main.c | 4 ++-- src/manager.c | 62 +++++++++++++++++++++++++++++------------------------------ src/manager.h | 14 +++++++------- 7 files changed, 68 insertions(+), 68 deletions(-) diff --git a/src/domain.c b/src/domain.c index 4bfb314..ab56ab1 100644 --- a/src/domain.c +++ b/src/domain.c @@ -10,7 +10,7 @@ domain_get_name(sd_bus *bus, void *userdata, sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; const char *name = ""; @@ -34,7 +34,7 @@ domain_get_uuid(sd_bus *bus, void *userdata, sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; char uuid[VIR_UUID_STRING_BUFLEN] = ""; @@ -56,7 +56,7 @@ domain_get_id(sd_bus *bus, void *userdata, sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; domain = virtDBusVirDomainFromBusPath(manager->connection, path); @@ -75,7 +75,7 @@ domain_get_vcpus(sd_bus *bus, void *userdata, sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; domain = virtDBusVirDomainFromBusPath(manager->connection, path); @@ -94,7 +94,7 @@ domain_get_os_type(sd_bus *bus, void *userdata, sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; _cleanup_(virtDBusFreep) char *os_type = NULL; @@ -118,7 +118,7 @@ domain_get_active(sd_bus *bus, void *userdata, sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; int active; @@ -142,7 +142,7 @@ domain_get_persistent(sd_bus *bus, void *userdata, sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; int persistent; @@ -166,7 +166,7 @@ domain_get_state(sd_bus *bus, void *userdata, sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; int state = 0; const char *string; @@ -217,7 +217,7 @@ domain_get_autostart(sd_bus *bus, void *userdata, sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; int autostart = 0; @@ -235,7 +235,7 @@ domain_get_xml_desc(sd_bus_message *message, void *userdata, sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; _cleanup_(virtDBusFreep) char *description = NULL; uint32_t flags; @@ -273,7 +273,7 @@ domain_get_stats(sd_bus_message *message, void *userdata, sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; virDomainPtr domains[2]; _cleanup_(virDomainStatsRecordListFreep) virDomainStatsRecordPtr *records = NULL; @@ -316,7 +316,7 @@ domain_shutdown(sd_bus_message *message, void *userdata, sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; int r; @@ -341,7 +341,7 @@ domain_destroy(sd_bus_message *message, void *userdata, sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; int r; @@ -366,7 +366,7 @@ domain_reboot(sd_bus_message *message, void *userdata, sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; uint32_t flags; int r; @@ -396,7 +396,7 @@ domain_reset(sd_bus_message *message, void *userdata, sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; uint32_t flags; int r; @@ -426,7 +426,7 @@ domain_create(sd_bus_message *message, void *userdata, sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; int r; @@ -451,7 +451,7 @@ domain_undefine(sd_bus_message *message, void *userdata, sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; int r; @@ -509,7 +509,7 @@ lookup_domain(sd_bus *bus, void **found, sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusFreep) char *name = NULL; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; int r; @@ -536,7 +536,7 @@ lookup_domain(sd_bus *bus, } int -domain_register(VirtManager *manager, +domain_register(virtDBusManager *manager, sd_bus *bus) { return sd_bus_add_fallback_vtable(bus, diff --git a/src/domain.h b/src/domain.h index 3f347e8..9007165 100644 --- a/src/domain.h +++ b/src/domain.h @@ -5,5 +5,5 @@ #include <libvirt/libvirt.h> #include <systemd/sd-bus.h> -int domain_register(VirtManager *manager, +int domain_register(virtDBusManager *manager, sd_bus *bus); diff --git a/src/events.c b/src/events.c index 74f3d6f..c94cfd7 100644 --- a/src/events.c +++ b/src/events.c @@ -12,7 +12,7 @@ handle_domain_lifecycle_event(virConnectPtr connection, int detail, void *opaque) { - VirtManager *manager = opaque; + virtDBusManager *manager = opaque; _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; const char *signal = NULL; const char *name; @@ -75,7 +75,7 @@ handle_domain_device_added_event(virConnectPtr connection, const char *device, void *opaque) { - VirtManager *manager = opaque; + virtDBusManager *manager = opaque; _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; _cleanup_(virtDBusFreep) char *path = NULL; int r; @@ -103,7 +103,7 @@ handle_domain_device_removed_event(virConnectPtr connection, const char *device, void *opaque) { - VirtManager *manager = opaque; + virtDBusManager *manager = opaque; _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; _cleanup_(virtDBusFreep) char *path = NULL; int r; @@ -132,7 +132,7 @@ handle_domain_disk_change_event(virConnectPtr connection, int reason, void *opaque) { - VirtManager *manager = opaque; + virtDBusManager *manager = opaque; _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; _cleanup_(virtDBusFreep) char *path = NULL; const char *reasonstr; @@ -176,7 +176,7 @@ handle_domain_tray_change_event(virConnectPtr connection, int reason, void *opaque) { - VirtManager *manager = opaque; + virtDBusManager *manager = opaque; _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; _cleanup_(virtDBusFreep) char *path = NULL; const char *reasonstr; @@ -212,7 +212,7 @@ handle_domain_tray_change_event(virConnectPtr connection, } static void -virt_manager_register_event(VirtManager *manager, +virt_manager_register_event(virtDBusManager *manager, int id, virConnectDomainEventGenericCallback callback) { @@ -227,7 +227,7 @@ virt_manager_register_event(VirtManager *manager, } void -virt_manager_register_events(VirtManager *manager) +virt_manager_register_events(virtDBusManager *manager) { virt_manager_register_event(manager, VIR_DOMAIN_EVENT_ID_LIFECYCLE, diff --git a/src/events.h b/src/events.h index 7f1dfca..b5cadcb 100644 --- a/src/events.h +++ b/src/events.h @@ -6,4 +6,4 @@ void -virt_manager_register_events(VirtManager *manager); +virt_manager_register_events(virtDBusManager *manager); diff --git a/src/main.c b/src/main.c index 493edcb..30b96fd 100644 --- a/src/main.c +++ b/src/main.c @@ -98,7 +98,7 @@ main(int argc, char *argv[]) bool system_bus; const char *uri = NULL; - _cleanup_(virt_manager_freep) VirtManager *manager = NULL; + _cleanup_(virtDBusManagerFreep) virtDBusManager *manager = NULL; _cleanup_(sd_bus_unrefp) sd_bus *bus = NULL; _cleanup_(virtDBusClosep) int signal_fd = -1; _cleanup_(virtDBusVirEventRemoveHandlep) int bus_watch = -1; @@ -162,7 +162,7 @@ main(int argc, char *argv[]) return EXIT_FAILURE; } - r = virt_manager_new(&manager, bus, uri); + r = virtDBusManagerNew(&manager, bus, uri); if (r < 0) { fprintf(stderr, "Failed to connect to libvirt"); return EXIT_FAILURE; diff --git a/src/manager.c b/src/manager.c index 8b25354..7a6e7b5 100644 --- a/src/manager.c +++ b/src/manager.c @@ -7,13 +7,13 @@ #include <stdlib.h> static int -enumerate_domains(sd_bus *bus, - const char *path, - void *userdata, - char ***nodes, - sd_bus_error *error) +virtDBusManagerEnumarateDomains(sd_bus *bus, + const char *path, + void *userdata, + char ***nodes, + sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainListFreep) virDomainPtr *domains = NULL; _cleanup_(virtDBusStrvFreep) char **paths = NULL; int n_domains; @@ -34,11 +34,11 @@ enumerate_domains(sd_bus *bus, } static int -virt_manager_list_domains(sd_bus_message *message, - void *userdata, - sd_bus_error *error) +virtDBusManagerListDomains(sd_bus_message *message, + void *userdata, + sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL; _cleanup_(virtDBusVirDomainListFreep) virDomainPtr *domains = NULL; uint32_t flags; @@ -78,11 +78,11 @@ virt_manager_list_domains(sd_bus_message *message, } static int -virt_manager_create_xml(sd_bus_message *message, - void *userdata, - sd_bus_error *error) +virtDBusManagerCreateXML(sd_bus_message *message, + void *userdata, + sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; const char *xml; uint32_t flags; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; @@ -103,11 +103,11 @@ virt_manager_create_xml(sd_bus_message *message, } static int -virt_manager_define_xml(sd_bus_message *message, - void *userdata, - sd_bus_error *error) +virtDBusManagerDefineXML(sd_bus_message *message, + void *userdata, + sd_bus_error *error) { - VirtManager *manager = userdata; + virtDBusManager *manager = userdata; const char *xml; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; _cleanup_(virtDBusFreep) char *path = NULL; @@ -129,9 +129,9 @@ virt_manager_define_xml(sd_bus_message *message, static const sd_bus_vtable virt_manager_vtable[] = { SD_BUS_VTABLE_START(0), - SD_BUS_METHOD("ListDomains", "u", "ao", virt_manager_list_domains, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("CreateXML", "su", "o", virt_manager_create_xml, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("DefineXML", "s", "o", virt_manager_define_xml, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("ListDomains", "u", "ao", virtDBusManagerListDomains, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("CreateXML", "su", "o", virtDBusManagerCreateXML, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("DefineXML", "s", "o", virtDBusManagerDefineXML, SD_BUS_VTABLE_UNPRIVILEGED), SD_BUS_SIGNAL("DomainDefined", "so", 0), SD_BUS_SIGNAL("DomainUndefined", "so", 0), @@ -147,14 +147,14 @@ static const sd_bus_vtable virt_manager_vtable[] = { }; int -virt_manager_new(VirtManager **managerp, - sd_bus *bus, - const char *uri) +virtDBusManagerNew(virtDBusManager **managerp, + sd_bus *bus, + const char *uri) { - _cleanup_(virt_manager_freep) VirtManager *manager = NULL; + _cleanup_(virtDBusManagerFreep) virtDBusManager *manager = NULL; int r; - manager = calloc(1, sizeof(VirtManager)); + manager = calloc(1, sizeof(virtDBusManager)); for (int i = 0; i < VIR_DOMAIN_EVENT_ID_LAST; i += 1) manager->callback_ids[i] = -1; @@ -175,7 +175,7 @@ virt_manager_new(VirtManager **managerp, if (r < 0) return r; - r = sd_bus_add_node_enumerator(bus, NULL, "/org/libvirt/domain", enumerate_domains, manager); + r = sd_bus_add_node_enumerator(bus, NULL, "/org/libvirt/domain", virtDBusManagerEnumarateDomains, manager); if (r < 0) return r; @@ -188,8 +188,8 @@ virt_manager_new(VirtManager **managerp, return 0; } -VirtManager * -virt_manager_free(VirtManager *manager) +virtDBusManager * +virtDBusManagerFree(virtDBusManager *manager) { if (manager->bus) sd_bus_unref(manager->bus); @@ -209,8 +209,8 @@ virt_manager_free(VirtManager *manager) } void -virt_manager_freep(VirtManager **managerp) +virtDBusManagerFreep(virtDBusManager **managerp) { if (*managerp) - virt_manager_free(*managerp); + virtDBusManagerFree(*managerp); } diff --git a/src/manager.h b/src/manager.h index 06aaa04..a1fefa6 100644 --- a/src/manager.h +++ b/src/manager.h @@ -5,16 +5,16 @@ #include <libvirt/libvirt.h> #include <systemd/sd-bus.h> -struct VirtManager { +struct virtDBusManager { sd_bus *bus; virConnectPtr connection; int callback_ids[VIR_DOMAIN_EVENT_ID_LAST]; }; -typedef struct VirtManager VirtManager; +typedef struct virtDBusManager virtDBusManager; -int virt_manager_new(VirtManager **managerp, - sd_bus *bus, - const char *uri); -VirtManager *virt_manager_free(VirtManager *manager); -void virt_manager_freep(VirtManager **managerp); +int virtDBusManagerNew(virtDBusManager **managerp, + sd_bus *bus, + const char *uri); +virtDBusManager *virtDBusManagerFree(virtDBusManager *manager); +void virtDBusManagerFreep(virtDBusManager **managerp); -- 2.13.3

Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/domain.c | 230 +++++++++++++++++++++++++++++----------------------------- src/domain.h | 5 +- src/manager.c | 2 +- 3 files changed, 119 insertions(+), 118 deletions(-) diff --git a/src/domain.c b/src/domain.c index ab56ab1..1ff75e1 100644 --- a/src/domain.c +++ b/src/domain.c @@ -2,13 +2,13 @@ #include "util.h" static int -domain_get_name(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) +virtDBusDomainGetName(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) { virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; @@ -26,13 +26,13 @@ domain_get_name(sd_bus *bus, } static int -domain_get_uuid(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) +virtDBusDomainGetUUID(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) { virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; @@ -48,13 +48,13 @@ domain_get_uuid(sd_bus *bus, } static int -domain_get_id(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) +virtDBusDomainGetId(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) { virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; @@ -67,13 +67,13 @@ domain_get_id(sd_bus *bus, } static int -domain_get_vcpus(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) +virtDBusDomainGetVcpus(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) { virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; @@ -86,13 +86,13 @@ domain_get_vcpus(sd_bus *bus, } static int -domain_get_os_type(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) +virtDBusDomainGetOsType(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) { virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; @@ -110,13 +110,13 @@ domain_get_os_type(sd_bus *bus, } static int -domain_get_active(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) +virtDBusDomainGetActive(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) { virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; @@ -134,13 +134,13 @@ domain_get_active(sd_bus *bus, } static int -domain_get_persistent(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) +virtDBusDomainGetPersistent(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) { virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; @@ -158,13 +158,13 @@ domain_get_persistent(sd_bus *bus, } static int -domain_get_state(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) +virtDBusDomainGetState(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) { virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; @@ -209,13 +209,13 @@ domain_get_state(sd_bus *bus, } static int -domain_get_autostart(sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) +virtDBusDomainGetAutostart(sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) { virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; @@ -231,9 +231,9 @@ domain_get_autostart(sd_bus *bus, } static int -domain_get_xml_desc(sd_bus_message *message, - void *userdata, - sd_bus_error *error) +virtDBusDomainGetXMLDesc(sd_bus_message *message, + void *userdata, + sd_bus_error *error) { virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; @@ -262,21 +262,21 @@ domain_get_xml_desc(sd_bus_message *message, } static void -virDomainStatsRecordListFreep(virDomainStatsRecordPtr **statsp) +virtDBusDomainStatsRecordListFreep(virDomainStatsRecordPtr **statsp) { if (*statsp) virDomainStatsRecordListFree(*statsp); } static int -domain_get_stats(sd_bus_message *message, - void *userdata, - sd_bus_error *error) +virtDBusDomainGetStats(sd_bus_message *message, + void *userdata, + sd_bus_error *error) { virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; virDomainPtr domains[2]; - _cleanup_(virDomainStatsRecordListFreep) virDomainStatsRecordPtr *records = NULL; + _cleanup_(virtDBusDomainStatsRecordListFreep) virDomainStatsRecordPtr *records = NULL; _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL; uint32_t flags, stats; int r; @@ -312,9 +312,9 @@ domain_get_stats(sd_bus_message *message, } static int -domain_shutdown(sd_bus_message *message, - void *userdata, - sd_bus_error *error) +virtDBusDomainShutdown(sd_bus_message *message, + void *userdata, + sd_bus_error *error) { virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; @@ -337,9 +337,9 @@ domain_shutdown(sd_bus_message *message, } static int -domain_destroy(sd_bus_message *message, - void *userdata, - sd_bus_error *error) +virtDBusDomainDestroy(sd_bus_message *message, + void *userdata, + sd_bus_error *error) { virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; @@ -362,9 +362,9 @@ domain_destroy(sd_bus_message *message, } static int -domain_reboot(sd_bus_message *message, - void *userdata, - sd_bus_error *error) +virtDBusDomainReboot(sd_bus_message *message, + void *userdata, + sd_bus_error *error) { virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; @@ -392,9 +392,9 @@ domain_reboot(sd_bus_message *message, } static int -domain_reset(sd_bus_message *message, - void *userdata, - sd_bus_error *error) +virtDBusDomainReset(sd_bus_message *message, + void *userdata, + sd_bus_error *error) { virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; @@ -422,9 +422,9 @@ domain_reset(sd_bus_message *message, } static int -domain_create(sd_bus_message *message, - void *userdata, - sd_bus_error *error) +virtDBusDomainCreate(sd_bus_message *message, + void *userdata, + sd_bus_error *error) { virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; @@ -447,9 +447,9 @@ domain_create(sd_bus_message *message, } static int -domain_undefine(sd_bus_message *message, - void *userdata, - sd_bus_error *error) +virtDBusDomainUndefine(sd_bus_message *message, + void *userdata, + sd_bus_error *error) { virtDBusManager *manager = userdata; _cleanup_(virtDBusVirDomainFreep) virDomainPtr domain = NULL; @@ -474,24 +474,24 @@ domain_undefine(sd_bus_message *message, static const sd_bus_vtable virt_domain_vtable[] = { SD_BUS_VTABLE_START(0), - SD_BUS_PROPERTY("Name", "s", domain_get_name, 0, 0), - SD_BUS_PROPERTY("UUID", "s", domain_get_uuid, 0, 0), - SD_BUS_PROPERTY("Id", "u", domain_get_id, 0, 0), - SD_BUS_PROPERTY("Vcpus", "u", domain_get_vcpus, 0, 0), - SD_BUS_PROPERTY("OSType", "s", domain_get_os_type, 0, 0), - SD_BUS_PROPERTY("Active", "b", domain_get_active, 0, 0), - SD_BUS_PROPERTY("Persistent", "b", domain_get_persistent, 0, 0), - SD_BUS_PROPERTY("State", "s", domain_get_state, 0, 0), - SD_BUS_PROPERTY("Autostart", "b", domain_get_autostart, 0, 0), + SD_BUS_PROPERTY("Name", "s", virtDBusDomainGetName, 0, 0), + SD_BUS_PROPERTY("UUID", "s", virtDBusDomainGetUUID, 0, 0), + SD_BUS_PROPERTY("Id", "u", virtDBusDomainGetId, 0, 0), + SD_BUS_PROPERTY("Vcpus", "u", virtDBusDomainGetVcpus, 0, 0), + SD_BUS_PROPERTY("OSType", "s", virtDBusDomainGetOsType, 0, 0), + SD_BUS_PROPERTY("Active", "b", virtDBusDomainGetActive, 0, 0), + SD_BUS_PROPERTY("Persistent", "b", virtDBusDomainGetPersistent, 0, 0), + SD_BUS_PROPERTY("State", "s", virtDBusDomainGetState, 0, 0), + SD_BUS_PROPERTY("Autostart", "b", virtDBusDomainGetAutostart, 0, 0), - SD_BUS_METHOD("GetXMLDesc", "u", "s", domain_get_xml_desc, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("GetStats", "uu", "a{sv}", domain_get_stats, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("Shutdown", "", "", domain_shutdown, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("Destroy", "", "", domain_destroy, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("Reboot", "u", "", domain_reboot, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("Reset", "u", "", domain_reset, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("Create", "", "", domain_create, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD("Undefine", "", "", domain_undefine, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("GetXMLDesc", "u", "s", virtDBusDomainGetXMLDesc, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("GetStats", "uu", "a{sv}", virtDBusDomainGetStats, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("Shutdown", "", "", virtDBusDomainShutdown, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("Destroy", "", "", virtDBusDomainDestroy, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("Reboot", "u", "", virtDBusDomainReboot, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("Reset", "u", "", virtDBusDomainReset, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("Create", "", "", virtDBusDomainCreate, SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_METHOD("Undefine", "", "", virtDBusDomainUndefine, SD_BUS_VTABLE_UNPRIVILEGED), SD_BUS_SIGNAL("DeviceAdded", "s", 0), SD_BUS_SIGNAL("DeviceRemoved", "s", 0), @@ -502,12 +502,12 @@ static const sd_bus_vtable virt_domain_vtable[] = { }; static int -lookup_domain(sd_bus *bus, - const char *path, - const char *interface, - void *userdata, - void **found, - sd_bus_error *error) +virtDBusDomainLookup(sd_bus *bus, + const char *path, + const char *interface, + void *userdata, + void **found, + sd_bus_error *error) { virtDBusManager *manager = userdata; _cleanup_(virtDBusFreep) char *name = NULL; @@ -536,14 +536,14 @@ lookup_domain(sd_bus *bus, } int -domain_register(virtDBusManager *manager, - sd_bus *bus) +virtDBusDomainRegister(virtDBusManager *manager, + sd_bus *bus) { return sd_bus_add_fallback_vtable(bus, NULL, "/org/libvirt/domain", "org.libvirt.Domain", virt_domain_vtable, - lookup_domain, + virtDBusDomainLookup, manager); } diff --git a/src/domain.h b/src/domain.h index 9007165..165e452 100644 --- a/src/domain.h +++ b/src/domain.h @@ -5,5 +5,6 @@ #include <libvirt/libvirt.h> #include <systemd/sd-bus.h> -int domain_register(virtDBusManager *manager, - sd_bus *bus); +int +virtDBusDomainRegister(virtDBusManager *manager, + sd_bus *bus); diff --git a/src/manager.c b/src/manager.c index 7a6e7b5..e4ce0ec 100644 --- a/src/manager.c +++ b/src/manager.c @@ -179,7 +179,7 @@ virtDBusManagerNew(virtDBusManager **managerp, if (r < 0) return r; - if ((r = domain_register(manager, bus) < 0)) + if ((r = virtDBusDomainRegister(manager, bus) < 0)) return r; *managerp = manager; -- 2.13.3

Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/events.c | 66 +++++++++++++++++++++++++++++------------------------------ src/events.h | 2 +- src/manager.c | 2 +- 3 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/events.c b/src/events.c index c94cfd7..c9a1306 100644 --- a/src/events.c +++ b/src/events.c @@ -6,7 +6,7 @@ #include <systemd/sd-bus.h> static int -handle_domain_lifecycle_event(virConnectPtr connection, +virtDBusEventsDomainLifecycle(virConnectPtr connection, virDomainPtr domain, int event, int detail, @@ -70,10 +70,10 @@ handle_domain_lifecycle_event(virConnectPtr connection, } static int -handle_domain_device_added_event(virConnectPtr connection, - virDomainPtr domain, - const char *device, - void *opaque) +virtDBusEventsDomainDeviceAdded(virConnectPtr connection, + virDomainPtr domain, + const char *device, + void *opaque) { virtDBusManager *manager = opaque; _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; @@ -98,10 +98,10 @@ handle_domain_device_added_event(virConnectPtr connection, } static int -handle_domain_device_removed_event(virConnectPtr connection, - virDomainPtr domain, - const char *device, - void *opaque) +virtDBusEventsDomainDeviceRemoved(virConnectPtr connection, + virDomainPtr domain, + const char *device, + void *opaque) { virtDBusManager *manager = opaque; _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; @@ -126,11 +126,11 @@ handle_domain_device_removed_event(virConnectPtr connection, } static int -handle_domain_disk_change_event(virConnectPtr connection, - virDomainPtr domain, - const char *device, - int reason, - void *opaque) +virtDBusEventsDomainDiskChange(virConnectPtr connection, + virDomainPtr domain, + const char *device, + int reason, + void *opaque) { virtDBusManager *manager = opaque; _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; @@ -168,13 +168,13 @@ handle_domain_disk_change_event(virConnectPtr connection, } static int -handle_domain_tray_change_event(virConnectPtr connection, - virDomainPtr domain, - const char *old_src_path, - const char *new_src_path, - const char *device, - int reason, - void *opaque) +virtDBusEventsDomainTrayChange(virConnectPtr connection, + virDomainPtr domain, + const char *old_src_path, + const char *new_src_path, + const char *device, + int reason, + void *opaque) { virtDBusManager *manager = opaque; _cleanup_(sd_bus_message_unrefp) sd_bus_message *message = NULL; @@ -212,7 +212,7 @@ handle_domain_tray_change_event(virConnectPtr connection, } static void -virt_manager_register_event(virtDBusManager *manager, +virtDBusEventsRegisterEvent(virtDBusManager *manager, int id, virConnectDomainEventGenericCallback callback) { @@ -227,26 +227,26 @@ virt_manager_register_event(virtDBusManager *manager, } void -virt_manager_register_events(virtDBusManager *manager) +virtDBusEventsRegister(virtDBusManager *manager) { - virt_manager_register_event(manager, + virtDBusEventsRegisterEvent(manager, VIR_DOMAIN_EVENT_ID_LIFECYCLE, - VIR_DOMAIN_EVENT_CALLBACK(handle_domain_lifecycle_event)); + VIR_DOMAIN_EVENT_CALLBACK(virtDBusEventsDomainLifecycle)); - virt_manager_register_event(manager, + virtDBusEventsRegisterEvent(manager, VIR_DOMAIN_EVENT_ID_DEVICE_ADDED, - VIR_DOMAIN_EVENT_CALLBACK(handle_domain_device_added_event)); + VIR_DOMAIN_EVENT_CALLBACK(virtDBusEventsDomainDeviceAdded)); - virt_manager_register_event(manager, + virtDBusEventsRegisterEvent(manager, VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED, - VIR_DOMAIN_EVENT_CALLBACK(handle_domain_device_removed_event)); + VIR_DOMAIN_EVENT_CALLBACK(virtDBusEventsDomainDeviceRemoved)); - virt_manager_register_event(manager, + virtDBusEventsRegisterEvent(manager, VIR_DOMAIN_EVENT_ID_DISK_CHANGE, - VIR_DOMAIN_EVENT_CALLBACK(handle_domain_tray_change_event)); + VIR_DOMAIN_EVENT_CALLBACK(virtDBusEventsDomainTrayChange)); - virt_manager_register_event(manager, + virtDBusEventsRegisterEvent(manager, VIR_DOMAIN_EVENT_ID_TRAY_CHANGE, - VIR_DOMAIN_EVENT_CALLBACK(handle_domain_disk_change_event)); + VIR_DOMAIN_EVENT_CALLBACK(virtDBusEventsDomainDiskChange)); } diff --git a/src/events.h b/src/events.h index b5cadcb..d64bd94 100644 --- a/src/events.h +++ b/src/events.h @@ -6,4 +6,4 @@ void -virt_manager_register_events(virtDBusManager *manager); +virtDBusEventsRegister(virtDBusManager *manager); diff --git a/src/manager.c b/src/manager.c index e4ce0ec..010dc94 100644 --- a/src/manager.c +++ b/src/manager.c @@ -164,7 +164,7 @@ virtDBusManagerNew(virtDBusManager **managerp, if (!manager->connection) return -EINVAL; - virt_manager_register_events(manager); + virtDBusEventsRegister(manager); r = sd_bus_add_object_vtable(manager->bus, NULL, -- 2.13.3

On 07/24/2017 09:38 AM, Pavel Hrdina wrote:
Pavel Hrdina (9): util: move bus_path_for_domain and domain_from_bus_path util: move and rename virDomainsFreep domain: split domain code into separate file events: split event code into separate file util: rename function to follow libvirt naming rules main: rename functions to follow libvirt naming rules manager: rename functions and structures to follow libvirt naming rules domain: rename functions to follow libvirt naming rules events: rename functions to follow libvirt naming rules
src/Makefile.am | 4 +- src/domain.c | 549 +++++++++++++++++++++++++++++++++ src/domain.h | 10 + src/events.c | 252 ++++++++++++++++ src/events.h | 9 + src/main.c | 44 +-- src/manager.c | 920 ++++---------------------------------------------------- src/manager.h | 18 +- src/util.c | 35 ++- src/util.h | 39 ++- 10 files changed, 970 insertions(+), 910 deletions(-) create mode 100644 src/domain.c create mode 100644 src/domain.h create mode 100644 src/events.c create mode 100644 src/events.h
Other than a couple comments in patch 5 - things look reasonable to me. I assume you've given a heads up to the others on the project that things are changing to reduce conflicts... Reviewed-by: John Ferlan <jferlan@redhat.com> (series) John

On Tue, Aug 01, 2017 at 09:34:18AM -0400, John Ferlan wrote:
On 07/24/2017 09:38 AM, Pavel Hrdina wrote:
Pavel Hrdina (9): util: move bus_path_for_domain and domain_from_bus_path util: move and rename virDomainsFreep domain: split domain code into separate file events: split event code into separate file util: rename function to follow libvirt naming rules main: rename functions to follow libvirt naming rules manager: rename functions and structures to follow libvirt naming rules domain: rename functions to follow libvirt naming rules events: rename functions to follow libvirt naming rules
src/Makefile.am | 4 +- src/domain.c | 549 +++++++++++++++++++++++++++++++++ src/domain.h | 10 + src/events.c | 252 ++++++++++++++++ src/events.h | 9 + src/main.c | 44 +-- src/manager.c | 920 ++++---------------------------------------------------- src/manager.h | 18 +- src/util.c | 35 ++- src/util.h | 39 ++- 10 files changed, 970 insertions(+), 910 deletions(-) create mode 100644 src/domain.c create mode 100644 src/domain.h create mode 100644 src/events.c create mode 100644 src/events.h
Other than a couple comments in patch 5 - things look reasonable to me. I assume you've given a heads up to the others on the project that things are changing to reduce conflicts...
Reviewed-by: John Ferlan <jferlan@redhat.com> (series)
Thanks for review :) I'll wait with pushing for your answer on patch 5 . Pavel
participants (2)
-
John Ferlan
-
Pavel Hrdina