diff options
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", |