summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Březina <pbrezina@redhat.com>2014-01-08 11:37:41 +0100
committerPavel Březina <pbrezina@redhat.com>2014-03-28 13:55:31 +0100
commit62517f0d9de6152e0e888a39d1d31ab6e835c1b1 (patch)
tree071811297b4ca928ac65efa0605fe8e21201d6b0
parentfc746579b21f79983e630b3b680ecfeed3438eab (diff)
downloadopenlmi_sssd-62517f0d9de6152e0e888a39d1d31ab6e835c1b1.tar.gz
openlmi_sssd-62517f0d9de6152e0e888a39d1d31ab6e835c1b1.tar.xz
openlmi_sssd-62517f0d9de6152e0e888a39d1d31ab6e835c1b1.zip
Implement LMI_SSSD::GetSupportedServices()
-rw-r--r--src/sssd/LMI_SSSDProvider.c156
1 files changed, 156 insertions, 0 deletions
diff --git a/src/sssd/LMI_SSSDProvider.c b/src/sssd/LMI_SSSDProvider.c
new file mode 100644
index 0000000..aa9dcb3
--- /dev/null
+++ b/src/sssd/LMI_SSSDProvider.c
@@ -0,0 +1,156 @@
+#include <konkret/konkret.h>
+#include "LMI_SSSD.h"
+
+static const CMPIBroker* _cb = NULL;
+
+static void LMI_SSSDInitialize()
+{
+}
+
+static CMPIStatus LMI_SSSDCleanup(
+ CMPIInstanceMI* mi,
+ const CMPIContext* cc,
+ CMPIBoolean term)
+{
+ CMReturn(CMPI_RC_OK);
+}
+
+static CMPIStatus LMI_SSSDEnumInstanceNames(
+ CMPIInstanceMI* mi,
+ const CMPIContext* cc,
+ const CMPIResult* cr,
+ const CMPIObjectPath* cop)
+{
+ return KDefaultEnumerateInstanceNames(
+ _cb, mi, cc, cr, cop);
+}
+
+static CMPIStatus LMI_SSSDEnumInstances(
+ CMPIInstanceMI* mi,
+ const CMPIContext* cc,
+ const CMPIResult* cr,
+ const CMPIObjectPath* cop,
+ const char** properties)
+{
+ CMReturn(CMPI_RC_OK);
+}
+
+static CMPIStatus LMI_SSSDGetInstance(
+ CMPIInstanceMI* mi,
+ const CMPIContext* cc,
+ const CMPIResult* cr,
+ const CMPIObjectPath* cop,
+ const char** properties)
+{
+ return KDefaultGetInstance(
+ _cb, mi, cc, cr, cop, properties);
+}
+
+static CMPIStatus LMI_SSSDCreateInstance(
+ CMPIInstanceMI* mi,
+ const CMPIContext* cc,
+ const CMPIResult* cr,
+ const CMPIObjectPath* cop,
+ const CMPIInstance* ci)
+{
+ CMReturn(CMPI_RC_ERR_NOT_SUPPORTED);
+}
+
+static CMPIStatus LMI_SSSDModifyInstance(
+ CMPIInstanceMI* mi,
+ const CMPIContext* cc,
+ const CMPIResult* cr,
+ const CMPIObjectPath* cop,
+ const CMPIInstance* ci,
+ const char** properties)
+{
+ CMReturn(CMPI_RC_ERR_NOT_SUPPORTED);
+}
+
+static CMPIStatus LMI_SSSDDeleteInstance(
+ CMPIInstanceMI* mi,
+ const CMPIContext* cc,
+ const CMPIResult* cr,
+ const CMPIObjectPath* cop)
+{
+ CMReturn(CMPI_RC_ERR_NOT_SUPPORTED);
+}
+
+static CMPIStatus LMI_SSSDExecQuery(
+ CMPIInstanceMI* mi,
+ const CMPIContext* cc,
+ const CMPIResult* cr,
+ const CMPIObjectPath* cop,
+ const char* lang,
+ const char* query)
+{
+ CMReturn(CMPI_RC_ERR_NOT_SUPPORTED);
+}
+
+CMInstanceMIStub(
+ LMI_SSSD,
+ LMI_SSSD,
+ _cb,
+ LMI_SSSDInitialize())
+
+static CMPIStatus LMI_SSSDMethodCleanup(
+ CMPIMethodMI* mi,
+ const CMPIContext* cc,
+ CMPIBoolean term)
+{
+ CMReturn(CMPI_RC_OK);
+}
+
+static CMPIStatus LMI_SSSDInvokeMethod(
+ CMPIMethodMI* mi,
+ const CMPIContext* cc,
+ const CMPIResult* cr,
+ const CMPIObjectPath* cop,
+ const char* meth,
+ const CMPIArgs* in,
+ CMPIArgs* out)
+{
+ return LMI_SSSD_DispatchMethod(
+ _cb, mi, cc, cr, cop, meth, in, out);
+}
+
+CMMethodMIStub(
+ LMI_SSSD,
+ LMI_SSSD,
+ _cb,
+ LMI_SSSDInitialize())
+
+KUint32 LMI_SSSD_GetSupportedServices(
+ const CMPIBroker* cb,
+ CMPIMethodMI* mi,
+ const CMPIContext* context,
+ KStringA* services,
+ CMPIStatus* status)
+{
+ KUint32 result = KUINT32_INIT;
+ CMPIBoolean bret;
+
+ bret = KStringA_Init(services, cb, 6);
+ if (!bret) {
+ KSetStatus(status, ERR_FAILED);
+ KUint32_Set(&result, 1);
+ return result;
+ }
+
+ KStringA_Set(services, cb, 0, "nss");
+ KStringA_Set(services, cb, 1, "pam");
+ KStringA_Set(services, cb, 2, "sudo");
+ KStringA_Set(services, cb, 3, "autofs");
+ KStringA_Set(services, cb, 4, "ssh");
+ KStringA_Set(services, cb, 5, "pac");
+
+ KSetStatus(status, OK);
+ KUint32_Set(&result, 0);
+ return result;
+}
+
+KONKRET_REGISTRATION(
+ "root/cimv2",
+ "LMI_SSSD",
+ "LMI_SSSD",
+ "instance method");