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()
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)
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)