Пример #1
0
def add(isamAppliance, realm, subsection, check_mode=False, force=False):
    """
        Add kerberos realm's subsection
        :param isamAppliance:
        :return:
     """
    check_realm = realms.search(isamAppliance, realm)

    if check_realm == {}:
        return isamAppliance.create_return_object(warnings=["Kerberos realm: {0} not found".format(realm)])

    check_subsection = _check(isamAppliance, realm, subsection)

    if check_subsection is True and force is False:
        return isamAppliance.create_return_object(
            warnings=["Kerberos subsection {1} in realm: {0} already exists".format(realm, subsection)])

    if force is True or check_subsection is False:
        if check_mode is True:
            return isamAppliance.create_return_object(changed=True)
        else:
            return isamAppliance.invoke_post("Add kerberos realm's subsection", "{0}/{1}".format(uri, realm),
                                             {
                                                 "subsection": subsection
                                             },
                                             requires_modules=requires_modules, requires_version=requires_version)

    return isamAppliance.create_return_object()
Пример #2
0
def delete(isamAppliance, realm, propname, subsection=None, check_mode=False, force=False):
    """
    Remove kerberos realms 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 None:
        uriprop = realm
    else:
        uriprop = "{0}/{1}".format(realm, subsection)

    logger.debug(" Remove param uri = {0}/{1}/{2}".format(uri, uriprop, propname))
    ret_obj = search(isamAppliance, realm, propname, subsection)

    if ret_obj['data'] == {} and force is False:
        return isamAppliance.create_return_object(
            warnings=["property: {0} not found or force is: {1}".format(propname, force)])
    else:
        if check_mode is True:
            return isamAppliance.create_return_object(changed=True)
        else:
            return isamAppliance.invoke_delete(description="Delete kerberos realm prop ",
                                               uri="{0}/{1}/{2}".format(uri, uriprop, propname),
                                               requires_modules=requires_modules, requires_version=requires_version)
Пример #3
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()
Пример #4
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)
Пример #5
0
def delete(isamAppliance, realm, subsection, check_mode=False, force=False):
    """
    Remove kerberos realms subsection
    :param isamAppliance:
    :return:
    """
    logger.debug(" Remove param uri = {0}/{1}/{2}".format(uri, realm, subsection))

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

    if _check(isamAppliance, realm, subsection) is False and force is False:
        return isamAppliance.create_return_object(warnings=["subsection: {0} not found".format(subsection)])
    else:
        if check_mode is True:
            return isamAppliance.create_return_object(changed=True)
        else:
            return isamAppliance.invoke_delete(description="Delete kerberos realm subsection ",
                                               uri="{0}/{1}/{2}".format(uri, realm, subsection),
                                               requires_modules=requires_modules, requires_version=requires_version)
Пример #6
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)