From 4721a6cb186e7d6908ff1f361d0bc81e182473ad Mon Sep 17 00:00:00 2001 From: Radek Novacek Date: Mon, 27 Aug 2012 15:01:46 +0200 Subject: Rename prefix from Cura_ to LMI_ --- src/account/CMakeLists.txt | 2 +- src/account/Cura_AccountCapabilitiesProvider.c | 265 ------------- .../Cura_AccountManagementCapabilitiesProvider.c | 154 -------- ..._AccountManagementServiceCapabilitiesProvider.c | 234 ------------ .../Cura_AccountManagementServiceProvider.c | 207 ----------- ...a_AccountManagementServiceSettingDataProvider.c | 202 ---------- src/account/Cura_AccountOnSystemProvider.c | 272 -------------- src/account/Cura_AccountProvider.c | 243 ------------ src/account/Cura_AccountSettingDataProvider.c | 153 -------- src/account/Cura_AssignedAccountIdentityProvider.c | 264 ------------- src/account/Cura_AssignedGroupIdentityProvider.c | 253 ------------- src/account/Cura_ElementSettingDateProvider.c | 202 ---------- .../Cura_EnabledAccountCapabilitiesProvider.c | 145 -------- src/account/Cura_GroupProvider.c | 176 --------- src/account/Cura_HostedServiceProvider.c | 239 ------------ src/account/Cura_IdentityProvider.c | 190 ---------- src/account/Cura_MemberOfGroupProvider.c | 280 -------------- src/account/Cura_OwningGroupProvider.c | 266 ------------- src/account/Cura_ServiceAffectsIdentityProvider.c | 300 --------------- ...ura_SettingsDefineAccountCapabilitiesProvider.c | 202 ---------- ..._SettingsDefineManagementCapabilitiesProvider.c | 202 ---------- src/account/LMI_AccountCapabilitiesProvider.c | 265 +++++++++++++ .../LMI_AccountManagementCapabilitiesProvider.c | 154 ++++++++ ..._AccountManagementServiceCapabilitiesProvider.c | 234 ++++++++++++ src/account/LMI_AccountManagementServiceProvider.c | 207 +++++++++++ ...I_AccountManagementServiceSettingDataProvider.c | 202 ++++++++++ src/account/LMI_AccountOnSystemProvider.c | 272 ++++++++++++++ src/account/LMI_AccountProvider.c | 243 ++++++++++++ src/account/LMI_AccountSettingDataProvider.c | 153 ++++++++ src/account/LMI_AssignedAccountIdentityProvider.c | 264 +++++++++++++ src/account/LMI_AssignedGroupIdentityProvider.c | 253 +++++++++++++ src/account/LMI_ElementSettingDateProvider.c | 202 ++++++++++ .../LMI_EnabledAccountCapabilitiesProvider.c | 145 ++++++++ src/account/LMI_GroupProvider.c | 176 +++++++++ src/account/LMI_HostedServiceProvider.c | 239 ++++++++++++ src/account/LMI_IdentityProvider.c | 190 ++++++++++ src/account/LMI_MemberOfGroupProvider.c | 280 ++++++++++++++ src/account/LMI_OwningGroupProvider.c | 266 +++++++++++++ src/account/LMI_ServiceAffectsIdentityProvider.c | 300 +++++++++++++++ ...LMI_SettingsDefineAccountCapabilitiesProvider.c | 202 ++++++++++ ..._SettingsDefineManagementCapabilitiesProvider.c | 202 ++++++++++ src/fan/CMakeLists.txt | 4 +- src/fan/Cura_FanAssociatedSensorProvider.c | 258 ------------- src/fan/Cura_FanProvider.c | 411 --------------------- src/fan/Cura_FanSensorProvider.c | 401 -------------------- src/fan/LMI_FanAssociatedSensorProvider.c | 258 +++++++++++++ src/fan/LMI_FanProvider.c | 411 +++++++++++++++++++++ src/fan/LMI_FanSensorProvider.c | 401 ++++++++++++++++++++ src/power/CMakeLists.txt | 2 +- ...Cura_AssociatedPowerManagementServiceProvider.c | 285 -------------- src/power/Cura_ConcreteJobProvider.c | 222 ----------- src/power/Cura_ElementCapabilitiesProvider.c | 241 ------------ src/power/Cura_HostedServiceProvider.c | 245 ------------ .../Cura_PowerManagementCapabilitiesProvider.c | 179 --------- src/power/Cura_PowerManagementServiceProvider.c | 284 -------------- .../LMI_AssociatedPowerManagementServiceProvider.c | 285 ++++++++++++++ src/power/LMI_ConcreteJobProvider.c | 222 +++++++++++ src/power/LMI_ElementCapabilitiesProvider.c | 241 ++++++++++++ src/power/LMI_HostedServiceProvider.c | 245 ++++++++++++ .../LMI_PowerManagementCapabilitiesProvider.c | 179 +++++++++ src/power/LMI_PowerManagementServiceProvider.c | 284 ++++++++++++++ src/power/power.c | 96 ++--- src/service/CMakeLists.txt | 2 +- src/service/Cura_ServiceProvider.c | 354 ------------------ src/service/LMI_ServiceProvider.c | 354 ++++++++++++++++++ 65 files changed, 7382 insertions(+), 7382 deletions(-) delete mode 100644 src/account/Cura_AccountCapabilitiesProvider.c delete mode 100644 src/account/Cura_AccountManagementCapabilitiesProvider.c delete mode 100644 src/account/Cura_AccountManagementServiceCapabilitiesProvider.c delete mode 100644 src/account/Cura_AccountManagementServiceProvider.c delete mode 100644 src/account/Cura_AccountManagementServiceSettingDataProvider.c delete mode 100644 src/account/Cura_AccountOnSystemProvider.c delete mode 100644 src/account/Cura_AccountProvider.c delete mode 100644 src/account/Cura_AccountSettingDataProvider.c delete mode 100644 src/account/Cura_AssignedAccountIdentityProvider.c delete mode 100644 src/account/Cura_AssignedGroupIdentityProvider.c delete mode 100644 src/account/Cura_ElementSettingDateProvider.c delete mode 100644 src/account/Cura_EnabledAccountCapabilitiesProvider.c delete mode 100644 src/account/Cura_GroupProvider.c delete mode 100644 src/account/Cura_HostedServiceProvider.c delete mode 100644 src/account/Cura_IdentityProvider.c delete mode 100644 src/account/Cura_MemberOfGroupProvider.c delete mode 100644 src/account/Cura_OwningGroupProvider.c delete mode 100644 src/account/Cura_ServiceAffectsIdentityProvider.c delete mode 100644 src/account/Cura_SettingsDefineAccountCapabilitiesProvider.c delete mode 100644 src/account/Cura_SettingsDefineManagementCapabilitiesProvider.c create mode 100644 src/account/LMI_AccountCapabilitiesProvider.c create mode 100644 src/account/LMI_AccountManagementCapabilitiesProvider.c create mode 100644 src/account/LMI_AccountManagementServiceCapabilitiesProvider.c create mode 100644 src/account/LMI_AccountManagementServiceProvider.c create mode 100644 src/account/LMI_AccountManagementServiceSettingDataProvider.c create mode 100644 src/account/LMI_AccountOnSystemProvider.c create mode 100644 src/account/LMI_AccountProvider.c create mode 100644 src/account/LMI_AccountSettingDataProvider.c create mode 100644 src/account/LMI_AssignedAccountIdentityProvider.c create mode 100644 src/account/LMI_AssignedGroupIdentityProvider.c create mode 100644 src/account/LMI_ElementSettingDateProvider.c create mode 100644 src/account/LMI_EnabledAccountCapabilitiesProvider.c create mode 100644 src/account/LMI_GroupProvider.c create mode 100644 src/account/LMI_HostedServiceProvider.c create mode 100644 src/account/LMI_IdentityProvider.c create mode 100644 src/account/LMI_MemberOfGroupProvider.c create mode 100644 src/account/LMI_OwningGroupProvider.c create mode 100644 src/account/LMI_ServiceAffectsIdentityProvider.c create mode 100644 src/account/LMI_SettingsDefineAccountCapabilitiesProvider.c create mode 100644 src/account/LMI_SettingsDefineManagementCapabilitiesProvider.c delete mode 100644 src/fan/Cura_FanAssociatedSensorProvider.c delete mode 100644 src/fan/Cura_FanProvider.c delete mode 100644 src/fan/Cura_FanSensorProvider.c create mode 100644 src/fan/LMI_FanAssociatedSensorProvider.c create mode 100644 src/fan/LMI_FanProvider.c create mode 100644 src/fan/LMI_FanSensorProvider.c delete mode 100644 src/power/Cura_AssociatedPowerManagementServiceProvider.c delete mode 100644 src/power/Cura_ConcreteJobProvider.c delete mode 100644 src/power/Cura_ElementCapabilitiesProvider.c delete mode 100644 src/power/Cura_HostedServiceProvider.c delete mode 100644 src/power/Cura_PowerManagementCapabilitiesProvider.c delete mode 100644 src/power/Cura_PowerManagementServiceProvider.c create mode 100644 src/power/LMI_AssociatedPowerManagementServiceProvider.c create mode 100644 src/power/LMI_ConcreteJobProvider.c create mode 100644 src/power/LMI_ElementCapabilitiesProvider.c create mode 100644 src/power/LMI_HostedServiceProvider.c create mode 100644 src/power/LMI_PowerManagementCapabilitiesProvider.c create mode 100644 src/power/LMI_PowerManagementServiceProvider.c delete mode 100644 src/service/Cura_ServiceProvider.c create mode 100644 src/service/LMI_ServiceProvider.c (limited to 'src') diff --git a/src/account/CMakeLists.txt b/src/account/CMakeLists.txt index 35fd843..8d69a93 100644 --- a/src/account/CMakeLists.txt +++ b/src/account/CMakeLists.txt @@ -1,7 +1,7 @@ set(PROVIDER_NAME Account) set(LIBRARY_NAME cmpiCura_${PROVIDER_NAME}) -set(MOF Cura_Account.mof) +set(MOF LMI_Account.mof) set(provider_SRCS aux_lu.c diff --git a/src/account/Cura_AccountCapabilitiesProvider.c b/src/account/Cura_AccountCapabilitiesProvider.c deleted file mode 100644 index b325f4a..0000000 --- a/src/account/Cura_AccountCapabilitiesProvider.c +++ /dev/null @@ -1,265 +0,0 @@ -#include -#include "Cura_AccountCapabilities.h" -#include "Cura_Account.h" -#include "Cura_EnabledAccountCapabilities.h" - -#include "macros.h" -#include "globals.h" -#include "aux_lu.h" - -#include -#include - -#include - -static const CMPIBroker* _cb; - -static void Cura_AccountCapabilitiesInitialize() -{ -} - -static CMPIStatus Cura_AccountCapabilitiesCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountCapabilitiesEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_AccountCapabilitiesEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - Cura_AccountRef laref; - Cura_EnabledAccountCapabilitiesRef leacref; - Cura_AccountCapabilities lac; - - struct lu_context *luc = NULL; - struct lu_error *error = NULL; - GPtrArray *accounts = NULL; - struct lu_ent *lue = NULL; - - size_t i; - const char *nameSpace = KNameSpace(cop); - const char *hostname = get_system_name(); - - Cura_EnabledAccountCapabilitiesRef_Init(&leacref, _cb, nameSpace); - Cura_EnabledAccountCapabilitiesRef_Set_InstanceID(&leacref, - ORGID":"LEACNAME); - - luc = lu_start(NULL, lu_user, NULL, NULL, lu_prompt_console_quiet, NULL, &error); - if (!luc) - { - fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); - exit(1); - } - accounts = lu_users_enumerate_full(luc, "*", &error); - - for (i = 0; (accounts != NULL) && (i < accounts->len); i++) - { - lue = g_ptr_array_index(accounts, i); - - Cura_AccountRef_Init(&laref, _cb, nameSpace); - Cura_AccountRef_Set_Name(&laref, aux_lu_get_str(lue, LU_USERNAME)); - Cura_AccountRef_Set_SystemCreationClassName(&laref, - get_system_creation_class_name()); - Cura_AccountRef_Set_SystemName(&laref, hostname); - Cura_AccountRef_Set_CreationClassName(&laref, - Cura_Account_ClassName); - - Cura_AccountCapabilities_Init(&lac, _cb, nameSpace); - Cura_AccountCapabilities_Set_ManagedElement(&lac, &laref); - Cura_AccountCapabilities_Set_Capabilities(&lac, &leacref); - - KReturnInstance(cr, lac); - lu_ent_free(lue); - } /* for */ - - if (accounts) - { - g_ptr_array_free(accounts, TRUE); - } - - lu_end(luc); - - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountCapabilitiesGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_AccountCapabilitiesCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountCapabilitiesModifyInstance( - 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 Cura_AccountCapabilitiesDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountCapabilitiesExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountCapabilitiesAssociationCleanup( - CMPIAssociationMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountCapabilitiesAssociators( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole, - const char** properties) -{ - return KDefaultAssociators( - _cb, - mi, - cc, - cr, - cop, - Cura_AccountCapabilities_ClassName, - assocClass, - resultClass, - role, - resultRole, - properties); -} - -static CMPIStatus Cura_AccountCapabilitiesAssociatorNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole) -{ - return KDefaultAssociatorNames( - _cb, - mi, - cc, - cr, - cop, - Cura_AccountCapabilities_ClassName, - assocClass, - resultClass, - role, - resultRole); -} - -static CMPIStatus Cura_AccountCapabilitiesReferences( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role, - const char** properties) -{ - return KDefaultReferences( - _cb, - mi, - cc, - cr, - cop, - Cura_AccountCapabilities_ClassName, - assocClass, - role, - properties); -} - -static CMPIStatus Cura_AccountCapabilitiesReferenceNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role) -{ - return KDefaultReferenceNames( - _cb, - mi, - cc, - cr, - cop, - Cura_AccountCapabilities_ClassName, - assocClass, - role); -} - -CMInstanceMIStub( - Cura_AccountCapabilities, - Cura_AccountCapabilities, - _cb, - Cura_AccountCapabilitiesInitialize()) - -CMAssociationMIStub( - Cura_AccountCapabilities, - Cura_AccountCapabilities, - _cb, - Cura_AccountCapabilitiesInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_AccountCapabilities", - "Cura_AccountCapabilities", - "instance association") diff --git a/src/account/Cura_AccountManagementCapabilitiesProvider.c b/src/account/Cura_AccountManagementCapabilitiesProvider.c deleted file mode 100644 index 29921ab..0000000 --- a/src/account/Cura_AccountManagementCapabilitiesProvider.c +++ /dev/null @@ -1,154 +0,0 @@ -#include -#include "Cura_AccountManagementCapabilities.h" - -#include - -#include "macros.h" -#include "globals.h" - -#define NAME LAMCNAME - -static const CMPIBroker* _cb = NULL; - -static void Cura_AccountManagementCapabilitiesInitialize() -{ -} - -static CMPIStatus Cura_AccountManagementCapabilitiesCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountManagementCapabilitiesEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_AccountManagementCapabilitiesEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - Cura_AccountManagementCapabilities lamc; - - Cura_AccountManagementCapabilities_Init(&lamc, _cb, KNameSpace(cop)); - Cura_AccountManagementCapabilities_Set_ElementNameEditSupported( - &lamc, false); - Cura_AccountManagementCapabilities_Set_InstanceID(&lamc, ORGID":"LAMCNAME); - Cura_AccountManagementCapabilities_Set_ElementName(&lamc, NAME); - - Cura_AccountManagementCapabilities_Init_OperationsSupported(&lamc, 3); - Cura_AccountManagementCapabilities_Set_OperationsSupported(&lamc, 0, - Cura_AccountManagementCapabilities_OperationsSupported_Create); - Cura_AccountManagementCapabilities_Set_OperationsSupported(&lamc, 1, - Cura_AccountManagementCapabilities_OperationsSupported_Modify); - Cura_AccountManagementCapabilities_Set_OperationsSupported(&lamc, 2, - Cura_AccountManagementCapabilities_OperationsSupported_Delete); - - Cura_AccountManagementCapabilities_Init_SupportedUserPasswordEncryptionAlgorithms(&lamc, 1); - Cura_AccountManagementCapabilities_Set_SupportedUserPasswordEncryptionAlgorithms(&lamc, 0, Cura_AccountManagementCapabilities_SupportedUserPasswordEncryptionAlgorithms_Other); - - KReturnInstance(cr, lamc); - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountManagementCapabilitiesGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_AccountManagementCapabilitiesCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountManagementCapabilitiesModifyInstance( - 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 Cura_AccountManagementCapabilitiesDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountManagementCapabilitiesExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -CMInstanceMIStub( - Cura_AccountManagementCapabilities, - Cura_AccountManagementCapabilities, - _cb, - Cura_AccountManagementCapabilitiesInitialize()) - -static CMPIStatus Cura_AccountManagementCapabilitiesMethodCleanup( - CMPIMethodMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountManagementCapabilitiesInvokeMethod( - CMPIMethodMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* meth, - const CMPIArgs* in, - CMPIArgs* out) -{ - return Cura_AccountManagementCapabilities_DispatchMethod( - _cb, mi, cc, cr, cop, meth, in, out); -} - -CMMethodMIStub( - Cura_AccountManagementCapabilities, - Cura_AccountManagementCapabilities, - _cb, - Cura_AccountManagementCapabilitiesInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_AccountManagementCapabilities", - "Cura_AccountManagementCapabilities", - "instance method") diff --git a/src/account/Cura_AccountManagementServiceCapabilitiesProvider.c b/src/account/Cura_AccountManagementServiceCapabilitiesProvider.c deleted file mode 100644 index 459770f..0000000 --- a/src/account/Cura_AccountManagementServiceCapabilitiesProvider.c +++ /dev/null @@ -1,234 +0,0 @@ -#include -#include "Cura_AccountManagementServiceCapabilities.h" -#include "Cura_AccountManagementService.h" -#include "Cura_AccountManagementCapabilities.h" - -#include "macros.h" -#include "globals.h" - -static const CMPIBroker* _cb; - -static void Cura_AccountManagementServiceCapabilitiesInitialize() -{ -} - -static CMPIStatus Cura_AccountManagementServiceCapabilitiesCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountManagementServiceCapabilitiesEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_AccountManagementServiceCapabilitiesEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - Cura_AccountManagementServiceRef lamsref; - Cura_AccountManagementCapabilitiesRef lamcref; - Cura_AccountManagementServiceCapabilities lamsc; - - const char *nameSpace = KNameSpace(cop); - const char *hostname = get_system_name(); - - Cura_AccountManagementServiceRef_Init(&lamsref, _cb, nameSpace); - Cura_AccountManagementServiceRef_Set_Name(&lamsref, LAMSNAME); - Cura_AccountManagementServiceRef_Set_SystemCreationClassName(&lamsref, - get_system_creation_class_name()); - Cura_AccountManagementServiceRef_Set_SystemName(&lamsref, hostname); - Cura_AccountManagementServiceRef_Set_CreationClassName(&lamsref, - Cura_AccountManagementService_ClassName); - - Cura_AccountManagementCapabilitiesRef_Init(&lamcref, _cb, nameSpace); - Cura_AccountManagementCapabilitiesRef_Set_InstanceID(&lamcref, - ORGID":"LAMCNAME); - - Cura_AccountManagementServiceCapabilities_Init(&lamsc, _cb, nameSpace); - Cura_AccountManagementServiceCapabilities_Set_ManagedElement(&lamsc, - &lamsref); - Cura_AccountManagementServiceCapabilities_Set_Capabilities(&lamsc, - &lamcref); - - KReturnInstance(cr, lamsc); - - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountManagementServiceCapabilitiesGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_AccountManagementServiceCapabilitiesCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountManagementServiceCapabilitiesModifyInstance( - 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 Cura_AccountManagementServiceCapabilitiesDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountManagementServiceCapabilitiesExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountManagementServiceCapabilitiesAssociationCleanup( - CMPIAssociationMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountManagementServiceCapabilitiesAssociators( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole, - const char** properties) -{ - return KDefaultAssociators( - _cb, - mi, - cc, - cr, - cop, - Cura_AccountManagementServiceCapabilities_ClassName, - assocClass, - resultClass, - role, - resultRole, - properties); -} - -static CMPIStatus Cura_AccountManagementServiceCapabilitiesAssociatorNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole) -{ - return KDefaultAssociatorNames( - _cb, - mi, - cc, - cr, - cop, - Cura_AccountManagementServiceCapabilities_ClassName, - assocClass, - resultClass, - role, - resultRole); -} - -static CMPIStatus Cura_AccountManagementServiceCapabilitiesReferences( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role, - const char** properties) -{ - return KDefaultReferences( - _cb, - mi, - cc, - cr, - cop, - Cura_AccountManagementServiceCapabilities_ClassName, - assocClass, - role, - properties); -} - -static CMPIStatus Cura_AccountManagementServiceCapabilitiesReferenceNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role) -{ - return KDefaultReferenceNames( - _cb, - mi, - cc, - cr, - cop, - Cura_AccountManagementServiceCapabilities_ClassName, - assocClass, - role); -} - -CMInstanceMIStub( - Cura_AccountManagementServiceCapabilities, - Cura_AccountManagementServiceCapabilities, - _cb, - Cura_AccountManagementServiceCapabilitiesInitialize()) - -CMAssociationMIStub( - Cura_AccountManagementServiceCapabilities, - Cura_AccountManagementServiceCapabilities, - _cb, - Cura_AccountManagementServiceCapabilitiesInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_AccountManagementServiceCapabilities", - "Cura_AccountManagementServiceCapabilities", - "instance association") diff --git a/src/account/Cura_AccountManagementServiceProvider.c b/src/account/Cura_AccountManagementServiceProvider.c deleted file mode 100644 index f50d8f3..0000000 --- a/src/account/Cura_AccountManagementServiceProvider.c +++ /dev/null @@ -1,207 +0,0 @@ -#include -#include "Cura_AccountManagementService.h" - -#include "macros.h" -#include "globals.h" - -static const CMPIBroker* _cb = NULL; - -static void Cura_AccountManagementServiceInitialize() -{ -} - -static CMPIStatus Cura_AccountManagementServiceCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountManagementServiceEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_AccountManagementServiceEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - Cura_AccountManagementService lams; - - const char *hostname = get_system_name(); - - Cura_AccountManagementService_Init(&lams, _cb, KNameSpace(cop)); - Cura_AccountManagementService_Set_CreationClassName(&lams, - Cura_AccountManagementService_ClassName); - Cura_AccountManagementService_Set_SystemName(&lams, hostname); - Cura_AccountManagementService_Set_Name(&lams, LAMSNAME); - Cura_AccountManagementService_Set_ElementName(&lams, LAMSNAME); - Cura_AccountManagementService_Set_SystemCreationClassName(&lams, - get_system_creation_class_name()); - Cura_AccountManagementService_Set_RequestedState(&lams, - Cura_AccountManagementService_RequestedState_Not_Applicable); - Cura_AccountManagementService_Set_EnabledState(&lams, - Cura_AccountManagementService_EnabledState_Enabled); - - KReturnInstance(cr, lams); - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountManagementServiceGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_AccountManagementServiceCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountManagementServiceModifyInstance( - 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 Cura_AccountManagementServiceDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountManagementServiceExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -CMInstanceMIStub( - Cura_AccountManagementService, - Cura_AccountManagementService, - _cb, - Cura_AccountManagementServiceInitialize()) - -static CMPIStatus Cura_AccountManagementServiceMethodCleanup( - CMPIMethodMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountManagementServiceInvokeMethod( - CMPIMethodMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* meth, - const CMPIArgs* in, - CMPIArgs* out) -{ - return Cura_AccountManagementService_DispatchMethod( - _cb, mi, cc, cr, cop, meth, in, out); -} - -CMMethodMIStub( - Cura_AccountManagementService, - Cura_AccountManagementService, - _cb, - Cura_AccountManagementServiceInitialize()) - -KUint32 Cura_AccountManagementService_RequestStateChange( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_AccountManagementServiceRef* self, - const KUint16* RequestedState, - KRef* Job, - const KDateTime* TimeoutPeriod, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_AccountManagementService_StartService( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_AccountManagementServiceRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_AccountManagementService_StopService( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_AccountManagementServiceRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_AccountManagementService_CreateAccount( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_AccountManagementServiceRef* self, - const KRef* System, - const KString* AccountTemplate, - KRef* Account, - KRefA* Identities, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_AccountManagementService", - "Cura_AccountManagementService", - "instance method") diff --git a/src/account/Cura_AccountManagementServiceSettingDataProvider.c b/src/account/Cura_AccountManagementServiceSettingDataProvider.c deleted file mode 100644 index 5378a8f..0000000 --- a/src/account/Cura_AccountManagementServiceSettingDataProvider.c +++ /dev/null @@ -1,202 +0,0 @@ -#include -#include "Cura_AccountManagementServiceSettingData.h" - -static const CMPIBroker* _cb; - -static void Cura_AccountManagementServiceSettingDataInitialize() -{ -} - -static CMPIStatus Cura_AccountManagementServiceSettingDataCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountManagementServiceSettingDataEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_AccountManagementServiceSettingDataEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountManagementServiceSettingDataGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_AccountManagementServiceSettingDataCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountManagementServiceSettingDataModifyInstance( - 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 Cura_AccountManagementServiceSettingDataDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountManagementServiceSettingDataExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountManagementServiceSettingDataAssociationCleanup( - CMPIAssociationMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountManagementServiceSettingDataAssociators( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole, - const char** properties) -{ - return KDefaultAssociators( - _cb, - mi, - cc, - cr, - cop, - Cura_AccountManagementServiceSettingData_ClassName, - assocClass, - resultClass, - role, - resultRole, - properties); -} - -static CMPIStatus Cura_AccountManagementServiceSettingDataAssociatorNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole) -{ - return KDefaultAssociatorNames( - _cb, - mi, - cc, - cr, - cop, - Cura_AccountManagementServiceSettingData_ClassName, - assocClass, - resultClass, - role, - resultRole); -} - -static CMPIStatus Cura_AccountManagementServiceSettingDataReferences( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role, - const char** properties) -{ - return KDefaultReferences( - _cb, - mi, - cc, - cr, - cop, - Cura_AccountManagementServiceSettingData_ClassName, - assocClass, - role, - properties); -} - -static CMPIStatus Cura_AccountManagementServiceSettingDataReferenceNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role) -{ - return KDefaultReferenceNames( - _cb, - mi, - cc, - cr, - cop, - Cura_AccountManagementServiceSettingData_ClassName, - assocClass, - role); -} - -CMInstanceMIStub( - Cura_AccountManagementServiceSettingData, - Cura_AccountManagementServiceSettingData, - _cb, - Cura_AccountManagementServiceSettingDataInitialize()) - -CMAssociationMIStub( - Cura_AccountManagementServiceSettingData, - Cura_AccountManagementServiceSettingData, - _cb, - Cura_AccountManagementServiceSettingDataInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_AccountManagementServiceSettingData", - "Cura_AccountManagementServiceSettingData", - "instance association") diff --git a/src/account/Cura_AccountOnSystemProvider.c b/src/account/Cura_AccountOnSystemProvider.c deleted file mode 100644 index 0b1a051..0000000 --- a/src/account/Cura_AccountOnSystemProvider.c +++ /dev/null @@ -1,272 +0,0 @@ -#include -#include "Cura_AccountOnSystem.h" -#include "Cura_Account.h" -#include "CIM_ComputerSystem.h" - -#include - -#include -#include - -#include "aux_lu.h" -#include "macros.h" -#include "globals.h" - -static const CMPIBroker* _cb; - -static void Cura_AccountOnSystemInitialize() -{ -} - -static CMPIStatus Cura_AccountOnSystemCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountOnSystemEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_AccountOnSystemEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - Cura_AccountRef laref; - CIM_ComputerSystemRef lcsref; - Cura_AccountOnSystem laos; - - CMPIObjectPath *computerSystemOP = NULL; - CMPIStatus rc; - - struct lu_context *luc = NULL; - struct lu_error *error = NULL; - GPtrArray *accounts = NULL; - struct lu_ent *lue = NULL; - - size_t i; - const char *nameSpace = KNameSpace(cop); - const char *hostname = get_system_name(); - - CIM_ComputerSystemRef_Init(&lcsref, _cb, nameSpace); - CIM_ComputerSystemRef_Set_Name(&lcsref, hostname); - CIM_ComputerSystemRef_Set_CreationClassName(&lcsref, - get_system_creation_class_name()); - - computerSystemOP = CIM_ComputerSystemRef_ToObjectPath(&lcsref, &rc); - computerSystemOP->ft->setClassName(computerSystemOP, - get_system_creation_class_name()); - - luc = lu_start(NULL, lu_user, NULL, NULL, lu_prompt_console_quiet, NULL, &error); - if (!luc) - { - fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); - exit(1); - } - - accounts = lu_users_enumerate_full(luc, "*", &error); - for (i = 0; (accounts != NULL) && (i < accounts->len); i++) - { - lue = g_ptr_array_index(accounts, i); - - Cura_AccountRef_Init(&laref, _cb, nameSpace); - Cura_AccountRef_Set_SystemCreationClassName(&laref, get_system_creation_class_name()); - Cura_AccountRef_Set_SystemName(&laref, hostname); - Cura_AccountRef_Set_CreationClassName(&laref, - Cura_Account_ClassName); - Cura_AccountRef_Set_Name(&laref, aux_lu_get_str(lue, LU_USERNAME)); - - Cura_AccountOnSystem_Init(&laos, _cb, nameSpace); - Cura_AccountOnSystem_SetObjectPath_GroupComponent(&laos, - computerSystemOP); - Cura_AccountOnSystem_Set_PartComponent(&laos, &laref); - - KReturnInstance(cr, laos); - lu_ent_free(lue); - } /* for */ - - if (accounts) - { - g_ptr_array_free(accounts, TRUE); - } - - lu_end(luc); - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountOnSystemGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_AccountOnSystemCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountOnSystemModifyInstance( - 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 Cura_AccountOnSystemDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountOnSystemExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountOnSystemAssociationCleanup( - CMPIAssociationMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountOnSystemAssociators( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole, - const char** properties) -{ - return KDefaultAssociators( - _cb, - mi, - cc, - cr, - cop, - Cura_AccountOnSystem_ClassName, - assocClass, - resultClass, - role, - resultRole, - properties); -} - -static CMPIStatus Cura_AccountOnSystemAssociatorNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole) -{ - return KDefaultAssociatorNames( - _cb, - mi, - cc, - cr, - cop, - Cura_AccountOnSystem_ClassName, - assocClass, - resultClass, - role, - resultRole); -} - -static CMPIStatus Cura_AccountOnSystemReferences( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role, - const char** properties) -{ - return KDefaultReferences( - _cb, - mi, - cc, - cr, - cop, - Cura_AccountOnSystem_ClassName, - assocClass, - role, - properties); -} - -static CMPIStatus Cura_AccountOnSystemReferenceNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role) -{ - return KDefaultReferenceNames( - _cb, - mi, - cc, - cr, - cop, - Cura_AccountOnSystem_ClassName, - assocClass, - role); -} - -CMInstanceMIStub( - Cura_AccountOnSystem, - Cura_AccountOnSystem, - _cb, - Cura_AccountOnSystemInitialize()) - -CMAssociationMIStub( - Cura_AccountOnSystem, - Cura_AccountOnSystem, - _cb, - Cura_AccountOnSystemInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_AccountOnSystem", - "Cura_AccountOnSystem", - "instance association") diff --git a/src/account/Cura_AccountProvider.c b/src/account/Cura_AccountProvider.c deleted file mode 100644 index 080dea5..0000000 --- a/src/account/Cura_AccountProvider.c +++ /dev/null @@ -1,243 +0,0 @@ -#include -#include "Cura_Account.h" - -#include -#include - -#include - -#include -#include - -#include -#include -#include - - -#include "aux_lu.h" -#include "macros.h" -#include "globals.h" - -static const CMPIBroker* _cb = NULL; - -static void Cura_AccountInitialize() -{ -} - -static CMPIStatus Cura_AccountCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_AccountEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - Cura_Account la; - struct lu_context *luc = NULL; - struct lu_error *error = NULL; - GPtrArray *accounts = NULL; - struct lu_ent *lue = NULL; - - size_t i; - const char *nameSpace = KNameSpace(cop); - const char *hostname = get_system_name(); - char *uid = NULL; - long expire; - CMPIUint64 binTime = 0; - CMPIStatus *rc = NULL; - char *password = NULL; - - luc = lu_start(NULL, lu_user, NULL, NULL, lu_prompt_console_quiet, NULL, &error); - if (!luc) - { - fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); - exit(1); - } - - uid = malloc(256 * sizeof(char)); - accounts = lu_users_enumerate_full(luc, "*", &error); - for (i = 0; (accounts != NULL) && (i < accounts->len); i++) - { - lue = g_ptr_array_index(accounts, i); - - Cura_Account_Init(&la, _cb, nameSpace); - Cura_Account_Set_CreationClassName(&la, Cura_Account_ClassName); - Cura_Account_Set_SystemName(&la, hostname); - Cura_Account_Set_SystemCreationClassName(&la, get_system_creation_class_name()); - Cura_Account_Set_Name(&la, aux_lu_get_str(lue, LU_USERNAME)); - - Cura_Account_Init_OrganizationName(&la, 1); /* XXX */ - Cura_Account_Set_OrganizationName(&la, 0, ""); /* XXX */ - - /* Need to convert long int UID to the string */ - snprintf(uid, 255, "%ld", aux_lu_get_long(lue, LU_UIDNUMBER)); - Cura_Account_Set_UserID(&la, uid); - - Cura_Account_Init_Host(&la, 1); - Cura_Account_Set_Host(&la, 0, hostname); - Cura_Account_Set_ElementName(&la, aux_lu_get_str(lue, LU_GECOS)); - Cura_Account_Set_HomeDirectory(&la, aux_lu_get_str(lue, - LU_HOMEDIRECTORY)); - Cura_Account_Set_LoginShell(&la, aux_lu_get_str(lue, LU_LOGINSHELL)); - - Cura_Account_Set_PasswordLastChange(&la, - CMNewDateTimeFromBinary(_cb, - DAYSTOMS(aux_lu_get_long(lue, LU_SHADOWLASTCHANGE)),false, rc)); - - password = aux_lu_get_str(lue, LU_SHADOWPASSWORD); - Cura_Account_Init_UserPassword(&la, 1); - Cura_Account_Set_UserPassword(&la, 0, password); - /* Assume all passwords (encrypted or not) are in ascii encoding */ - Cura_Account_Set_UserPasswordEncoding(&la, 2); - if(strstr(password, "")) - - expire = aux_lu_get_long(lue, LU_SHADOWEXPIRE); - if (expire != -1) - { - binTime = DAYSTOMS(expire); - Cura_Account_Set_PasswordExpiration(&la, - CMNewDateTimeFromBinary(_cb, binTime, false, rc)); - } - else - { - Cura_Account_Null_PasswordExpiration(&la); - } - - KReturnInstance(cr, la); - lu_ent_free(lue); - } /* for */ - free(uid); - - if (accounts) - { - g_ptr_array_free(accounts, TRUE); - } - - lu_end(luc); - - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_AccountCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountModifyInstance( - 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 Cura_AccountDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -CMInstanceMIStub( - Cura_Account, - Cura_Account, - _cb, - Cura_AccountInitialize()) - -static CMPIStatus Cura_AccountMethodCleanup( - CMPIMethodMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountInvokeMethod( - CMPIMethodMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* meth, - const CMPIArgs* in, - CMPIArgs* out) -{ - return Cura_Account_DispatchMethod( - _cb, mi, cc, cr, cop, meth, in, out); -} - -CMMethodMIStub( - Cura_Account, - Cura_Account, - _cb, - Cura_AccountInitialize()) - -KUint32 Cura_Account_RequestStateChange( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_AccountRef* self, - const KUint16* RequestedState, - KRef* Job, - const KDateTime* TimeoutPeriod, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_Account", - "Cura_Account", - "instance method") diff --git a/src/account/Cura_AccountSettingDataProvider.c b/src/account/Cura_AccountSettingDataProvider.c deleted file mode 100644 index 974a5ee..0000000 --- a/src/account/Cura_AccountSettingDataProvider.c +++ /dev/null @@ -1,153 +0,0 @@ -#include -#include "Cura_AccountSettingData.h" - -#include "macros.h" -#include "globals.h" - -#include -#include - -static const CMPIBroker* _cb = NULL; - -static void Cura_AccountSettingDataInitialize() -{ -} - -static CMPIStatus Cura_AccountSettingDataCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountSettingDataEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_AccountSettingDataEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ -#if 0 - Cura_AccountSettingData lasd; - - const char *nameSpace = KNameSpace(cop); - - struct lu_context *luc = NULL; - struct lu_error *error = NULL; - - luc = lu_start(NULL, lu_user, NULL, NULL, lu_prompt_console_quiet, NULL, &error); - if (!luc) - { - fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); - exit(1); - } - - const char * mpe = lu_cfg_read_single(luc, "userdefaults/"LU_SHADOWMAX, - NULL); - fprintf(stderr, "Read single: %s\n", mpe); - Cura_AccountSettingData_Init(&lasd, _cb, nameSpace); -#endif - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountSettingDataGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_AccountSettingDataCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountSettingDataModifyInstance( - 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 Cura_AccountSettingDataDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AccountSettingDataExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -CMInstanceMIStub( - Cura_AccountSettingData, - Cura_AccountSettingData, - _cb, - Cura_AccountSettingDataInitialize()) - -static CMPIStatus Cura_AccountSettingDataMethodCleanup( - CMPIMethodMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AccountSettingDataInvokeMethod( - CMPIMethodMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* meth, - const CMPIArgs* in, - CMPIArgs* out) -{ - return Cura_AccountSettingData_DispatchMethod( - _cb, mi, cc, cr, cop, meth, in, out); -} - -CMMethodMIStub( - Cura_AccountSettingData, - Cura_AccountSettingData, - _cb, - Cura_AccountSettingDataInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_AccountSettingData", - "Cura_AccountSettingData", - "instance method") diff --git a/src/account/Cura_AssignedAccountIdentityProvider.c b/src/account/Cura_AssignedAccountIdentityProvider.c deleted file mode 100644 index 99d1407..0000000 --- a/src/account/Cura_AssignedAccountIdentityProvider.c +++ /dev/null @@ -1,264 +0,0 @@ -#include -#include "Cura_AssignedAccountIdentity.h" -#include "Cura_Identity.h" -#include "Cura_Account.h" - -#include "aux_lu.h" -#include "macros.h" -#include "globals.h" - -#include -#include - -static const CMPIBroker* _cb; - -static void Cura_AssignedAccountIdentityInitialize() -{ -} - -static CMPIStatus Cura_AssignedAccountIdentityCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AssignedAccountIdentityEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_AssignedAccountIdentityEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - Cura_IdentityRef liref; - Cura_AccountRef laref; - Cura_AssignedAccountIdentity laai; - - struct lu_context *luc = NULL; - struct lu_error *error = NULL; - GPtrArray *accounts = NULL; - struct lu_ent *lue = NULL; - - size_t i; - const char *nameSpace = KNameSpace(cop); - const char *hostname = get_system_name(); - char *uid = NULL; - - luc = lu_start(NULL, lu_user, NULL, NULL, lu_prompt_console_quiet, NULL, &error); - if (!luc) - { - fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); - exit(1); - } - uid = malloc(256 * sizeof(char)); - accounts = lu_users_enumerate_full(luc, "*", &error); - for (i = 0; (accounts != NULL) && (i < accounts->len); i++) - { - lue = g_ptr_array_index(accounts, i); - - Cura_IdentityRef_Init(&liref, _cb, nameSpace); - snprintf(uid, 255, ORGID":UID:%ld", - aux_lu_get_long(lue, LU_UIDNUMBER)); - Cura_IdentityRef_Set_InstanceID(&liref, uid); - - Cura_AccountRef_Init(&laref, _cb, nameSpace); - Cura_AccountRef_Set_Name(&laref, aux_lu_get_str(lue, LU_USERNAME)); - Cura_AccountRef_Set_SystemName(&laref, hostname); - Cura_AccountRef_Set_SystemCreationClassName(&laref, get_system_creation_class_name()); - Cura_AccountRef_Set_CreationClassName(&laref, Cura_Account_ClassName); - - Cura_AssignedAccountIdentity_Init(&laai, _cb, nameSpace); - Cura_AssignedAccountIdentity_Set_IdentityInfo(&laai, &liref); - Cura_AssignedAccountIdentity_Set_ManagedElement(&laai, &laref); - - KReturnInstance(cr, laai); - lu_ent_free(lue); - } /* for */ - free(uid); - - if (accounts) - { - g_ptr_array_free(accounts, TRUE); - } - - lu_end(luc); - - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AssignedAccountIdentityGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_AssignedAccountIdentityCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AssignedAccountIdentityModifyInstance( - 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 Cura_AssignedAccountIdentityDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AssignedAccountIdentityExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AssignedAccountIdentityAssociationCleanup( - CMPIAssociationMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AssignedAccountIdentityAssociators( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole, - const char** properties) -{ - return KDefaultAssociators( - _cb, - mi, - cc, - cr, - cop, - Cura_AssignedAccountIdentity_ClassName, - assocClass, - resultClass, - role, - resultRole, - properties); -} - -static CMPIStatus Cura_AssignedAccountIdentityAssociatorNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole) -{ - return KDefaultAssociatorNames( - _cb, - mi, - cc, - cr, - cop, - Cura_AssignedAccountIdentity_ClassName, - assocClass, - resultClass, - role, - resultRole); -} - -static CMPIStatus Cura_AssignedAccountIdentityReferences( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role, - const char** properties) -{ - return KDefaultReferences( - _cb, - mi, - cc, - cr, - cop, - Cura_AssignedAccountIdentity_ClassName, - assocClass, - role, - properties); -} - -static CMPIStatus Cura_AssignedAccountIdentityReferenceNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role) -{ - return KDefaultReferenceNames( - _cb, - mi, - cc, - cr, - cop, - Cura_AssignedAccountIdentity_ClassName, - assocClass, - role); -} - -CMInstanceMIStub( - Cura_AssignedAccountIdentity, - Cura_AssignedAccountIdentity, - _cb, - Cura_AssignedAccountIdentityInitialize()) - -CMAssociationMIStub( - Cura_AssignedAccountIdentity, - Cura_AssignedAccountIdentity, - _cb, - Cura_AssignedAccountIdentityInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_AssignedAccountIdentity", - "Cura_AssignedAccountIdentity", - "instance association") diff --git a/src/account/Cura_AssignedGroupIdentityProvider.c b/src/account/Cura_AssignedGroupIdentityProvider.c deleted file mode 100644 index 090abbc..0000000 --- a/src/account/Cura_AssignedGroupIdentityProvider.c +++ /dev/null @@ -1,253 +0,0 @@ -#include -#include "Cura_AssignedGroupIdentity.h" -#include "Cura_Identity.h" -#include "Cura_Group.h" - -#include "aux_lu.h" -#include "macros.h" -#include "globals.h" - -#include -#include - -static const CMPIBroker* _cb; - -static void Cura_AssignedGroupIdentityInitialize() -{ -} - -static CMPIStatus Cura_AssignedGroupIdentityCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AssignedGroupIdentityEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_AssignedGroupIdentityEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - Cura_IdentityRef liref; - Cura_GroupRef lgref; - Cura_AssignedGroupIdentity lagi; - - struct lu_context *luc = NULL; - struct lu_error *error = NULL; - GPtrArray *groups = NULL; - struct lu_ent *lue = NULL; - - size_t i; - const char *nameSpace = KNameSpace(cop); - char *gid = NULL; - - luc = lu_start(NULL, lu_group, NULL, NULL, lu_prompt_console_quiet, NULL, &error); - if (!luc) - { - fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); - exit(1); - } - gid = malloc(256 * sizeof(char)); - groups = lu_groups_enumerate_full(luc, "*", &error); - for (i = 0; (groups != NULL) && (i < groups->len); i++) - { - lue = g_ptr_array_index(groups, i); - - Cura_GroupRef_Init(&lgref, _cb, nameSpace); - Cura_GroupRef_Set_CreationClassName(&lgref, Cura_Group_ClassName); - Cura_GroupRef_Set_Name(&lgref, aux_lu_get_str(lue, LU_GROUPNAME)); - - Cura_IdentityRef_Init(&liref, _cb, nameSpace); - snprintf(gid, 255, ORGID":GID:%ld", - aux_lu_get_long(lue, LU_GIDNUMBER)); - Cura_IdentityRef_Set_InstanceID(&liref, gid); - - Cura_AssignedGroupIdentity_Init(&lagi, _cb, nameSpace); - Cura_AssignedGroupIdentity_Set_IdentityInfo(&lagi, &liref); - Cura_AssignedGroupIdentity_Set_ManagedElement(&lagi, &lgref); - - KReturnInstance(cr, lagi); - lu_ent_free(lue); - } /* for */ - free(gid); - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AssignedGroupIdentityGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_AssignedGroupIdentityCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AssignedGroupIdentityModifyInstance( - 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 Cura_AssignedGroupIdentityDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AssignedGroupIdentityExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AssignedGroupIdentityAssociationCleanup( - CMPIAssociationMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AssignedGroupIdentityAssociators( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole, - const char** properties) -{ - return KDefaultAssociators( - _cb, - mi, - cc, - cr, - cop, - Cura_AssignedGroupIdentity_ClassName, - assocClass, - resultClass, - role, - resultRole, - properties); -} - -static CMPIStatus Cura_AssignedGroupIdentityAssociatorNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole) -{ - return KDefaultAssociatorNames( - _cb, - mi, - cc, - cr, - cop, - Cura_AssignedGroupIdentity_ClassName, - assocClass, - resultClass, - role, - resultRole); -} - -static CMPIStatus Cura_AssignedGroupIdentityReferences( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role, - const char** properties) -{ - return KDefaultReferences( - _cb, - mi, - cc, - cr, - cop, - Cura_AssignedGroupIdentity_ClassName, - assocClass, - role, - properties); -} - -static CMPIStatus Cura_AssignedGroupIdentityReferenceNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role) -{ - return KDefaultReferenceNames( - _cb, - mi, - cc, - cr, - cop, - Cura_AssignedGroupIdentity_ClassName, - assocClass, - role); -} - -CMInstanceMIStub( - Cura_AssignedGroupIdentity, - Cura_AssignedGroupIdentity, - _cb, - Cura_AssignedGroupIdentityInitialize()) - -CMAssociationMIStub( - Cura_AssignedGroupIdentity, - Cura_AssignedGroupIdentity, - _cb, - Cura_AssignedGroupIdentityInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_AssignedGroupIdentity", - "Cura_AssignedGroupIdentity", - "instance association") diff --git a/src/account/Cura_ElementSettingDateProvider.c b/src/account/Cura_ElementSettingDateProvider.c deleted file mode 100644 index acbc0b5..0000000 --- a/src/account/Cura_ElementSettingDateProvider.c +++ /dev/null @@ -1,202 +0,0 @@ -#include -#include "Cura_ElementSettingDate.h" - -static const CMPIBroker* _cb; - -static void Cura_ElementSettingDateInitialize() -{ -} - -static CMPIStatus Cura_ElementSettingDateCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_ElementSettingDateEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_ElementSettingDateEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_ElementSettingDateGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_ElementSettingDateCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_ElementSettingDateModifyInstance( - 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 Cura_ElementSettingDateDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_ElementSettingDateExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_ElementSettingDateAssociationCleanup( - CMPIAssociationMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_ElementSettingDateAssociators( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole, - const char** properties) -{ - return KDefaultAssociators( - _cb, - mi, - cc, - cr, - cop, - Cura_ElementSettingDate_ClassName, - assocClass, - resultClass, - role, - resultRole, - properties); -} - -static CMPIStatus Cura_ElementSettingDateAssociatorNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole) -{ - return KDefaultAssociatorNames( - _cb, - mi, - cc, - cr, - cop, - Cura_ElementSettingDate_ClassName, - assocClass, - resultClass, - role, - resultRole); -} - -static CMPIStatus Cura_ElementSettingDateReferences( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role, - const char** properties) -{ - return KDefaultReferences( - _cb, - mi, - cc, - cr, - cop, - Cura_ElementSettingDate_ClassName, - assocClass, - role, - properties); -} - -static CMPIStatus Cura_ElementSettingDateReferenceNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role) -{ - return KDefaultReferenceNames( - _cb, - mi, - cc, - cr, - cop, - Cura_ElementSettingDate_ClassName, - assocClass, - role); -} - -CMInstanceMIStub( - Cura_ElementSettingDate, - Cura_ElementSettingDate, - _cb, - Cura_ElementSettingDateInitialize()) - -CMAssociationMIStub( - Cura_ElementSettingDate, - Cura_ElementSettingDate, - _cb, - Cura_ElementSettingDateInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_ElementSettingDate", - "Cura_ElementSettingDate", - "instance association") diff --git a/src/account/Cura_EnabledAccountCapabilitiesProvider.c b/src/account/Cura_EnabledAccountCapabilitiesProvider.c deleted file mode 100644 index b8ba152..0000000 --- a/src/account/Cura_EnabledAccountCapabilitiesProvider.c +++ /dev/null @@ -1,145 +0,0 @@ -#include -#include "Cura_EnabledAccountCapabilities.h" - -#include "macros.h" -#include "globals.h" - -#include - -static const CMPIBroker* _cb = NULL; - -static void Cura_EnabledAccountCapabilitiesInitialize() -{ -} - -static CMPIStatus Cura_EnabledAccountCapabilitiesCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_EnabledAccountCapabilitiesEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_EnabledAccountCapabilitiesEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - Cura_EnabledAccountCapabilities leac; - - const char *nameSpace = KNameSpace(cop); - - Cura_EnabledAccountCapabilities_Init(&leac, _cb, nameSpace); - Cura_EnabledAccountCapabilities_Set_InstanceID(&leac, ORGID":"LEACNAME); - Cura_EnabledAccountCapabilities_Set_ElementName(&leac, LEACNAME); - Cura_EnabledAccountCapabilities_Init_RequestedStatesSupported(&leac, 0); - Cura_EnabledAccountCapabilities_Set_ElementNameEditSupported(&leac, - false); - - KReturnInstance(cr, leac); - - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_EnabledAccountCapabilitiesGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_EnabledAccountCapabilitiesCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_EnabledAccountCapabilitiesModifyInstance( - 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 Cura_EnabledAccountCapabilitiesDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_EnabledAccountCapabilitiesExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -CMInstanceMIStub( - Cura_EnabledAccountCapabilities, - Cura_EnabledAccountCapabilities, - _cb, - Cura_EnabledAccountCapabilitiesInitialize()) - -static CMPIStatus Cura_EnabledAccountCapabilitiesMethodCleanup( - CMPIMethodMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_EnabledAccountCapabilitiesInvokeMethod( - CMPIMethodMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* meth, - const CMPIArgs* in, - CMPIArgs* out) -{ - return Cura_EnabledAccountCapabilities_DispatchMethod( - _cb, mi, cc, cr, cop, meth, in, out); -} - -CMMethodMIStub( - Cura_EnabledAccountCapabilities, - Cura_EnabledAccountCapabilities, - _cb, - Cura_EnabledAccountCapabilitiesInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_EnabledAccountCapabilities", - "Cura_EnabledAccountCapabilities", - "instance method") diff --git a/src/account/Cura_GroupProvider.c b/src/account/Cura_GroupProvider.c deleted file mode 100644 index 1e585e4..0000000 --- a/src/account/Cura_GroupProvider.c +++ /dev/null @@ -1,176 +0,0 @@ -#include -#include "Cura_Group.h" - -#include -#include - -#include "aux_lu.h" -#include "macros.h" -#include "globals.h" - -static const CMPIBroker* _cb = NULL; - -static void Cura_GroupInitialize() -{ -} - -static CMPIStatus Cura_GroupCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_GroupEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_GroupEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - Cura_Group lg; - struct lu_context *luc = NULL; - struct lu_error *error = NULL; - GPtrArray *groups = NULL; - struct lu_ent *lue = NULL; - size_t i; - const char *nameSpace = KNameSpace(cop); - char *instanceid = NULL; - - luc = lu_start(NULL, lu_group, NULL, NULL, lu_prompt_console_quiet, NULL, &error); - if (!luc) - { - fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); - exit(1); - } - - instanceid = malloc(256 * sizeof(char)); - groups = lu_groups_enumerate_full(luc, "*", &error); - for (i = 0; (groups != NULL) && (i < groups->len); i++) - { - lue = g_ptr_array_index(groups, i); - - Cura_Group_Init(&lg, _cb, nameSpace); - Cura_Group_Set_CreationClassName(&lg, Cura_Group_ClassName); - Cura_Group_Set_Name(&lg, aux_lu_get_str(lue, LU_GROUPNAME)); - Cura_Group_Set_ElementName(&lg, aux_lu_get_str(lue, LU_GROUPNAME)); - Cura_Group_Set_CommonName(&lg, aux_lu_get_str(lue, LU_GROUPNAME)); - snprintf(instanceid, 255, ORGID":GID:%ld", - aux_lu_get_long(lue, LU_GIDNUMBER)); - Cura_Group_Set_InstanceID(&lg, instanceid); - KReturnInstance(cr, lg); - lu_ent_free(lue); - } /* for */ - free(instanceid); - - if (groups) - { - g_ptr_array_free(groups, TRUE); - } - - lu_end(luc); - - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_GroupGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_GroupCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_GroupModifyInstance( - 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 Cura_GroupDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_GroupExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -CMInstanceMIStub( - Cura_Group, - Cura_Group, - _cb, - Cura_GroupInitialize()) - -static CMPIStatus Cura_GroupMethodCleanup( - CMPIMethodMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_GroupInvokeMethod( - CMPIMethodMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* meth, - const CMPIArgs* in, - CMPIArgs* out) -{ - return Cura_Group_DispatchMethod( - _cb, mi, cc, cr, cop, meth, in, out); -} - -CMMethodMIStub( - Cura_Group, - Cura_Group, - _cb, - Cura_GroupInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_Group", - "Cura_Group", - "instance method") diff --git a/src/account/Cura_HostedServiceProvider.c b/src/account/Cura_HostedServiceProvider.c deleted file mode 100644 index 2e252e7..0000000 --- a/src/account/Cura_HostedServiceProvider.c +++ /dev/null @@ -1,239 +0,0 @@ -#include -#include "Cura_HostedService.h" -#include "CIM_ComputerSystem.h" -#include "Cura_AccountManagementService.h" - -#include "macros.h" -#include "globals.h" - -static const CMPIBroker* _cb; - -static void Cura_HostedServiceInitialize() -{ -} - -static CMPIStatus Cura_HostedServiceCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_HostedServiceEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_HostedServiceEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - CIM_ComputerSystemRef lcsref; - Cura_AccountManagementServiceRef lamsref; - Cura_HostedService lhs; - - CMPIObjectPath *computerSystemOP = NULL; - CMPIStatus rc; - - const char *nameSpace = KNameSpace(cop); - const char *hostname = get_system_name(); - - CIM_ComputerSystemRef_Init(&lcsref, _cb, nameSpace); - CIM_ComputerSystemRef_Set_Name(&lcsref, hostname); - CIM_ComputerSystemRef_Set_CreationClassName(&lcsref, - get_system_creation_class_name()); - - computerSystemOP = CIM_ComputerSystemRef_ToObjectPath(&lcsref, &rc); - computerSystemOP->ft->setClassName(computerSystemOP, - get_system_creation_class_name()); - - Cura_AccountManagementServiceRef_Init(&lamsref, _cb, nameSpace); - Cura_AccountManagementServiceRef_Set_Name(&lamsref, LAMSNAME); - Cura_AccountManagementServiceRef_Set_SystemCreationClassName(&lamsref, - get_system_creation_class_name()); - Cura_AccountManagementServiceRef_Set_SystemName(&lamsref, hostname); - Cura_AccountManagementServiceRef_Set_CreationClassName(&lamsref, - Cura_AccountManagementService_ClassName); - - Cura_HostedService_Init(&lhs, _cb, nameSpace); - Cura_HostedService_SetObjectPath_Antecedent(&lhs, computerSystemOP); - Cura_HostedService_Set_Dependent(&lhs, &lamsref); - - KReturnInstance(cr, lhs); - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_HostedServiceGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_HostedServiceCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_HostedServiceModifyInstance( - 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 Cura_HostedServiceDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_HostedServiceExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_HostedServiceAssociationCleanup( - CMPIAssociationMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_HostedServiceAssociators( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole, - const char** properties) -{ - return KDefaultAssociators( - _cb, - mi, - cc, - cr, - cop, - Cura_HostedService_ClassName, - assocClass, - resultClass, - role, - resultRole, - properties); -} - -static CMPIStatus Cura_HostedServiceAssociatorNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole) -{ - return KDefaultAssociatorNames( - _cb, - mi, - cc, - cr, - cop, - Cura_HostedService_ClassName, - assocClass, - resultClass, - role, - resultRole); -} - -static CMPIStatus Cura_HostedServiceReferences( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role, - const char** properties) -{ - return KDefaultReferences( - _cb, - mi, - cc, - cr, - cop, - Cura_HostedService_ClassName, - assocClass, - role, - properties); -} - -static CMPIStatus Cura_HostedServiceReferenceNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role) -{ - return KDefaultReferenceNames( - _cb, - mi, - cc, - cr, - cop, - Cura_HostedService_ClassName, - assocClass, - role); -} - -CMInstanceMIStub( - Cura_HostedService, - Cura_HostedService, - _cb, - Cura_HostedServiceInitialize()) - -CMAssociationMIStub( - Cura_HostedService, - Cura_HostedService, - _cb, - Cura_HostedServiceInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_HostedService", - "Cura_HostedService", - "instance association") diff --git a/src/account/Cura_IdentityProvider.c b/src/account/Cura_IdentityProvider.c deleted file mode 100644 index 9277239..0000000 --- a/src/account/Cura_IdentityProvider.c +++ /dev/null @@ -1,190 +0,0 @@ -#include -#include "Cura_Identity.h" - -#include -#include - -#include "macros.h" -#include "globals.h" -#include "aux_lu.h" - -static const CMPIBroker* _cb = NULL; - -static void Cura_IdentityInitialize() -{ -} - -static CMPIStatus Cura_IdentityCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_IdentityEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_IdentityEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - Cura_Identity li; - struct lu_context *luc = NULL; - struct lu_error *error = NULL; - GPtrArray *accounts = NULL; - struct lu_ent *lue = NULL; - char *instanceid = NULL; - unsigned int i = 0; - const char *nameSpace = KNameSpace(cop); - - luc = lu_start(NULL, lu_user, NULL, NULL, lu_prompt_console_quiet, NULL, &error); - if (!luc) - { - fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); - exit(1); - } - - instanceid = malloc(256 * sizeof(char)); - - /* USERS */ - accounts = lu_users_enumerate_full(luc, "*", &error); - for (i = 0; (accounts != NULL) && (i < accounts->len); i++) - { - lue = g_ptr_array_index(accounts, i); - Cura_Identity_Init(&li, _cb, nameSpace); - - /* Need to convert long int UID to the string */ - snprintf(instanceid, 255, ORGID":UID:%ld", - aux_lu_get_long(lue, LU_UIDNUMBER)); - Cura_Identity_Set_InstanceID(&li, instanceid); - Cura_Identity_Set_ElementName(&li, aux_lu_get_str(lue, LU_GECOS)); - KReturnInstance(cr, li); - } - - /* GOUPRS */ - accounts = lu_groups_enumerate_full(luc, "*", &error); - for (i = 0; (accounts != NULL) && (i < accounts->len); i++) - { - lue = g_ptr_array_index(accounts, i); - Cura_Identity_Init(&li, _cb, nameSpace); - - /* Need to convert long int UID to the string */ - snprintf(instanceid, 255, ORGID":GID:%ld", - aux_lu_get_long(lue, LU_GIDNUMBER)); - Cura_Identity_Set_InstanceID(&li, instanceid); - Cura_Identity_Set_ElementName(&li, aux_lu_get_str(lue, LU_GROUPNAME)); - KReturnInstance(cr, li); - lu_ent_free(lue); - } - - free(instanceid); - if (accounts) - { - g_ptr_array_free(accounts, TRUE); - } - lu_end(luc); - - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_IdentityGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_IdentityCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_IdentityModifyInstance( - 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 Cura_IdentityDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_IdentityExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -CMInstanceMIStub( - Cura_Identity, - Cura_Identity, - _cb, - Cura_IdentityInitialize()) - -static CMPIStatus Cura_IdentityMethodCleanup( - CMPIMethodMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_IdentityInvokeMethod( - CMPIMethodMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* meth, - const CMPIArgs* in, - CMPIArgs* out) -{ - return Cura_Identity_DispatchMethod( - _cb, mi, cc, cr, cop, meth, in, out); -} - -CMMethodMIStub( - Cura_Identity, - Cura_Identity, - _cb, - Cura_IdentityInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_Identity", - "Cura_Identity", - "instance method") diff --git a/src/account/Cura_MemberOfGroupProvider.c b/src/account/Cura_MemberOfGroupProvider.c deleted file mode 100644 index 1190fb6..0000000 --- a/src/account/Cura_MemberOfGroupProvider.c +++ /dev/null @@ -1,280 +0,0 @@ -#include -#include "Cura_MemberOfGroup.h" -#include "Cura_Group.h" -#include "Cura_Identity.h" - -#include "aux_lu.h" -#include "macros.h" -#include "globals.h" - -#include -#include - -static const CMPIBroker* _cb; - -static void Cura_MemberOfGroupInitialize() -{ -} - -static CMPIStatus Cura_MemberOfGroupCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_MemberOfGroupEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_MemberOfGroupEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - Cura_GroupRef lgref; - Cura_IdentityRef liref; - Cura_MemberOfGroup lmog; - - struct lu_context *luc = NULL; - struct lu_error *error = NULL; - GPtrArray *groups = NULL; - GValueArray *accounts = NULL; - struct lu_ent *lueg = NULL; - struct lu_ent *luea = NULL; - - size_t i, j; - const char *nameSpace = KNameSpace(cop); - char *uid = NULL; - - luc = lu_start(NULL, 0, NULL, NULL, lu_prompt_console_quiet, NULL, &error); - if (!luc) - { - fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); - exit(1); - } - uid = malloc(256 * sizeof(char)); - /* Go through each group */ - groups = lu_groups_enumerate_full(luc, "*", &error); - for (i = 0; (groups != NULL) && (i < groups->len); i++) - { - lueg = g_ptr_array_index(groups, i); - Cura_GroupRef_Init(&lgref, _cb, nameSpace); - Cura_GroupRef_Set_CreationClassName(&lgref, Cura_Group_ClassName); - Cura_GroupRef_Set_Name(&lgref, aux_lu_get_str(lueg, LU_GROUPNAME)); - - /* For each user in the group */ - accounts = lu_users_enumerate_by_group(luc, - aux_lu_get_str(lueg, LU_GROUPNAME), &error); - for (j = 0; (accounts != NULL) && (j < accounts->n_values); j++) - { - luea = lu_ent_new(); - lu_user_lookup_name(luc, - g_value_get_string(g_value_array_get_nth(accounts, j)), - luea, &error); - snprintf(uid, 255, ORGID":UID:%ld", - aux_lu_get_long(luea, LU_UIDNUMBER)); - Cura_IdentityRef_Init(&liref, _cb, nameSpace); - Cura_IdentityRef_Set_InstanceID(&liref, uid); - - Cura_MemberOfGroup_Init(&lmog, _cb, nameSpace); - Cura_MemberOfGroup_Set_Collection(&lmog, &lgref); - Cura_MemberOfGroup_Set_Member(&lmog, &liref); - - KReturnInstance(cr, lmog); - lu_ent_free(luea); - } /* for users */ - if (accounts) - { - g_value_array_free(accounts); - } - - - lu_ent_free(lueg); - } /* for groups */ - free(uid); - - if (groups) - { - g_ptr_array_free(groups, TRUE); - } - - lu_end(luc); - - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_MemberOfGroupGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_MemberOfGroupCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_MemberOfGroupModifyInstance( - 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 Cura_MemberOfGroupDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_MemberOfGroupExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_MemberOfGroupAssociationCleanup( - CMPIAssociationMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_MemberOfGroupAssociators( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole, - const char** properties) -{ - return KDefaultAssociators( - _cb, - mi, - cc, - cr, - cop, - Cura_MemberOfGroup_ClassName, - assocClass, - resultClass, - role, - resultRole, - properties); -} - -static CMPIStatus Cura_MemberOfGroupAssociatorNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole) -{ - return KDefaultAssociatorNames( - _cb, - mi, - cc, - cr, - cop, - Cura_MemberOfGroup_ClassName, - assocClass, - resultClass, - role, - resultRole); -} - -static CMPIStatus Cura_MemberOfGroupReferences( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role, - const char** properties) -{ - return KDefaultReferences( - _cb, - mi, - cc, - cr, - cop, - Cura_MemberOfGroup_ClassName, - assocClass, - role, - properties); -} - -static CMPIStatus Cura_MemberOfGroupReferenceNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role) -{ - return KDefaultReferenceNames( - _cb, - mi, - cc, - cr, - cop, - Cura_MemberOfGroup_ClassName, - assocClass, - role); -} - -CMInstanceMIStub( - Cura_MemberOfGroup, - Cura_MemberOfGroup, - _cb, - Cura_MemberOfGroupInitialize()) - -CMAssociationMIStub( - Cura_MemberOfGroup, - Cura_MemberOfGroup, - _cb, - Cura_MemberOfGroupInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_MemberOfGroup", - "Cura_MemberOfGroup", - "instance association") diff --git a/src/account/Cura_OwningGroupProvider.c b/src/account/Cura_OwningGroupProvider.c deleted file mode 100644 index f4592f2..0000000 --- a/src/account/Cura_OwningGroupProvider.c +++ /dev/null @@ -1,266 +0,0 @@ -#include -#include "Cura_OwningGroup.h" -#include "CIM_ComputerSystem.h" -#include "Cura_Group.h" - -#include "macros.h" -#include "globals.h" -#include "aux_lu.h" - -#include -#include - -static const CMPIBroker* _cb; - -static void Cura_OwningGroupInitialize() -{ -} - -static CMPIStatus Cura_OwningGroupCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_OwningGroupEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_OwningGroupEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - CIM_ComputerSystemRef lcsref; - Cura_GroupRef lgref; - Cura_OwningGroup log; - - CMPIObjectPath *computerSystemOP = NULL; - CMPIStatus rc; - - struct lu_context *luc = NULL; - struct lu_error *error = NULL; - GPtrArray *groups = NULL; - struct lu_ent *lue = NULL; - - size_t i; - const char *nameSpace = KNameSpace(cop); - const char *hostname = get_system_name(); - - CIM_ComputerSystemRef_Init(&lcsref, _cb, nameSpace); - CIM_ComputerSystemRef_Set_Name(&lcsref, hostname); - CIM_ComputerSystemRef_Set_CreationClassName(&lcsref, - get_system_creation_class_name()); - - computerSystemOP = CIM_ComputerSystemRef_ToObjectPath(&lcsref, &rc); - computerSystemOP->ft->setClassName(computerSystemOP, - get_system_creation_class_name()); - - luc = lu_start(NULL, lu_group, NULL, NULL, lu_prompt_console_quiet, NULL, &error); - if (!luc) - { - fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); - exit(1); - } - groups = lu_groups_enumerate_full(luc, "*", &error); - for (i = 0; (groups != NULL) && (i < groups->len); i++) - { - lue = g_ptr_array_index(groups, i); - - Cura_GroupRef_Init(&lgref, _cb, nameSpace); - Cura_GroupRef_Set_Name(&lgref, aux_lu_get_str(lue, LU_GROUPNAME)); - Cura_GroupRef_Set_CreationClassName(&lgref, Cura_Group_ClassName); - - Cura_OwningGroup_Init(&log, _cb, nameSpace); - Cura_OwningGroup_SetObjectPath_OwningElement(&log, computerSystemOP); - Cura_OwningGroup_Set_OwnedElement(&log, &lgref); - - KReturnInstance(cr, log); - lu_ent_free(lue); - } /* for */ - - if (groups) - { - g_ptr_array_free(groups, TRUE); - } - - lu_end(luc); - - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_OwningGroupGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_OwningGroupCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_OwningGroupModifyInstance( - 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 Cura_OwningGroupDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_OwningGroupExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_OwningGroupAssociationCleanup( - CMPIAssociationMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_OwningGroupAssociators( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole, - const char** properties) -{ - return KDefaultAssociators( - _cb, - mi, - cc, - cr, - cop, - Cura_OwningGroup_ClassName, - assocClass, - resultClass, - role, - resultRole, - properties); -} - -static CMPIStatus Cura_OwningGroupAssociatorNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole) -{ - return KDefaultAssociatorNames( - _cb, - mi, - cc, - cr, - cop, - Cura_OwningGroup_ClassName, - assocClass, - resultClass, - role, - resultRole); -} - -static CMPIStatus Cura_OwningGroupReferences( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role, - const char** properties) -{ - return KDefaultReferences( - _cb, - mi, - cc, - cr, - cop, - Cura_OwningGroup_ClassName, - assocClass, - role, - properties); -} - -static CMPIStatus Cura_OwningGroupReferenceNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role) -{ - return KDefaultReferenceNames( - _cb, - mi, - cc, - cr, - cop, - Cura_OwningGroup_ClassName, - assocClass, - role); -} - -CMInstanceMIStub( - Cura_OwningGroup, - Cura_OwningGroup, - _cb, - Cura_OwningGroupInitialize()) - -CMAssociationMIStub( - Cura_OwningGroup, - Cura_OwningGroup, - _cb, - Cura_OwningGroupInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_OwningGroup", - "Cura_OwningGroup", - "instance association") diff --git a/src/account/Cura_ServiceAffectsIdentityProvider.c b/src/account/Cura_ServiceAffectsIdentityProvider.c deleted file mode 100644 index c62be93..0000000 --- a/src/account/Cura_ServiceAffectsIdentityProvider.c +++ /dev/null @@ -1,300 +0,0 @@ -#include -#include "Cura_ServiceAffectsIdentity.h" -#include "Cura_AccountManagementService.h" -#include "Cura_Identity.h" - -#include "macros.h" -#include "globals.h" -#include "aux_lu.h" - -#include -#include - -static const CMPIBroker* _cb; - -static void Cura_ServiceAffectsIdentityInitialize() -{ -} - -static CMPIStatus Cura_ServiceAffectsIdentityCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_ServiceAffectsIdentityEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_ServiceAffectsIdentityEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - Cura_IdentityRef liref; - Cura_AccountManagementServiceRef lamsref; - Cura_ServiceAffectsIdentity lsai; - - struct lu_context *luc = NULL; - struct lu_error *error = NULL; - GPtrArray *accounts = NULL; - struct lu_ent *lue = NULL; - size_t i; - char *id = NULL; - - const char *nameSpace = KNameSpace(cop); - const char *hostname = get_system_name(); - - Cura_AccountManagementServiceRef_Init(&lamsref, _cb, nameSpace); - Cura_AccountManagementServiceRef_Set_Name(&lamsref, LAMSNAME); - Cura_AccountManagementServiceRef_Set_SystemCreationClassName(&lamsref, - get_system_creation_class_name()); - Cura_AccountManagementServiceRef_Set_SystemName(&lamsref, hostname); - Cura_AccountManagementServiceRef_Set_CreationClassName(&lamsref, - Cura_AccountManagementService_ClassName); - - luc = lu_start(NULL, lu_user, NULL, NULL, lu_prompt_console_quiet, NULL, &error); - if (!luc) - { - fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); - exit(1); - } - - id = malloc(256 * sizeof(char)); - - /* Go through every accounts first */ - accounts = lu_users_enumerate_full(luc, "*", &error); - for (i = 0; (accounts != NULL) && (i < accounts->len); i++) - { - lue = g_ptr_array_index(accounts, i); - - Cura_IdentityRef_Init(&liref, _cb, nameSpace); - snprintf(id, 255, ORGID":UID:%ld", - aux_lu_get_long(lue, LU_UIDNUMBER)); - Cura_IdentityRef_Set_InstanceID(&liref, id); - - Cura_ServiceAffectsIdentity_Init(&lsai, _cb, nameSpace); - Cura_ServiceAffectsIdentity_Set_AffectedElement(&lsai, &liref); - Cura_ServiceAffectsIdentity_Set_AffectingElement(&lsai, &lamsref); - Cura_ServiceAffectsIdentity_Init_ElementEffects(&lsai, 1); - Cura_ServiceAffectsIdentity_Set_ElementEffects(&lsai, 0, - Cura_ServiceAffectsIdentity_ElementEffects_Manages); - - KReturnInstance(cr, lsai); - lu_ent_free(lue); - } /* for accounts */ - - if (accounts) - { - g_ptr_array_free(accounts, TRUE); - } - - /* Go through every groups */ - accounts = lu_groups_enumerate_full(luc, "*", &error); - for (i = 0; (accounts != NULL) && (i < accounts->len); i++) - { - lue = g_ptr_array_index(accounts, i); - - Cura_IdentityRef_Init(&liref, _cb, nameSpace); - snprintf(id, 255, ORGID":GID:%ld", - aux_lu_get_long(lue, LU_GIDNUMBER)); - Cura_IdentityRef_Set_InstanceID(&liref, id); - - Cura_ServiceAffectsIdentity_Init(&lsai, _cb, nameSpace); - Cura_ServiceAffectsIdentity_Set_AffectedElement(&lsai, &liref); - Cura_ServiceAffectsIdentity_Set_AffectingElement(&lsai, &lamsref); - Cura_ServiceAffectsIdentity_Init_ElementEffects(&lsai, 1); - Cura_ServiceAffectsIdentity_Set_ElementEffects(&lsai, 0, - Cura_ServiceAffectsIdentity_ElementEffects_Manages); - - KReturnInstance(cr, lsai); - - lu_ent_free(lue); - } /* for accounts */ - - if (accounts) - { - g_ptr_array_free(accounts, TRUE); - } - - free(id); - lu_end(luc); - - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_ServiceAffectsIdentityGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_ServiceAffectsIdentityCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_ServiceAffectsIdentityModifyInstance( - 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 Cura_ServiceAffectsIdentityDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_ServiceAffectsIdentityExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_ServiceAffectsIdentityAssociationCleanup( - CMPIAssociationMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_ServiceAffectsIdentityAssociators( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole, - const char** properties) -{ - return KDefaultAssociators( - _cb, - mi, - cc, - cr, - cop, - Cura_ServiceAffectsIdentity_ClassName, - assocClass, - resultClass, - role, - resultRole, - properties); -} - -static CMPIStatus Cura_ServiceAffectsIdentityAssociatorNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole) -{ - return KDefaultAssociatorNames( - _cb, - mi, - cc, - cr, - cop, - Cura_ServiceAffectsIdentity_ClassName, - assocClass, - resultClass, - role, - resultRole); -} - -static CMPIStatus Cura_ServiceAffectsIdentityReferences( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role, - const char** properties) -{ - return KDefaultReferences( - _cb, - mi, - cc, - cr, - cop, - Cura_ServiceAffectsIdentity_ClassName, - assocClass, - role, - properties); -} - -static CMPIStatus Cura_ServiceAffectsIdentityReferenceNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role) -{ - return KDefaultReferenceNames( - _cb, - mi, - cc, - cr, - cop, - Cura_ServiceAffectsIdentity_ClassName, - assocClass, - role); -} - -CMInstanceMIStub( - Cura_ServiceAffectsIdentity, - Cura_ServiceAffectsIdentity, - _cb, - Cura_ServiceAffectsIdentityInitialize()) - -CMAssociationMIStub( - Cura_ServiceAffectsIdentity, - Cura_ServiceAffectsIdentity, - _cb, - Cura_ServiceAffectsIdentityInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_ServiceAffectsIdentity", - "Cura_ServiceAffectsIdentity", - "instance association") diff --git a/src/account/Cura_SettingsDefineAccountCapabilitiesProvider.c b/src/account/Cura_SettingsDefineAccountCapabilitiesProvider.c deleted file mode 100644 index a1f1563..0000000 --- a/src/account/Cura_SettingsDefineAccountCapabilitiesProvider.c +++ /dev/null @@ -1,202 +0,0 @@ -#include -#include "Cura_SettingsDefineAccountCapabilities.h" - -static const CMPIBroker* _cb; - -static void Cura_SettingsDefineAccountCapabilitiesInitialize() -{ -} - -static CMPIStatus Cura_SettingsDefineAccountCapabilitiesCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_SettingsDefineAccountCapabilitiesEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_SettingsDefineAccountCapabilitiesEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_SettingsDefineAccountCapabilitiesGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_SettingsDefineAccountCapabilitiesCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_SettingsDefineAccountCapabilitiesModifyInstance( - 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 Cura_SettingsDefineAccountCapabilitiesDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_SettingsDefineAccountCapabilitiesExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_SettingsDefineAccountCapabilitiesAssociationCleanup( - CMPIAssociationMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_SettingsDefineAccountCapabilitiesAssociators( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole, - const char** properties) -{ - return KDefaultAssociators( - _cb, - mi, - cc, - cr, - cop, - Cura_SettingsDefineAccountCapabilities_ClassName, - assocClass, - resultClass, - role, - resultRole, - properties); -} - -static CMPIStatus Cura_SettingsDefineAccountCapabilitiesAssociatorNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole) -{ - return KDefaultAssociatorNames( - _cb, - mi, - cc, - cr, - cop, - Cura_SettingsDefineAccountCapabilities_ClassName, - assocClass, - resultClass, - role, - resultRole); -} - -static CMPIStatus Cura_SettingsDefineAccountCapabilitiesReferences( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role, - const char** properties) -{ - return KDefaultReferences( - _cb, - mi, - cc, - cr, - cop, - Cura_SettingsDefineAccountCapabilities_ClassName, - assocClass, - role, - properties); -} - -static CMPIStatus Cura_SettingsDefineAccountCapabilitiesReferenceNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role) -{ - return KDefaultReferenceNames( - _cb, - mi, - cc, - cr, - cop, - Cura_SettingsDefineAccountCapabilities_ClassName, - assocClass, - role); -} - -CMInstanceMIStub( - Cura_SettingsDefineAccountCapabilities, - Cura_SettingsDefineAccountCapabilities, - _cb, - Cura_SettingsDefineAccountCapabilitiesInitialize()) - -CMAssociationMIStub( - Cura_SettingsDefineAccountCapabilities, - Cura_SettingsDefineAccountCapabilities, - _cb, - Cura_SettingsDefineAccountCapabilitiesInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_SettingsDefineAccountCapabilities", - "Cura_SettingsDefineAccountCapabilities", - "instance association") diff --git a/src/account/Cura_SettingsDefineManagementCapabilitiesProvider.c b/src/account/Cura_SettingsDefineManagementCapabilitiesProvider.c deleted file mode 100644 index bd89874..0000000 --- a/src/account/Cura_SettingsDefineManagementCapabilitiesProvider.c +++ /dev/null @@ -1,202 +0,0 @@ -#include -#include "Cura_SettingsDefineManagementCapabilities.h" - -static const CMPIBroker* _cb; - -static void Cura_SettingsDefineManagementCapabilitiesInitialize() -{ -} - -static CMPIStatus Cura_SettingsDefineManagementCapabilitiesCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_SettingsDefineManagementCapabilitiesEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_SettingsDefineManagementCapabilitiesEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_SettingsDefineManagementCapabilitiesGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_SettingsDefineManagementCapabilitiesCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_SettingsDefineManagementCapabilitiesModifyInstance( - 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 Cura_SettingsDefineManagementCapabilitiesDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_SettingsDefineManagementCapabilitiesExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_SettingsDefineManagementCapabilitiesAssociationCleanup( - CMPIAssociationMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_SettingsDefineManagementCapabilitiesAssociators( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole, - const char** properties) -{ - return KDefaultAssociators( - _cb, - mi, - cc, - cr, - cop, - Cura_SettingsDefineManagementCapabilities_ClassName, - assocClass, - resultClass, - role, - resultRole, - properties); -} - -static CMPIStatus Cura_SettingsDefineManagementCapabilitiesAssociatorNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole) -{ - return KDefaultAssociatorNames( - _cb, - mi, - cc, - cr, - cop, - Cura_SettingsDefineManagementCapabilities_ClassName, - assocClass, - resultClass, - role, - resultRole); -} - -static CMPIStatus Cura_SettingsDefineManagementCapabilitiesReferences( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role, - const char** properties) -{ - return KDefaultReferences( - _cb, - mi, - cc, - cr, - cop, - Cura_SettingsDefineManagementCapabilities_ClassName, - assocClass, - role, - properties); -} - -static CMPIStatus Cura_SettingsDefineManagementCapabilitiesReferenceNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role) -{ - return KDefaultReferenceNames( - _cb, - mi, - cc, - cr, - cop, - Cura_SettingsDefineManagementCapabilities_ClassName, - assocClass, - role); -} - -CMInstanceMIStub( - Cura_SettingsDefineManagementCapabilities, - Cura_SettingsDefineManagementCapabilities, - _cb, - Cura_SettingsDefineManagementCapabilitiesInitialize()) - -CMAssociationMIStub( - Cura_SettingsDefineManagementCapabilities, - Cura_SettingsDefineManagementCapabilities, - _cb, - Cura_SettingsDefineManagementCapabilitiesInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_SettingsDefineManagementCapabilities", - "Cura_SettingsDefineManagementCapabilities", - "instance association") diff --git a/src/account/LMI_AccountCapabilitiesProvider.c b/src/account/LMI_AccountCapabilitiesProvider.c new file mode 100644 index 0000000..323f611 --- /dev/null +++ b/src/account/LMI_AccountCapabilitiesProvider.c @@ -0,0 +1,265 @@ +#include +#include "LMI_AccountCapabilities.h" +#include "LMI_Account.h" +#include "LMI_EnabledAccountCapabilities.h" + +#include "macros.h" +#include "globals.h" +#include "aux_lu.h" + +#include +#include + +#include + +static const CMPIBroker* _cb; + +static void LMI_AccountCapabilitiesInitialize() +{ +} + +static CMPIStatus LMI_AccountCapabilitiesCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountCapabilitiesEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_AccountCapabilitiesEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + LMI_AccountRef laref; + LMI_EnabledAccountCapabilitiesRef leacref; + LMI_AccountCapabilities lac; + + struct lu_context *luc = NULL; + struct lu_error *error = NULL; + GPtrArray *accounts = NULL; + struct lu_ent *lue = NULL; + + size_t i; + const char *nameSpace = KNameSpace(cop); + const char *hostname = get_system_name(); + + LMI_EnabledAccountCapabilitiesRef_Init(&leacref, _cb, nameSpace); + LMI_EnabledAccountCapabilitiesRef_Set_InstanceID(&leacref, + ORGID":"LEACNAME); + + luc = lu_start(NULL, lu_user, NULL, NULL, lu_prompt_console_quiet, NULL, &error); + if (!luc) + { + fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); + exit(1); + } + accounts = lu_users_enumerate_full(luc, "*", &error); + + for (i = 0; (accounts != NULL) && (i < accounts->len); i++) + { + lue = g_ptr_array_index(accounts, i); + + LMI_AccountRef_Init(&laref, _cb, nameSpace); + LMI_AccountRef_Set_Name(&laref, aux_lu_get_str(lue, LU_USERNAME)); + LMI_AccountRef_Set_SystemCreationClassName(&laref, + get_system_creation_class_name()); + LMI_AccountRef_Set_SystemName(&laref, hostname); + LMI_AccountRef_Set_CreationClassName(&laref, + LMI_Account_ClassName); + + LMI_AccountCapabilities_Init(&lac, _cb, nameSpace); + LMI_AccountCapabilities_Set_ManagedElement(&lac, &laref); + LMI_AccountCapabilities_Set_Capabilities(&lac, &leacref); + + KReturnInstance(cr, lac); + lu_ent_free(lue); + } /* for */ + + if (accounts) + { + g_ptr_array_free(accounts, TRUE); + } + + lu_end(luc); + + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountCapabilitiesGetInstance( + 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_AccountCapabilitiesCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountCapabilitiesModifyInstance( + 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_AccountCapabilitiesDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountCapabilitiesExecQuery( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* lang, + const char* query) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountCapabilitiesAssociationCleanup( + CMPIAssociationMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountCapabilitiesAssociators( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole, + const char** properties) +{ + return KDefaultAssociators( + _cb, + mi, + cc, + cr, + cop, + LMI_AccountCapabilities_ClassName, + assocClass, + resultClass, + role, + resultRole, + properties); +} + +static CMPIStatus LMI_AccountCapabilitiesAssociatorNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole) +{ + return KDefaultAssociatorNames( + _cb, + mi, + cc, + cr, + cop, + LMI_AccountCapabilities_ClassName, + assocClass, + resultClass, + role, + resultRole); +} + +static CMPIStatus LMI_AccountCapabilitiesReferences( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role, + const char** properties) +{ + return KDefaultReferences( + _cb, + mi, + cc, + cr, + cop, + LMI_AccountCapabilities_ClassName, + assocClass, + role, + properties); +} + +static CMPIStatus LMI_AccountCapabilitiesReferenceNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role) +{ + return KDefaultReferenceNames( + _cb, + mi, + cc, + cr, + cop, + LMI_AccountCapabilities_ClassName, + assocClass, + role); +} + +CMInstanceMIStub( + LMI_AccountCapabilities, + LMI_AccountCapabilities, + _cb, + LMI_AccountCapabilitiesInitialize()) + +CMAssociationMIStub( + LMI_AccountCapabilities, + LMI_AccountCapabilities, + _cb, + LMI_AccountCapabilitiesInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_AccountCapabilities", + "LMI_AccountCapabilities", + "instance association") diff --git a/src/account/LMI_AccountManagementCapabilitiesProvider.c b/src/account/LMI_AccountManagementCapabilitiesProvider.c new file mode 100644 index 0000000..e08dd66 --- /dev/null +++ b/src/account/LMI_AccountManagementCapabilitiesProvider.c @@ -0,0 +1,154 @@ +#include +#include "LMI_AccountManagementCapabilities.h" + +#include + +#include "macros.h" +#include "globals.h" + +#define NAME LAMCNAME + +static const CMPIBroker* _cb = NULL; + +static void LMI_AccountManagementCapabilitiesInitialize() +{ +} + +static CMPIStatus LMI_AccountManagementCapabilitiesCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountManagementCapabilitiesEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_AccountManagementCapabilitiesEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + LMI_AccountManagementCapabilities lamc; + + LMI_AccountManagementCapabilities_Init(&lamc, _cb, KNameSpace(cop)); + LMI_AccountManagementCapabilities_Set_ElementNameEditSupported( + &lamc, false); + LMI_AccountManagementCapabilities_Set_InstanceID(&lamc, ORGID":"LAMCNAME); + LMI_AccountManagementCapabilities_Set_ElementName(&lamc, NAME); + + LMI_AccountManagementCapabilities_Init_OperationsSupported(&lamc, 3); + LMI_AccountManagementCapabilities_Set_OperationsSupported(&lamc, 0, + LMI_AccountManagementCapabilities_OperationsSupported_Create); + LMI_AccountManagementCapabilities_Set_OperationsSupported(&lamc, 1, + LMI_AccountManagementCapabilities_OperationsSupported_Modify); + LMI_AccountManagementCapabilities_Set_OperationsSupported(&lamc, 2, + LMI_AccountManagementCapabilities_OperationsSupported_Delete); + + LMI_AccountManagementCapabilities_Init_SupportedUserPasswordEncryptionAlgorithms(&lamc, 1); + LMI_AccountManagementCapabilities_Set_SupportedUserPasswordEncryptionAlgorithms(&lamc, 0, LMI_AccountManagementCapabilities_SupportedUserPasswordEncryptionAlgorithms_Other); + + KReturnInstance(cr, lamc); + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountManagementCapabilitiesGetInstance( + 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_AccountManagementCapabilitiesCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountManagementCapabilitiesModifyInstance( + 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_AccountManagementCapabilitiesDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountManagementCapabilitiesExecQuery( + 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_AccountManagementCapabilities, + LMI_AccountManagementCapabilities, + _cb, + LMI_AccountManagementCapabilitiesInitialize()) + +static CMPIStatus LMI_AccountManagementCapabilitiesMethodCleanup( + CMPIMethodMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountManagementCapabilitiesInvokeMethod( + CMPIMethodMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* meth, + const CMPIArgs* in, + CMPIArgs* out) +{ + return LMI_AccountManagementCapabilities_DispatchMethod( + _cb, mi, cc, cr, cop, meth, in, out); +} + +CMMethodMIStub( + LMI_AccountManagementCapabilities, + LMI_AccountManagementCapabilities, + _cb, + LMI_AccountManagementCapabilitiesInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_AccountManagementCapabilities", + "LMI_AccountManagementCapabilities", + "instance method") diff --git a/src/account/LMI_AccountManagementServiceCapabilitiesProvider.c b/src/account/LMI_AccountManagementServiceCapabilitiesProvider.c new file mode 100644 index 0000000..fb334c1 --- /dev/null +++ b/src/account/LMI_AccountManagementServiceCapabilitiesProvider.c @@ -0,0 +1,234 @@ +#include +#include "LMI_AccountManagementServiceCapabilities.h" +#include "LMI_AccountManagementService.h" +#include "LMI_AccountManagementCapabilities.h" + +#include "macros.h" +#include "globals.h" + +static const CMPIBroker* _cb; + +static void LMI_AccountManagementServiceCapabilitiesInitialize() +{ +} + +static CMPIStatus LMI_AccountManagementServiceCapabilitiesCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountManagementServiceCapabilitiesEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_AccountManagementServiceCapabilitiesEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + LMI_AccountManagementServiceRef lamsref; + LMI_AccountManagementCapabilitiesRef lamcref; + LMI_AccountManagementServiceCapabilities lamsc; + + const char *nameSpace = KNameSpace(cop); + const char *hostname = get_system_name(); + + LMI_AccountManagementServiceRef_Init(&lamsref, _cb, nameSpace); + LMI_AccountManagementServiceRef_Set_Name(&lamsref, LAMSNAME); + LMI_AccountManagementServiceRef_Set_SystemCreationClassName(&lamsref, + get_system_creation_class_name()); + LMI_AccountManagementServiceRef_Set_SystemName(&lamsref, hostname); + LMI_AccountManagementServiceRef_Set_CreationClassName(&lamsref, + LMI_AccountManagementService_ClassName); + + LMI_AccountManagementCapabilitiesRef_Init(&lamcref, _cb, nameSpace); + LMI_AccountManagementCapabilitiesRef_Set_InstanceID(&lamcref, + ORGID":"LAMCNAME); + + LMI_AccountManagementServiceCapabilities_Init(&lamsc, _cb, nameSpace); + LMI_AccountManagementServiceCapabilities_Set_ManagedElement(&lamsc, + &lamsref); + LMI_AccountManagementServiceCapabilities_Set_Capabilities(&lamsc, + &lamcref); + + KReturnInstance(cr, lamsc); + + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountManagementServiceCapabilitiesGetInstance( + 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_AccountManagementServiceCapabilitiesCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountManagementServiceCapabilitiesModifyInstance( + 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_AccountManagementServiceCapabilitiesDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountManagementServiceCapabilitiesExecQuery( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* lang, + const char* query) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountManagementServiceCapabilitiesAssociationCleanup( + CMPIAssociationMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountManagementServiceCapabilitiesAssociators( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole, + const char** properties) +{ + return KDefaultAssociators( + _cb, + mi, + cc, + cr, + cop, + LMI_AccountManagementServiceCapabilities_ClassName, + assocClass, + resultClass, + role, + resultRole, + properties); +} + +static CMPIStatus LMI_AccountManagementServiceCapabilitiesAssociatorNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole) +{ + return KDefaultAssociatorNames( + _cb, + mi, + cc, + cr, + cop, + LMI_AccountManagementServiceCapabilities_ClassName, + assocClass, + resultClass, + role, + resultRole); +} + +static CMPIStatus LMI_AccountManagementServiceCapabilitiesReferences( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role, + const char** properties) +{ + return KDefaultReferences( + _cb, + mi, + cc, + cr, + cop, + LMI_AccountManagementServiceCapabilities_ClassName, + assocClass, + role, + properties); +} + +static CMPIStatus LMI_AccountManagementServiceCapabilitiesReferenceNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role) +{ + return KDefaultReferenceNames( + _cb, + mi, + cc, + cr, + cop, + LMI_AccountManagementServiceCapabilities_ClassName, + assocClass, + role); +} + +CMInstanceMIStub( + LMI_AccountManagementServiceCapabilities, + LMI_AccountManagementServiceCapabilities, + _cb, + LMI_AccountManagementServiceCapabilitiesInitialize()) + +CMAssociationMIStub( + LMI_AccountManagementServiceCapabilities, + LMI_AccountManagementServiceCapabilities, + _cb, + LMI_AccountManagementServiceCapabilitiesInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_AccountManagementServiceCapabilities", + "LMI_AccountManagementServiceCapabilities", + "instance association") diff --git a/src/account/LMI_AccountManagementServiceProvider.c b/src/account/LMI_AccountManagementServiceProvider.c new file mode 100644 index 0000000..b47ab93 --- /dev/null +++ b/src/account/LMI_AccountManagementServiceProvider.c @@ -0,0 +1,207 @@ +#include +#include "LMI_AccountManagementService.h" + +#include "macros.h" +#include "globals.h" + +static const CMPIBroker* _cb = NULL; + +static void LMI_AccountManagementServiceInitialize() +{ +} + +static CMPIStatus LMI_AccountManagementServiceCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountManagementServiceEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_AccountManagementServiceEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + LMI_AccountManagementService lams; + + const char *hostname = get_system_name(); + + LMI_AccountManagementService_Init(&lams, _cb, KNameSpace(cop)); + LMI_AccountManagementService_Set_CreationClassName(&lams, + LMI_AccountManagementService_ClassName); + LMI_AccountManagementService_Set_SystemName(&lams, hostname); + LMI_AccountManagementService_Set_Name(&lams, LAMSNAME); + LMI_AccountManagementService_Set_ElementName(&lams, LAMSNAME); + LMI_AccountManagementService_Set_SystemCreationClassName(&lams, + get_system_creation_class_name()); + LMI_AccountManagementService_Set_RequestedState(&lams, + LMI_AccountManagementService_RequestedState_Not_Applicable); + LMI_AccountManagementService_Set_EnabledState(&lams, + LMI_AccountManagementService_EnabledState_Enabled); + + KReturnInstance(cr, lams); + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountManagementServiceGetInstance( + 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_AccountManagementServiceCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountManagementServiceModifyInstance( + 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_AccountManagementServiceDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountManagementServiceExecQuery( + 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_AccountManagementService, + LMI_AccountManagementService, + _cb, + LMI_AccountManagementServiceInitialize()) + +static CMPIStatus LMI_AccountManagementServiceMethodCleanup( + CMPIMethodMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountManagementServiceInvokeMethod( + CMPIMethodMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* meth, + const CMPIArgs* in, + CMPIArgs* out) +{ + return LMI_AccountManagementService_DispatchMethod( + _cb, mi, cc, cr, cop, meth, in, out); +} + +CMMethodMIStub( + LMI_AccountManagementService, + LMI_AccountManagementService, + _cb, + LMI_AccountManagementServiceInitialize()) + +KUint32 LMI_AccountManagementService_RequestStateChange( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_AccountManagementServiceRef* self, + const KUint16* RequestedState, + KRef* Job, + const KDateTime* TimeoutPeriod, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_AccountManagementService_StartService( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_AccountManagementServiceRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_AccountManagementService_StopService( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_AccountManagementServiceRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_AccountManagementService_CreateAccount( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_AccountManagementServiceRef* self, + const KRef* System, + const KString* AccountTemplate, + KRef* Account, + KRefA* Identities, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_AccountManagementService", + "LMI_AccountManagementService", + "instance method") diff --git a/src/account/LMI_AccountManagementServiceSettingDataProvider.c b/src/account/LMI_AccountManagementServiceSettingDataProvider.c new file mode 100644 index 0000000..f541d8e --- /dev/null +++ b/src/account/LMI_AccountManagementServiceSettingDataProvider.c @@ -0,0 +1,202 @@ +#include +#include "LMI_AccountManagementServiceSettingData.h" + +static const CMPIBroker* _cb; + +static void LMI_AccountManagementServiceSettingDataInitialize() +{ +} + +static CMPIStatus LMI_AccountManagementServiceSettingDataCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountManagementServiceSettingDataEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_AccountManagementServiceSettingDataEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountManagementServiceSettingDataGetInstance( + 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_AccountManagementServiceSettingDataCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountManagementServiceSettingDataModifyInstance( + 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_AccountManagementServiceSettingDataDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountManagementServiceSettingDataExecQuery( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* lang, + const char* query) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountManagementServiceSettingDataAssociationCleanup( + CMPIAssociationMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountManagementServiceSettingDataAssociators( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole, + const char** properties) +{ + return KDefaultAssociators( + _cb, + mi, + cc, + cr, + cop, + LMI_AccountManagementServiceSettingData_ClassName, + assocClass, + resultClass, + role, + resultRole, + properties); +} + +static CMPIStatus LMI_AccountManagementServiceSettingDataAssociatorNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole) +{ + return KDefaultAssociatorNames( + _cb, + mi, + cc, + cr, + cop, + LMI_AccountManagementServiceSettingData_ClassName, + assocClass, + resultClass, + role, + resultRole); +} + +static CMPIStatus LMI_AccountManagementServiceSettingDataReferences( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role, + const char** properties) +{ + return KDefaultReferences( + _cb, + mi, + cc, + cr, + cop, + LMI_AccountManagementServiceSettingData_ClassName, + assocClass, + role, + properties); +} + +static CMPIStatus LMI_AccountManagementServiceSettingDataReferenceNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role) +{ + return KDefaultReferenceNames( + _cb, + mi, + cc, + cr, + cop, + LMI_AccountManagementServiceSettingData_ClassName, + assocClass, + role); +} + +CMInstanceMIStub( + LMI_AccountManagementServiceSettingData, + LMI_AccountManagementServiceSettingData, + _cb, + LMI_AccountManagementServiceSettingDataInitialize()) + +CMAssociationMIStub( + LMI_AccountManagementServiceSettingData, + LMI_AccountManagementServiceSettingData, + _cb, + LMI_AccountManagementServiceSettingDataInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_AccountManagementServiceSettingData", + "LMI_AccountManagementServiceSettingData", + "instance association") diff --git a/src/account/LMI_AccountOnSystemProvider.c b/src/account/LMI_AccountOnSystemProvider.c new file mode 100644 index 0000000..478859a --- /dev/null +++ b/src/account/LMI_AccountOnSystemProvider.c @@ -0,0 +1,272 @@ +#include +#include "LMI_AccountOnSystem.h" +#include "LMI_Account.h" +#include "CIM_ComputerSystem.h" + +#include + +#include +#include + +#include "aux_lu.h" +#include "macros.h" +#include "globals.h" + +static const CMPIBroker* _cb; + +static void LMI_AccountOnSystemInitialize() +{ +} + +static CMPIStatus LMI_AccountOnSystemCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountOnSystemEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_AccountOnSystemEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + LMI_AccountRef laref; + CIM_ComputerSystemRef lcsref; + LMI_AccountOnSystem laos; + + CMPIObjectPath *computerSystemOP = NULL; + CMPIStatus rc; + + struct lu_context *luc = NULL; + struct lu_error *error = NULL; + GPtrArray *accounts = NULL; + struct lu_ent *lue = NULL; + + size_t i; + const char *nameSpace = KNameSpace(cop); + const char *hostname = get_system_name(); + + CIM_ComputerSystemRef_Init(&lcsref, _cb, nameSpace); + CIM_ComputerSystemRef_Set_Name(&lcsref, hostname); + CIM_ComputerSystemRef_Set_CreationClassName(&lcsref, + get_system_creation_class_name()); + + computerSystemOP = CIM_ComputerSystemRef_ToObjectPath(&lcsref, &rc); + computerSystemOP->ft->setClassName(computerSystemOP, + get_system_creation_class_name()); + + luc = lu_start(NULL, lu_user, NULL, NULL, lu_prompt_console_quiet, NULL, &error); + if (!luc) + { + fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); + exit(1); + } + + accounts = lu_users_enumerate_full(luc, "*", &error); + for (i = 0; (accounts != NULL) && (i < accounts->len); i++) + { + lue = g_ptr_array_index(accounts, i); + + LMI_AccountRef_Init(&laref, _cb, nameSpace); + LMI_AccountRef_Set_SystemCreationClassName(&laref, get_system_creation_class_name()); + LMI_AccountRef_Set_SystemName(&laref, hostname); + LMI_AccountRef_Set_CreationClassName(&laref, + LMI_Account_ClassName); + LMI_AccountRef_Set_Name(&laref, aux_lu_get_str(lue, LU_USERNAME)); + + LMI_AccountOnSystem_Init(&laos, _cb, nameSpace); + LMI_AccountOnSystem_SetObjectPath_GroupComponent(&laos, + computerSystemOP); + LMI_AccountOnSystem_Set_PartComponent(&laos, &laref); + + KReturnInstance(cr, laos); + lu_ent_free(lue); + } /* for */ + + if (accounts) + { + g_ptr_array_free(accounts, TRUE); + } + + lu_end(luc); + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountOnSystemGetInstance( + 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_AccountOnSystemCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountOnSystemModifyInstance( + 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_AccountOnSystemDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountOnSystemExecQuery( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* lang, + const char* query) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountOnSystemAssociationCleanup( + CMPIAssociationMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountOnSystemAssociators( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole, + const char** properties) +{ + return KDefaultAssociators( + _cb, + mi, + cc, + cr, + cop, + LMI_AccountOnSystem_ClassName, + assocClass, + resultClass, + role, + resultRole, + properties); +} + +static CMPIStatus LMI_AccountOnSystemAssociatorNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole) +{ + return KDefaultAssociatorNames( + _cb, + mi, + cc, + cr, + cop, + LMI_AccountOnSystem_ClassName, + assocClass, + resultClass, + role, + resultRole); +} + +static CMPIStatus LMI_AccountOnSystemReferences( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role, + const char** properties) +{ + return KDefaultReferences( + _cb, + mi, + cc, + cr, + cop, + LMI_AccountOnSystem_ClassName, + assocClass, + role, + properties); +} + +static CMPIStatus LMI_AccountOnSystemReferenceNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role) +{ + return KDefaultReferenceNames( + _cb, + mi, + cc, + cr, + cop, + LMI_AccountOnSystem_ClassName, + assocClass, + role); +} + +CMInstanceMIStub( + LMI_AccountOnSystem, + LMI_AccountOnSystem, + _cb, + LMI_AccountOnSystemInitialize()) + +CMAssociationMIStub( + LMI_AccountOnSystem, + LMI_AccountOnSystem, + _cb, + LMI_AccountOnSystemInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_AccountOnSystem", + "LMI_AccountOnSystem", + "instance association") diff --git a/src/account/LMI_AccountProvider.c b/src/account/LMI_AccountProvider.c new file mode 100644 index 0000000..0b10c44 --- /dev/null +++ b/src/account/LMI_AccountProvider.c @@ -0,0 +1,243 @@ +#include +#include "LMI_Account.h" + +#include +#include + +#include + +#include +#include + +#include +#include +#include + + +#include "aux_lu.h" +#include "macros.h" +#include "globals.h" + +static const CMPIBroker* _cb = NULL; + +static void LMI_AccountInitialize() +{ +} + +static CMPIStatus LMI_AccountCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_AccountEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + LMI_Account la; + struct lu_context *luc = NULL; + struct lu_error *error = NULL; + GPtrArray *accounts = NULL; + struct lu_ent *lue = NULL; + + size_t i; + const char *nameSpace = KNameSpace(cop); + const char *hostname = get_system_name(); + char *uid = NULL; + long expire; + CMPIUint64 binTime = 0; + CMPIStatus *rc = NULL; + char *password = NULL; + + luc = lu_start(NULL, lu_user, NULL, NULL, lu_prompt_console_quiet, NULL, &error); + if (!luc) + { + fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); + exit(1); + } + + uid = malloc(256 * sizeof(char)); + accounts = lu_users_enumerate_full(luc, "*", &error); + for (i = 0; (accounts != NULL) && (i < accounts->len); i++) + { + lue = g_ptr_array_index(accounts, i); + + LMI_Account_Init(&la, _cb, nameSpace); + LMI_Account_Set_CreationClassName(&la, LMI_Account_ClassName); + LMI_Account_Set_SystemName(&la, hostname); + LMI_Account_Set_SystemCreationClassName(&la, get_system_creation_class_name()); + LMI_Account_Set_Name(&la, aux_lu_get_str(lue, LU_USERNAME)); + + LMI_Account_Init_OrganizationName(&la, 1); /* XXX */ + LMI_Account_Set_OrganizationName(&la, 0, ""); /* XXX */ + + /* Need to convert long int UID to the string */ + snprintf(uid, 255, "%ld", aux_lu_get_long(lue, LU_UIDNUMBER)); + LMI_Account_Set_UserID(&la, uid); + + LMI_Account_Init_Host(&la, 1); + LMI_Account_Set_Host(&la, 0, hostname); + LMI_Account_Set_ElementName(&la, aux_lu_get_str(lue, LU_GECOS)); + LMI_Account_Set_HomeDirectory(&la, aux_lu_get_str(lue, + LU_HOMEDIRECTORY)); + LMI_Account_Set_LoginShell(&la, aux_lu_get_str(lue, LU_LOGINSHELL)); + + LMI_Account_Set_PasswordLastChange(&la, + CMNewDateTimeFromBinary(_cb, + DAYSTOMS(aux_lu_get_long(lue, LU_SHADOWLASTCHANGE)),false, rc)); + + password = aux_lu_get_str(lue, LU_SHADOWPASSWORD); + LMI_Account_Init_UserPassword(&la, 1); + LMI_Account_Set_UserPassword(&la, 0, password); + /* Assume all passwords (encrypted or not) are in ascii encoding */ + LMI_Account_Set_UserPasswordEncoding(&la, 2); + if(strstr(password, "")) + + expire = aux_lu_get_long(lue, LU_SHADOWEXPIRE); + if (expire != -1) + { + binTime = DAYSTOMS(expire); + LMI_Account_Set_PasswordExpiration(&la, + CMNewDateTimeFromBinary(_cb, binTime, false, rc)); + } + else + { + LMI_Account_Null_PasswordExpiration(&la); + } + + KReturnInstance(cr, la); + lu_ent_free(lue); + } /* for */ + free(uid); + + if (accounts) + { + g_ptr_array_free(accounts, TRUE); + } + + lu_end(luc); + + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountGetInstance( + 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_AccountCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountModifyInstance( + 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_AccountDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountExecQuery( + 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_Account, + LMI_Account, + _cb, + LMI_AccountInitialize()) + +static CMPIStatus LMI_AccountMethodCleanup( + CMPIMethodMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountInvokeMethod( + CMPIMethodMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* meth, + const CMPIArgs* in, + CMPIArgs* out) +{ + return LMI_Account_DispatchMethod( + _cb, mi, cc, cr, cop, meth, in, out); +} + +CMMethodMIStub( + LMI_Account, + LMI_Account, + _cb, + LMI_AccountInitialize()) + +KUint32 LMI_Account_RequestStateChange( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_AccountRef* self, + const KUint16* RequestedState, + KRef* Job, + const KDateTime* TimeoutPeriod, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_Account", + "LMI_Account", + "instance method") diff --git a/src/account/LMI_AccountSettingDataProvider.c b/src/account/LMI_AccountSettingDataProvider.c new file mode 100644 index 0000000..b2a06e4 --- /dev/null +++ b/src/account/LMI_AccountSettingDataProvider.c @@ -0,0 +1,153 @@ +#include +#include "LMI_AccountSettingData.h" + +#include "macros.h" +#include "globals.h" + +#include +#include + +static const CMPIBroker* _cb = NULL; + +static void LMI_AccountSettingDataInitialize() +{ +} + +static CMPIStatus LMI_AccountSettingDataCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountSettingDataEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_AccountSettingDataEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ +#if 0 + LMI_AccountSettingData lasd; + + const char *nameSpace = KNameSpace(cop); + + struct lu_context *luc = NULL; + struct lu_error *error = NULL; + + luc = lu_start(NULL, lu_user, NULL, NULL, lu_prompt_console_quiet, NULL, &error); + if (!luc) + { + fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); + exit(1); + } + + const char * mpe = lu_cfg_read_single(luc, "userdefaults/"LU_SHADOWMAX, + NULL); + fprintf(stderr, "Read single: %s\n", mpe); + LMI_AccountSettingData_Init(&lasd, _cb, nameSpace); +#endif + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountSettingDataGetInstance( + 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_AccountSettingDataCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountSettingDataModifyInstance( + 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_AccountSettingDataDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AccountSettingDataExecQuery( + 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_AccountSettingData, + LMI_AccountSettingData, + _cb, + LMI_AccountSettingDataInitialize()) + +static CMPIStatus LMI_AccountSettingDataMethodCleanup( + CMPIMethodMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AccountSettingDataInvokeMethod( + CMPIMethodMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* meth, + const CMPIArgs* in, + CMPIArgs* out) +{ + return LMI_AccountSettingData_DispatchMethod( + _cb, mi, cc, cr, cop, meth, in, out); +} + +CMMethodMIStub( + LMI_AccountSettingData, + LMI_AccountSettingData, + _cb, + LMI_AccountSettingDataInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_AccountSettingData", + "LMI_AccountSettingData", + "instance method") diff --git a/src/account/LMI_AssignedAccountIdentityProvider.c b/src/account/LMI_AssignedAccountIdentityProvider.c new file mode 100644 index 0000000..3939058 --- /dev/null +++ b/src/account/LMI_AssignedAccountIdentityProvider.c @@ -0,0 +1,264 @@ +#include +#include "LMI_AssignedAccountIdentity.h" +#include "LMI_Identity.h" +#include "LMI_Account.h" + +#include "aux_lu.h" +#include "macros.h" +#include "globals.h" + +#include +#include + +static const CMPIBroker* _cb; + +static void LMI_AssignedAccountIdentityInitialize() +{ +} + +static CMPIStatus LMI_AssignedAccountIdentityCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AssignedAccountIdentityEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_AssignedAccountIdentityEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + LMI_IdentityRef liref; + LMI_AccountRef laref; + LMI_AssignedAccountIdentity laai; + + struct lu_context *luc = NULL; + struct lu_error *error = NULL; + GPtrArray *accounts = NULL; + struct lu_ent *lue = NULL; + + size_t i; + const char *nameSpace = KNameSpace(cop); + const char *hostname = get_system_name(); + char *uid = NULL; + + luc = lu_start(NULL, lu_user, NULL, NULL, lu_prompt_console_quiet, NULL, &error); + if (!luc) + { + fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); + exit(1); + } + uid = malloc(256 * sizeof(char)); + accounts = lu_users_enumerate_full(luc, "*", &error); + for (i = 0; (accounts != NULL) && (i < accounts->len); i++) + { + lue = g_ptr_array_index(accounts, i); + + LMI_IdentityRef_Init(&liref, _cb, nameSpace); + snprintf(uid, 255, ORGID":UID:%ld", + aux_lu_get_long(lue, LU_UIDNUMBER)); + LMI_IdentityRef_Set_InstanceID(&liref, uid); + + LMI_AccountRef_Init(&laref, _cb, nameSpace); + LMI_AccountRef_Set_Name(&laref, aux_lu_get_str(lue, LU_USERNAME)); + LMI_AccountRef_Set_SystemName(&laref, hostname); + LMI_AccountRef_Set_SystemCreationClassName(&laref, get_system_creation_class_name()); + LMI_AccountRef_Set_CreationClassName(&laref, LMI_Account_ClassName); + + LMI_AssignedAccountIdentity_Init(&laai, _cb, nameSpace); + LMI_AssignedAccountIdentity_Set_IdentityInfo(&laai, &liref); + LMI_AssignedAccountIdentity_Set_ManagedElement(&laai, &laref); + + KReturnInstance(cr, laai); + lu_ent_free(lue); + } /* for */ + free(uid); + + if (accounts) + { + g_ptr_array_free(accounts, TRUE); + } + + lu_end(luc); + + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AssignedAccountIdentityGetInstance( + 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_AssignedAccountIdentityCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AssignedAccountIdentityModifyInstance( + 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_AssignedAccountIdentityDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AssignedAccountIdentityExecQuery( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* lang, + const char* query) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AssignedAccountIdentityAssociationCleanup( + CMPIAssociationMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AssignedAccountIdentityAssociators( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole, + const char** properties) +{ + return KDefaultAssociators( + _cb, + mi, + cc, + cr, + cop, + LMI_AssignedAccountIdentity_ClassName, + assocClass, + resultClass, + role, + resultRole, + properties); +} + +static CMPIStatus LMI_AssignedAccountIdentityAssociatorNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole) +{ + return KDefaultAssociatorNames( + _cb, + mi, + cc, + cr, + cop, + LMI_AssignedAccountIdentity_ClassName, + assocClass, + resultClass, + role, + resultRole); +} + +static CMPIStatus LMI_AssignedAccountIdentityReferences( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role, + const char** properties) +{ + return KDefaultReferences( + _cb, + mi, + cc, + cr, + cop, + LMI_AssignedAccountIdentity_ClassName, + assocClass, + role, + properties); +} + +static CMPIStatus LMI_AssignedAccountIdentityReferenceNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role) +{ + return KDefaultReferenceNames( + _cb, + mi, + cc, + cr, + cop, + LMI_AssignedAccountIdentity_ClassName, + assocClass, + role); +} + +CMInstanceMIStub( + LMI_AssignedAccountIdentity, + LMI_AssignedAccountIdentity, + _cb, + LMI_AssignedAccountIdentityInitialize()) + +CMAssociationMIStub( + LMI_AssignedAccountIdentity, + LMI_AssignedAccountIdentity, + _cb, + LMI_AssignedAccountIdentityInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_AssignedAccountIdentity", + "LMI_AssignedAccountIdentity", + "instance association") diff --git a/src/account/LMI_AssignedGroupIdentityProvider.c b/src/account/LMI_AssignedGroupIdentityProvider.c new file mode 100644 index 0000000..e7c9456 --- /dev/null +++ b/src/account/LMI_AssignedGroupIdentityProvider.c @@ -0,0 +1,253 @@ +#include +#include "LMI_AssignedGroupIdentity.h" +#include "LMI_Identity.h" +#include "LMI_Group.h" + +#include "aux_lu.h" +#include "macros.h" +#include "globals.h" + +#include +#include + +static const CMPIBroker* _cb; + +static void LMI_AssignedGroupIdentityInitialize() +{ +} + +static CMPIStatus LMI_AssignedGroupIdentityCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AssignedGroupIdentityEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_AssignedGroupIdentityEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + LMI_IdentityRef liref; + LMI_GroupRef lgref; + LMI_AssignedGroupIdentity lagi; + + struct lu_context *luc = NULL; + struct lu_error *error = NULL; + GPtrArray *groups = NULL; + struct lu_ent *lue = NULL; + + size_t i; + const char *nameSpace = KNameSpace(cop); + char *gid = NULL; + + luc = lu_start(NULL, lu_group, NULL, NULL, lu_prompt_console_quiet, NULL, &error); + if (!luc) + { + fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); + exit(1); + } + gid = malloc(256 * sizeof(char)); + groups = lu_groups_enumerate_full(luc, "*", &error); + for (i = 0; (groups != NULL) && (i < groups->len); i++) + { + lue = g_ptr_array_index(groups, i); + + LMI_GroupRef_Init(&lgref, _cb, nameSpace); + LMI_GroupRef_Set_CreationClassName(&lgref, LMI_Group_ClassName); + LMI_GroupRef_Set_Name(&lgref, aux_lu_get_str(lue, LU_GROUPNAME)); + + LMI_IdentityRef_Init(&liref, _cb, nameSpace); + snprintf(gid, 255, ORGID":GID:%ld", + aux_lu_get_long(lue, LU_GIDNUMBER)); + LMI_IdentityRef_Set_InstanceID(&liref, gid); + + LMI_AssignedGroupIdentity_Init(&lagi, _cb, nameSpace); + LMI_AssignedGroupIdentity_Set_IdentityInfo(&lagi, &liref); + LMI_AssignedGroupIdentity_Set_ManagedElement(&lagi, &lgref); + + KReturnInstance(cr, lagi); + lu_ent_free(lue); + } /* for */ + free(gid); + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AssignedGroupIdentityGetInstance( + 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_AssignedGroupIdentityCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AssignedGroupIdentityModifyInstance( + 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_AssignedGroupIdentityDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AssignedGroupIdentityExecQuery( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* lang, + const char* query) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AssignedGroupIdentityAssociationCleanup( + CMPIAssociationMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AssignedGroupIdentityAssociators( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole, + const char** properties) +{ + return KDefaultAssociators( + _cb, + mi, + cc, + cr, + cop, + LMI_AssignedGroupIdentity_ClassName, + assocClass, + resultClass, + role, + resultRole, + properties); +} + +static CMPIStatus LMI_AssignedGroupIdentityAssociatorNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole) +{ + return KDefaultAssociatorNames( + _cb, + mi, + cc, + cr, + cop, + LMI_AssignedGroupIdentity_ClassName, + assocClass, + resultClass, + role, + resultRole); +} + +static CMPIStatus LMI_AssignedGroupIdentityReferences( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role, + const char** properties) +{ + return KDefaultReferences( + _cb, + mi, + cc, + cr, + cop, + LMI_AssignedGroupIdentity_ClassName, + assocClass, + role, + properties); +} + +static CMPIStatus LMI_AssignedGroupIdentityReferenceNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role) +{ + return KDefaultReferenceNames( + _cb, + mi, + cc, + cr, + cop, + LMI_AssignedGroupIdentity_ClassName, + assocClass, + role); +} + +CMInstanceMIStub( + LMI_AssignedGroupIdentity, + LMI_AssignedGroupIdentity, + _cb, + LMI_AssignedGroupIdentityInitialize()) + +CMAssociationMIStub( + LMI_AssignedGroupIdentity, + LMI_AssignedGroupIdentity, + _cb, + LMI_AssignedGroupIdentityInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_AssignedGroupIdentity", + "LMI_AssignedGroupIdentity", + "instance association") diff --git a/src/account/LMI_ElementSettingDateProvider.c b/src/account/LMI_ElementSettingDateProvider.c new file mode 100644 index 0000000..a91546f --- /dev/null +++ b/src/account/LMI_ElementSettingDateProvider.c @@ -0,0 +1,202 @@ +#include +#include "LMI_ElementSettingDate.h" + +static const CMPIBroker* _cb; + +static void LMI_ElementSettingDateInitialize() +{ +} + +static CMPIStatus LMI_ElementSettingDateCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_ElementSettingDateEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_ElementSettingDateEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_ElementSettingDateGetInstance( + 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_ElementSettingDateCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_ElementSettingDateModifyInstance( + 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_ElementSettingDateDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_ElementSettingDateExecQuery( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* lang, + const char* query) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_ElementSettingDateAssociationCleanup( + CMPIAssociationMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_ElementSettingDateAssociators( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole, + const char** properties) +{ + return KDefaultAssociators( + _cb, + mi, + cc, + cr, + cop, + LMI_ElementSettingDate_ClassName, + assocClass, + resultClass, + role, + resultRole, + properties); +} + +static CMPIStatus LMI_ElementSettingDateAssociatorNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole) +{ + return KDefaultAssociatorNames( + _cb, + mi, + cc, + cr, + cop, + LMI_ElementSettingDate_ClassName, + assocClass, + resultClass, + role, + resultRole); +} + +static CMPIStatus LMI_ElementSettingDateReferences( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role, + const char** properties) +{ + return KDefaultReferences( + _cb, + mi, + cc, + cr, + cop, + LMI_ElementSettingDate_ClassName, + assocClass, + role, + properties); +} + +static CMPIStatus LMI_ElementSettingDateReferenceNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role) +{ + return KDefaultReferenceNames( + _cb, + mi, + cc, + cr, + cop, + LMI_ElementSettingDate_ClassName, + assocClass, + role); +} + +CMInstanceMIStub( + LMI_ElementSettingDate, + LMI_ElementSettingDate, + _cb, + LMI_ElementSettingDateInitialize()) + +CMAssociationMIStub( + LMI_ElementSettingDate, + LMI_ElementSettingDate, + _cb, + LMI_ElementSettingDateInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_ElementSettingDate", + "LMI_ElementSettingDate", + "instance association") diff --git a/src/account/LMI_EnabledAccountCapabilitiesProvider.c b/src/account/LMI_EnabledAccountCapabilitiesProvider.c new file mode 100644 index 0000000..4c1d078 --- /dev/null +++ b/src/account/LMI_EnabledAccountCapabilitiesProvider.c @@ -0,0 +1,145 @@ +#include +#include "LMI_EnabledAccountCapabilities.h" + +#include "macros.h" +#include "globals.h" + +#include + +static const CMPIBroker* _cb = NULL; + +static void LMI_EnabledAccountCapabilitiesInitialize() +{ +} + +static CMPIStatus LMI_EnabledAccountCapabilitiesCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_EnabledAccountCapabilitiesEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_EnabledAccountCapabilitiesEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + LMI_EnabledAccountCapabilities leac; + + const char *nameSpace = KNameSpace(cop); + + LMI_EnabledAccountCapabilities_Init(&leac, _cb, nameSpace); + LMI_EnabledAccountCapabilities_Set_InstanceID(&leac, ORGID":"LEACNAME); + LMI_EnabledAccountCapabilities_Set_ElementName(&leac, LEACNAME); + LMI_EnabledAccountCapabilities_Init_RequestedStatesSupported(&leac, 0); + LMI_EnabledAccountCapabilities_Set_ElementNameEditSupported(&leac, + false); + + KReturnInstance(cr, leac); + + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_EnabledAccountCapabilitiesGetInstance( + 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_EnabledAccountCapabilitiesCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_EnabledAccountCapabilitiesModifyInstance( + 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_EnabledAccountCapabilitiesDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_EnabledAccountCapabilitiesExecQuery( + 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_EnabledAccountCapabilities, + LMI_EnabledAccountCapabilities, + _cb, + LMI_EnabledAccountCapabilitiesInitialize()) + +static CMPIStatus LMI_EnabledAccountCapabilitiesMethodCleanup( + CMPIMethodMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_EnabledAccountCapabilitiesInvokeMethod( + CMPIMethodMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* meth, + const CMPIArgs* in, + CMPIArgs* out) +{ + return LMI_EnabledAccountCapabilities_DispatchMethod( + _cb, mi, cc, cr, cop, meth, in, out); +} + +CMMethodMIStub( + LMI_EnabledAccountCapabilities, + LMI_EnabledAccountCapabilities, + _cb, + LMI_EnabledAccountCapabilitiesInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_EnabledAccountCapabilities", + "LMI_EnabledAccountCapabilities", + "instance method") diff --git a/src/account/LMI_GroupProvider.c b/src/account/LMI_GroupProvider.c new file mode 100644 index 0000000..5de5318 --- /dev/null +++ b/src/account/LMI_GroupProvider.c @@ -0,0 +1,176 @@ +#include +#include "LMI_Group.h" + +#include +#include + +#include "aux_lu.h" +#include "macros.h" +#include "globals.h" + +static const CMPIBroker* _cb = NULL; + +static void LMI_GroupInitialize() +{ +} + +static CMPIStatus LMI_GroupCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_GroupEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_GroupEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + LMI_Group lg; + struct lu_context *luc = NULL; + struct lu_error *error = NULL; + GPtrArray *groups = NULL; + struct lu_ent *lue = NULL; + size_t i; + const char *nameSpace = KNameSpace(cop); + char *instanceid = NULL; + + luc = lu_start(NULL, lu_group, NULL, NULL, lu_prompt_console_quiet, NULL, &error); + if (!luc) + { + fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); + exit(1); + } + + instanceid = malloc(256 * sizeof(char)); + groups = lu_groups_enumerate_full(luc, "*", &error); + for (i = 0; (groups != NULL) && (i < groups->len); i++) + { + lue = g_ptr_array_index(groups, i); + + LMI_Group_Init(&lg, _cb, nameSpace); + LMI_Group_Set_CreationClassName(&lg, LMI_Group_ClassName); + LMI_Group_Set_Name(&lg, aux_lu_get_str(lue, LU_GROUPNAME)); + LMI_Group_Set_ElementName(&lg, aux_lu_get_str(lue, LU_GROUPNAME)); + LMI_Group_Set_CommonName(&lg, aux_lu_get_str(lue, LU_GROUPNAME)); + snprintf(instanceid, 255, ORGID":GID:%ld", + aux_lu_get_long(lue, LU_GIDNUMBER)); + LMI_Group_Set_InstanceID(&lg, instanceid); + KReturnInstance(cr, lg); + lu_ent_free(lue); + } /* for */ + free(instanceid); + + if (groups) + { + g_ptr_array_free(groups, TRUE); + } + + lu_end(luc); + + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_GroupGetInstance( + 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_GroupCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_GroupModifyInstance( + 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_GroupDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_GroupExecQuery( + 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_Group, + LMI_Group, + _cb, + LMI_GroupInitialize()) + +static CMPIStatus LMI_GroupMethodCleanup( + CMPIMethodMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_GroupInvokeMethod( + CMPIMethodMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* meth, + const CMPIArgs* in, + CMPIArgs* out) +{ + return LMI_Group_DispatchMethod( + _cb, mi, cc, cr, cop, meth, in, out); +} + +CMMethodMIStub( + LMI_Group, + LMI_Group, + _cb, + LMI_GroupInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_Group", + "LMI_Group", + "instance method") diff --git a/src/account/LMI_HostedServiceProvider.c b/src/account/LMI_HostedServiceProvider.c new file mode 100644 index 0000000..48a7b6b --- /dev/null +++ b/src/account/LMI_HostedServiceProvider.c @@ -0,0 +1,239 @@ +#include +#include "LMI_HostedService.h" +#include "CIM_ComputerSystem.h" +#include "LMI_AccountManagementService.h" + +#include "macros.h" +#include "globals.h" + +static const CMPIBroker* _cb; + +static void LMI_HostedServiceInitialize() +{ +} + +static CMPIStatus LMI_HostedServiceCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_HostedServiceEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_HostedServiceEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + CIM_ComputerSystemRef lcsref; + LMI_AccountManagementServiceRef lamsref; + LMI_HostedService lhs; + + CMPIObjectPath *computerSystemOP = NULL; + CMPIStatus rc; + + const char *nameSpace = KNameSpace(cop); + const char *hostname = get_system_name(); + + CIM_ComputerSystemRef_Init(&lcsref, _cb, nameSpace); + CIM_ComputerSystemRef_Set_Name(&lcsref, hostname); + CIM_ComputerSystemRef_Set_CreationClassName(&lcsref, + get_system_creation_class_name()); + + computerSystemOP = CIM_ComputerSystemRef_ToObjectPath(&lcsref, &rc); + computerSystemOP->ft->setClassName(computerSystemOP, + get_system_creation_class_name()); + + LMI_AccountManagementServiceRef_Init(&lamsref, _cb, nameSpace); + LMI_AccountManagementServiceRef_Set_Name(&lamsref, LAMSNAME); + LMI_AccountManagementServiceRef_Set_SystemCreationClassName(&lamsref, + get_system_creation_class_name()); + LMI_AccountManagementServiceRef_Set_SystemName(&lamsref, hostname); + LMI_AccountManagementServiceRef_Set_CreationClassName(&lamsref, + LMI_AccountManagementService_ClassName); + + LMI_HostedService_Init(&lhs, _cb, nameSpace); + LMI_HostedService_SetObjectPath_Antecedent(&lhs, computerSystemOP); + LMI_HostedService_Set_Dependent(&lhs, &lamsref); + + KReturnInstance(cr, lhs); + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_HostedServiceGetInstance( + 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_HostedServiceCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_HostedServiceModifyInstance( + 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_HostedServiceDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_HostedServiceExecQuery( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* lang, + const char* query) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_HostedServiceAssociationCleanup( + CMPIAssociationMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_HostedServiceAssociators( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole, + const char** properties) +{ + return KDefaultAssociators( + _cb, + mi, + cc, + cr, + cop, + LMI_HostedService_ClassName, + assocClass, + resultClass, + role, + resultRole, + properties); +} + +static CMPIStatus LMI_HostedServiceAssociatorNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole) +{ + return KDefaultAssociatorNames( + _cb, + mi, + cc, + cr, + cop, + LMI_HostedService_ClassName, + assocClass, + resultClass, + role, + resultRole); +} + +static CMPIStatus LMI_HostedServiceReferences( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role, + const char** properties) +{ + return KDefaultReferences( + _cb, + mi, + cc, + cr, + cop, + LMI_HostedService_ClassName, + assocClass, + role, + properties); +} + +static CMPIStatus LMI_HostedServiceReferenceNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role) +{ + return KDefaultReferenceNames( + _cb, + mi, + cc, + cr, + cop, + LMI_HostedService_ClassName, + assocClass, + role); +} + +CMInstanceMIStub( + LMI_HostedService, + LMI_HostedService, + _cb, + LMI_HostedServiceInitialize()) + +CMAssociationMIStub( + LMI_HostedService, + LMI_HostedService, + _cb, + LMI_HostedServiceInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_HostedService", + "LMI_HostedService", + "instance association") diff --git a/src/account/LMI_IdentityProvider.c b/src/account/LMI_IdentityProvider.c new file mode 100644 index 0000000..0e7a3b6 --- /dev/null +++ b/src/account/LMI_IdentityProvider.c @@ -0,0 +1,190 @@ +#include +#include "LMI_Identity.h" + +#include +#include + +#include "macros.h" +#include "globals.h" +#include "aux_lu.h" + +static const CMPIBroker* _cb = NULL; + +static void LMI_IdentityInitialize() +{ +} + +static CMPIStatus LMI_IdentityCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_IdentityEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_IdentityEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + LMI_Identity li; + struct lu_context *luc = NULL; + struct lu_error *error = NULL; + GPtrArray *accounts = NULL; + struct lu_ent *lue = NULL; + char *instanceid = NULL; + unsigned int i = 0; + const char *nameSpace = KNameSpace(cop); + + luc = lu_start(NULL, lu_user, NULL, NULL, lu_prompt_console_quiet, NULL, &error); + if (!luc) + { + fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); + exit(1); + } + + instanceid = malloc(256 * sizeof(char)); + + /* USERS */ + accounts = lu_users_enumerate_full(luc, "*", &error); + for (i = 0; (accounts != NULL) && (i < accounts->len); i++) + { + lue = g_ptr_array_index(accounts, i); + LMI_Identity_Init(&li, _cb, nameSpace); + + /* Need to convert long int UID to the string */ + snprintf(instanceid, 255, ORGID":UID:%ld", + aux_lu_get_long(lue, LU_UIDNUMBER)); + LMI_Identity_Set_InstanceID(&li, instanceid); + LMI_Identity_Set_ElementName(&li, aux_lu_get_str(lue, LU_GECOS)); + KReturnInstance(cr, li); + } + + /* GOUPRS */ + accounts = lu_groups_enumerate_full(luc, "*", &error); + for (i = 0; (accounts != NULL) && (i < accounts->len); i++) + { + lue = g_ptr_array_index(accounts, i); + LMI_Identity_Init(&li, _cb, nameSpace); + + /* Need to convert long int UID to the string */ + snprintf(instanceid, 255, ORGID":GID:%ld", + aux_lu_get_long(lue, LU_GIDNUMBER)); + LMI_Identity_Set_InstanceID(&li, instanceid); + LMI_Identity_Set_ElementName(&li, aux_lu_get_str(lue, LU_GROUPNAME)); + KReturnInstance(cr, li); + lu_ent_free(lue); + } + + free(instanceid); + if (accounts) + { + g_ptr_array_free(accounts, TRUE); + } + lu_end(luc); + + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_IdentityGetInstance( + 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_IdentityCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_IdentityModifyInstance( + 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_IdentityDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_IdentityExecQuery( + 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_Identity, + LMI_Identity, + _cb, + LMI_IdentityInitialize()) + +static CMPIStatus LMI_IdentityMethodCleanup( + CMPIMethodMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_IdentityInvokeMethod( + CMPIMethodMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* meth, + const CMPIArgs* in, + CMPIArgs* out) +{ + return LMI_Identity_DispatchMethod( + _cb, mi, cc, cr, cop, meth, in, out); +} + +CMMethodMIStub( + LMI_Identity, + LMI_Identity, + _cb, + LMI_IdentityInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_Identity", + "LMI_Identity", + "instance method") diff --git a/src/account/LMI_MemberOfGroupProvider.c b/src/account/LMI_MemberOfGroupProvider.c new file mode 100644 index 0000000..2204bc8 --- /dev/null +++ b/src/account/LMI_MemberOfGroupProvider.c @@ -0,0 +1,280 @@ +#include +#include "LMI_MemberOfGroup.h" +#include "LMI_Group.h" +#include "LMI_Identity.h" + +#include "aux_lu.h" +#include "macros.h" +#include "globals.h" + +#include +#include + +static const CMPIBroker* _cb; + +static void LMI_MemberOfGroupInitialize() +{ +} + +static CMPIStatus LMI_MemberOfGroupCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_MemberOfGroupEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_MemberOfGroupEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + LMI_GroupRef lgref; + LMI_IdentityRef liref; + LMI_MemberOfGroup lmog; + + struct lu_context *luc = NULL; + struct lu_error *error = NULL; + GPtrArray *groups = NULL; + GValueArray *accounts = NULL; + struct lu_ent *lueg = NULL; + struct lu_ent *luea = NULL; + + size_t i, j; + const char *nameSpace = KNameSpace(cop); + char *uid = NULL; + + luc = lu_start(NULL, 0, NULL, NULL, lu_prompt_console_quiet, NULL, &error); + if (!luc) + { + fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); + exit(1); + } + uid = malloc(256 * sizeof(char)); + /* Go through each group */ + groups = lu_groups_enumerate_full(luc, "*", &error); + for (i = 0; (groups != NULL) && (i < groups->len); i++) + { + lueg = g_ptr_array_index(groups, i); + LMI_GroupRef_Init(&lgref, _cb, nameSpace); + LMI_GroupRef_Set_CreationClassName(&lgref, LMI_Group_ClassName); + LMI_GroupRef_Set_Name(&lgref, aux_lu_get_str(lueg, LU_GROUPNAME)); + + /* For each user in the group */ + accounts = lu_users_enumerate_by_group(luc, + aux_lu_get_str(lueg, LU_GROUPNAME), &error); + for (j = 0; (accounts != NULL) && (j < accounts->n_values); j++) + { + luea = lu_ent_new(); + lu_user_lookup_name(luc, + g_value_get_string(g_value_array_get_nth(accounts, j)), + luea, &error); + snprintf(uid, 255, ORGID":UID:%ld", + aux_lu_get_long(luea, LU_UIDNUMBER)); + LMI_IdentityRef_Init(&liref, _cb, nameSpace); + LMI_IdentityRef_Set_InstanceID(&liref, uid); + + LMI_MemberOfGroup_Init(&lmog, _cb, nameSpace); + LMI_MemberOfGroup_Set_Collection(&lmog, &lgref); + LMI_MemberOfGroup_Set_Member(&lmog, &liref); + + KReturnInstance(cr, lmog); + lu_ent_free(luea); + } /* for users */ + if (accounts) + { + g_value_array_free(accounts); + } + + + lu_ent_free(lueg); + } /* for groups */ + free(uid); + + if (groups) + { + g_ptr_array_free(groups, TRUE); + } + + lu_end(luc); + + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_MemberOfGroupGetInstance( + 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_MemberOfGroupCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_MemberOfGroupModifyInstance( + 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_MemberOfGroupDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_MemberOfGroupExecQuery( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* lang, + const char* query) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_MemberOfGroupAssociationCleanup( + CMPIAssociationMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_MemberOfGroupAssociators( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole, + const char** properties) +{ + return KDefaultAssociators( + _cb, + mi, + cc, + cr, + cop, + LMI_MemberOfGroup_ClassName, + assocClass, + resultClass, + role, + resultRole, + properties); +} + +static CMPIStatus LMI_MemberOfGroupAssociatorNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole) +{ + return KDefaultAssociatorNames( + _cb, + mi, + cc, + cr, + cop, + LMI_MemberOfGroup_ClassName, + assocClass, + resultClass, + role, + resultRole); +} + +static CMPIStatus LMI_MemberOfGroupReferences( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role, + const char** properties) +{ + return KDefaultReferences( + _cb, + mi, + cc, + cr, + cop, + LMI_MemberOfGroup_ClassName, + assocClass, + role, + properties); +} + +static CMPIStatus LMI_MemberOfGroupReferenceNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role) +{ + return KDefaultReferenceNames( + _cb, + mi, + cc, + cr, + cop, + LMI_MemberOfGroup_ClassName, + assocClass, + role); +} + +CMInstanceMIStub( + LMI_MemberOfGroup, + LMI_MemberOfGroup, + _cb, + LMI_MemberOfGroupInitialize()) + +CMAssociationMIStub( + LMI_MemberOfGroup, + LMI_MemberOfGroup, + _cb, + LMI_MemberOfGroupInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_MemberOfGroup", + "LMI_MemberOfGroup", + "instance association") diff --git a/src/account/LMI_OwningGroupProvider.c b/src/account/LMI_OwningGroupProvider.c new file mode 100644 index 0000000..417f204 --- /dev/null +++ b/src/account/LMI_OwningGroupProvider.c @@ -0,0 +1,266 @@ +#include +#include "LMI_OwningGroup.h" +#include "CIM_ComputerSystem.h" +#include "LMI_Group.h" + +#include "macros.h" +#include "globals.h" +#include "aux_lu.h" + +#include +#include + +static const CMPIBroker* _cb; + +static void LMI_OwningGroupInitialize() +{ +} + +static CMPIStatus LMI_OwningGroupCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_OwningGroupEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_OwningGroupEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + CIM_ComputerSystemRef lcsref; + LMI_GroupRef lgref; + LMI_OwningGroup log; + + CMPIObjectPath *computerSystemOP = NULL; + CMPIStatus rc; + + struct lu_context *luc = NULL; + struct lu_error *error = NULL; + GPtrArray *groups = NULL; + struct lu_ent *lue = NULL; + + size_t i; + const char *nameSpace = KNameSpace(cop); + const char *hostname = get_system_name(); + + CIM_ComputerSystemRef_Init(&lcsref, _cb, nameSpace); + CIM_ComputerSystemRef_Set_Name(&lcsref, hostname); + CIM_ComputerSystemRef_Set_CreationClassName(&lcsref, + get_system_creation_class_name()); + + computerSystemOP = CIM_ComputerSystemRef_ToObjectPath(&lcsref, &rc); + computerSystemOP->ft->setClassName(computerSystemOP, + get_system_creation_class_name()); + + luc = lu_start(NULL, lu_group, NULL, NULL, lu_prompt_console_quiet, NULL, &error); + if (!luc) + { + fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); + exit(1); + } + groups = lu_groups_enumerate_full(luc, "*", &error); + for (i = 0; (groups != NULL) && (i < groups->len); i++) + { + lue = g_ptr_array_index(groups, i); + + LMI_GroupRef_Init(&lgref, _cb, nameSpace); + LMI_GroupRef_Set_Name(&lgref, aux_lu_get_str(lue, LU_GROUPNAME)); + LMI_GroupRef_Set_CreationClassName(&lgref, LMI_Group_ClassName); + + LMI_OwningGroup_Init(&log, _cb, nameSpace); + LMI_OwningGroup_SetObjectPath_OwningElement(&log, computerSystemOP); + LMI_OwningGroup_Set_OwnedElement(&log, &lgref); + + KReturnInstance(cr, log); + lu_ent_free(lue); + } /* for */ + + if (groups) + { + g_ptr_array_free(groups, TRUE); + } + + lu_end(luc); + + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_OwningGroupGetInstance( + 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_OwningGroupCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_OwningGroupModifyInstance( + 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_OwningGroupDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_OwningGroupExecQuery( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* lang, + const char* query) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_OwningGroupAssociationCleanup( + CMPIAssociationMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_OwningGroupAssociators( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole, + const char** properties) +{ + return KDefaultAssociators( + _cb, + mi, + cc, + cr, + cop, + LMI_OwningGroup_ClassName, + assocClass, + resultClass, + role, + resultRole, + properties); +} + +static CMPIStatus LMI_OwningGroupAssociatorNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole) +{ + return KDefaultAssociatorNames( + _cb, + mi, + cc, + cr, + cop, + LMI_OwningGroup_ClassName, + assocClass, + resultClass, + role, + resultRole); +} + +static CMPIStatus LMI_OwningGroupReferences( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role, + const char** properties) +{ + return KDefaultReferences( + _cb, + mi, + cc, + cr, + cop, + LMI_OwningGroup_ClassName, + assocClass, + role, + properties); +} + +static CMPIStatus LMI_OwningGroupReferenceNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role) +{ + return KDefaultReferenceNames( + _cb, + mi, + cc, + cr, + cop, + LMI_OwningGroup_ClassName, + assocClass, + role); +} + +CMInstanceMIStub( + LMI_OwningGroup, + LMI_OwningGroup, + _cb, + LMI_OwningGroupInitialize()) + +CMAssociationMIStub( + LMI_OwningGroup, + LMI_OwningGroup, + _cb, + LMI_OwningGroupInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_OwningGroup", + "LMI_OwningGroup", + "instance association") diff --git a/src/account/LMI_ServiceAffectsIdentityProvider.c b/src/account/LMI_ServiceAffectsIdentityProvider.c new file mode 100644 index 0000000..ccbcd97 --- /dev/null +++ b/src/account/LMI_ServiceAffectsIdentityProvider.c @@ -0,0 +1,300 @@ +#include +#include "LMI_ServiceAffectsIdentity.h" +#include "LMI_AccountManagementService.h" +#include "LMI_Identity.h" + +#include "macros.h" +#include "globals.h" +#include "aux_lu.h" + +#include +#include + +static const CMPIBroker* _cb; + +static void LMI_ServiceAffectsIdentityInitialize() +{ +} + +static CMPIStatus LMI_ServiceAffectsIdentityCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_ServiceAffectsIdentityEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_ServiceAffectsIdentityEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + LMI_IdentityRef liref; + LMI_AccountManagementServiceRef lamsref; + LMI_ServiceAffectsIdentity lsai; + + struct lu_context *luc = NULL; + struct lu_error *error = NULL; + GPtrArray *accounts = NULL; + struct lu_ent *lue = NULL; + size_t i; + char *id = NULL; + + const char *nameSpace = KNameSpace(cop); + const char *hostname = get_system_name(); + + LMI_AccountManagementServiceRef_Init(&lamsref, _cb, nameSpace); + LMI_AccountManagementServiceRef_Set_Name(&lamsref, LAMSNAME); + LMI_AccountManagementServiceRef_Set_SystemCreationClassName(&lamsref, + get_system_creation_class_name()); + LMI_AccountManagementServiceRef_Set_SystemName(&lamsref, hostname); + LMI_AccountManagementServiceRef_Set_CreationClassName(&lamsref, + LMI_AccountManagementService_ClassName); + + luc = lu_start(NULL, lu_user, NULL, NULL, lu_prompt_console_quiet, NULL, &error); + if (!luc) + { + fprintf(stderr, "Error initializing: %s\n", lu_strerror(error)); + exit(1); + } + + id = malloc(256 * sizeof(char)); + + /* Go through every accounts first */ + accounts = lu_users_enumerate_full(luc, "*", &error); + for (i = 0; (accounts != NULL) && (i < accounts->len); i++) + { + lue = g_ptr_array_index(accounts, i); + + LMI_IdentityRef_Init(&liref, _cb, nameSpace); + snprintf(id, 255, ORGID":UID:%ld", + aux_lu_get_long(lue, LU_UIDNUMBER)); + LMI_IdentityRef_Set_InstanceID(&liref, id); + + LMI_ServiceAffectsIdentity_Init(&lsai, _cb, nameSpace); + LMI_ServiceAffectsIdentity_Set_AffectedElement(&lsai, &liref); + LMI_ServiceAffectsIdentity_Set_AffectingElement(&lsai, &lamsref); + LMI_ServiceAffectsIdentity_Init_ElementEffects(&lsai, 1); + LMI_ServiceAffectsIdentity_Set_ElementEffects(&lsai, 0, + LMI_ServiceAffectsIdentity_ElementEffects_Manages); + + KReturnInstance(cr, lsai); + lu_ent_free(lue); + } /* for accounts */ + + if (accounts) + { + g_ptr_array_free(accounts, TRUE); + } + + /* Go through every groups */ + accounts = lu_groups_enumerate_full(luc, "*", &error); + for (i = 0; (accounts != NULL) && (i < accounts->len); i++) + { + lue = g_ptr_array_index(accounts, i); + + LMI_IdentityRef_Init(&liref, _cb, nameSpace); + snprintf(id, 255, ORGID":GID:%ld", + aux_lu_get_long(lue, LU_GIDNUMBER)); + LMI_IdentityRef_Set_InstanceID(&liref, id); + + LMI_ServiceAffectsIdentity_Init(&lsai, _cb, nameSpace); + LMI_ServiceAffectsIdentity_Set_AffectedElement(&lsai, &liref); + LMI_ServiceAffectsIdentity_Set_AffectingElement(&lsai, &lamsref); + LMI_ServiceAffectsIdentity_Init_ElementEffects(&lsai, 1); + LMI_ServiceAffectsIdentity_Set_ElementEffects(&lsai, 0, + LMI_ServiceAffectsIdentity_ElementEffects_Manages); + + KReturnInstance(cr, lsai); + + lu_ent_free(lue); + } /* for accounts */ + + if (accounts) + { + g_ptr_array_free(accounts, TRUE); + } + + free(id); + lu_end(luc); + + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_ServiceAffectsIdentityGetInstance( + 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_ServiceAffectsIdentityCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_ServiceAffectsIdentityModifyInstance( + 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_ServiceAffectsIdentityDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_ServiceAffectsIdentityExecQuery( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* lang, + const char* query) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_ServiceAffectsIdentityAssociationCleanup( + CMPIAssociationMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_ServiceAffectsIdentityAssociators( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole, + const char** properties) +{ + return KDefaultAssociators( + _cb, + mi, + cc, + cr, + cop, + LMI_ServiceAffectsIdentity_ClassName, + assocClass, + resultClass, + role, + resultRole, + properties); +} + +static CMPIStatus LMI_ServiceAffectsIdentityAssociatorNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole) +{ + return KDefaultAssociatorNames( + _cb, + mi, + cc, + cr, + cop, + LMI_ServiceAffectsIdentity_ClassName, + assocClass, + resultClass, + role, + resultRole); +} + +static CMPIStatus LMI_ServiceAffectsIdentityReferences( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role, + const char** properties) +{ + return KDefaultReferences( + _cb, + mi, + cc, + cr, + cop, + LMI_ServiceAffectsIdentity_ClassName, + assocClass, + role, + properties); +} + +static CMPIStatus LMI_ServiceAffectsIdentityReferenceNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role) +{ + return KDefaultReferenceNames( + _cb, + mi, + cc, + cr, + cop, + LMI_ServiceAffectsIdentity_ClassName, + assocClass, + role); +} + +CMInstanceMIStub( + LMI_ServiceAffectsIdentity, + LMI_ServiceAffectsIdentity, + _cb, + LMI_ServiceAffectsIdentityInitialize()) + +CMAssociationMIStub( + LMI_ServiceAffectsIdentity, + LMI_ServiceAffectsIdentity, + _cb, + LMI_ServiceAffectsIdentityInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_ServiceAffectsIdentity", + "LMI_ServiceAffectsIdentity", + "instance association") diff --git a/src/account/LMI_SettingsDefineAccountCapabilitiesProvider.c b/src/account/LMI_SettingsDefineAccountCapabilitiesProvider.c new file mode 100644 index 0000000..008a0d6 --- /dev/null +++ b/src/account/LMI_SettingsDefineAccountCapabilitiesProvider.c @@ -0,0 +1,202 @@ +#include +#include "LMI_SettingsDefineAccountCapabilities.h" + +static const CMPIBroker* _cb; + +static void LMI_SettingsDefineAccountCapabilitiesInitialize() +{ +} + +static CMPIStatus LMI_SettingsDefineAccountCapabilitiesCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_SettingsDefineAccountCapabilitiesEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_SettingsDefineAccountCapabilitiesEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_SettingsDefineAccountCapabilitiesGetInstance( + 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_SettingsDefineAccountCapabilitiesCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_SettingsDefineAccountCapabilitiesModifyInstance( + 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_SettingsDefineAccountCapabilitiesDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_SettingsDefineAccountCapabilitiesExecQuery( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* lang, + const char* query) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_SettingsDefineAccountCapabilitiesAssociationCleanup( + CMPIAssociationMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_SettingsDefineAccountCapabilitiesAssociators( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole, + const char** properties) +{ + return KDefaultAssociators( + _cb, + mi, + cc, + cr, + cop, + LMI_SettingsDefineAccountCapabilities_ClassName, + assocClass, + resultClass, + role, + resultRole, + properties); +} + +static CMPIStatus LMI_SettingsDefineAccountCapabilitiesAssociatorNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole) +{ + return KDefaultAssociatorNames( + _cb, + mi, + cc, + cr, + cop, + LMI_SettingsDefineAccountCapabilities_ClassName, + assocClass, + resultClass, + role, + resultRole); +} + +static CMPIStatus LMI_SettingsDefineAccountCapabilitiesReferences( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role, + const char** properties) +{ + return KDefaultReferences( + _cb, + mi, + cc, + cr, + cop, + LMI_SettingsDefineAccountCapabilities_ClassName, + assocClass, + role, + properties); +} + +static CMPIStatus LMI_SettingsDefineAccountCapabilitiesReferenceNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role) +{ + return KDefaultReferenceNames( + _cb, + mi, + cc, + cr, + cop, + LMI_SettingsDefineAccountCapabilities_ClassName, + assocClass, + role); +} + +CMInstanceMIStub( + LMI_SettingsDefineAccountCapabilities, + LMI_SettingsDefineAccountCapabilities, + _cb, + LMI_SettingsDefineAccountCapabilitiesInitialize()) + +CMAssociationMIStub( + LMI_SettingsDefineAccountCapabilities, + LMI_SettingsDefineAccountCapabilities, + _cb, + LMI_SettingsDefineAccountCapabilitiesInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_SettingsDefineAccountCapabilities", + "LMI_SettingsDefineAccountCapabilities", + "instance association") diff --git a/src/account/LMI_SettingsDefineManagementCapabilitiesProvider.c b/src/account/LMI_SettingsDefineManagementCapabilitiesProvider.c new file mode 100644 index 0000000..3a568c5 --- /dev/null +++ b/src/account/LMI_SettingsDefineManagementCapabilitiesProvider.c @@ -0,0 +1,202 @@ +#include +#include "LMI_SettingsDefineManagementCapabilities.h" + +static const CMPIBroker* _cb; + +static void LMI_SettingsDefineManagementCapabilitiesInitialize() +{ +} + +static CMPIStatus LMI_SettingsDefineManagementCapabilitiesCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_SettingsDefineManagementCapabilitiesEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_SettingsDefineManagementCapabilitiesEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_SettingsDefineManagementCapabilitiesGetInstance( + 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_SettingsDefineManagementCapabilitiesCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_SettingsDefineManagementCapabilitiesModifyInstance( + 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_SettingsDefineManagementCapabilitiesDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_SettingsDefineManagementCapabilitiesExecQuery( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* lang, + const char* query) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_SettingsDefineManagementCapabilitiesAssociationCleanup( + CMPIAssociationMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_SettingsDefineManagementCapabilitiesAssociators( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole, + const char** properties) +{ + return KDefaultAssociators( + _cb, + mi, + cc, + cr, + cop, + LMI_SettingsDefineManagementCapabilities_ClassName, + assocClass, + resultClass, + role, + resultRole, + properties); +} + +static CMPIStatus LMI_SettingsDefineManagementCapabilitiesAssociatorNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole) +{ + return KDefaultAssociatorNames( + _cb, + mi, + cc, + cr, + cop, + LMI_SettingsDefineManagementCapabilities_ClassName, + assocClass, + resultClass, + role, + resultRole); +} + +static CMPIStatus LMI_SettingsDefineManagementCapabilitiesReferences( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role, + const char** properties) +{ + return KDefaultReferences( + _cb, + mi, + cc, + cr, + cop, + LMI_SettingsDefineManagementCapabilities_ClassName, + assocClass, + role, + properties); +} + +static CMPIStatus LMI_SettingsDefineManagementCapabilitiesReferenceNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role) +{ + return KDefaultReferenceNames( + _cb, + mi, + cc, + cr, + cop, + LMI_SettingsDefineManagementCapabilities_ClassName, + assocClass, + role); +} + +CMInstanceMIStub( + LMI_SettingsDefineManagementCapabilities, + LMI_SettingsDefineManagementCapabilities, + _cb, + LMI_SettingsDefineManagementCapabilitiesInitialize()) + +CMAssociationMIStub( + LMI_SettingsDefineManagementCapabilities, + LMI_SettingsDefineManagementCapabilities, + _cb, + LMI_SettingsDefineManagementCapabilitiesInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_SettingsDefineManagementCapabilities", + "LMI_SettingsDefineManagementCapabilities", + "instance association") diff --git a/src/fan/CMakeLists.txt b/src/fan/CMakeLists.txt index 51671b4..6e9ab97 100644 --- a/src/fan/CMakeLists.txt +++ b/src/fan/CMakeLists.txt @@ -1,11 +1,11 @@ set(PROVIDER_NAME Fan) set(LIBRARY_NAME cmpiCura_${PROVIDER_NAME}) -set(MOF Cura_Fan.mof) +set(MOF LMI_Fan.mof) set(provider_SRCS fan.c - Cura_FanProvider.c + LMI_FanProvider.c ) konkretcmpi_generate(${MOF} diff --git a/src/fan/Cura_FanAssociatedSensorProvider.c b/src/fan/Cura_FanAssociatedSensorProvider.c deleted file mode 100644 index 4674171..0000000 --- a/src/fan/Cura_FanAssociatedSensorProvider.c +++ /dev/null @@ -1,258 +0,0 @@ -/* - * Copyright (C) 2012 Michal Minar - * Copyright (C) 2012 Radek Novacek - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -#include -#include "Cura_FanAssociatedSensor.h" -#include "fan.h" -#include - -static const CMPIBroker* _cb; - -static void Cura_FanAssociatedSensorInitialize() -{ - init_linux_fan_module(); -} - -static CMPIStatus Cura_FanAssociatedSensorCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_FanAssociatedSensorEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_FanAssociatedSensorEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - const char *ns = KNameSpace(cop); - - struct cim_fan *sptr = NULL; - struct fanlist *lptr = NULL, *fans = NULL; - if (enum_all_fans(&fans) != 0 ) { - KReturn2(_cb, ERR_FAILED, "Could not list get fan list."); - } - - lptr = fans; - // iterate fan list - while (lptr) { - sptr = lptr->f; - Cura_FanAssociatedSensor w; - Cura_FanAssociatedSensor_Init(&w, _cb, ns); - - Cura_FanRef fan; - Cura_FanRef_Init(&fan, _cb, ns); - Cura_FanRef_Set_CreationClassName(&fan, "Cura_Fan"); - Cura_FanRef_Set_DeviceID(&fan, sptr->device_id); - Cura_FanRef_Set_SystemCreationClassName(&fan, get_system_creation_class_name()); - Cura_FanRef_Set_SystemName(&fan, get_system_name()); - - Cura_FanSensorRef fanSensor; - Cura_FanSensorRef_Init(&fanSensor, _cb, ns); - Cura_FanSensorRef_Set_CreationClassName(&fanSensor, "Cura_FanSensor"); - Cura_FanSensorRef_Set_DeviceID(&fanSensor, sptr->device_id); - Cura_FanSensorRef_Set_SystemCreationClassName(&fanSensor, get_system_creation_class_name()); - Cura_FanSensorRef_Set_SystemName(&fanSensor, get_system_name()); - - Cura_FanAssociatedSensor_Set_Antecedent(&w, &fanSensor); - Cura_FanAssociatedSensor_Set_Dependent(&w, &fan); - - KReturnInstance(cr, w); - lptr = lptr->next; - } - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_FanAssociatedSensorGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_FanAssociatedSensorCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_FanAssociatedSensorModifyInstance( - 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 Cura_FanAssociatedSensorDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_FanAssociatedSensorExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_FanAssociatedSensorAssociationCleanup( - CMPIAssociationMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_FanAssociatedSensorAssociators( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole, - const char** properties) -{ - return KDefaultAssociators( - _cb, - mi, - cc, - cr, - cop, - Cura_FanAssociatedSensor_ClassName, - assocClass, - resultClass, - role, - resultRole, - properties); -} - -static CMPIStatus Cura_FanAssociatedSensorAssociatorNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole) -{ - return KDefaultAssociatorNames( - _cb, - mi, - cc, - cr, - cop, - Cura_FanAssociatedSensor_ClassName, - assocClass, - resultClass, - role, - resultRole); -} - -static CMPIStatus Cura_FanAssociatedSensorReferences( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role, - const char** properties) -{ - return KDefaultReferences( - _cb, - mi, - cc, - cr, - cop, - Cura_FanAssociatedSensor_ClassName, - assocClass, - role, - properties); -} - -static CMPIStatus Cura_FanAssociatedSensorReferenceNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role) -{ - return KDefaultReferenceNames( - _cb, - mi, - cc, - cr, - cop, - Cura_FanAssociatedSensor_ClassName, - assocClass, - role); -} - -CMInstanceMIStub( - Cura_FanAssociatedSensor, - Cura_FanAssociatedSensor, - _cb, - Cura_FanAssociatedSensorInitialize()) - -CMAssociationMIStub( - Cura_FanAssociatedSensor, - Cura_FanAssociatedSensor, - _cb, - Cura_FanAssociatedSensorInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_FanAssociatedSensor", - "Cura_FanAssociatedSensor", - "instance association") diff --git a/src/fan/Cura_FanProvider.c b/src/fan/Cura_FanProvider.c deleted file mode 100644 index cc9e13c..0000000 --- a/src/fan/Cura_FanProvider.c +++ /dev/null @@ -1,411 +0,0 @@ -/* - * Copyright (C) 2012 Michal Minar - * Copyright (C) 2012 Radek Novacek - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -#include -#include -#include "Cura_Fan.h" -#include "globals.h" -#include "fan.h" -static const CMPIBroker* _cb = NULL; - -#include -#include -#include - -void print_backtrace(int signal) -{ - fprintf(stderr, "BackTrace\n"); - int ppid = getpid(); - int pid = fork(); - if (pid == 0) { - // Child process - char *strpid; - asprintf(&strpid, "%d", ppid); - execl("/usr/bin/gdb", "/usr/bin/gdb", "-p", strpid, NULL); - } else { - int status; - waitpid(pid, &status, 0); - system("/usr/bin/pkill -9 sfcbd"); - } -} - -static void Cura_FanInitialize() -{ - init_linux_fan_module(); - signal(SIGSEGV, print_backtrace); -} - -static CMPIStatus Cura_FanCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_FanEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_FanEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - const char *ns = KNameSpace(cop); - - char buf[200]; - struct fanlist *lptr = NULL; - struct fanlist *fans = NULL; - struct cim_fan *sptr; - - if (enum_all_fans(&fans)) { - KReturn2(_cb, ERR_FAILED, "Could not list fans."); - } - - // iterate fan list - lptr = fans; - while (lptr != NULL) { - sptr = lptr->f; - Cura_Fan w; - Cura_Fan_Init(&w, _cb, ns); - Cura_Fan_Set_CreationClassName(&w, "Cura_Fan"); - Cura_Fan_Set_SystemCreationClassName(&w, get_system_creation_class_name()); - Cura_Fan_Set_SystemName(&w, get_system_name()); - Cura_Fan_Set_DeviceID(&w, sptr->device_id); - - Cura_Fan_Set_Caption(&w, "Computer's fan"); - Cura_Fan_Set_Description(&w,"Computer's fan."); - snprintf(buf, 200, "Fan \"%s\" on chip \"%s\"", sptr->name, sptr->chip_name); - Cura_Fan_Set_ElementName(&w, buf); - - // ManagedSystemElement - Cura_Fan_Set_Name(&w, sptr->name); - Cura_Fan_Init_OperationalStatus(&w, 2); - Cura_Fan_Set_OperationalStatus(&w, 0, sptr->fault ? - Cura_Fan_OperationalStatus_Error : - Cura_Fan_OperationalStatus_OK); - if (sptr->alarm || sptr->alarm_min || sptr->alarm_max) { - Cura_Fan_Set_OperationalStatus(&w, 1, Cura_Fan_OperationalStatus_Stressed); - } - - Cura_Fan_Init_StatusDescriptions(&w, 2); - Cura_Fan_Set_StatusDescriptions(&w, 0, sptr->fault ? - "Chip indicates, that fan is in fault state." - " Possible causes are open diodes, unconnected fan etc." - " Thus the measurement for this channel should not be trusted." - : "Fan seems to be functioning correctly."); - if (sptr->alarm || sptr->alarm_min || sptr->alarm_max) { - snprintf(buf, 200, "These alarm flags are set by the fan's chip:" - " alarm=%s, min_alarm=%s, max_alarm=%s", - sptr->alarm ? "1":"0", - sptr->alarm_min ? "1":"0", - sptr->alarm_max ? "1":"0"); - Cura_Fan_Set_StatusDescriptions(&w, 1, buf); - } - - - Cura_Fan_Set_HealthState(&w, sptr->fault ? - Cura_Fan_HealthState_Major_failure : - Cura_Fan_HealthState_OK); - - Cura_Fan_Set_OperatingStatus(&w, sptr->fault ? - Cura_Fan_OperatingStatus_Stopped : - Cura_Fan_OperatingStatus_In_Service); - - Cura_Fan_Set_PrimaryStatus(&w, sptr->fault ? - Cura_Fan_PrimaryStatus_Error : - Cura_Fan_PrimaryStatus_OK); - - // EnabledLogicalElement - Cura_Fan_Init_OtherIdentifyingInfo(&w, 2); - Cura_Fan_Set_OtherIdentifyingInfo(&w, 0, sptr->chip_name); - Cura_Fan_Set_OtherIdentifyingInfo(&w, 1, sptr->sys_path); - - Cura_Fan_Init_IdentifyingDescriptions(&w, 2); - Cura_Fan_Set_IdentifyingDescriptions(&w, 0, "ChipName - name of fan's chip."); - Cura_Fan_Set_IdentifyingDescriptions(&w, 1, "SysPath - system path of fan's chip."); - - Cura_Fan_Set_ActiveCooling(&w, true); - - uint32_t i = 1; - int index = 0; - debug("accessible_features: %d", sptr->accessible_features); - Cura_Fan_Init_AccessibleFeatures(&w, 8); - while (i <= CIM_FAN_AF_FEATURE_MAX) { - if (i & sptr->accessible_features) { - Cura_Fan_Set_AccessibleFeatures(&w, index++, i); - } - i = i << 1; - } - if (sptr->accessible_features & CIM_FAN_AF_MIN_SPEED) { - Cura_Fan_Set_MinSpeed(&w, (uint64_t) sptr->min_speed); - } - if (sptr->accessible_features & CIM_FAN_AF_MAX_SPEED) { - Cura_Fan_Set_MaxSpeed(&w, (uint64_t) sptr->max_speed); - } - if (sptr->accessible_features & CIM_FAN_AF_DIV) { - Cura_Fan_Set_Divisor(&w, sptr->divisor); - } - if (sptr->accessible_features & CIM_FAN_AF_PULSES) { - Cura_Fan_Set_Pulses(&w, sptr->pulses); - } - if (sptr->accessible_features & CIM_FAN_AF_BEEP) { - Cura_Fan_Set_Beep(&w, sptr->beep); - } - if (sptr->accessible_features & CIM_FAN_AF_ALARM) { - Cura_Fan_Set_Alarm(&w, sptr->alarm); - } - if (sptr->accessible_features & CIM_FAN_AF_ALARM_MIN) { - Cura_Fan_Set_MinAlarm(&w, sptr->alarm_min); - } - if (sptr->accessible_features & CIM_FAN_AF_ALARM_MAX) { - Cura_Fan_Set_MaxAlarm(&w, sptr->alarm_max); - } - - KReturnInstance(cr, w); - lptr = lptr->next; - } - free_fanlist(fans); - KReturn(OK); -} - -static CMPIStatus Cura_FanGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_FanCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_FanModifyInstance( - 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 Cura_FanDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_FanExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -CMInstanceMIStub( - Cura_Fan, - Cura_Fan, - _cb, - Cura_FanInitialize()) - -static CMPIStatus Cura_FanMethodCleanup( - CMPIMethodMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_FanInvokeMethod( - CMPIMethodMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* meth, - const CMPIArgs* in, - CMPIArgs* out) -{ - return Cura_Fan_DispatchMethod( - _cb, mi, cc, cr, cop, meth, in, out); -} - -CMMethodMIStub( - Cura_Fan, - Cura_Fan, - _cb, - Cura_FanInitialize()) - -KUint32 Cura_Fan_RequestStateChange( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanRef* self, - const KUint16* RequestedState, - KRef* Job, - const KDateTime* TimeoutPeriod, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_Fan_SetPowerState( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanRef* self, - const KUint16* PowerState, - const KDateTime* Time, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_Fan_Reset( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_Fan_EnableDevice( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanRef* self, - const KBoolean* Enabled, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_Fan_OnlineDevice( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanRef* self, - const KBoolean* Online, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_Fan_QuiesceDevice( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanRef* self, - const KBoolean* Quiesce, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_Fan_SaveProperties( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_Fan_RestoreProperties( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_Fan_SetSpeed( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanRef* self, - const KUint64* DesiredSpeed, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_Fan", - "Cura_Fan", - "instance method") diff --git a/src/fan/Cura_FanSensorProvider.c b/src/fan/Cura_FanSensorProvider.c deleted file mode 100644 index 2965bf5..0000000 --- a/src/fan/Cura_FanSensorProvider.c +++ /dev/null @@ -1,401 +0,0 @@ -/* - * Copyright (C) 2012 Michal Minar - * Copyright (C) 2012 Radek Novacek - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -#include -#include "Cura_FanSensor.h" -#include "fan.h" -#include - -static const CMPIBroker* _cb = NULL; - -static void Cura_FanSensorInitialize() -{ - init_linux_fan_module(); -} - -static CMPIStatus Cura_FanSensorCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_FanSensorEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_FanSensorEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - char buf[200]; - struct cim_fan *sptr = NULL; - struct fanlist *lptr = NULL, *fans = NULL; - if (enum_all_fans(&fans) != 0 ) { - KReturn2(_cb, ERR_FAILED, "Could not list get fan list."); - } - - lptr = fans; - // iterate fan list - while (lptr) { - sptr = lptr->f; - Cura_FanSensor w; - Cura_FanSensor_Init(&w, _cb, KNameSpace(cop)); - Cura_FanSensor_Set_CreationClassName(&w, "Cura_FanSensor"); - Cura_FanSensor_Set_SystemCreationClassName(&w, get_system_creation_class_name()); - Cura_FanSensor_Set_SystemName(&w, get_system_name()); - Cura_FanSensor_Set_DeviceID(&w, sptr->device_id); - - Cura_FanSensor_Set_Caption(&w, "Computer's fan"); - Cura_FanSensor_Set_Description(&w,"Computer's fan."); - snprintf(buf, 200, "Fan \"%s\" on chip \"%s\"", sptr->name, sptr->chip_name); - Cura_FanSensor_Set_ElementName(&w, buf); - - // ManagedSystemElement - Cura_FanSensor_Set_Name(&w, sptr->name); - - Cura_FanSensor_Init_OperationalStatus(&w, 2); - Cura_FanSensor_Set_OperationalStatus(&w, 0, sptr->fault ? - Cura_FanSensor_OperationalStatus_Error : - Cura_FanSensor_OperationalStatus_OK); - if (sptr->alarm || sptr->alarm_min || sptr->alarm_max) { - Cura_FanSensor_Set_OperationalStatus(&w, 1, Cura_FanSensor_OperationalStatus_Stressed); - } - - Cura_FanSensor_Init_StatusDescriptions(&w, 2); - Cura_FanSensor_Set_StatusDescriptions(&w, 0, sptr->fault ? - "Chip indicates, that fan is in fault state." - " Possible causes are open diodes, unconnected fan etc." - " Thus the measurement for this channel should not be trusted." - : "Fan seems to be functioning correctly."); - if (sptr->alarm || sptr->alarm_min || sptr->alarm_max) { - snprintf(buf, 200, "These alarm flags are set by the fan's chip:" - " alarm=%s, min_alarm=%s, max_alarm=%s", - sptr->alarm ? "1":"0", - sptr->alarm_min ? "1":"0", - sptr->alarm_max ? "1":"0"); - Cura_FanSensor_Set_StatusDescriptions(&w, 1, buf); - } - - Cura_FanSensor_Set_HealthState(&w, sptr->fault ? - Cura_FanSensor_HealthState_Major_failure : - Cura_FanSensor_HealthState_OK); - - Cura_FanSensor_Set_OperatingStatus(&w, sptr->fault ? - Cura_FanSensor_OperatingStatus_Stopped : - Cura_FanSensor_OperatingStatus_In_Service); - - Cura_FanSensor_Set_PrimaryStatus(&w, sptr->fault ? - Cura_FanSensor_PrimaryStatus_Error : - Cura_FanSensor_PrimaryStatus_OK); - - // EnabledLogicalElement - Cura_FanSensor_Init_OtherIdentifyingInfo(&w, 2); - Cura_FanSensor_Set_OtherIdentifyingInfo(&w, 0, sptr->chip_name); - Cura_FanSensor_Set_OtherIdentifyingInfo(&w, 1, sptr->sys_path); - - Cura_FanSensor_Init_IdentifyingDescriptions(&w, 2); - Cura_FanSensor_Set_IdentifyingDescriptions(&w, 0, "ChipName - name of fan's chip."); - Cura_FanSensor_Set_IdentifyingDescriptions(&w, 1, "SysPath - system path of fan's chip."); - - // ManagedElement - Cura_FanSensor_Set_Caption(&w, "Fan's tachometer"); - Cura_FanSensor_Set_Description(&w,"Associated sensor of fan. Giving information about its speed."); - - snprintf(buf, 200, "Tachometer of fan \"%s\" on chip \"%s\"", sptr->name, sptr->chip_name); - Cura_FanSensor_Set_ElementName(&w, buf); - - // Sensor - Cura_FanSensor_Set_SensorType(&w, Cura_FanSensor_SensorType_Tachometer); - Cura_FanSensor_Set_CurrentState(&w, fan_get_current_state(sptr)); - - Cura_FanSensor_Init_PossibleStates(&w, 5); - int index = 0; - if (sptr->accessible_features & CIM_FAN_AF_MIN_SPEED) { - Cura_FanSensor_Set_PossibleStates(&w, index++, "Below Minimum"); - Cura_FanSensor_Set_PossibleStates(&w, index++, "At Minimum"); - } - Cura_FanSensor_Set_PossibleStates(&w, index++, "Normal"); - if (sptr->accessible_features & CIM_FAN_AF_MAX_SPEED) { - Cura_FanSensor_Set_PossibleStates(&w, index++, "At Maximum"); - Cura_FanSensor_Set_PossibleStates(&w, index++, "Above Maximum"); - } - - // NumericSensor - Cura_FanSensor_Set_BaseUnits(&w, Cura_FanSensor_BaseUnits_Revolutions); - Cura_FanSensor_Set_UnitModifier(&w, 0); - Cura_FanSensor_Set_RateUnits(&w, Cura_FanSensor_RateUnits_Per_Minute); - Cura_FanSensor_Set_CurrentReading(&w, sptr->speed); - if (sptr->accessible_features & CIM_FAN_AF_MAX_SPEED) { - Cura_FanSensor_Set_NormalMax(&w, sptr->max_speed); - } - if (sptr->accessible_features & CIM_FAN_AF_MIN_SPEED) { - Cura_FanSensor_Set_NormalMin(&w, sptr->min_speed); - } - Cura_FanSensor_Set_MinReadable(&w, 0); - Cura_FanSensor_Set_IsLinear(&w, true); - - KReturnInstance(cr, w); - lptr = lptr->next; - } - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_FanSensorGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_FanSensorCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_FanSensorModifyInstance( - 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 Cura_FanSensorDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_FanSensorExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -CMInstanceMIStub( - Cura_FanSensor, - Cura_FanSensor, - _cb, - Cura_FanSensorInitialize()) - -static CMPIStatus Cura_FanSensorMethodCleanup( - CMPIMethodMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_FanSensorInvokeMethod( - CMPIMethodMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* meth, - const CMPIArgs* in, - CMPIArgs* out) -{ - return Cura_FanSensor_DispatchMethod( - _cb, mi, cc, cr, cop, meth, in, out); -} - -CMMethodMIStub( - Cura_FanSensor, - Cura_FanSensor, - _cb, - Cura_FanSensorInitialize()) - -KUint32 Cura_FanSensor_RequestStateChange( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanSensorRef* self, - const KUint16* RequestedState, - KRef* Job, - const KDateTime* TimeoutPeriod, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_FanSensor_SetPowerState( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanSensorRef* self, - const KUint16* PowerState, - const KDateTime* Time, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_FanSensor_Reset( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanSensorRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_FanSensor_EnableDevice( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanSensorRef* self, - const KBoolean* Enabled, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_FanSensor_OnlineDevice( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanSensorRef* self, - const KBoolean* Online, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_FanSensor_QuiesceDevice( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanSensorRef* self, - const KBoolean* Quiesce, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_FanSensor_SaveProperties( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanSensorRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_FanSensor_RestoreProperties( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanSensorRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_FanSensor_RestoreDefaultThresholds( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanSensorRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_FanSensor_GetNonLinearFactors( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_FanSensorRef* self, - const KSint32* SensorReading, - KSint32* Accuracy, - KUint32* Resolution, - KSint32* Tolerance, - KUint32* Hysteresis, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_FanSensor", - "Cura_FanSensor", - "instance method") diff --git a/src/fan/LMI_FanAssociatedSensorProvider.c b/src/fan/LMI_FanAssociatedSensorProvider.c new file mode 100644 index 0000000..d89a1fd --- /dev/null +++ b/src/fan/LMI_FanAssociatedSensorProvider.c @@ -0,0 +1,258 @@ +/* + * Copyright (C) 2012 Michal Minar + * Copyright (C) 2012 Radek Novacek + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +#include +#include "LMI_FanAssociatedSensor.h" +#include "fan.h" +#include + +static const CMPIBroker* _cb; + +static void LMI_FanAssociatedSensorInitialize() +{ + init_linux_fan_module(); +} + +static CMPIStatus LMI_FanAssociatedSensorCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_FanAssociatedSensorEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_FanAssociatedSensorEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + const char *ns = KNameSpace(cop); + + struct cim_fan *sptr = NULL; + struct fanlist *lptr = NULL, *fans = NULL; + if (enum_all_fans(&fans) != 0 ) { + KReturn2(_cb, ERR_FAILED, "Could not list get fan list."); + } + + lptr = fans; + // iterate fan list + while (lptr) { + sptr = lptr->f; + LMI_FanAssociatedSensor w; + LMI_FanAssociatedSensor_Init(&w, _cb, ns); + + LMI_FanRef fan; + LMI_FanRef_Init(&fan, _cb, ns); + LMI_FanRef_Set_CreationClassName(&fan, "LMI_Fan"); + LMI_FanRef_Set_DeviceID(&fan, sptr->device_id); + LMI_FanRef_Set_SystemCreationClassName(&fan, get_system_creation_class_name()); + LMI_FanRef_Set_SystemName(&fan, get_system_name()); + + LMI_FanSensorRef fanSensor; + LMI_FanSensorRef_Init(&fanSensor, _cb, ns); + LMI_FanSensorRef_Set_CreationClassName(&fanSensor, "LMI_FanSensor"); + LMI_FanSensorRef_Set_DeviceID(&fanSensor, sptr->device_id); + LMI_FanSensorRef_Set_SystemCreationClassName(&fanSensor, get_system_creation_class_name()); + LMI_FanSensorRef_Set_SystemName(&fanSensor, get_system_name()); + + LMI_FanAssociatedSensor_Set_Antecedent(&w, &fanSensor); + LMI_FanAssociatedSensor_Set_Dependent(&w, &fan); + + KReturnInstance(cr, w); + lptr = lptr->next; + } + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_FanAssociatedSensorGetInstance( + 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_FanAssociatedSensorCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_FanAssociatedSensorModifyInstance( + 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_FanAssociatedSensorDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_FanAssociatedSensorExecQuery( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* lang, + const char* query) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_FanAssociatedSensorAssociationCleanup( + CMPIAssociationMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_FanAssociatedSensorAssociators( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole, + const char** properties) +{ + return KDefaultAssociators( + _cb, + mi, + cc, + cr, + cop, + LMI_FanAssociatedSensor_ClassName, + assocClass, + resultClass, + role, + resultRole, + properties); +} + +static CMPIStatus LMI_FanAssociatedSensorAssociatorNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole) +{ + return KDefaultAssociatorNames( + _cb, + mi, + cc, + cr, + cop, + LMI_FanAssociatedSensor_ClassName, + assocClass, + resultClass, + role, + resultRole); +} + +static CMPIStatus LMI_FanAssociatedSensorReferences( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role, + const char** properties) +{ + return KDefaultReferences( + _cb, + mi, + cc, + cr, + cop, + LMI_FanAssociatedSensor_ClassName, + assocClass, + role, + properties); +} + +static CMPIStatus LMI_FanAssociatedSensorReferenceNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role) +{ + return KDefaultReferenceNames( + _cb, + mi, + cc, + cr, + cop, + LMI_FanAssociatedSensor_ClassName, + assocClass, + role); +} + +CMInstanceMIStub( + LMI_FanAssociatedSensor, + LMI_FanAssociatedSensor, + _cb, + LMI_FanAssociatedSensorInitialize()) + +CMAssociationMIStub( + LMI_FanAssociatedSensor, + LMI_FanAssociatedSensor, + _cb, + LMI_FanAssociatedSensorInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_FanAssociatedSensor", + "LMI_FanAssociatedSensor", + "instance association") diff --git a/src/fan/LMI_FanProvider.c b/src/fan/LMI_FanProvider.c new file mode 100644 index 0000000..e6d8959 --- /dev/null +++ b/src/fan/LMI_FanProvider.c @@ -0,0 +1,411 @@ +/* + * Copyright (C) 2012 Michal Minar + * Copyright (C) 2012 Radek Novacek + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +#include +#include +#include "LMI_Fan.h" +#include "globals.h" +#include "fan.h" +static const CMPIBroker* _cb = NULL; + +#include +#include +#include + +void print_backtrace(int signal) +{ + fprintf(stderr, "BackTrace\n"); + int ppid = getpid(); + int pid = fork(); + if (pid == 0) { + // Child process + char *strpid; + asprintf(&strpid, "%d", ppid); + execl("/usr/bin/gdb", "/usr/bin/gdb", "-p", strpid, NULL); + } else { + int status; + waitpid(pid, &status, 0); + system("/usr/bin/pkill -9 sfcbd"); + } +} + +static void LMI_FanInitialize() +{ + init_linux_fan_module(); + signal(SIGSEGV, print_backtrace); +} + +static CMPIStatus LMI_FanCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_FanEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_FanEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + const char *ns = KNameSpace(cop); + + char buf[200]; + struct fanlist *lptr = NULL; + struct fanlist *fans = NULL; + struct cim_fan *sptr; + + if (enum_all_fans(&fans)) { + KReturn2(_cb, ERR_FAILED, "Could not list fans."); + } + + // iterate fan list + lptr = fans; + while (lptr != NULL) { + sptr = lptr->f; + LMI_Fan w; + LMI_Fan_Init(&w, _cb, ns); + LMI_Fan_Set_CreationClassName(&w, "LMI_Fan"); + LMI_Fan_Set_SystemCreationClassName(&w, get_system_creation_class_name()); + LMI_Fan_Set_SystemName(&w, get_system_name()); + LMI_Fan_Set_DeviceID(&w, sptr->device_id); + + LMI_Fan_Set_Caption(&w, "Computer's fan"); + LMI_Fan_Set_Description(&w,"Computer's fan."); + snprintf(buf, 200, "Fan \"%s\" on chip \"%s\"", sptr->name, sptr->chip_name); + LMI_Fan_Set_ElementName(&w, buf); + + // ManagedSystemElement + LMI_Fan_Set_Name(&w, sptr->name); + LMI_Fan_Init_OperationalStatus(&w, 2); + LMI_Fan_Set_OperationalStatus(&w, 0, sptr->fault ? + LMI_Fan_OperationalStatus_Error : + LMI_Fan_OperationalStatus_OK); + if (sptr->alarm || sptr->alarm_min || sptr->alarm_max) { + LMI_Fan_Set_OperationalStatus(&w, 1, LMI_Fan_OperationalStatus_Stressed); + } + + LMI_Fan_Init_StatusDescriptions(&w, 2); + LMI_Fan_Set_StatusDescriptions(&w, 0, sptr->fault ? + "Chip indicates, that fan is in fault state." + " Possible causes are open diodes, unconnected fan etc." + " Thus the measurement for this channel should not be trusted." + : "Fan seems to be functioning correctly."); + if (sptr->alarm || sptr->alarm_min || sptr->alarm_max) { + snprintf(buf, 200, "These alarm flags are set by the fan's chip:" + " alarm=%s, min_alarm=%s, max_alarm=%s", + sptr->alarm ? "1":"0", + sptr->alarm_min ? "1":"0", + sptr->alarm_max ? "1":"0"); + LMI_Fan_Set_StatusDescriptions(&w, 1, buf); + } + + + LMI_Fan_Set_HealthState(&w, sptr->fault ? + LMI_Fan_HealthState_Major_failure : + LMI_Fan_HealthState_OK); + + LMI_Fan_Set_OperatingStatus(&w, sptr->fault ? + LMI_Fan_OperatingStatus_Stopped : + LMI_Fan_OperatingStatus_In_Service); + + LMI_Fan_Set_PrimaryStatus(&w, sptr->fault ? + LMI_Fan_PrimaryStatus_Error : + LMI_Fan_PrimaryStatus_OK); + + // EnabledLogicalElement + LMI_Fan_Init_OtherIdentifyingInfo(&w, 2); + LMI_Fan_Set_OtherIdentifyingInfo(&w, 0, sptr->chip_name); + LMI_Fan_Set_OtherIdentifyingInfo(&w, 1, sptr->sys_path); + + LMI_Fan_Init_IdentifyingDescriptions(&w, 2); + LMI_Fan_Set_IdentifyingDescriptions(&w, 0, "ChipName - name of fan's chip."); + LMI_Fan_Set_IdentifyingDescriptions(&w, 1, "SysPath - system path of fan's chip."); + + LMI_Fan_Set_ActiveCooling(&w, true); + + uint32_t i = 1; + int index = 0; + debug("accessible_features: %d", sptr->accessible_features); + LMI_Fan_Init_AccessibleFeatures(&w, 8); + while (i <= CIM_FAN_AF_FEATURE_MAX) { + if (i & sptr->accessible_features) { + LMI_Fan_Set_AccessibleFeatures(&w, index++, i); + } + i = i << 1; + } + if (sptr->accessible_features & CIM_FAN_AF_MIN_SPEED) { + LMI_Fan_Set_MinSpeed(&w, (uint64_t) sptr->min_speed); + } + if (sptr->accessible_features & CIM_FAN_AF_MAX_SPEED) { + LMI_Fan_Set_MaxSpeed(&w, (uint64_t) sptr->max_speed); + } + if (sptr->accessible_features & CIM_FAN_AF_DIV) { + LMI_Fan_Set_Divisor(&w, sptr->divisor); + } + if (sptr->accessible_features & CIM_FAN_AF_PULSES) { + LMI_Fan_Set_Pulses(&w, sptr->pulses); + } + if (sptr->accessible_features & CIM_FAN_AF_BEEP) { + LMI_Fan_Set_Beep(&w, sptr->beep); + } + if (sptr->accessible_features & CIM_FAN_AF_ALARM) { + LMI_Fan_Set_Alarm(&w, sptr->alarm); + } + if (sptr->accessible_features & CIM_FAN_AF_ALARM_MIN) { + LMI_Fan_Set_MinAlarm(&w, sptr->alarm_min); + } + if (sptr->accessible_features & CIM_FAN_AF_ALARM_MAX) { + LMI_Fan_Set_MaxAlarm(&w, sptr->alarm_max); + } + + KReturnInstance(cr, w); + lptr = lptr->next; + } + free_fanlist(fans); + KReturn(OK); +} + +static CMPIStatus LMI_FanGetInstance( + 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_FanCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_FanModifyInstance( + 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_FanDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_FanExecQuery( + 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_Fan, + LMI_Fan, + _cb, + LMI_FanInitialize()) + +static CMPIStatus LMI_FanMethodCleanup( + CMPIMethodMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_FanInvokeMethod( + CMPIMethodMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* meth, + const CMPIArgs* in, + CMPIArgs* out) +{ + return LMI_Fan_DispatchMethod( + _cb, mi, cc, cr, cop, meth, in, out); +} + +CMMethodMIStub( + LMI_Fan, + LMI_Fan, + _cb, + LMI_FanInitialize()) + +KUint32 LMI_Fan_RequestStateChange( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanRef* self, + const KUint16* RequestedState, + KRef* Job, + const KDateTime* TimeoutPeriod, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_Fan_SetPowerState( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanRef* self, + const KUint16* PowerState, + const KDateTime* Time, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_Fan_Reset( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_Fan_EnableDevice( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanRef* self, + const KBoolean* Enabled, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_Fan_OnlineDevice( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanRef* self, + const KBoolean* Online, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_Fan_QuiesceDevice( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanRef* self, + const KBoolean* Quiesce, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_Fan_SaveProperties( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_Fan_RestoreProperties( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_Fan_SetSpeed( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanRef* self, + const KUint64* DesiredSpeed, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_Fan", + "LMI_Fan", + "instance method") diff --git a/src/fan/LMI_FanSensorProvider.c b/src/fan/LMI_FanSensorProvider.c new file mode 100644 index 0000000..5ede6fb --- /dev/null +++ b/src/fan/LMI_FanSensorProvider.c @@ -0,0 +1,401 @@ +/* + * Copyright (C) 2012 Michal Minar + * Copyright (C) 2012 Radek Novacek + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +#include +#include "LMI_FanSensor.h" +#include "fan.h" +#include + +static const CMPIBroker* _cb = NULL; + +static void LMI_FanSensorInitialize() +{ + init_linux_fan_module(); +} + +static CMPIStatus LMI_FanSensorCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_FanSensorEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_FanSensorEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + char buf[200]; + struct cim_fan *sptr = NULL; + struct fanlist *lptr = NULL, *fans = NULL; + if (enum_all_fans(&fans) != 0 ) { + KReturn2(_cb, ERR_FAILED, "Could not list get fan list."); + } + + lptr = fans; + // iterate fan list + while (lptr) { + sptr = lptr->f; + LMI_FanSensor w; + LMI_FanSensor_Init(&w, _cb, KNameSpace(cop)); + LMI_FanSensor_Set_CreationClassName(&w, "LMI_FanSensor"); + LMI_FanSensor_Set_SystemCreationClassName(&w, get_system_creation_class_name()); + LMI_FanSensor_Set_SystemName(&w, get_system_name()); + LMI_FanSensor_Set_DeviceID(&w, sptr->device_id); + + LMI_FanSensor_Set_Caption(&w, "Computer's fan"); + LMI_FanSensor_Set_Description(&w,"Computer's fan."); + snprintf(buf, 200, "Fan \"%s\" on chip \"%s\"", sptr->name, sptr->chip_name); + LMI_FanSensor_Set_ElementName(&w, buf); + + // ManagedSystemElement + LMI_FanSensor_Set_Name(&w, sptr->name); + + LMI_FanSensor_Init_OperationalStatus(&w, 2); + LMI_FanSensor_Set_OperationalStatus(&w, 0, sptr->fault ? + LMI_FanSensor_OperationalStatus_Error : + LMI_FanSensor_OperationalStatus_OK); + if (sptr->alarm || sptr->alarm_min || sptr->alarm_max) { + LMI_FanSensor_Set_OperationalStatus(&w, 1, LMI_FanSensor_OperationalStatus_Stressed); + } + + LMI_FanSensor_Init_StatusDescriptions(&w, 2); + LMI_FanSensor_Set_StatusDescriptions(&w, 0, sptr->fault ? + "Chip indicates, that fan is in fault state." + " Possible causes are open diodes, unconnected fan etc." + " Thus the measurement for this channel should not be trusted." + : "Fan seems to be functioning correctly."); + if (sptr->alarm || sptr->alarm_min || sptr->alarm_max) { + snprintf(buf, 200, "These alarm flags are set by the fan's chip:" + " alarm=%s, min_alarm=%s, max_alarm=%s", + sptr->alarm ? "1":"0", + sptr->alarm_min ? "1":"0", + sptr->alarm_max ? "1":"0"); + LMI_FanSensor_Set_StatusDescriptions(&w, 1, buf); + } + + LMI_FanSensor_Set_HealthState(&w, sptr->fault ? + LMI_FanSensor_HealthState_Major_failure : + LMI_FanSensor_HealthState_OK); + + LMI_FanSensor_Set_OperatingStatus(&w, sptr->fault ? + LMI_FanSensor_OperatingStatus_Stopped : + LMI_FanSensor_OperatingStatus_In_Service); + + LMI_FanSensor_Set_PrimaryStatus(&w, sptr->fault ? + LMI_FanSensor_PrimaryStatus_Error : + LMI_FanSensor_PrimaryStatus_OK); + + // EnabledLogicalElement + LMI_FanSensor_Init_OtherIdentifyingInfo(&w, 2); + LMI_FanSensor_Set_OtherIdentifyingInfo(&w, 0, sptr->chip_name); + LMI_FanSensor_Set_OtherIdentifyingInfo(&w, 1, sptr->sys_path); + + LMI_FanSensor_Init_IdentifyingDescriptions(&w, 2); + LMI_FanSensor_Set_IdentifyingDescriptions(&w, 0, "ChipName - name of fan's chip."); + LMI_FanSensor_Set_IdentifyingDescriptions(&w, 1, "SysPath - system path of fan's chip."); + + // ManagedElement + LMI_FanSensor_Set_Caption(&w, "Fan's tachometer"); + LMI_FanSensor_Set_Description(&w,"Associated sensor of fan. Giving information about its speed."); + + snprintf(buf, 200, "Tachometer of fan \"%s\" on chip \"%s\"", sptr->name, sptr->chip_name); + LMI_FanSensor_Set_ElementName(&w, buf); + + // Sensor + LMI_FanSensor_Set_SensorType(&w, LMI_FanSensor_SensorType_Tachometer); + LMI_FanSensor_Set_CurrentState(&w, fan_get_current_state(sptr)); + + LMI_FanSensor_Init_PossibleStates(&w, 5); + int index = 0; + if (sptr->accessible_features & CIM_FAN_AF_MIN_SPEED) { + LMI_FanSensor_Set_PossibleStates(&w, index++, "Below Minimum"); + LMI_FanSensor_Set_PossibleStates(&w, index++, "At Minimum"); + } + LMI_FanSensor_Set_PossibleStates(&w, index++, "Normal"); + if (sptr->accessible_features & CIM_FAN_AF_MAX_SPEED) { + LMI_FanSensor_Set_PossibleStates(&w, index++, "At Maximum"); + LMI_FanSensor_Set_PossibleStates(&w, index++, "Above Maximum"); + } + + // NumericSensor + LMI_FanSensor_Set_BaseUnits(&w, LMI_FanSensor_BaseUnits_Revolutions); + LMI_FanSensor_Set_UnitModifier(&w, 0); + LMI_FanSensor_Set_RateUnits(&w, LMI_FanSensor_RateUnits_Per_Minute); + LMI_FanSensor_Set_CurrentReading(&w, sptr->speed); + if (sptr->accessible_features & CIM_FAN_AF_MAX_SPEED) { + LMI_FanSensor_Set_NormalMax(&w, sptr->max_speed); + } + if (sptr->accessible_features & CIM_FAN_AF_MIN_SPEED) { + LMI_FanSensor_Set_NormalMin(&w, sptr->min_speed); + } + LMI_FanSensor_Set_MinReadable(&w, 0); + LMI_FanSensor_Set_IsLinear(&w, true); + + KReturnInstance(cr, w); + lptr = lptr->next; + } + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_FanSensorGetInstance( + 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_FanSensorCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_FanSensorModifyInstance( + 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_FanSensorDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_FanSensorExecQuery( + 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_FanSensor, + LMI_FanSensor, + _cb, + LMI_FanSensorInitialize()) + +static CMPIStatus LMI_FanSensorMethodCleanup( + CMPIMethodMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_FanSensorInvokeMethod( + CMPIMethodMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* meth, + const CMPIArgs* in, + CMPIArgs* out) +{ + return LMI_FanSensor_DispatchMethod( + _cb, mi, cc, cr, cop, meth, in, out); +} + +CMMethodMIStub( + LMI_FanSensor, + LMI_FanSensor, + _cb, + LMI_FanSensorInitialize()) + +KUint32 LMI_FanSensor_RequestStateChange( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanSensorRef* self, + const KUint16* RequestedState, + KRef* Job, + const KDateTime* TimeoutPeriod, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_FanSensor_SetPowerState( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanSensorRef* self, + const KUint16* PowerState, + const KDateTime* Time, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_FanSensor_Reset( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanSensorRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_FanSensor_EnableDevice( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanSensorRef* self, + const KBoolean* Enabled, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_FanSensor_OnlineDevice( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanSensorRef* self, + const KBoolean* Online, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_FanSensor_QuiesceDevice( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanSensorRef* self, + const KBoolean* Quiesce, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_FanSensor_SaveProperties( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanSensorRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_FanSensor_RestoreProperties( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanSensorRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_FanSensor_RestoreDefaultThresholds( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanSensorRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_FanSensor_GetNonLinearFactors( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_FanSensorRef* self, + const KSint32* SensorReading, + KSint32* Accuracy, + KUint32* Resolution, + KSint32* Tolerance, + KUint32* Hysteresis, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_FanSensor", + "LMI_FanSensor", + "instance method") diff --git a/src/power/CMakeLists.txt b/src/power/CMakeLists.txt index 592380d..a577af9 100644 --- a/src/power/CMakeLists.txt +++ b/src/power/CMakeLists.txt @@ -1,7 +1,7 @@ set(PROVIDER_NAME PowerManagement) set(LIBRARY_NAME cmpiCura_${PROVIDER_NAME}) -set(MOF Cura_PowerManagement.mof) +set(MOF LMI_PowerManagement.mof) set(provider_SRCS power.c diff --git a/src/power/Cura_AssociatedPowerManagementServiceProvider.c b/src/power/Cura_AssociatedPowerManagementServiceProvider.c deleted file mode 100644 index 81f8883..0000000 --- a/src/power/Cura_AssociatedPowerManagementServiceProvider.c +++ /dev/null @@ -1,285 +0,0 @@ -/* - * Copyright (C) 2012 Radek Novacek - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -#include "Cura_AssociatedPowerManagementService.h" -#include "Cura_PowerManagementService.h" -#include "CIM_ComputerSystem.h" - -#include "power.h" - -#include "globals.h" - -static const CMPIBroker* _cb; - -static void Cura_AssociatedPowerManagementServiceInitialize(CMPIInstanceMI *mi) -{ - mi->hdl = power_ref(_cb); -} - -static void Cura_AssociatedPowerManagementServiceAssociationInitialize(CMPIAssociationMI *mi) -{ - mi->hdl = power_ref(_cb); -} - -static CMPIStatus Cura_AssociatedPowerManagementServiceCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - power_unref(mi->hdl); - mi->hdl = NULL; - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AssociatedPowerManagementServiceEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_AssociatedPowerManagementServiceEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - CMPIStatus rc; - const char *ns = KNameSpace(cop); - - Cura_AssociatedPowerManagementService w; - Cura_AssociatedPowerManagementService_Init(&w, _cb, ns); - - CIM_ComputerSystemRef computerSystemRef; - CIM_ComputerSystemRef_Init(&computerSystemRef, _cb, ns); - CIM_ComputerSystemRef_Set_Name(&computerSystemRef, get_system_name()); - CIM_ComputerSystemRef_Set_CreationClassName(&computerSystemRef, get_system_creation_class_name()); - CMPIObjectPath *computerSystemOP = CIM_ComputerSystemRef_ToObjectPath(&computerSystemRef, &rc); - computerSystemOP->ft->setClassName(computerSystemOP, get_system_creation_class_name()); - Cura_AssociatedPowerManagementService_SetObjectPath_UserOfService(&w, computerSystemOP); - - Cura_PowerManagementServiceRef powerManagementServiceRef; - Cura_PowerManagementServiceRef_Init(&powerManagementServiceRef, _cb, ns); - Cura_PowerManagementServiceRef_Set_Name(&powerManagementServiceRef, get_system_name()); - Cura_PowerManagementServiceRef_Set_SystemName(&powerManagementServiceRef, get_system_name()); - Cura_PowerManagementServiceRef_Set_CreationClassName(&powerManagementServiceRef, "Cura_PowerManagementService"); - Cura_PowerManagementServiceRef_Set_SystemCreationClassName(&powerManagementServiceRef, get_system_creation_class_name()); - Cura_AssociatedPowerManagementService_Set_ServiceProvided(&w, &powerManagementServiceRef); - - int count; - unsigned short *list = power_available_requested_power_states(mi->hdl, &count); - Cura_AssociatedPowerManagementService_Init_AvailableRequestedPowerStates(&w, count); - for (int i = 0; i < count; i++) { - Cura_AssociatedPowerManagementService_Set_AvailableRequestedPowerStates(&w, i, list[i]); - } - - Cura_AssociatedPowerManagementService_Set_TransitioningToPowerState(&w, power_transitioning_to_power_state(mi->hdl)); - Cura_AssociatedPowerManagementService_Set_PowerState(&w, 2); - Cura_AssociatedPowerManagementService_Set_RequestedPowerState(&w, power_requested_power_state(mi->hdl)); - - KReturnInstance(cr, w); - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AssociatedPowerManagementServiceGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_AssociatedPowerManagementServiceCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AssociatedPowerManagementServiceModifyInstance( - 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 Cura_AssociatedPowerManagementServiceDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AssociatedPowerManagementServiceExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_AssociatedPowerManagementServiceAssociationCleanup( - CMPIAssociationMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - power_unref(mi->hdl); - mi->hdl = NULL; - - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_AssociatedPowerManagementServiceAssociators( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole, - const char** properties) -{ - if (!assocClass) { - assocClass = "Cura_AssociatedPowerManagementService"; - } - - return KDefaultAssociators( - _cb, - mi, - cc, - cr, - cop, - Cura_AssociatedPowerManagementService_ClassName, - assocClass, - resultClass, - role, - resultRole, - properties); -} - -static CMPIStatus Cura_AssociatedPowerManagementServiceAssociatorNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole) -{ - if (!assocClass) { - assocClass = "Cura_AssociatedPowerManagementService"; - } - - return KDefaultAssociatorNames( - _cb, - mi, - cc, - cr, - cop, - Cura_AssociatedPowerManagementService_ClassName, - assocClass, - resultClass, - role, - resultRole); -} - -static CMPIStatus Cura_AssociatedPowerManagementServiceReferences( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role, - const char** properties) -{ - if (!assocClass) { - assocClass = "Cura_AssociatedPowerManagementService"; - } - - return KDefaultReferences( - _cb, - mi, - cc, - cr, - cop, - Cura_AssociatedPowerManagementService_ClassName, - assocClass, - role, - properties); -} - -static CMPIStatus Cura_AssociatedPowerManagementServiceReferenceNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role) -{ - if (!assocClass) { - assocClass = "Cura_AssociatedPowerManagementService"; - } - - return KDefaultReferenceNames( - _cb, - mi, - cc, - cr, - cop, - Cura_AssociatedPowerManagementService_ClassName, - assocClass, - role); -} - -CMInstanceMIStub( - Cura_AssociatedPowerManagementService, - Cura_AssociatedPowerManagementService, - _cb, - Cura_AssociatedPowerManagementServiceInitialize(&mi)) - -CMAssociationMIStub( - Cura_AssociatedPowerManagementService, - Cura_AssociatedPowerManagementService, - _cb, - Cura_AssociatedPowerManagementServiceAssociationInitialize(&mi)) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_AssociatedPowerManagementService", - "Cura_AssociatedPowerManagementService", - "instance association") diff --git a/src/power/Cura_ConcreteJobProvider.c b/src/power/Cura_ConcreteJobProvider.c deleted file mode 100644 index 54775dc..0000000 --- a/src/power/Cura_ConcreteJobProvider.c +++ /dev/null @@ -1,222 +0,0 @@ -/* - * Copyright (C) 2012 Radek Novacek - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -#include -#include -#include "Cura_ConcreteJob.h" -#include "globals.h" - -static const CMPIBroker* _cb = NULL; - -#include "power.h" - -static void Cura_ConcreteJobInitializeInstance(CMPIInstanceMI *mi) -{ - mi->hdl = power_ref(_cb); -} - -static void Cura_ConcreteJobInitializeMethod(CMPIMethodMI *mi) -{ - mi->hdl = power_ref(_cb); -} - -static CMPIStatus Cura_ConcreteJobCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - if (power_get_jobs(mi->hdl) != NULL) { - // We have jobs running -> do not unload - CMReturn(CMPI_RC_DO_NOT_UNLOAD); - } - power_unref(mi->hdl); - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_ConcreteJobEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_ConcreteJobEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - CMPIStatus status; - const char *ns = KNameSpace(cop); - - PowerStateChangeJob *powerStateChangeJob; - GList *plist = power_get_jobs(mi->hdl); - - while (plist) { - powerStateChangeJob = plist->data; - Cura_ConcreteJob concreteJob; - Cura_ConcreteJob_Init(&concreteJob, _cb, ns); - Cura_ConcreteJob_Set_InstanceID(&concreteJob, "Cura_PowerStateChange_ConcreteJob:123"); // TODO: unique ID - Cura_ConcreteJob_Set_JobState(&concreteJob, job_state(powerStateChangeJob)); - Cura_ConcreteJob_Set_TimeOfLastStateChange(&concreteJob, CMNewDateTimeFromBinary(_cb, ((uint64_t) job_timeOfLastChange(powerStateChangeJob)) * 1000000, 0, &status)); - //Cura_ConcreteJob_Set_ - KReturnInstance(cr, concreteJob); - plist = g_list_next(plist); - } - - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_ConcreteJobGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_ConcreteJobCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_ConcreteJobModifyInstance( - 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 Cura_ConcreteJobDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_ConcreteJobExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -CMInstanceMIStub( - Cura_ConcreteJob, - Cura_ConcreteJob, - _cb, - Cura_ConcreteJobInitializeInstance(&mi)) - -static CMPIStatus Cura_ConcreteJobMethodCleanup( - CMPIMethodMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - power_unref(mi->hdl); - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_ConcreteJobInvokeMethod( - CMPIMethodMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* meth, - const CMPIArgs* in, - CMPIArgs* out) -{ - return Cura_ConcreteJob_DispatchMethod( - _cb, mi, cc, cr, cop, meth, in, out); -} - -CMMethodMIStub( - Cura_ConcreteJob, - Cura_ConcreteJob, - _cb, - Cura_ConcreteJobInitializeMethod(&mi)) - -KUint32 Cura_ConcreteJob_KillJob( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_ConcreteJobRef* self, - const KBoolean* DeleteOnKill, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_ConcreteJob_RequestStateChange( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_ConcreteJobRef* self, - const KUint16* RequestedState, - const KDateTime* TimeoutPeriod, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_ConcreteJob_GetError( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_ConcreteJobRef* self, - KString* Error, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_ConcreteJob", - "Cura_ConcreteJob", - "instance method") diff --git a/src/power/Cura_ElementCapabilitiesProvider.c b/src/power/Cura_ElementCapabilitiesProvider.c deleted file mode 100644 index 6d08021..0000000 --- a/src/power/Cura_ElementCapabilitiesProvider.c +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Copyright (C) 2012 Radek Novacek - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -#include -#include "Cura_ElementCapabilities.h" -#include "globals.h" - -static const CMPIBroker* _cb; - -static void Cura_ElementCapabilitiesInitialize() -{ -} - -static CMPIStatus Cura_ElementCapabilitiesCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_ElementCapabilitiesEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_ElementCapabilitiesEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - const char *ns = KNameSpace(cop); - - Cura_ElementCapabilities w; - Cura_ElementCapabilities_Init(&w, _cb, ns); - - Cura_PowerManagementServiceRef powerManagementServiceRef; - Cura_PowerManagementServiceRef_Init(&powerManagementServiceRef, _cb, ns); - Cura_PowerManagementServiceRef_Set_Name(&powerManagementServiceRef, get_system_name()); - Cura_PowerManagementServiceRef_Set_SystemName(&powerManagementServiceRef, get_system_name()); - Cura_PowerManagementServiceRef_Set_CreationClassName(&powerManagementServiceRef, "Cura_PowerManagementService"); - Cura_PowerManagementServiceRef_Set_SystemCreationClassName(&powerManagementServiceRef, get_system_creation_class_name()); - - Cura_ElementCapabilities_Set_ManagedElement(&w, &powerManagementServiceRef); - - Cura_PowerManagementCapabilitiesRef powerManagementCapabilitiesRef; - Cura_PowerManagementCapabilitiesRef_Init(&powerManagementCapabilitiesRef, _cb, ns); - Cura_PowerManagementCapabilitiesRef_Set_InstanceID(&powerManagementCapabilitiesRef, "RedHat:PowerManagementCapabilities"); - - Cura_ElementCapabilities_Set_Capabilities(&w, &powerManagementCapabilitiesRef); - - KReturnInstance(cr, w); - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_ElementCapabilitiesGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_ElementCapabilitiesCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_ElementCapabilitiesModifyInstance( - 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 Cura_ElementCapabilitiesDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_ElementCapabilitiesExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_ElementCapabilitiesAssociationCleanup( - CMPIAssociationMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_ElementCapabilitiesAssociators( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole, - const char** properties) -{ - return KDefaultAssociators( - _cb, - mi, - cc, - cr, - cop, - Cura_ElementCapabilities_ClassName, - assocClass, - resultClass, - role, - resultRole, - properties); -} - -static CMPIStatus Cura_ElementCapabilitiesAssociatorNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole) -{ - return KDefaultAssociatorNames( - _cb, - mi, - cc, - cr, - cop, - Cura_ElementCapabilities_ClassName, - assocClass, - resultClass, - role, - resultRole); -} - -static CMPIStatus Cura_ElementCapabilitiesReferences( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role, - const char** properties) -{ - return KDefaultReferences( - _cb, - mi, - cc, - cr, - cop, - Cura_ElementCapabilities_ClassName, - assocClass, - role, - properties); -} - -static CMPIStatus Cura_ElementCapabilitiesReferenceNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role) -{ - return KDefaultReferenceNames( - _cb, - mi, - cc, - cr, - cop, - Cura_ElementCapabilities_ClassName, - assocClass, - role); -} - -CMInstanceMIStub( - Cura_ElementCapabilities, - Cura_ElementCapabilities, - _cb, - Cura_ElementCapabilitiesInitialize()) - -CMAssociationMIStub( - Cura_ElementCapabilities, - Cura_ElementCapabilities, - _cb, - Cura_ElementCapabilitiesInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_ElementCapabilities", - "Cura_ElementCapabilities", - "instance association") diff --git a/src/power/Cura_HostedServiceProvider.c b/src/power/Cura_HostedServiceProvider.c deleted file mode 100644 index e396446..0000000 --- a/src/power/Cura_HostedServiceProvider.c +++ /dev/null @@ -1,245 +0,0 @@ -/* - * Copyright (C) 2012 Radek Novacek - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -#include -#include -#include "Cura_HostedService.h" - -#include "globals.h" - -static const CMPIBroker* _cb; - -static void Cura_HostedServiceInitialize() -{ -} - -static CMPIStatus Cura_HostedServiceCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_HostedServiceEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_HostedServiceEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - CMPIStatus rc; - const char *ns = KNameSpace(cop); - - Cura_HostedService w; - Cura_HostedService_Init(&w, _cb, ns); - - CIM_ComputerSystemRef computerSystemRef; - CIM_ComputerSystemRef_Init(&computerSystemRef, _cb, ns); - CIM_ComputerSystemRef_Set_Name(&computerSystemRef, get_system_name()); - CIM_ComputerSystemRef_Set_CreationClassName(&computerSystemRef, get_system_creation_class_name()); - CMPIObjectPath *computerSystemOP = CIM_ComputerSystemRef_ToObjectPath(&computerSystemRef, &rc); - computerSystemOP->ft->setClassName(computerSystemOP, get_system_creation_class_name()); - Cura_HostedService_SetObjectPath_Antecedent(&w, computerSystemOP); - - Cura_PowerManagementServiceRef powerManagementServiceRef; - Cura_PowerManagementServiceRef_Init(&powerManagementServiceRef, _cb, ns); - Cura_PowerManagementServiceRef_Set_Name(&powerManagementServiceRef, get_system_name()); - Cura_PowerManagementServiceRef_Set_SystemName(&powerManagementServiceRef, get_system_name()); - Cura_PowerManagementServiceRef_Set_CreationClassName(&powerManagementServiceRef, "Cura_PowerManagementService"); - Cura_PowerManagementServiceRef_Set_SystemCreationClassName(&powerManagementServiceRef, get_system_creation_class_name()); - Cura_HostedService_Set_Dependent(&w, &powerManagementServiceRef); - - KReturnInstance(cr, w); - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_HostedServiceGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_HostedServiceCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_HostedServiceModifyInstance( - 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 Cura_HostedServiceDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_HostedServiceExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_HostedServiceAssociationCleanup( - CMPIAssociationMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_HostedServiceAssociators( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole, - const char** properties) -{ - return KDefaultAssociators( - _cb, - mi, - cc, - cr, - cop, - Cura_HostedService_ClassName, - assocClass, - resultClass, - role, - resultRole, - properties); -} - -static CMPIStatus Cura_HostedServiceAssociatorNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* resultClass, - const char* role, - const char* resultRole) -{ - return KDefaultAssociatorNames( - _cb, - mi, - cc, - cr, - cop, - Cura_HostedService_ClassName, - assocClass, - resultClass, - role, - resultRole); -} - -static CMPIStatus Cura_HostedServiceReferences( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role, - const char** properties) -{ - return KDefaultReferences( - _cb, - mi, - cc, - cr, - cop, - Cura_HostedService_ClassName, - assocClass, - role, - properties); -} - -static CMPIStatus Cura_HostedServiceReferenceNames( - CMPIAssociationMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* assocClass, - const char* role) -{ - return KDefaultReferenceNames( - _cb, - mi, - cc, - cr, - cop, - Cura_HostedService_ClassName, - assocClass, - role); -} - -CMInstanceMIStub( - Cura_HostedService, - Cura_HostedService, - _cb, - Cura_HostedServiceInitialize()) - -CMAssociationMIStub( - Cura_HostedService, - Cura_HostedService, - _cb, - Cura_HostedServiceInitialize()) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_HostedService", - "Cura_HostedService", - "instance association") diff --git a/src/power/Cura_PowerManagementCapabilitiesProvider.c b/src/power/Cura_PowerManagementCapabilitiesProvider.c deleted file mode 100644 index 587733c..0000000 --- a/src/power/Cura_PowerManagementCapabilitiesProvider.c +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright (C) 2012 Radek Novacek - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -#include -#include "Cura_PowerManagementCapabilities.h" - -#include "power.h" - -static const CMPIBroker* _cb = NULL; - -static void Cura_PowerManagementCapabilitiesInitialize(CMPIInstanceMI *mi) -{ - mi->hdl = power_ref(_cb); -} - -static void Cura_PowerManagementCapabilitiesInitializeMethod(CMPIMethodMI *mi) -{ - mi->hdl = power_ref(_cb); -} - -static CMPIStatus Cura_PowerManagementCapabilitiesCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - power_unref(mi->hdl); - mi->hdl = NULL; - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_PowerManagementCapabilitiesEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_PowerManagementCapabilitiesEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - const char *ns = KNameSpace(cop); - - Cura_PowerManagementCapabilities w; - Cura_PowerManagementCapabilities_Init(&w, _cb, ns); - // TODO: make it unique - Cura_PowerManagementCapabilities_Set_InstanceID(&w, "Linux:PowerManagementCapabilities"); - Cura_PowerManagementCapabilities_Set_ElementName(&w, "Linux:PowerManagementCapabilities"); - Cura_PowerManagementCapabilities_Set_Caption(&w, "Linux:PowerManagementCapabilities"); - - int count; - unsigned short *list = power_available_requested_power_states(mi->hdl, &count); - Cura_PowerManagementCapabilities_Init_PowerStatesSupported(&w, count); - for (int i = 0; i < count; i++) { - Cura_PowerManagementCapabilities_Set_PowerStatesSupported(&w, i, list[i]); - } - - // TODO: get this list dynamically from PowerStatesSupported (see SMASH) - Cura_PowerManagementCapabilities_Init_PowerChangeCapabilities(&w, 3); - Cura_PowerManagementCapabilities_Set_PowerChangeCapabilities(&w, 0, Cura_PowerManagementCapabilities_PowerChangeCapabilities_Power_State_Settable); - Cura_PowerManagementCapabilities_Set_PowerChangeCapabilities(&w, 1, Cura_PowerManagementCapabilities_PowerChangeCapabilities_Power_Cycling_Supported); - Cura_PowerManagementCapabilities_Set_PowerChangeCapabilities(&w, 2, Cura_PowerManagementCapabilities_PowerChangeCapabilities_Graceful_Shutdown_Supported); - KReturnInstance(cr, w); - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_PowerManagementCapabilitiesGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_PowerManagementCapabilitiesCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_PowerManagementCapabilitiesModifyInstance( - 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 Cura_PowerManagementCapabilitiesDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_PowerManagementCapabilitiesExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -CMInstanceMIStub( - Cura_PowerManagementCapabilities, - Cura_PowerManagementCapabilities, - _cb, - Cura_PowerManagementCapabilitiesInitialize(&mi)) - -static CMPIStatus Cura_PowerManagementCapabilitiesMethodCleanup( - CMPIMethodMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - power_unref(mi->hdl); - mi->hdl = NULL; - - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_PowerManagementCapabilitiesInvokeMethod( - CMPIMethodMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* meth, - const CMPIArgs* in, - CMPIArgs* out) -{ - return Cura_PowerManagementCapabilities_DispatchMethod( - _cb, mi, cc, cr, cop, meth, in, out); -} - -CMMethodMIStub( - Cura_PowerManagementCapabilities, - Cura_PowerManagementCapabilities, - _cb, - Cura_PowerManagementCapabilitiesInitializeMethod(&mi)) - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_PowerManagementCapabilities", - "Cura_PowerManagementCapabilities", - "instance method") diff --git a/src/power/Cura_PowerManagementServiceProvider.c b/src/power/Cura_PowerManagementServiceProvider.c deleted file mode 100644 index 493cc63..0000000 --- a/src/power/Cura_PowerManagementServiceProvider.c +++ /dev/null @@ -1,284 +0,0 @@ -/* - * Copyright (C) 2012 Radek Novacek - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -#include "Cura_PowerManagementService.h" - -#include "power.h" -#include "globals.h" - -static const CMPIBroker* _cb = NULL; - -static void Cura_PowerManagementServiceInitialize(CMPIInstanceMI *mi) -{ - mi->hdl = power_ref(_cb); -} - -static void Cura_PowerManagementServiceMethodInitialize(CMPIMethodMI *mi) -{ - mi->hdl = power_ref(_cb); -} - - -static CMPIStatus Cura_PowerManagementServiceCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - power_unref(mi->hdl); - mi->hdl = NULL; - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_PowerManagementServiceEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus Cura_PowerManagementServiceEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - Cura_PowerManagementService w; - - Cura_PowerManagementService_Init(&w, _cb, KNameSpace(cop)); - Cura_PowerManagementService_Set_CreationClassName(&w, "Cura_PowerManagementService"); - Cura_PowerManagementService_Set_Name(&w, get_system_name()); - Cura_PowerManagementService_Set_SystemCreationClassName(&w, get_system_creation_class_name()); - Cura_PowerManagementService_Set_SystemName(&w, get_system_name()); - - /* EnabledState is an integer enumeration that indicates the enabled - * and disabled states of an element. It can also indicate the transitions - * between these requested states. - */ - Cura_PowerManagementService_Set_EnabledState(&w, Cura_PowerManagementService_EnabledDefault_Enabled); - - - /* RequestedState is an integer enumeration that indicates the last - * requested or desired state for the element, irrespective of the mechanism - * through which it was requested. The actual state of the element is - * represented by EnabledState. This property is provided to compare the - * last requested and current enabled or disabled states. - */ - Cura_PowerManagementService_Set_RequestedState(&w, Cura_PowerManagementService_RequestedState_No_Change); - - Cura_PowerManagementService_Init_AvailableRequestedStates(&w, 2); - Cura_PowerManagementService_Set_AvailableRequestedStates(&w, 0, 2); // Enabled - Cura_PowerManagementService_Set_AvailableRequestedStates(&w, 1, 3); // Disabled - - - Cura_PowerManagementService_Print(&w, stderr); - - KReturnInstance(cr, w); - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_PowerManagementServiceGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - return KDefaultGetInstance( - _cb, mi, cc, cr, cop, properties); -} - -static CMPIStatus Cura_PowerManagementServiceCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_PowerManagementServiceModifyInstance( - 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 Cura_PowerManagementServiceDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_PowerManagementServiceExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -CMInstanceMIStub( - Cura_PowerManagementService, - Cura_PowerManagementService, - _cb, - Cura_PowerManagementServiceInitialize(&mi)) - -static CMPIStatus Cura_PowerManagementServiceMethodCleanup( - CMPIMethodMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - power_unref(mi->hdl); - mi->hdl = NULL; - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_PowerManagementServiceInvokeMethod( - CMPIMethodMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* meth, - const CMPIArgs* in, - CMPIArgs* out) -{ - return Cura_PowerManagementService_DispatchMethod( - _cb, mi, cc, cr, cop, meth, in, out); -} - -CMMethodMIStub( - Cura_PowerManagementService, - Cura_PowerManagementService, - _cb, - Cura_PowerManagementServiceMethodInitialize(&mi)) - -KUint32 Cura_PowerManagementService_RequestStateChange( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_PowerManagementServiceRef* self, - const KUint16* RequestedState, - KRef* Job, - const KDateTime* TimeoutPeriod, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; - -} - -KUint32 Cura_PowerManagementService_StartService( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_PowerManagementServiceRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_PowerManagementService_StopService( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_PowerManagementServiceRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_PowerManagementService_SetPowerState( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_PowerManagementServiceRef* self, - const KUint16* PowerState, - const KRef* ManagedElement, - const KDateTime* Time, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KUint32 Cura_PowerManagementService_RequestPowerStateChange( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_PowerManagementServiceRef* self, - const KUint16* PowerState, - const KRef* ManagedElement, - const KDateTime* Time, - KRef* Job, - const KDateTime* TimeoutPeriod, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - if (Time->exists && Time->null && TimeoutPeriod->exists && TimeoutPeriod->null) { - /* SMASH says: The TimeoutPeriod and Time parameters shall not be - * supported for the same invocation of the RequestPowerStateChange( ) - * method. When the TimeoutPeriod and Time parameters are specified - * for the same method invocation, the method shall return a value of 2. - */ - KUint32_Set(&result, 2); - return result; - } - - // Time argument is not handled because we don't support powering on systems - - if (!PowerState->exists || PowerState->null) { - KSetStatus2(_cb, status, ERR_INVALID_PARAMETER, "PowerState argument is missing"); - return result; - } - power_request_power_state(mi->hdl, PowerState->value); - - KSetStatus(status, OK); - KUint32_Set(&result, 4096); - return result; -} - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_PowerManagementService", - "Cura_PowerManagementService", - "instance method") diff --git a/src/power/LMI_AssociatedPowerManagementServiceProvider.c b/src/power/LMI_AssociatedPowerManagementServiceProvider.c new file mode 100644 index 0000000..777f736 --- /dev/null +++ b/src/power/LMI_AssociatedPowerManagementServiceProvider.c @@ -0,0 +1,285 @@ +/* + * Copyright (C) 2012 Radek Novacek + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +#include "LMI_AssociatedPowerManagementService.h" +#include "LMI_PowerManagementService.h" +#include "CIM_ComputerSystem.h" + +#include "power.h" + +#include "globals.h" + +static const CMPIBroker* _cb; + +static void LMI_AssociatedPowerManagementServiceInitialize(CMPIInstanceMI *mi) +{ + mi->hdl = power_ref(_cb); +} + +static void LMI_AssociatedPowerManagementServiceAssociationInitialize(CMPIAssociationMI *mi) +{ + mi->hdl = power_ref(_cb); +} + +static CMPIStatus LMI_AssociatedPowerManagementServiceCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + power_unref(mi->hdl); + mi->hdl = NULL; + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AssociatedPowerManagementServiceEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_AssociatedPowerManagementServiceEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + CMPIStatus rc; + const char *ns = KNameSpace(cop); + + LMI_AssociatedPowerManagementService w; + LMI_AssociatedPowerManagementService_Init(&w, _cb, ns); + + CIM_ComputerSystemRef computerSystemRef; + CIM_ComputerSystemRef_Init(&computerSystemRef, _cb, ns); + CIM_ComputerSystemRef_Set_Name(&computerSystemRef, get_system_name()); + CIM_ComputerSystemRef_Set_CreationClassName(&computerSystemRef, get_system_creation_class_name()); + CMPIObjectPath *computerSystemOP = CIM_ComputerSystemRef_ToObjectPath(&computerSystemRef, &rc); + computerSystemOP->ft->setClassName(computerSystemOP, get_system_creation_class_name()); + LMI_AssociatedPowerManagementService_SetObjectPath_UserOfService(&w, computerSystemOP); + + LMI_PowerManagementServiceRef powerManagementServiceRef; + LMI_PowerManagementServiceRef_Init(&powerManagementServiceRef, _cb, ns); + LMI_PowerManagementServiceRef_Set_Name(&powerManagementServiceRef, get_system_name()); + LMI_PowerManagementServiceRef_Set_SystemName(&powerManagementServiceRef, get_system_name()); + LMI_PowerManagementServiceRef_Set_CreationClassName(&powerManagementServiceRef, "LMI_PowerManagementService"); + LMI_PowerManagementServiceRef_Set_SystemCreationClassName(&powerManagementServiceRef, get_system_creation_class_name()); + LMI_AssociatedPowerManagementService_Set_ServiceProvided(&w, &powerManagementServiceRef); + + int count; + unsigned short *list = power_available_requested_power_states(mi->hdl, &count); + LMI_AssociatedPowerManagementService_Init_AvailableRequestedPowerStates(&w, count); + for (int i = 0; i < count; i++) { + LMI_AssociatedPowerManagementService_Set_AvailableRequestedPowerStates(&w, i, list[i]); + } + + LMI_AssociatedPowerManagementService_Set_TransitioningToPowerState(&w, power_transitioning_to_power_state(mi->hdl)); + LMI_AssociatedPowerManagementService_Set_PowerState(&w, 2); + LMI_AssociatedPowerManagementService_Set_RequestedPowerState(&w, power_requested_power_state(mi->hdl)); + + KReturnInstance(cr, w); + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AssociatedPowerManagementServiceGetInstance( + 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_AssociatedPowerManagementServiceCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AssociatedPowerManagementServiceModifyInstance( + 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_AssociatedPowerManagementServiceDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AssociatedPowerManagementServiceExecQuery( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* lang, + const char* query) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_AssociatedPowerManagementServiceAssociationCleanup( + CMPIAssociationMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + power_unref(mi->hdl); + mi->hdl = NULL; + + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_AssociatedPowerManagementServiceAssociators( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole, + const char** properties) +{ + if (!assocClass) { + assocClass = "LMI_AssociatedPowerManagementService"; + } + + return KDefaultAssociators( + _cb, + mi, + cc, + cr, + cop, + LMI_AssociatedPowerManagementService_ClassName, + assocClass, + resultClass, + role, + resultRole, + properties); +} + +static CMPIStatus LMI_AssociatedPowerManagementServiceAssociatorNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole) +{ + if (!assocClass) { + assocClass = "LMI_AssociatedPowerManagementService"; + } + + return KDefaultAssociatorNames( + _cb, + mi, + cc, + cr, + cop, + LMI_AssociatedPowerManagementService_ClassName, + assocClass, + resultClass, + role, + resultRole); +} + +static CMPIStatus LMI_AssociatedPowerManagementServiceReferences( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role, + const char** properties) +{ + if (!assocClass) { + assocClass = "LMI_AssociatedPowerManagementService"; + } + + return KDefaultReferences( + _cb, + mi, + cc, + cr, + cop, + LMI_AssociatedPowerManagementService_ClassName, + assocClass, + role, + properties); +} + +static CMPIStatus LMI_AssociatedPowerManagementServiceReferenceNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role) +{ + if (!assocClass) { + assocClass = "LMI_AssociatedPowerManagementService"; + } + + return KDefaultReferenceNames( + _cb, + mi, + cc, + cr, + cop, + LMI_AssociatedPowerManagementService_ClassName, + assocClass, + role); +} + +CMInstanceMIStub( + LMI_AssociatedPowerManagementService, + LMI_AssociatedPowerManagementService, + _cb, + LMI_AssociatedPowerManagementServiceInitialize(&mi)) + +CMAssociationMIStub( + LMI_AssociatedPowerManagementService, + LMI_AssociatedPowerManagementService, + _cb, + LMI_AssociatedPowerManagementServiceAssociationInitialize(&mi)) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_AssociatedPowerManagementService", + "LMI_AssociatedPowerManagementService", + "instance association") diff --git a/src/power/LMI_ConcreteJobProvider.c b/src/power/LMI_ConcreteJobProvider.c new file mode 100644 index 0000000..7677ef4 --- /dev/null +++ b/src/power/LMI_ConcreteJobProvider.c @@ -0,0 +1,222 @@ +/* + * Copyright (C) 2012 Radek Novacek + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +#include +#include +#include "LMI_ConcreteJob.h" +#include "globals.h" + +static const CMPIBroker* _cb = NULL; + +#include "power.h" + +static void LMI_ConcreteJobInitializeInstance(CMPIInstanceMI *mi) +{ + mi->hdl = power_ref(_cb); +} + +static void LMI_ConcreteJobInitializeMethod(CMPIMethodMI *mi) +{ + mi->hdl = power_ref(_cb); +} + +static CMPIStatus LMI_ConcreteJobCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + if (power_get_jobs(mi->hdl) != NULL) { + // We have jobs running -> do not unload + CMReturn(CMPI_RC_DO_NOT_UNLOAD); + } + power_unref(mi->hdl); + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_ConcreteJobEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_ConcreteJobEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + CMPIStatus status; + const char *ns = KNameSpace(cop); + + PowerStateChangeJob *powerStateChangeJob; + GList *plist = power_get_jobs(mi->hdl); + + while (plist) { + powerStateChangeJob = plist->data; + LMI_ConcreteJob concreteJob; + LMI_ConcreteJob_Init(&concreteJob, _cb, ns); + LMI_ConcreteJob_Set_InstanceID(&concreteJob, "LMI_PowerStateChange_ConcreteJob:123"); // TODO: unique ID + LMI_ConcreteJob_Set_JobState(&concreteJob, job_state(powerStateChangeJob)); + LMI_ConcreteJob_Set_TimeOfLastStateChange(&concreteJob, CMNewDateTimeFromBinary(_cb, ((uint64_t) job_timeOfLastChange(powerStateChangeJob)) * 1000000, 0, &status)); + //LMI_ConcreteJob_Set_ + KReturnInstance(cr, concreteJob); + plist = g_list_next(plist); + } + + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_ConcreteJobGetInstance( + 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_ConcreteJobCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_ConcreteJobModifyInstance( + 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_ConcreteJobDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_ConcreteJobExecQuery( + 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_ConcreteJob, + LMI_ConcreteJob, + _cb, + LMI_ConcreteJobInitializeInstance(&mi)) + +static CMPIStatus LMI_ConcreteJobMethodCleanup( + CMPIMethodMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + power_unref(mi->hdl); + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_ConcreteJobInvokeMethod( + CMPIMethodMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* meth, + const CMPIArgs* in, + CMPIArgs* out) +{ + return LMI_ConcreteJob_DispatchMethod( + _cb, mi, cc, cr, cop, meth, in, out); +} + +CMMethodMIStub( + LMI_ConcreteJob, + LMI_ConcreteJob, + _cb, + LMI_ConcreteJobInitializeMethod(&mi)) + +KUint32 LMI_ConcreteJob_KillJob( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_ConcreteJobRef* self, + const KBoolean* DeleteOnKill, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_ConcreteJob_RequestStateChange( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_ConcreteJobRef* self, + const KUint16* RequestedState, + const KDateTime* TimeoutPeriod, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_ConcreteJob_GetError( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_ConcreteJobRef* self, + KString* Error, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_ConcreteJob", + "LMI_ConcreteJob", + "instance method") diff --git a/src/power/LMI_ElementCapabilitiesProvider.c b/src/power/LMI_ElementCapabilitiesProvider.c new file mode 100644 index 0000000..46ebe8c --- /dev/null +++ b/src/power/LMI_ElementCapabilitiesProvider.c @@ -0,0 +1,241 @@ +/* + * Copyright (C) 2012 Radek Novacek + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +#include +#include "LMI_ElementCapabilities.h" +#include "globals.h" + +static const CMPIBroker* _cb; + +static void LMI_ElementCapabilitiesInitialize() +{ +} + +static CMPIStatus LMI_ElementCapabilitiesCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_ElementCapabilitiesEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_ElementCapabilitiesEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + const char *ns = KNameSpace(cop); + + LMI_ElementCapabilities w; + LMI_ElementCapabilities_Init(&w, _cb, ns); + + LMI_PowerManagementServiceRef powerManagementServiceRef; + LMI_PowerManagementServiceRef_Init(&powerManagementServiceRef, _cb, ns); + LMI_PowerManagementServiceRef_Set_Name(&powerManagementServiceRef, get_system_name()); + LMI_PowerManagementServiceRef_Set_SystemName(&powerManagementServiceRef, get_system_name()); + LMI_PowerManagementServiceRef_Set_CreationClassName(&powerManagementServiceRef, "LMI_PowerManagementService"); + LMI_PowerManagementServiceRef_Set_SystemCreationClassName(&powerManagementServiceRef, get_system_creation_class_name()); + + LMI_ElementCapabilities_Set_ManagedElement(&w, &powerManagementServiceRef); + + LMI_PowerManagementCapabilitiesRef powerManagementCapabilitiesRef; + LMI_PowerManagementCapabilitiesRef_Init(&powerManagementCapabilitiesRef, _cb, ns); + LMI_PowerManagementCapabilitiesRef_Set_InstanceID(&powerManagementCapabilitiesRef, "RedHat:PowerManagementCapabilities"); + + LMI_ElementCapabilities_Set_Capabilities(&w, &powerManagementCapabilitiesRef); + + KReturnInstance(cr, w); + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_ElementCapabilitiesGetInstance( + 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_ElementCapabilitiesCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_ElementCapabilitiesModifyInstance( + 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_ElementCapabilitiesDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_ElementCapabilitiesExecQuery( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* lang, + const char* query) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_ElementCapabilitiesAssociationCleanup( + CMPIAssociationMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_ElementCapabilitiesAssociators( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole, + const char** properties) +{ + return KDefaultAssociators( + _cb, + mi, + cc, + cr, + cop, + LMI_ElementCapabilities_ClassName, + assocClass, + resultClass, + role, + resultRole, + properties); +} + +static CMPIStatus LMI_ElementCapabilitiesAssociatorNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole) +{ + return KDefaultAssociatorNames( + _cb, + mi, + cc, + cr, + cop, + LMI_ElementCapabilities_ClassName, + assocClass, + resultClass, + role, + resultRole); +} + +static CMPIStatus LMI_ElementCapabilitiesReferences( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role, + const char** properties) +{ + return KDefaultReferences( + _cb, + mi, + cc, + cr, + cop, + LMI_ElementCapabilities_ClassName, + assocClass, + role, + properties); +} + +static CMPIStatus LMI_ElementCapabilitiesReferenceNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role) +{ + return KDefaultReferenceNames( + _cb, + mi, + cc, + cr, + cop, + LMI_ElementCapabilities_ClassName, + assocClass, + role); +} + +CMInstanceMIStub( + LMI_ElementCapabilities, + LMI_ElementCapabilities, + _cb, + LMI_ElementCapabilitiesInitialize()) + +CMAssociationMIStub( + LMI_ElementCapabilities, + LMI_ElementCapabilities, + _cb, + LMI_ElementCapabilitiesInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_ElementCapabilities", + "LMI_ElementCapabilities", + "instance association") diff --git a/src/power/LMI_HostedServiceProvider.c b/src/power/LMI_HostedServiceProvider.c new file mode 100644 index 0000000..e6bf6f1 --- /dev/null +++ b/src/power/LMI_HostedServiceProvider.c @@ -0,0 +1,245 @@ +/* + * Copyright (C) 2012 Radek Novacek + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +#include +#include +#include "LMI_HostedService.h" + +#include "globals.h" + +static const CMPIBroker* _cb; + +static void LMI_HostedServiceInitialize() +{ +} + +static CMPIStatus LMI_HostedServiceCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_HostedServiceEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_HostedServiceEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + CMPIStatus rc; + const char *ns = KNameSpace(cop); + + LMI_HostedService w; + LMI_HostedService_Init(&w, _cb, ns); + + CIM_ComputerSystemRef computerSystemRef; + CIM_ComputerSystemRef_Init(&computerSystemRef, _cb, ns); + CIM_ComputerSystemRef_Set_Name(&computerSystemRef, get_system_name()); + CIM_ComputerSystemRef_Set_CreationClassName(&computerSystemRef, get_system_creation_class_name()); + CMPIObjectPath *computerSystemOP = CIM_ComputerSystemRef_ToObjectPath(&computerSystemRef, &rc); + computerSystemOP->ft->setClassName(computerSystemOP, get_system_creation_class_name()); + LMI_HostedService_SetObjectPath_Antecedent(&w, computerSystemOP); + + LMI_PowerManagementServiceRef powerManagementServiceRef; + LMI_PowerManagementServiceRef_Init(&powerManagementServiceRef, _cb, ns); + LMI_PowerManagementServiceRef_Set_Name(&powerManagementServiceRef, get_system_name()); + LMI_PowerManagementServiceRef_Set_SystemName(&powerManagementServiceRef, get_system_name()); + LMI_PowerManagementServiceRef_Set_CreationClassName(&powerManagementServiceRef, "LMI_PowerManagementService"); + LMI_PowerManagementServiceRef_Set_SystemCreationClassName(&powerManagementServiceRef, get_system_creation_class_name()); + LMI_HostedService_Set_Dependent(&w, &powerManagementServiceRef); + + KReturnInstance(cr, w); + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_HostedServiceGetInstance( + 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_HostedServiceCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_HostedServiceModifyInstance( + 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_HostedServiceDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_HostedServiceExecQuery( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* lang, + const char* query) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_HostedServiceAssociationCleanup( + CMPIAssociationMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_HostedServiceAssociators( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole, + const char** properties) +{ + return KDefaultAssociators( + _cb, + mi, + cc, + cr, + cop, + LMI_HostedService_ClassName, + assocClass, + resultClass, + role, + resultRole, + properties); +} + +static CMPIStatus LMI_HostedServiceAssociatorNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* resultClass, + const char* role, + const char* resultRole) +{ + return KDefaultAssociatorNames( + _cb, + mi, + cc, + cr, + cop, + LMI_HostedService_ClassName, + assocClass, + resultClass, + role, + resultRole); +} + +static CMPIStatus LMI_HostedServiceReferences( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role, + const char** properties) +{ + return KDefaultReferences( + _cb, + mi, + cc, + cr, + cop, + LMI_HostedService_ClassName, + assocClass, + role, + properties); +} + +static CMPIStatus LMI_HostedServiceReferenceNames( + CMPIAssociationMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* assocClass, + const char* role) +{ + return KDefaultReferenceNames( + _cb, + mi, + cc, + cr, + cop, + LMI_HostedService_ClassName, + assocClass, + role); +} + +CMInstanceMIStub( + LMI_HostedService, + LMI_HostedService, + _cb, + LMI_HostedServiceInitialize()) + +CMAssociationMIStub( + LMI_HostedService, + LMI_HostedService, + _cb, + LMI_HostedServiceInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_HostedService", + "LMI_HostedService", + "instance association") diff --git a/src/power/LMI_PowerManagementCapabilitiesProvider.c b/src/power/LMI_PowerManagementCapabilitiesProvider.c new file mode 100644 index 0000000..d97c144 --- /dev/null +++ b/src/power/LMI_PowerManagementCapabilitiesProvider.c @@ -0,0 +1,179 @@ +/* + * Copyright (C) 2012 Radek Novacek + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +#include +#include "LMI_PowerManagementCapabilities.h" + +#include "power.h" + +static const CMPIBroker* _cb = NULL; + +static void LMI_PowerManagementCapabilitiesInitialize(CMPIInstanceMI *mi) +{ + mi->hdl = power_ref(_cb); +} + +static void LMI_PowerManagementCapabilitiesInitializeMethod(CMPIMethodMI *mi) +{ + mi->hdl = power_ref(_cb); +} + +static CMPIStatus LMI_PowerManagementCapabilitiesCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + power_unref(mi->hdl); + mi->hdl = NULL; + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_PowerManagementCapabilitiesEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_PowerManagementCapabilitiesEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + const char *ns = KNameSpace(cop); + + 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"); + + int count; + unsigned short *list = power_available_requested_power_states(mi->hdl, &count); + LMI_PowerManagementCapabilities_Init_PowerStatesSupported(&w, count); + for (int i = 0; i < count; i++) { + LMI_PowerManagementCapabilities_Set_PowerStatesSupported(&w, i, list[i]); + } + + // TODO: get this list dynamically from PowerStatesSupported (see SMASH) + LMI_PowerManagementCapabilities_Init_PowerChangeCapabilities(&w, 3); + LMI_PowerManagementCapabilities_Set_PowerChangeCapabilities(&w, 0, LMI_PowerManagementCapabilities_PowerChangeCapabilities_Power_State_Settable); + LMI_PowerManagementCapabilities_Set_PowerChangeCapabilities(&w, 1, LMI_PowerManagementCapabilities_PowerChangeCapabilities_Power_Cycling_Supported); + LMI_PowerManagementCapabilities_Set_PowerChangeCapabilities(&w, 2, LMI_PowerManagementCapabilities_PowerChangeCapabilities_Graceful_Shutdown_Supported); + KReturnInstance(cr, w); + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_PowerManagementCapabilitiesGetInstance( + 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_PowerManagementCapabilitiesCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_PowerManagementCapabilitiesModifyInstance( + 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_PowerManagementCapabilitiesDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_PowerManagementCapabilitiesExecQuery( + 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_PowerManagementCapabilities, + LMI_PowerManagementCapabilities, + _cb, + LMI_PowerManagementCapabilitiesInitialize(&mi)) + +static CMPIStatus LMI_PowerManagementCapabilitiesMethodCleanup( + CMPIMethodMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + power_unref(mi->hdl); + mi->hdl = NULL; + + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_PowerManagementCapabilitiesInvokeMethod( + CMPIMethodMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* meth, + const CMPIArgs* in, + CMPIArgs* out) +{ + return LMI_PowerManagementCapabilities_DispatchMethod( + _cb, mi, cc, cr, cop, meth, in, out); +} + +CMMethodMIStub( + LMI_PowerManagementCapabilities, + LMI_PowerManagementCapabilities, + _cb, + LMI_PowerManagementCapabilitiesInitializeMethod(&mi)) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_PowerManagementCapabilities", + "LMI_PowerManagementCapabilities", + "instance method") diff --git a/src/power/LMI_PowerManagementServiceProvider.c b/src/power/LMI_PowerManagementServiceProvider.c new file mode 100644 index 0000000..d3857cb --- /dev/null +++ b/src/power/LMI_PowerManagementServiceProvider.c @@ -0,0 +1,284 @@ +/* + * Copyright (C) 2012 Radek Novacek + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +#include "LMI_PowerManagementService.h" + +#include "power.h" +#include "globals.h" + +static const CMPIBroker* _cb = NULL; + +static void LMI_PowerManagementServiceInitialize(CMPIInstanceMI *mi) +{ + mi->hdl = power_ref(_cb); +} + +static void LMI_PowerManagementServiceMethodInitialize(CMPIMethodMI *mi) +{ + mi->hdl = power_ref(_cb); +} + + +static CMPIStatus LMI_PowerManagementServiceCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + power_unref(mi->hdl); + mi->hdl = NULL; + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_PowerManagementServiceEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_PowerManagementServiceEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + LMI_PowerManagementService w; + + LMI_PowerManagementService_Init(&w, _cb, KNameSpace(cop)); + LMI_PowerManagementService_Set_CreationClassName(&w, "LMI_PowerManagementService"); + LMI_PowerManagementService_Set_Name(&w, get_system_name()); + LMI_PowerManagementService_Set_SystemCreationClassName(&w, get_system_creation_class_name()); + LMI_PowerManagementService_Set_SystemName(&w, get_system_name()); + + /* EnabledState is an integer enumeration that indicates the enabled + * and disabled states of an element. It can also indicate the transitions + * between these requested states. + */ + LMI_PowerManagementService_Set_EnabledState(&w, LMI_PowerManagementService_EnabledDefault_Enabled); + + + /* RequestedState is an integer enumeration that indicates the last + * requested or desired state for the element, irrespective of the mechanism + * through which it was requested. The actual state of the element is + * represented by EnabledState. This property is provided to compare the + * last requested and current enabled or disabled states. + */ + LMI_PowerManagementService_Set_RequestedState(&w, LMI_PowerManagementService_RequestedState_No_Change); + + LMI_PowerManagementService_Init_AvailableRequestedStates(&w, 2); + LMI_PowerManagementService_Set_AvailableRequestedStates(&w, 0, 2); // Enabled + LMI_PowerManagementService_Set_AvailableRequestedStates(&w, 1, 3); // Disabled + + + LMI_PowerManagementService_Print(&w, stderr); + + KReturnInstance(cr, w); + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_PowerManagementServiceGetInstance( + 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_PowerManagementServiceCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_PowerManagementServiceModifyInstance( + 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_PowerManagementServiceDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_PowerManagementServiceExecQuery( + 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_PowerManagementService, + LMI_PowerManagementService, + _cb, + LMI_PowerManagementServiceInitialize(&mi)) + +static CMPIStatus LMI_PowerManagementServiceMethodCleanup( + CMPIMethodMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + power_unref(mi->hdl); + mi->hdl = NULL; + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_PowerManagementServiceInvokeMethod( + CMPIMethodMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* meth, + const CMPIArgs* in, + CMPIArgs* out) +{ + return LMI_PowerManagementService_DispatchMethod( + _cb, mi, cc, cr, cop, meth, in, out); +} + +CMMethodMIStub( + LMI_PowerManagementService, + LMI_PowerManagementService, + _cb, + LMI_PowerManagementServiceMethodInitialize(&mi)) + +KUint32 LMI_PowerManagementService_RequestStateChange( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_PowerManagementServiceRef* self, + const KUint16* RequestedState, + KRef* Job, + const KDateTime* TimeoutPeriod, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; + +} + +KUint32 LMI_PowerManagementService_StartService( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_PowerManagementServiceRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_PowerManagementService_StopService( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_PowerManagementServiceRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_PowerManagementService_SetPowerState( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_PowerManagementServiceRef* self, + const KUint16* PowerState, + const KRef* ManagedElement, + const KDateTime* Time, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +KUint32 LMI_PowerManagementService_RequestPowerStateChange( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_PowerManagementServiceRef* self, + const KUint16* PowerState, + const KRef* ManagedElement, + const KDateTime* Time, + KRef* Job, + const KDateTime* TimeoutPeriod, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + if (Time->exists && Time->null && TimeoutPeriod->exists && TimeoutPeriod->null) { + /* SMASH says: The TimeoutPeriod and Time parameters shall not be + * supported for the same invocation of the RequestPowerStateChange( ) + * method. When the TimeoutPeriod and Time parameters are specified + * for the same method invocation, the method shall return a value of 2. + */ + KUint32_Set(&result, 2); + return result; + } + + // Time argument is not handled because we don't support powering on systems + + if (!PowerState->exists || PowerState->null) { + KSetStatus2(_cb, status, ERR_INVALID_PARAMETER, "PowerState argument is missing"); + return result; + } + power_request_power_state(mi->hdl, PowerState->value); + + KSetStatus(status, OK); + KUint32_Set(&result, 4096); + return result; +} + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_PowerManagementService", + "LMI_PowerManagementService", + "instance method") diff --git a/src/power/power.c b/src/power/power.c index bf22b1d..af4d124 100644 --- a/src/power/power.c +++ b/src/power/power.c @@ -22,8 +22,8 @@ #include -#include "Cura_AssociatedPowerManagementService.h" -#include "Cura_ConcreteJob.h" +#include "LMI_AssociatedPowerManagementService.h" +#include "LMI_ConcreteJob.h" #ifdef HAS_UPOWER #include @@ -87,8 +87,8 @@ Power *power_new(const CMPIBroker *_cb) Power *power = malloc(sizeof(Power)); power->broker = _cb; power->instances = 0; - power->requestedPowerState = Cura_AssociatedPowerManagementService_RequestedPowerState_Unknown; - power->transitioningToPowerState = Cura_AssociatedPowerManagementService_TransitioningToPowerState_No_Change; + power->requestedPowerState = LMI_AssociatedPowerManagementService_RequestedPowerState_Unknown; + power->transitioningToPowerState = LMI_AssociatedPowerManagementService_TransitioningToPowerState_No_Change; power->mutex = _cb->xft->newMutex(0); power->jobs = NULL; #ifdef HAS_UPOWER @@ -142,7 +142,7 @@ void *state_change_thread(void *data) { PowerStateChangeJob *powerStateChangeJob = data; MUTEX_LOCK(powerStateChangeJob); - powerStateChangeJob->jobState = Cura_ConcreteJob_JobState_Running; + powerStateChangeJob->jobState = LMI_ConcreteJob_JobState_Running; powerStateChangeJob->timeOfLastChange = time(NULL); MUTEX_UNLOCK(powerStateChangeJob); @@ -150,14 +150,14 @@ void *state_change_thread(void *data) // Check if the job was cancelled if (powerStateChangeJob->cancelled) { MUTEX_LOCK(powerStateChangeJob); - powerStateChangeJob->jobState = Cura_ConcreteJob_JobState_Terminated; + powerStateChangeJob->jobState = LMI_ConcreteJob_JobState_Terminated; powerStateChangeJob->timeOfLastChange = time(NULL); MUTEX_UNLOCK(powerStateChangeJob); if (!powerStateChangeJob->superseded) { // There is no job that replaced this job MUTEX_LOCK(powerStateChangeJob->power); - powerStateChangeJob->power->transitioningToPowerState = Cura_AssociatedPowerManagementService_TransitioningToPowerState_No_Change; + powerStateChangeJob->power->transitioningToPowerState = LMI_AssociatedPowerManagementService_TransitioningToPowerState_No_Change; MUTEX_UNLOCK(powerStateChangeJob->power); } @@ -172,7 +172,7 @@ void *state_change_thread(void *data) int succeeded = 0; switch (powerStateChangeJob->requestedPowerState) { - case Cura_AssociatedPowerManagementService_PowerState_Sleep__Deep: + case LMI_AssociatedPowerManagementService_PowerState_Sleep__Deep: // Sleep #ifdef HAS_UPOWER succeeded = up_client_suspend_sync(powerStateChangeJob->power->up, NULL, &error); @@ -180,7 +180,7 @@ void *state_change_thread(void *data) succeeded = system("pm-suspend") == 0; #endif break; - case Cura_AssociatedPowerManagementService_PowerState_Power_Cycle_Off___Soft: + case LMI_AssociatedPowerManagementService_PowerState_Power_Cycle_Off___Soft: // Reboot (without shutting down programs) #ifdef HAS_SYSTEMCTL succeeded = system("systemctl --force reboot &") == 0; @@ -188,7 +188,7 @@ void *state_change_thread(void *data) succeeded = system("reboot --force &") == 0; #endif break; - case Cura_AssociatedPowerManagementService_PowerState_Hibernate_Off___Soft: + case LMI_AssociatedPowerManagementService_PowerState_Hibernate_Off___Soft: // Hibernate #ifdef HAS_UPOWER succeeded = up_client_hibernate_sync(powerStateChangeJob->power->up, NULL, &error); @@ -196,7 +196,7 @@ void *state_change_thread(void *data) succeeded = system("pm-hibernate") == 0; #endif break; - case Cura_AssociatedPowerManagementService_PowerState_Off___Soft: + case LMI_AssociatedPowerManagementService_PowerState_Off___Soft: // Poweroff (without shutting down programs) #ifdef HAS_SYSTEMCTL succeeded = system("systemctl --force poweroff &") == 0; @@ -204,7 +204,7 @@ void *state_change_thread(void *data) succeeded = system("shutdown --halt now &") == 0; #endif break; - case Cura_AssociatedPowerManagementService_PowerState_Off___Soft_Graceful: + case LMI_AssociatedPowerManagementService_PowerState_Off___Soft_Graceful: // Poweroff (shut down programs first) #ifdef HAS_SYSTEMCTL succeeded = system("systemctl poweroff &") == 0; @@ -212,7 +212,7 @@ void *state_change_thread(void *data) succeeded = system("shutdown --poweroff now &") == 0; #endif break; - case Cura_AssociatedPowerManagementService_PowerState_Power_Cycle_Off___Soft_Graceful: + case LMI_AssociatedPowerManagementService_PowerState_Power_Cycle_Off___Soft_Graceful: // Reboot (shut down programs first) #ifdef HAS_SYSTEMCTL succeeded = system("systemctl reboot &") == 0; @@ -223,14 +223,14 @@ void *state_change_thread(void *data) } MUTEX_LOCK(powerStateChangeJob->power); - powerStateChangeJob->power->transitioningToPowerState = Cura_AssociatedPowerManagementService_TransitioningToPowerState_No_Change; + powerStateChangeJob->power->transitioningToPowerState = LMI_AssociatedPowerManagementService_TransitioningToPowerState_No_Change; MUTEX_UNLOCK(powerStateChangeJob->power); MUTEX_LOCK(powerStateChangeJob); if (succeeded) { - powerStateChangeJob->jobState = Cura_ConcreteJob_JobState_Completed; + powerStateChangeJob->jobState = LMI_ConcreteJob_JobState_Completed; } else { - powerStateChangeJob->jobState = Cura_ConcreteJob_JobState_Exception; + powerStateChangeJob->jobState = LMI_ConcreteJob_JobState_Exception; #ifdef HAS_UPOWER if (error != NULL) { powerStateChangeJob->error = error->message; @@ -267,7 +267,7 @@ int power_request_power_state(Power *power, unsigned short state) powerStateChangeJob->power = power; powerStateChangeJob->mutex = power->broker->xft->newMutex(0); powerStateChangeJob->requestedPowerState = state; - powerStateChangeJob->jobState = Cura_ConcreteJob_JobState_New; + powerStateChangeJob->jobState = LMI_ConcreteJob_JobState_New; powerStateChangeJob->cancelled = 0; powerStateChangeJob->superseded = 0; powerStateChangeJob->timeOfLastChange = time(NULL); @@ -283,13 +283,13 @@ int power_request_power_state(Power *power, unsigned short state) while (plist) { job = plist->data; MUTEX_LOCK(job); - if (job->jobState != Cura_ConcreteJob_JobState_Suspended && - job->jobState != Cura_ConcreteJob_JobState_Killed && - job->jobState != Cura_ConcreteJob_JobState_Terminated) { + if (job->jobState != LMI_ConcreteJob_JobState_Suspended && + job->jobState != LMI_ConcreteJob_JobState_Killed && + job->jobState != LMI_ConcreteJob_JobState_Terminated) { job->cancelled = 1; job->superseded = 1; - job->jobState = Cura_ConcreteJob_JobState_Shutting_Down; + job->jobState = LMI_ConcreteJob_JobState_Shutting_Down; job->timeOfLastChange = time(NULL); } MUTEX_UNLOCK(job); @@ -309,7 +309,7 @@ unsigned short *power_available_requested_power_states(Power *power, int *count) int i = 0; /* 1 Other - * Cura_AssociatedPowerManagementService_PowerState_Other + * LMI_AssociatedPowerManagementService_PowerState_Other */ /* 2 On @@ -317,7 +317,7 @@ unsigned short *power_available_requested_power_states(Power *power, int *count) * * Bring system to full On from any state (Sleep, Hibernate, Off) * - * Cura_AssociatedPowerManagementService_PowerState_On + * LMI_AssociatedPowerManagementService_PowerState_On */ // not supported @@ -326,7 +326,7 @@ unsigned short *power_available_requested_power_states(Power *power, int *count) * * Standby * - * Cura_AssociatedPowerManagementService_PowerState_Sleep___Light + * LMI_AssociatedPowerManagementService_PowerState_Sleep___Light */ // not supported @@ -335,16 +335,16 @@ unsigned short *power_available_requested_power_states(Power *power, int *count) * * Suspend * - * Cura_AssociatedPowerManagementService_PowerState_Sleep__Deep + * LMI_AssociatedPowerManagementService_PowerState_Sleep__Deep */ // Sleep #ifdef HAS_UPOWER if (up_client_get_can_suspend(power->up)) { - list[i++] = Cura_AssociatedPowerManagementService_PowerState_Sleep__Deep; + list[i++] = LMI_AssociatedPowerManagementService_PowerState_Sleep__Deep; } #else if (system("pm-is-supported --suspend") == 0) { - list[i++] = Cura_AssociatedPowerManagementService_PowerState_Sleep__Deep; + list[i++] = LMI_AssociatedPowerManagementService_PowerState_Sleep__Deep; } #endif @@ -354,10 +354,10 @@ unsigned short *power_available_requested_power_states(Power *power, int *count) * * Reset system without removing power * - * Cura_AssociatedPowerManagementService_PowerState_Power_Cycle_Off___Soft + * LMI_AssociatedPowerManagementService_PowerState_Power_Cycle_Off___Soft */ // Reboot (without shutting down programs) - list[i++] = Cura_AssociatedPowerManagementService_PowerState_Power_Cycle_Off___Soft; + list[i++] = LMI_AssociatedPowerManagementService_PowerState_Power_Cycle_Off___Soft; /* 6 Off - Hard * corresponding to ACPI state G3, S5, or D3. @@ -365,7 +365,7 @@ unsigned short *power_available_requested_power_states(Power *power, int *count) * Power Off performed through mechanical means like unplugging * power cable or UPS On * - * Cura_AssociatedPowerManagementService_PowerState_Off___Hard + * LMI_AssociatedPowerManagementService_PowerState_Off___Hard */ /* 7 Hibernate (Off - Soft) @@ -375,16 +375,16 @@ unsigned short *power_available_requested_power_states(Power *power, int *count) * System context and OS image written to non-volatile storage; * system and devices powered off * - * Cura_AssociatedPowerManagementService_PowerState_Hibernate_Off___Soft + * LMI_AssociatedPowerManagementService_PowerState_Hibernate_Off___Soft */ // Hibernate #ifdef HAS_UPOWER if (up_client_get_can_hibernate(power->up)) { - list[i++] = Cura_AssociatedPowerManagementService_PowerState_Hibernate_Off___Soft; + list[i++] = LMI_AssociatedPowerManagementService_PowerState_Hibernate_Off___Soft; } #else if (system("pm-is-supported --hibernate") == 0) { - list[i++] = Cura_AssociatedPowerManagementService_PowerState_Hibernate_Off___Soft; + list[i++] = LMI_AssociatedPowerManagementService_PowerState_Hibernate_Off___Soft; } #endif @@ -393,10 +393,10 @@ unsigned short *power_available_requested_power_states(Power *power, int *count) * * System power off but auxiliary or flea power may be available * - * Cura_AssociatedPowerManagementService_PowerState_Off___Soft + * LMI_AssociatedPowerManagementService_PowerState_Off___Soft */ // Poweroff (without shutting down programs) - list[i++] = Cura_AssociatedPowerManagementService_PowerState_Off___Soft; + list[i++] = LMI_AssociatedPowerManagementService_PowerState_Off___Soft; /* 9 Power Cycle (Off-Hard) * corresponds to the managed element reaching the ACPI state G3 @@ -404,7 +404,7 @@ unsigned short *power_available_requested_power_states(Power *power, int *count) * * Equivalent to Off–Hard followed by On * - * Cura_AssociatedPowerManagementService_PowerState_Power_Cycle_Off_Hard + * LMI_AssociatedPowerManagementService_PowerState_Power_Cycle_Off_Hard */ // not implemented @@ -414,7 +414,7 @@ unsigned short *power_available_requested_power_states(Power *power, int *count) * * Hardware reset * - * Cura_AssociatedPowerManagementService_PowerState_Master_Bus_Reset + * LMI_AssociatedPowerManagementService_PowerState_Master_Bus_Reset */ // not implemented @@ -424,7 +424,7 @@ unsigned short *power_available_requested_power_states(Power *power, int *count) * * Hardware reset * - * Cura_AssociatedPowerManagementService_PowerState_Diagnostic_Interrupt_NMI + * LMI_AssociatedPowerManagementService_PowerState_Diagnostic_Interrupt_NMI */ // not implemented @@ -435,10 +435,10 @@ unsigned short *power_available_requested_power_states(Power *power, int *count) * System power off but auxiliary or flea power may be available but preceded * by a request to the managed element to perform an orderly shutdown. * - * Cura_AssociatedPowerManagementService_PowerState_Off___Soft_Graceful + * LMI_AssociatedPowerManagementService_PowerState_Off___Soft_Graceful */ // Poweroff (shut down programs first) - list[i++] = Cura_AssociatedPowerManagementService_PowerState_Off___Soft_Graceful; + list[i++] = LMI_AssociatedPowerManagementService_PowerState_Off___Soft_Graceful; /* 13 Off - Hard Graceful * equivalent to Off Hard but preceded by a request to the managed element @@ -448,7 +448,7 @@ unsigned short *power_available_requested_power_states(Power *power, int *count) * or UPS On but preceded by a request to the managed element to perform * an orderly shutdown. * - * Cura_AssociatedPowerManagementService_PowerState_Off___Hard_Graceful + * LMI_AssociatedPowerManagementService_PowerState_Off___Hard_Graceful */ // not implemented @@ -459,7 +459,7 @@ unsigned short *power_available_requested_power_states(Power *power, int *count) * Hardware reset but preceded by a request to the managed element * to perform an orderly shutdown. * - * Cura_AssociatedPowerManagementService_PowerState_Master_Bus_Reset_Graceful + * LMI_AssociatedPowerManagementService_PowerState_Master_Bus_Reset_Graceful */ // not implemented @@ -470,10 +470,10 @@ unsigned short *power_available_requested_power_states(Power *power, int *count) * Reset system without removing power but preceded by a request * to the managed element to perform an orderly shutdown. * - * Cura_AssociatedPowerManagementService_PowerState_Power_Cycle_Off___Soft_Graceful + * LMI_AssociatedPowerManagementService_PowerState_Power_Cycle_Off___Soft_Graceful */ // Reboot (shut down programs first) - list[i++] = Cura_AssociatedPowerManagementService_PowerState_Power_Cycle_Off___Soft_Graceful; + list[i++] = LMI_AssociatedPowerManagementService_PowerState_Power_Cycle_Off___Soft_Graceful; /* 16 Power Cycle (Off - Hard Graceful) * equivalent to Power Cycle (Off - Hard) but preceded by a request @@ -482,7 +482,7 @@ unsigned short *power_available_requested_power_states(Power *power, int *count) * Equivalent to Off–Hard followed by On but preceded by a request * to the managed element to perform an orderly shutdown. * - * Cura_AssociatedPowerManagementService_PowerState_Power_Cycle_Off___Hard_Graceful + * LMI_AssociatedPowerManagementService_PowerState_Power_Cycle_Off___Hard_Graceful */ // not implemented @@ -502,9 +502,9 @@ GList *power_get_jobs(Power *power) while (plist) { powerStateChangeJob = plist->data; MUTEX_LOCK(powerStateChangeJob); - if ((powerStateChangeJob->jobState == Cura_ConcreteJob_JobState_Completed || - powerStateChangeJob->jobState == Cura_ConcreteJob_JobState_Killed || - powerStateChangeJob->jobState == Cura_ConcreteJob_JobState_Terminated) && + if ((powerStateChangeJob->jobState == LMI_ConcreteJob_JobState_Completed || + powerStateChangeJob->jobState == LMI_ConcreteJob_JobState_Killed || + powerStateChangeJob->jobState == LMI_ConcreteJob_JobState_Terminated) && time(NULL) - powerStateChangeJob->timeOfLastChange > powerStateChangeJob->timeBeforeRemoval) { MUTEX_LOCK(power); diff --git a/src/service/CMakeLists.txt b/src/service/CMakeLists.txt index 55c61cc..2997213 100644 --- a/src/service/CMakeLists.txt +++ b/src/service/CMakeLists.txt @@ -1,7 +1,7 @@ set(PROVIDER_NAME Service) set(LIBRARY_NAME cmpiCura_${PROVIDER_NAME}) -set(MOF Cura_Service.mof) +set(MOF LMI_Service.mof) set(provider_SRCS util/serviceutil.c diff --git a/src/service/Cura_ServiceProvider.c b/src/service/Cura_ServiceProvider.c deleted file mode 100644 index b8363c7..0000000 --- a/src/service/Cura_ServiceProvider.c +++ /dev/null @@ -1,354 +0,0 @@ -/* - * Copyright (C) 2012 Vitezslav Crhonek - * Copyright (C) 2012 Radek Novacek - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -#include -#include -#include "Cura_Service.h" -#include "util/serviceutil.h" -#include "globals.h" - -static const CMPIBroker* _cb = NULL; - -static void Cura_ServiceInitialize() -{ -} - -static CMPIStatus Cura_ServiceCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_ServiceEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - const char *ns = KNameSpace(cop); - SList *slist = NULL; - - slist = Service_Find_All(); - for (int i = 0; i < slist->cnt; i++) { - Cura_ServiceRef w; - Cura_ServiceRef_Init(&w, _cb, ns); - Cura_ServiceRef_Set_CreationClassName(&w, "Cura_Service"); - Cura_ServiceRef_Set_SystemCreationClassName(&w, get_system_creation_class_name()); - Cura_ServiceRef_Set_SystemName(&w, get_system_name()); - Cura_ServiceRef_Set_Name(&w, slist->name[i]); - - KReturnObjectPath(cr, w); - } - Service_Free_SList(slist); - - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_ServiceEnumInstances( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - CMPIStatus st; - CMPIEnumeration* e; - if (!(e = _cb->bft->enumerateInstanceNames(_cb, cc, cop, &st))) { - KReturn2(_cb, ERR_FAILED, "Unable to enumerate instances of Cura_Service"); - } - CMPIData cd; - while (CMHasNext(e, &st)) { - - cd = CMGetNext(e, &st); - if (st.rc || cd.type != CMPI_ref) { - KReturn2(_cb, ERR_FAILED, "Enumerate instances didn't returned list of references"); - } - CMPIInstance *in = _cb->bft->getInstance(_cb, cc, cd.value.ref, properties, &st); - if (st.rc) { - KReturn2(_cb, ERR_FAILED, "Unable to get instance of Cura_Service"); - } - cr->ft->returnInstance(cr, in); - } - KReturn(OK); -} - -static CMPIStatus Cura_ServiceGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - Cura_Service w; - Cura_Service_InitFromObjectPath(&w, _cb, cop); - - void *enumhdl = Service_Begin_Enum(w.Name.chars); - Service servicebuf; - if (Service_Next_Enum(enumhdl, &servicebuf, w.Name.chars)) { - Cura_Service_Set_Status(&w, servicebuf.svStatus); - Cura_Service_Set_Started(&w, servicebuf.svStarted); - - switch (servicebuf.svEnabledDefault) { - case ENABLED: - Cura_Service_Set_EnabledDefault(&w, Cura_Service_EnabledDefault_Enabled); - break; - case DISABLED: - Cura_Service_Set_EnabledDefault(&w, Cura_Service_EnabledDefault_Disabled); - break; - default: - Cura_Service_Set_EnabledDefault(&w, Cura_Service_EnabledDefault_Not_Applicable); - break; - } - - KReturnInstance(cr, w); - Service_End_Enum(enumhdl); - KReturn(OK); - } else { - KReturn(ERR_NOT_FOUND); - } -} - -static CMPIStatus Cura_ServiceCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_ServiceModifyInstance( - 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 Cura_ServiceDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus Cura_ServiceExecQuery( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* lang, - const char* query) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -CMInstanceMIStub( - Cura_Service, - Cura_Service, - _cb, - Cura_ServiceInitialize()) - -static CMPIStatus Cura_ServiceMethodCleanup( - CMPIMethodMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus Cura_ServiceInvokeMethod( - CMPIMethodMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* meth, - const CMPIArgs* in, - CMPIArgs* out) -{ - return Cura_Service_DispatchMethod( - _cb, mi, cc, cr, cop, meth, in, out); -} - -CMMethodMIStub( - Cura_Service, - Cura_Service, - _cb, - Cura_ServiceInitialize()) - -KUint32 Cura_Service_RequestStateChange( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_ServiceRef* self, - const KUint16* RequestedState, - KRef* Job, - const KDateTime* TimeoutPeriod, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -unsigned int Service_RunOperation(const char *service, const char *operation, CMPIStatus *status) -{ - char output[1024]; - int res = Service_Operation(service, operation, output, sizeof(output)); - if (res == 0) { - KSetStatus2(_cb, status, OK, output); - } else { - KSetStatus2(_cb, status, ERR_FAILED, output); - } - return res; -} - -KUint32 Cura_Service_StartService( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_ServiceRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - KUint32_Set(&result, Service_RunOperation(self->Name.chars, "start", status)); - return result; -} - -KUint32 Cura_Service_StopService( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_ServiceRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - KUint32_Set(&result, Service_RunOperation(self->Name.chars, "stop", status)); - return result; -} - -KUint32 Cura_Service_ReloadService( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_ServiceRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - KUint32_Set(&result, Service_RunOperation(self->Name.chars, "reload", status)); - return result; -} - -KUint32 Cura_Service_RestartService( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_ServiceRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - KUint32_Set(&result, Service_RunOperation(self->Name.chars, "restart", status)); - return result; -} - -KUint32 Cura_Service_TryRestartService( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_ServiceRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - KUint32_Set(&result, Service_RunOperation(self->Name.chars, "try-restart", status)); - return result; -} - -KUint32 Cura_Service_CondRestartService( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_ServiceRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - KUint32_Set(&result, Service_RunOperation(self->Name.chars, "condrestart", status)); - return result; -} - -KUint32 Cura_Service_ReloadOrRestartService( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_ServiceRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - KUint32_Set(&result, Service_RunOperation(self->Name.chars, "reload-or-restart", status)); - return result; -} - -KUint32 Cura_Service_ReloadOrTryRestartService( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_ServiceRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - KUint32_Set(&result, Service_RunOperation(self->Name.chars, "reload-or-try-restart", status)); - return result; -} - -KUint32 Cura_Service_TurnServiceOn( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_ServiceRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - KUint32_Set(&result, Service_RunOperation(self->Name.chars, "enable", status)); - return result; -} - -KUint32 Cura_Service_TurnServiceOff( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const Cura_ServiceRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - KUint32_Set(&result, Service_RunOperation(self->Name.chars, "disable", status)); - return result; -} - -KONKRET_REGISTRATION( - "root/cimv2", - "Cura_Service", - "Cura_Service", - "instance method") diff --git a/src/service/LMI_ServiceProvider.c b/src/service/LMI_ServiceProvider.c new file mode 100644 index 0000000..77ed59e --- /dev/null +++ b/src/service/LMI_ServiceProvider.c @@ -0,0 +1,354 @@ +/* + * Copyright (C) 2012 Vitezslav Crhonek + * Copyright (C) 2012 Radek Novacek + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +#include +#include +#include "LMI_Service.h" +#include "util/serviceutil.h" +#include "globals.h" + +static const CMPIBroker* _cb = NULL; + +static void LMI_ServiceInitialize() +{ +} + +static CMPIStatus LMI_ServiceCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_ServiceEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + const char *ns = KNameSpace(cop); + SList *slist = NULL; + + slist = Service_Find_All(); + for (int i = 0; i < slist->cnt; i++) { + LMI_ServiceRef w; + LMI_ServiceRef_Init(&w, _cb, ns); + LMI_ServiceRef_Set_CreationClassName(&w, "LMI_Service"); + LMI_ServiceRef_Set_SystemCreationClassName(&w, get_system_creation_class_name()); + LMI_ServiceRef_Set_SystemName(&w, get_system_name()); + LMI_ServiceRef_Set_Name(&w, slist->name[i]); + + KReturnObjectPath(cr, w); + } + Service_Free_SList(slist); + + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_ServiceEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + CMPIStatus st; + CMPIEnumeration* e; + if (!(e = _cb->bft->enumerateInstanceNames(_cb, cc, cop, &st))) { + KReturn2(_cb, ERR_FAILED, "Unable to enumerate instances of LMI_Service"); + } + CMPIData cd; + while (CMHasNext(e, &st)) { + + cd = CMGetNext(e, &st); + if (st.rc || cd.type != CMPI_ref) { + KReturn2(_cb, ERR_FAILED, "Enumerate instances didn't returned list of references"); + } + CMPIInstance *in = _cb->bft->getInstance(_cb, cc, cd.value.ref, properties, &st); + if (st.rc) { + KReturn2(_cb, ERR_FAILED, "Unable to get instance of LMI_Service"); + } + cr->ft->returnInstance(cr, in); + } + KReturn(OK); +} + +static CMPIStatus LMI_ServiceGetInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + LMI_Service w; + LMI_Service_InitFromObjectPath(&w, _cb, cop); + + void *enumhdl = Service_Begin_Enum(w.Name.chars); + Service servicebuf; + if (Service_Next_Enum(enumhdl, &servicebuf, w.Name.chars)) { + LMI_Service_Set_Status(&w, servicebuf.svStatus); + LMI_Service_Set_Started(&w, servicebuf.svStarted); + + switch (servicebuf.svEnabledDefault) { + case ENABLED: + LMI_Service_Set_EnabledDefault(&w, LMI_Service_EnabledDefault_Enabled); + break; + case DISABLED: + LMI_Service_Set_EnabledDefault(&w, LMI_Service_EnabledDefault_Disabled); + break; + default: + LMI_Service_Set_EnabledDefault(&w, LMI_Service_EnabledDefault_Not_Applicable); + break; + } + + KReturnInstance(cr, w); + Service_End_Enum(enumhdl); + KReturn(OK); + } else { + KReturn(ERR_NOT_FOUND); + } +} + +static CMPIStatus LMI_ServiceCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_ServiceModifyInstance( + 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_ServiceDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_ServiceExecQuery( + 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_Service, + LMI_Service, + _cb, + LMI_ServiceInitialize()) + +static CMPIStatus LMI_ServiceMethodCleanup( + CMPIMethodMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_ServiceInvokeMethod( + CMPIMethodMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char* meth, + const CMPIArgs* in, + CMPIArgs* out) +{ + return LMI_Service_DispatchMethod( + _cb, mi, cc, cr, cop, meth, in, out); +} + +CMMethodMIStub( + LMI_Service, + LMI_Service, + _cb, + LMI_ServiceInitialize()) + +KUint32 LMI_Service_RequestStateChange( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_ServiceRef* self, + const KUint16* RequestedState, + KRef* Job, + const KDateTime* TimeoutPeriod, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + + KSetStatus(status, ERR_NOT_SUPPORTED); + return result; +} + +unsigned int Service_RunOperation(const char *service, const char *operation, CMPIStatus *status) +{ + char output[1024]; + int res = Service_Operation(service, operation, output, sizeof(output)); + if (res == 0) { + KSetStatus2(_cb, status, OK, output); + } else { + KSetStatus2(_cb, status, ERR_FAILED, output); + } + return res; +} + +KUint32 LMI_Service_StartService( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_ServiceRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + KUint32_Set(&result, Service_RunOperation(self->Name.chars, "start", status)); + return result; +} + +KUint32 LMI_Service_StopService( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_ServiceRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + KUint32_Set(&result, Service_RunOperation(self->Name.chars, "stop", status)); + return result; +} + +KUint32 LMI_Service_ReloadService( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_ServiceRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + KUint32_Set(&result, Service_RunOperation(self->Name.chars, "reload", status)); + return result; +} + +KUint32 LMI_Service_RestartService( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_ServiceRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + KUint32_Set(&result, Service_RunOperation(self->Name.chars, "restart", status)); + return result; +} + +KUint32 LMI_Service_TryRestartService( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_ServiceRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + KUint32_Set(&result, Service_RunOperation(self->Name.chars, "try-restart", status)); + return result; +} + +KUint32 LMI_Service_CondRestartService( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_ServiceRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + KUint32_Set(&result, Service_RunOperation(self->Name.chars, "condrestart", status)); + return result; +} + +KUint32 LMI_Service_ReloadOrRestartService( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_ServiceRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + KUint32_Set(&result, Service_RunOperation(self->Name.chars, "reload-or-restart", status)); + return result; +} + +KUint32 LMI_Service_ReloadOrTryRestartService( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_ServiceRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + KUint32_Set(&result, Service_RunOperation(self->Name.chars, "reload-or-try-restart", status)); + return result; +} + +KUint32 LMI_Service_TurnServiceOn( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_ServiceRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + KUint32_Set(&result, Service_RunOperation(self->Name.chars, "enable", status)); + return result; +} + +KUint32 LMI_Service_TurnServiceOff( + const CMPIBroker* cb, + CMPIMethodMI* mi, + const CMPIContext* context, + const LMI_ServiceRef* self, + CMPIStatus* status) +{ + KUint32 result = KUINT32_INIT; + KUint32_Set(&result, Service_RunOperation(self->Name.chars, "disable", status)); + return result; +} + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_Service", + "LMI_Service", + "instance method") -- cgit