diff options
Diffstat (limited to 'src/realmd/LMI_RealmdRealmProvider.c')
-rw-r--r-- | src/realmd/LMI_RealmdRealmProvider.c | 326 |
1 files changed, 0 insertions, 326 deletions
diff --git a/src/realmd/LMI_RealmdRealmProvider.c b/src/realmd/LMI_RealmdRealmProvider.c deleted file mode 100644 index 13e0471..0000000 --- a/src/realmd/LMI_RealmdRealmProvider.c +++ /dev/null @@ -1,326 +0,0 @@ -#include <konkret/konkret.h> -#include <string.h> -#include "LMI_RealmdRealm.h" -#include "globals.h" -#include "rdcp_error.h" -#include "rdcp_dbus.h" -#include "rdcp_util.h" -#include "rdcp_realmdrealm.h" - -static const CMPIBroker* _cb = NULL; - -CMPIStatus LMI_RealmdRealmRef_InitFromDBusPath( - LMI_RealmdRealmRef* self, - const CMPIBroker* cb, - const char* ns, - const char* dbus_path) -{ - CMPIStatus status; - - CMSetStatus(&status, CMPI_RC_OK); - - LMI_RealmdRealmInitKeys(LMI_RealmdRealmRef, self, dbus_path); - - return status; -} - -CMPIStatus LMI_RealmdRealm_InitFromDBusPath( - LMI_RealmdRealm* self, - const CMPIBroker* cb, - const char* ns, - const char* dbus_path) -{ - CMPIStatus status; - GError *g_error = NULL; - GVariant *realm_props = NULL; - - CMSetStatus(&status, CMPI_RC_OK); - - if (!rdcp_dbus_initialize(&g_error)) { - return handle_g_error(&g_error, _cb, &status, CMPI_RC_ERR_FAILED, "rdcp_dbus_initialize failed"); - } - - GET_DBUS_PROPERIES_OR_EXIT(realm_props, dbus_path, - REALM_DBUS_REALM_INTERFACE, &status); - - LMI_RealmdRealmInitKeys(LMI_RealmdRealm, self, dbus_path); - LMI_InitFromDBusRealmProps(LMI_RealmdRealm, self, realm_props); - - exit: - G_VARIANT_FREE(realm_props); - - return status; -} - -static void LMI_RealmdRealmInitialize() -{ -} - -static CMPIStatus LMI_RealmdRealmCleanup( - CMPIInstanceMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus LMI_RealmdRealmEnumInstanceNames( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - return KDefaultEnumerateInstanceNames( - _cb, mi, cc, cr, cop); -} - -static CMPIStatus LMI_RealmdRealmEnumInstances( - 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; - const char *name_space = KNameSpace(cop); - - CMSetStatus(&status, CMPI_RC_OK); - - if (!rdcp_dbus_initialize(&g_error)) { - return handle_g_error(&g_error, _cb, &status, CMPI_RC_ERR_FAILED, "rdcp_dbus_initialize failed"); - } - - GET_DBUS_PROPERIES_OR_EXIT(provider_props, REALM_DBUS_SERVICE_PATH, - REALM_DBUS_PROVIDER_INTERFACE, &status); - - g_variant_lookup(provider_props, "Realms", "ao", &iter); - while (g_variant_iter_next(iter, "&o", &realm_obj_path)) { - LMI_RealmdRealm realmd_realm; - - status = LMI_RealmdRealm_InitFromDBusPath(&realmd_realm, _cb, - name_space, realm_obj_path); - if (status.rc != CMPI_RC_OK) { - goto exit; - } - KReturnInstance(cr, realmd_realm); - } - - exit: - G_VARIANT_ITER_FREE(iter); - G_VARIANT_FREE(provider_props); - - return status; -} - -static CMPIStatus LMI_RealmdRealmGetInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char** properties) -{ - CMPIStatus status; - GError *g_error = NULL; - LMI_RealmdRealmRef realmdrealm_ref; - gchar *dbus_path = NULL; - LMI_RealmdRealm realmd_realm; - - CMSetStatus(&status, CMPI_RC_OK); - - KReturnIf(LMI_RealmdRealmRef_InitFromObjectPath(&realmdrealm_ref, _cb, cop)); - - if (!dbus_path_from_instance_id(realmdrealm_ref.InstanceID.chars, &dbus_path, &g_error)) { - return handle_g_error(&g_error, _cb, &status, CMPI_RC_ERR_FAILED, - "dbus_path_from_instance_id() failed"); - } - - KReturnIf(LMI_RealmdRealm_InitFromDBusPath(&realmd_realm, _cb, KNameSpace(cop), dbus_path)); - - KReturnInstance(cr, realmd_realm); - - return status; -} - -static CMPIStatus LMI_RealmdRealmCreateInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const CMPIInstance* ci) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus LMI_RealmdRealmModifyInstance( - 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_RealmdRealmDeleteInstance( - CMPIInstanceMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop) -{ - CMReturn(CMPI_RC_ERR_NOT_SUPPORTED); -} - -static CMPIStatus LMI_RealmdRealmExecQuery( - 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_RealmdRealm, - LMI_RealmdRealm, - _cb, - LMI_RealmdRealmInitialize()) - -static CMPIStatus LMI_RealmdRealmMethodCleanup( - CMPIMethodMI* mi, - const CMPIContext* cc, - CMPIBoolean term) -{ - CMReturn(CMPI_RC_OK); -} - -static CMPIStatus LMI_RealmdRealmInvokeMethod( - CMPIMethodMI* mi, - const CMPIContext* cc, - const CMPIResult* cr, - const CMPIObjectPath* cop, - const char* meth, - const CMPIArgs* in, - CMPIArgs* out) -{ - return LMI_RealmdRealm_DispatchMethod( - _cb, mi, cc, cr, cop, meth, in, out); -} - -CMMethodMIStub( - LMI_RealmdRealm, - LMI_RealmdRealm, - _cb, - LMI_RealmdRealmInitialize()) - -KUint32 LMI_RealmdRealm_ChangeLoginPolicy( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const LMI_RealmdRealmRef* self, - const KString* LoginPolicy, - const KStringA* PermittedAdd, - const KStringA* PermittedRemove, - CMPIStatus* status) -{ - GError *g_error = NULL; - KUint32 result = KUINT32_INIT; - gchar *dbus_path = NULL; - const gchar *login_policy = NULL; - GVariant *permitted_add = NULL; - GVariant *permitted_remove = NULL; - GVariant *options = NULL; - - KUint32_Set(&result, LMI_REALMD_RESULT_SUCCESS); - CMSetStatus(status, CMPI_RC_OK); - - if (!rdcp_dbus_initialize(&g_error)) { - handle_g_error(&g_error, _cb, status, CMPI_RC_ERR_FAILED, "rdcp_dbus_initialize failed"); - KUint32_Set(&result, LMI_REALMD_RESULT_FAILED); - goto exit; - } - - if (!LoginPolicy->exists || LoginPolicy->null) { - login_policy = ""; - } else { - login_policy = LoginPolicy->chars; - } - - if (!PermittedAdd->exists || PermittedAdd->null) { - CMSetStatusWithChars(cb, status, CMPI_RC_ERR_INVALID_PARAMETER, "PermittedAdd parameter absent"); - KUint32_Set(&result, LMI_REALMD_RESULT_FAILED); - goto exit; - } - - if (!PermittedRemove->exists || PermittedRemove->null) { - CMSetStatusWithChars(cb, status, CMPI_RC_ERR_INVALID_PARAMETER, "PermittedRemove parameter absent"); - KUint32_Set(&result, LMI_REALMD_RESULT_FAILED); - goto exit; - } - - if (!dbus_path_from_instance_id(self->InstanceID.chars, &dbus_path, &g_error)) { - handle_g_error(&g_error, cb, status, CMPI_RC_ERR_FAILED, - "dbus_path_from_instance_id() failed"); - KUint32_Set(&result, LMI_REALMD_RESULT_FAILED); - goto exit; - } - - if (!build_g_variant_string_array_from_KStringA(PermittedAdd, &permitted_add, &g_error)) { - handle_g_error(&g_error, cb, status, CMPI_RC_ERR_FAILED, - "failed to convert PermittedAdd to gvariant array"); - KUint32_Set(&result, LMI_REALMD_RESULT_FAILED); - goto exit; - } - - if (!build_g_variant_string_array_from_KStringA(PermittedRemove, &permitted_remove, &g_error)) { - handle_g_error(&g_error, cb, status, CMPI_RC_ERR_FAILED, - "failed to convert PermittedRemove to gvariant array"); - KUint32_Set(&result, LMI_REALMD_RESULT_FAILED); - goto exit; - } - - /* For now we don't pass any options so just create an empty dictionary */ - options = g_variant_new_array(G_VARIANT_TYPE ("{sv}"), NULL, 0); - - if (!dbus_change_login_policy_call(system_bus, dbus_path, login_policy, - permitted_add, permitted_remove, - options, &g_error)) { - handle_g_error(&g_error, cb, status, CMPI_RC_ERR_FAILED, "dbus_change_login_policy_call() failed"); - KUint32_Set(&result, LMI_REALMD_RESULT_FAILED); - goto exit; - } - - - exit: - - G_VARIANT_FREE(permitted_add); - G_VARIANT_FREE(permitted_remove); - G_VARIANT_FREE(options); - - return result; -} - -KUint32 LMI_RealmdRealm_Deconfigure( - const CMPIBroker* cb, - CMPIMethodMI* mi, - const CMPIContext* context, - const LMI_RealmdRealmRef* self, - CMPIStatus* status) -{ - KUint32 result = KUINT32_INIT; - - KSetStatus(status, ERR_NOT_SUPPORTED); - return result; -} - -KONKRET_REGISTRATION( - "root/cimv2", - "LMI_RealmdRealm", - "LMI_RealmdRealm", - "instance method") |