diff options
author | Radek Novacek <rnovacek@redhat.com> | 2013-10-17 10:13:36 +0200 |
---|---|---|
committer | Radek Novacek <rnovacek@redhat.com> | 2013-10-17 10:42:20 +0200 |
commit | 2d27a1f862fc8dcc5439013222c781621a42d15b (patch) | |
tree | acde0a35d6471487eb50dec911bb01bb2a161f7b | |
parent | 16c2ba76b27a3dc207231c9066ce6ff4af8fbd71 (diff) | |
download | openlmi-providers-2d27a1f862fc8dcc5439013222c781621a42d15b.tar.gz openlmi-providers-2d27a1f862fc8dcc5439013222c781621a42d15b.tar.xz openlmi-providers-2d27a1f862fc8dcc5439013222c781621a42d15b.zip |
power: Fix InstanceIDs to follow OpenLMI standard scheme
-rw-r--r-- | src/power/LMI_ElementCapabilitiesProvider.c | 2 | ||||
-rw-r--r-- | src/power/LMI_PowerConcreteJobProvider.c | 9 | ||||
-rw-r--r-- | src/power/LMI_PowerManagementCapabilitiesProvider.c | 6 | ||||
-rw-r--r-- | src/power/power.c | 8 | ||||
-rw-r--r-- | src/power/power.h | 3 |
5 files changed, 21 insertions, 7 deletions
diff --git a/src/power/LMI_ElementCapabilitiesProvider.c b/src/power/LMI_ElementCapabilitiesProvider.c index 3a49518..d160bfa 100644 --- a/src/power/LMI_ElementCapabilitiesProvider.c +++ b/src/power/LMI_ElementCapabilitiesProvider.c @@ -69,7 +69,7 @@ static CMPIStatus LMI_ElementCapabilitiesEnumInstances( LMI_PowerManagementCapabilitiesRef powerManagementCapabilitiesRef; LMI_PowerManagementCapabilitiesRef_Init(&powerManagementCapabilitiesRef, _cb, ns); - LMI_PowerManagementCapabilitiesRef_Set_InstanceID(&powerManagementCapabilitiesRef, "RedHat:PowerManagementCapabilities"); + LMI_PowerManagementCapabilitiesRef_Set_InstanceID(&powerManagementCapabilitiesRef, ORGID ":LMI_PowerManagementCapabilities"); LMI_ElementCapabilities_Set_Capabilities(&w, &powerManagementCapabilitiesRef); diff --git a/src/power/LMI_PowerConcreteJobProvider.c b/src/power/LMI_PowerConcreteJobProvider.c index 8993678..b6830ab 100644 --- a/src/power/LMI_PowerConcreteJobProvider.c +++ b/src/power/LMI_PowerConcreteJobProvider.c @@ -72,15 +72,20 @@ static CMPIStatus LMI_PowerConcreteJobEnumInstances( PowerStateChangeJob *powerStateChangeJob; GList *plist = power_get_jobs(mi->hdl); + char *instanceid; while (plist) { powerStateChangeJob = plist->data; LMI_PowerConcreteJob concreteJob; LMI_PowerConcreteJob_Init(&concreteJob, _cb, ns); - LMI_PowerConcreteJob_Set_InstanceID(&concreteJob, "LMI_PowerStateChange_ConcreteJob:123"); // TODO: unique ID + if (asprintf(&instanceid, ORGID ":LMI_PowerConcreteJob:%ld", job_id(powerStateChangeJob)) < 0) { + KReturn2(_cb, ERR_FAILED, "Memory allocation failed"); + } + LMI_PowerConcreteJob_Set_InstanceID(&concreteJob, instanceid); + free(instanceid); LMI_PowerConcreteJob_Set_JobState(&concreteJob, job_state(powerStateChangeJob)); LMI_PowerConcreteJob_Set_TimeOfLastStateChange(&concreteJob, CMNewDateTimeFromBinary(_cb, ((uint64_t) job_timeOfLastChange(powerStateChangeJob)) * 1000000, 0, &status)); - //LMI_ConcreteJob_Set_ + KReturnInstance(cr, concreteJob); plist = g_list_next(plist); } diff --git a/src/power/LMI_PowerManagementCapabilitiesProvider.c b/src/power/LMI_PowerManagementCapabilitiesProvider.c index 4d8824a..67a0f0f 100644 --- a/src/power/LMI_PowerManagementCapabilitiesProvider.c +++ b/src/power/LMI_PowerManagementCapabilitiesProvider.c @@ -67,9 +67,9 @@ static CMPIStatus LMI_PowerManagementCapabilitiesEnumInstances( LMI_PowerManagementCapabilities w; LMI_PowerManagementCapabilities_Init(&w, _cb, ns); // TODO: make it unique - LMI_PowerManagementCapabilities_Set_InstanceID(&w, "Linux:PowerManagementCapabilities"); - LMI_PowerManagementCapabilities_Set_ElementName(&w, "Linux:PowerManagementCapabilities"); - LMI_PowerManagementCapabilities_Set_Caption(&w, "Linux:PowerManagementCapabilities"); + LMI_PowerManagementCapabilities_Set_InstanceID(&w, ORGID ":LMI_PowerManagementCapabilities"); + LMI_PowerManagementCapabilities_Set_ElementName(&w, "PowerManagementCapabilities"); + LMI_PowerManagementCapabilities_Set_Caption(&w, "Power Management Capabilities"); int count; unsigned short *list = power_available_requested_power_states(mi->hdl, &count); diff --git a/src/power/power.c b/src/power/power.c index 3076489..bfc6121 100644 --- a/src/power/power.c +++ b/src/power/power.c @@ -56,6 +56,7 @@ struct _Power { #define MUTEX_UNLOCK(power) power->broker->xft->unlockMutex(power->mutex) struct _PowerStateChangeJob { + size_t id; const CMPIBroker *broker; Power *power; unsigned short requestedPowerState; @@ -69,6 +70,8 @@ struct _PowerStateChangeJob { CMPI_MUTEX_TYPE mutex; }; +static size_t job_max_id = 0; + Power *_power = NULL; Power *power_new(const CMPIBroker *_cb) @@ -256,6 +259,7 @@ int power_request_power_state(Power *power, unsigned short state) } PowerStateChangeJob *powerStateChangeJob = malloc(sizeof(PowerStateChangeJob)); + powerStateChangeJob->id = job_max_id++; powerStateChangeJob->broker = power->broker; powerStateChangeJob->power = power; powerStateChangeJob->mutex = power->broker->xft->newMutex(0); @@ -526,3 +530,7 @@ int job_timeBeforeRemoval(PowerStateChangeJob *state) return state->timeBeforeRemoval; } +size_t job_id(PowerStateChangeJob *state) +{ + return state->id; +} diff --git a/src/power/power.h b/src/power/power.h index 75b8ea0..2f923c8 100644 --- a/src/power/power.h +++ b/src/power/power.h @@ -22,7 +22,7 @@ #define POWER_H #include <glib.h> -#include <openlmi.h> +#include "globals.h" const char *provider_name; const ConfigEntry *provider_config_defaults; @@ -75,5 +75,6 @@ unsigned short power_transitioning_to_power_state(Power *power); unsigned short job_state(PowerStateChangeJob *state); int job_timeOfLastChange(PowerStateChangeJob *state); int job_timeBeforeRemoval(PowerStateChangeJob *state); +size_t job_id(PowerStateChangeJob *state); #endif // POWER_H |