summaryrefslogtreecommitdiffstats
path: root/src/sssd/LMI_SSSDMonitorProvider.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sssd/LMI_SSSDMonitorProvider.c')
-rw-r--r--src/sssd/LMI_SSSDMonitorProvider.c66
1 files changed, 46 insertions, 20 deletions
diff --git a/src/sssd/LMI_SSSDMonitorProvider.c b/src/sssd/LMI_SSSDMonitorProvider.c
index 5581fbd..cba3dda 100644
--- a/src/sssd/LMI_SSSDMonitorProvider.c
+++ b/src/sssd/LMI_SSSDMonitorProvider.c
@@ -1,10 +1,15 @@
#include <konkret/konkret.h>
+#include <dbus/dbus.h>
+#include <sss_dbus.h>
#include "LMI_SSSDMonitor.h"
+#include "utils.h"
+#include "sssd_components.h"
static const CMPIBroker* _cb = NULL;
-static void LMI_SSSDMonitorInitialize()
+static void LMI_SSSDMonitorInitialize(const CMPIContext *ctx)
{
+ lmi_init(PROVIDER_NAME, _cb, ctx, NULL);
}
static CMPIStatus LMI_SSSDMonitorCleanup(
@@ -32,7 +37,34 @@ static CMPIStatus LMI_SSSDMonitorEnumInstances(
const CMPIObjectPath* cop,
const char** properties)
{
- CMReturn(CMPI_RC_OK);
+ LMI_SSSDMonitor instance;
+ const char *namespace = KNameSpace(cop);
+ sss_dbus_ctx *dbus_ctx = NULL;
+ sss_dbus_error error;
+ char *path = NULL;
+ sssd_method_error mret;
+ CMPIrc ret;
+
+ error = sss_dbus_init(&dbus_ctx);
+ check_sss_dbus_error(error, ret, CMPI_RC_ERR_FAILED, done);
+
+ error = sss_dbus_invoke_find(dbus_ctx, "Monitor", &path, DBUS_TYPE_INVALID);
+ check_sss_dbus_error(error, ret, CMPI_RC_ERR_FAILED, done);
+
+ mret = sssd_monitor_set_instance(dbus_ctx, path, _cb, namespace,
+ &instance);
+ if (mret != SSSD_METHOD_ERROR_OK) {
+ ret = CMPI_RC_ERR_FAILED;
+ goto done;
+ }
+
+ KReturnInstance(cr, instance);
+ ret = CMPI_RC_OK;
+
+done:
+ sss_dbus_free_string(dbus_ctx, &path);
+ sss_dbus_free(&dbus_ctx);
+ CMReturn(ret);
}
static CMPIStatus LMI_SSSDMonitorGetInstance(
@@ -91,7 +123,7 @@ CMInstanceMIStub(
LMI_SSSDMonitor,
LMI_SSSDMonitor,
_cb,
- LMI_SSSDMonitorInitialize())
+ LMI_SSSDMonitorInitialize(ctx))
static CMPIStatus LMI_SSSDMonitorMethodCleanup(
CMPIMethodMI* mi,
@@ -118,7 +150,7 @@ CMMethodMIStub(
LMI_SSSDMonitor,
LMI_SSSDMonitor,
_cb,
- LMI_SSSDMonitorInitialize())
+ LMI_SSSDMonitorInitialize(ctx))
KUint32 LMI_SSSDMonitor_SetDebugLevelPermanently(
const CMPIBroker* cb,
@@ -128,10 +160,9 @@ KUint32 LMI_SSSDMonitor_SetDebugLevelPermanently(
const KUint16* debug_level,
CMPIStatus* status)
{
- KUint32 result = KUINT32_INIT;
-
- KSetStatus(status, ERR_NOT_SUPPORTED);
- return result;
+ return sssd_component_set_debug_permanently(self->Name.chars,
+ SSSD_COMPONENT_MONITOR,
+ debug_level, status);
}
KUint32 LMI_SSSDMonitor_SetDebugLevelTemporarily(
@@ -142,10 +173,9 @@ KUint32 LMI_SSSDMonitor_SetDebugLevelTemporarily(
const KUint16* debug_level,
CMPIStatus* status)
{
- KUint32 result = KUINT32_INIT;
-
- KSetStatus(status, ERR_NOT_SUPPORTED);
- return result;
+ return sssd_component_set_debug_temporarily(self->Name.chars,
+ SSSD_COMPONENT_MONITOR,
+ debug_level, status);
}
KUint32 LMI_SSSDMonitor_Enable(
@@ -155,10 +185,8 @@ KUint32 LMI_SSSDMonitor_Enable(
const LMI_SSSDMonitorRef* self,
CMPIStatus* status)
{
- KUint32 result = KUINT32_INIT;
-
- KSetStatus(status, ERR_NOT_SUPPORTED);
- return result;
+ return sssd_component_enable(self->Name.chars, SSSD_COMPONENT_MONITOR,
+ status);
}
KUint32 LMI_SSSDMonitor_Disable(
@@ -168,10 +196,8 @@ KUint32 LMI_SSSDMonitor_Disable(
const LMI_SSSDMonitorRef* self,
CMPIStatus* status)
{
- KUint32 result = KUINT32_INIT;
-
- KSetStatus(status, ERR_NOT_SUPPORTED);
- return result;
+ return sssd_component_disable(self->Name.chars, SSSD_COMPONENT_MONITOR,
+ status);
}
KONKRET_REGISTRATION(