예제 #1
0
def add(isamAppliance, realm, propname, propvalue, subsection=None, check_mode=False, force=False):
    """
            Add kerberos realm's property
            realm and subsection if passed needs to exist
            :param isamAppliance:
            :return:
         """
    if subsection is None:
        uriprop = realm
    else:
        uriprop = "{0}/{1}".format(realm, subsection)

    if realms.search(isamAppliance, realm) == {}:
        return isamAppliance.create_return_object(warnings=["Realm: {0} does not exists: ".format(realm)])

    if subsection is not None and subsections._check(isamAppliance, realm, subsection) is False:
        return isamAppliance.create_return_object(
            warnings=["Subsection: {0}/{1} does not exists.".format(realm, subsection)])

    if _check(isamAppliance, realm, propname, propvalue, subsection) is True and force is False:
        return isamAppliance.create_return_object(
            warnings=["Property: {0} with value: {1} already exists: ".format(uriprop, propvalue)])

    if force is True or _check(isamAppliance, realm, propname, propvalue, subsection) is False:
        if check_mode is True:
            return isamAppliance.create_return_object(changed=True)
        else:
            return isamAppliance.invoke_post("Add kerberos real property", "{0}/{1}".format(uri, uriprop),
                                             {
                                                 "name": propname,
                                                 "value": propvalue
                                             },
                                             requires_modules=requires_modules, requires_version=requires_version)

    return isamAppliance.create_return_object()
예제 #2
0
def update(isamAppliance, realm, propname, propvalue, subsection=None, check_mode=False, force=False):
    """
    Set kerberos realm property

    :param isamAppliance:
    :return:
    """
    if subsection is None:
        uriprop = realm
    else:
        uriprop = "{0}/{1}".format(realm, subsection)

    if realms.search(isamAppliance, realm) == {}:
        return isamAppliance.create_return_object(warnings=["Realm: {0} does not exists: ".format(realm)])

    if subsection is not None and subsections._check(isamAppliance, realm, subsection) is False:
        return isamAppliance.create_return_object(
            warnings=["Subsection: {0}/{1} does not exists.".format(realm, subsection)])

    ret_obj = search(isamAppliance, realm, propname, subsection)
    warnings = ret_obj["warnings"]

    if ret_obj["data"] == {}:
        warnings.append("Property {0} not found, skipping update.".format(propname))
        return isamAppliance.create_return_object(warnings=warnings)

    needs_update = False

    json_data = {
        "name": "{0} = {1}".format(propname, propvalue)
    }

    if force is not True:
        import ibmsecurity.utilities.tools
        if ibmsecurity.utilities.tools.json_sort(ret_obj['data']) != ibmsecurity.utilities.tools.json_sort(
                json_data):
            needs_update = True

    if force is True or needs_update is True:
        if check_mode is True:
            return isamAppliance.create_return_object(changed=True, warnings=warnings)
        else:
            idval = "/{0}/{1}".format(uriprop, propname)
            return isamAppliance.invoke_put(description="Add kerberos param value",
                                            uri="{0}/{1}/{2}".format(uri, uriprop, propname),
                                            data={
                                                "id": idval,
                                                "value": propvalue
                                            },
                                            requires_modules=requires_modules, requires_version=requires_version,
                                            warnings=warnings)
    return isamAppliance.create_return_object(warnings=warnings)
예제 #3
0
def set(isamAppliance, realm, propname, propvalue, subsection=None, check_mode=False, force=False):
    """
    Set kerberos realm property

    :param isamAppliance:
    :return:
    """
    if realms.search(isamAppliance, realm) == {}:
        return isamAppliance.create_return_object(warnings=["Realm: {0} does not exists: ".format(realm)])

    if subsection is not None and subsections._check(isamAppliance, realm, subsection) is False:
        return isamAppliance.create_return_object(
            warnings=["Subsection: {0}/{1} does not exists.".format(realm, subsection)])

    ret_obj = search(isamAppliance, realm, propname, subsection)

    if ret_obj["data"] == {}:
        return add(isamAppliance, realm, propname, propvalue, subsection, check_mode, force=True)

    return update(isamAppliance, realm, propname, propvalue, subsection, check_mode, force)