summaryrefslogtreecommitdiffstats
path: root/src/power
diff options
context:
space:
mode:
authorRadek Novacek <rnovacek@redhat.com>2013-10-17 10:13:36 +0200
committerRadek Novacek <rnovacek@redhat.com>2013-10-17 10:42:20 +0200
commit2d27a1f862fc8dcc5439013222c781621a42d15b (patch)
treeacde0a35d6471487eb50dec911bb01bb2a161f7b /src/power
parent16c2ba76b27a3dc207231c9066ce6ff4af8fbd71 (diff)
downloadopenlmi-providers-2d27a1f862fc8dcc5439013222c781621a42d15b.tar.gz
openlmi-providers-2d27a1f862fc8dcc5439013222c781621a42d15b.tar.xz
openlmi-providers-2d27a1f862fc8dcc5439013222c781621a42d15b.zip
power: Fix InstanceIDs to follow OpenLMI standard scheme
Diffstat (limited to 'src/power')
-rw-r--r--src/power/LMI_ElementCapabilitiesProvider.c2
-rw-r--r--src/power/LMI_PowerConcreteJobProvider.c9
-rw-r--r--src/power/LMI_PowerManagementCapabilitiesProvider.c6
-rw-r--r--src/power/power.c8
-rw-r--r--src/power/power.h3
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