diff options
author | John Dennis <jdennis@redhat.com> | 2013-03-22 14:58:01 -0400 |
---|---|---|
committer | John Dennis <jdennis@redhat.com> | 2013-03-22 14:58:01 -0400 |
commit | 52a346870008e04518984a64d3b1bf44534f7f5e (patch) | |
tree | 8a1805a3b8fa329e2599451a403668a1aac58153 /LMI_ServiceAffectsRealmdRealmProvider.c | |
download | realmd-cim-52a346870008e04518984a64d3b1bf44534f7f5e.tar.gz realmd-cim-52a346870008e04518984a64d3b1bf44534f7f5e.tar.xz realmd-cim-52a346870008e04518984a64d3b1bf44534f7f5e.zip |
Initial commit for public repository
Diffstat (limited to 'LMI_ServiceAffectsRealmdRealmProvider.c')
-rw-r--r-- | LMI_ServiceAffectsRealmdRealmProvider.c | 255 |
1 files changed, 255 insertions, 0 deletions
diff --git a/LMI_ServiceAffectsRealmdRealmProvider.c b/LMI_ServiceAffectsRealmdRealmProvider.c new file mode 100644 index 0000000..6cddbd7 --- /dev/null +++ b/LMI_ServiceAffectsRealmdRealmProvider.c @@ -0,0 +1,255 @@ +#include <konkret/konkret.h> +#include "LMI_ServiceAffectsRealmdRealm.h" +#include "rdcp_util.h" +#include "globals.h" +#include "rdcp_error.h" +#include "rdcp_dbus.h" +#include "rdcp_util.h" +#include "rdcp_realmdrealm.h" + +static const CMPIBroker* _cb; + +static void LMI_ServiceAffectsRealmdRealmInitialize() +{ +} + +static CMPIStatus LMI_ServiceAffectsRealmdRealmCleanup( + CMPIInstanceMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_ServiceAffectsRealmdRealmEnumInstanceNames( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + return KDefaultEnumerateInstanceNames( + _cb, mi, cc, cr, cop); +} + +static CMPIStatus LMI_ServiceAffectsRealmdRealmEnumInstances( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const char** properties) +{ + CMPIStatus status; + GError *g_error = NULL; + GVariant *provider_props = NULL; + GVariantIter *iter = NULL; + gchar *realm_obj_path; + LMI_RealmdServiceRef realmd_service_ref; + LMI_ServiceAffectsRealmdRealm service_affects; + const char *name_space = KNameSpace(cop); + const char *host_name = get_system_name(); + + CMSetStatus(&status, CMPI_RC_OK); + + LMI_InitRealmdServiceKeys(LMI_RealmdServiceRef, &realmd_service_ref, name_space, host_name); + + if (!rdcp_dbus_initialize(&g_error)) { + return handle_g_error(&g_error, _cb, &status, CMPI_RC_ERR_FAILED, "rdcp_dbus_initialize failed"); + } + + GetDBusProperies(provider_props, REALM_DBUS_SERVICE_PATH, REALM_DBUS_PROVIDER_INTERFACE); + + g_variant_lookup(provider_props, "Realms", "ao", &iter); + while (g_variant_iter_next(iter, "&o", &realm_obj_path)) { + LMI_RealmdRealmRef realmd_realm_ref; + + status = LMI_RealmdRealmRef_InitFromDBusPath(&realmd_realm_ref, _cb, name_space, realm_obj_path); + if (status.rc != CMPI_RC_OK) { + goto exit; + } + + LMI_ServiceAffectsRealmdRealm_Init(&service_affects, _cb, name_space); + LMI_ServiceAffectsRealmdRealm_Set_AffectedElement(&service_affects, &realmd_realm_ref); + LMI_ServiceAffectsRealmdRealm_Set_AffectingElement(&service_affects, &realmd_service_ref); + LMI_ServiceAffectsRealmdRealm_Init_ElementEffects(&service_affects, 1); + LMI_ServiceAffectsRealmdRealm_Set_ElementEffects(&service_affects, 0, + LMI_ServiceAffectsRealmdRealm_ElementEffects_Manages); + + KReturnInstance(cr, service_affects); + } + + exit: + if (iter) { + g_variant_iter_free(iter); + } + if (provider_props) { + g_variant_unref(provider_props); + } + + return status; +} + +static CMPIStatus LMI_ServiceAffectsRealmdRealmGetInstance( + 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_ServiceAffectsRealmdRealmCreateInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop, + const CMPIInstance* ci) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_ServiceAffectsRealmdRealmModifyInstance( + 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_ServiceAffectsRealmdRealmDeleteInstance( + CMPIInstanceMI* mi, + const CMPIContext* cc, + const CMPIResult* cr, + const CMPIObjectPath* cop) +{ + CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); +} + +static CMPIStatus LMI_ServiceAffectsRealmdRealmExecQuery( + 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_ServiceAffectsRealmdRealmAssociationCleanup( + CMPIAssociationMI* mi, + const CMPIContext* cc, + CMPIBoolean term) +{ + CMReturn(CMPI_RC_OK); +} + +static CMPIStatus LMI_ServiceAffectsRealmdRealmAssociators( + 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_ServiceAffectsRealmdRealm_ClassName, + assocClass, + resultClass, + role, + resultRole, + properties); +} + +static CMPIStatus LMI_ServiceAffectsRealmdRealmAssociatorNames( + 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_ServiceAffectsRealmdRealm_ClassName, + assocClass, + resultClass, + role, + resultRole); +} + +static CMPIStatus LMI_ServiceAffectsRealmdRealmReferences( + 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_ServiceAffectsRealmdRealm_ClassName, + assocClass, + role, + properties); +} + +static CMPIStatus LMI_ServiceAffectsRealmdRealmReferenceNames( + 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_ServiceAffectsRealmdRealm_ClassName, + assocClass, + role); +} + +CMInstanceMIStub( + LMI_ServiceAffectsRealmdRealm, + LMI_ServiceAffectsRealmdRealm, + _cb, + LMI_ServiceAffectsRealmdRealmInitialize()) + +CMAssociationMIStub( + LMI_ServiceAffectsRealmdRealm, + LMI_ServiceAffectsRealmdRealm, + _cb, + LMI_ServiceAffectsRealmdRealmInitialize()) + +KONKRET_REGISTRATION( + "root/cimv2", + "LMI_ServiceAffectsRealmdRealm", + "LMI_ServiceAffectsRealmdRealm", + "instance association"); |