diff options
author | Pavel Březina <pbrezina@redhat.com> | 2014-05-08 12:58:06 +0200 |
---|---|---|
committer | Pavel Březina <pbrezina@redhat.com> | 2014-05-14 09:37:52 +0200 |
commit | adb98a993104ac3e5922d5fad99bd00867233944 (patch) | |
tree | 1f1db6230e1a4ec9cc32cf4c49c3ad40197b89c6 /src/sssd/LMI_SSSDProviderProvider.c | |
parent | ee6c9177f161239f4420f5679001330e477061ec (diff) | |
download | openlmi_sssd-adb98a993104ac3e5922d5fad99bd00867233944.tar.gz openlmi_sssd-adb98a993104ac3e5922d5fad99bd00867233944.tar.xz openlmi_sssd-adb98a993104ac3e5922d5fad99bd00867233944.zip |
Implement the schemawip
Diffstat (limited to 'src/sssd/LMI_SSSDProviderProvider.c')
-rw-r--r-- | src/sssd/LMI_SSSDProviderProvider.c | 39 |
1 files changed, 31 insertions, 8 deletions
diff --git a/src/sssd/LMI_SSSDProviderProvider.c b/src/sssd/LMI_SSSDProviderProvider.c index 29397a2..57d738b 100644 --- a/src/sssd/LMI_SSSDProviderProvider.c +++ b/src/sssd/LMI_SSSDProviderProvider.c @@ -1,11 +1,13 @@ #include <konkret/konkret.h> #include "LMI_SSSDProvider.h" +#include "utils.h" static const CMPIBroker* _cb = NULL; -static void LMI_SSSDProviderInitialize() -{ -} +static void LMI_SSSDProviderInitialize(const CMPIContext *ctx) + { + lmi_init(PROVIDER_NAME, _cb, ctx, NULL); + } static CMPIStatus LMI_SSSDProviderCleanup( CMPIInstanceMI* mi, @@ -32,7 +34,9 @@ static CMPIStatus LMI_SSSDProviderEnumInstances( const CMPIObjectPath* cop, const char** properties) { - CMReturn(CMPI_RC_OK); + /* no instances to enumerate */ + + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); } static CMPIStatus LMI_SSSDProviderGetInstance( @@ -42,8 +46,27 @@ static CMPIStatus LMI_SSSDProviderGetInstance( const CMPIObjectPath* cop, const char** properties) { - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); + const char *namespace = KNameSpace(cop); + LMI_SSSDProvider instance; + LMI_SSSDProviderRef ref; + CMPIStatus ret; + + ret = LMI_SSSDProviderRef_InitFromObjectPath(&ref, _cb, cop); + if (!KOkay(ret)) { + return ret; + } + + LMI_SSSDProvider_Init(&instance, _cb, namespace); + LMI_SSSDProvider_Set_Type(&instance, ref.Type.chars); + LMI_SSSDProvider_Set_Module(&instance, ref.Module.chars); + + LMI_SSSDProvider_Set_Caption(&instance, "SSSD Provider Module"); + LMI_SSSDProvider_Set_Description(&instance, "SSSD Provider Module"); + LMI_SSSDProvider_Set_ElementName(&instance, ref.Type.chars); + + KReturnInstance(cr, instance); + + CMReturn(CMPI_RC_OK); } static CMPIStatus LMI_SSSDProviderCreateInstance( @@ -91,7 +114,7 @@ CMInstanceMIStub( LMI_SSSDProvider, LMI_SSSDProvider, _cb, - LMI_SSSDProviderInitialize()) + LMI_SSSDProviderInitialize(ctx)) static CMPIStatus LMI_SSSDProviderMethodCleanup( CMPIMethodMI* mi, @@ -118,7 +141,7 @@ CMMethodMIStub( LMI_SSSDProvider, LMI_SSSDProvider, _cb, - LMI_SSSDProviderInitialize()) + LMI_SSSDProviderInitialize(ctx)) KONKRET_REGISTRATION( "root/cimv2", |