示例#1
0
def list_definition(inst, basedn, log, args):
    """
        List automember definition if instance name
        is given else show all automember definitions.

        :param name: An instance 
        :type name: lib389.DirSrv

    """

    automembers = AutoMembershipDefinitions(inst)

    if args.name is not None:
        if args.json:
            print(automembers.get_all_attrs_json(args.name))
        else:
            automember = automembers.get(args.name)
            log.info(automember.display())
    else:
        all_definitions = automembers.list()
        if args.json:
            result = {'type': 'list', 'items': []}
        for definition in all_definitions:
            if args.json:
                result['items'].append(definition)
            else:
                log.info(definition.display())

        if args.json:
            print(json.dumps(result))
示例#2
0
def edit_definition(inst, basedn, log, args):
    """
        Edit automember definition
        
        :param name: An instance
        :type name: lib389.DirSrv
        :param groupattr: autoMemberGroupingAttr value
        :type groupattr: str
        :param defaultgroup: autoMemberDefaultGroup value
        :type defaultgroup: str
        :param scope: autoMemberScope value
        :type scope: str
        :param filter: autoMemberFilter value
        :type filter: str

    """
    automembers = AutoMembershipDefinitions(inst)
    automember = automembers.get(args.name)

    if args.scope is not None:
        automember.replace("automemberscope", args.scope)
    if args.filter is not None:
        automember.replace("automemberfilter", args.filter)
    if args.defaultgroup is not None:
        automember.replace("automemberdefaultgroup", args.defaultgroup)
    if args.groupattr is not None:
        automember.replace("automembergroupingattr", args.groupattr)
    log.info("Definition updated successfully.")
示例#3
0
def regex_edit(inst, basedn, log, args):
    log = log.getChild('regex_edit')
    definitions = AutoMembershipDefinitions(inst)
    definition = definitions.get(args.DEFNAME)
    regexes = AutoMembershipRegexRules(inst, definition.dn)
    regex = regexes.get(args.REGEXNAME)
    generic_object_edit(regex, log, args, arg_to_attr_regex)
示例#4
0
def regex_del(inst, basedn, log, args):
    log = log.getChild('regex_del')
    definitions = AutoMembershipDefinitions(inst)
    definition = definitions.get(args.DEFNAME)
    regexes = AutoMembershipRegexRules(inst, definition.dn)
    regex = regexes.get(args.REGEXNAME)
    regex.delete()
    log.info("Successfully deleted the %s regex", args.REGEXNAME)
示例#5
0
def definition_del(inst, basedn, log, args):
    # First delete regexes, then the defintion
    log = log.getChild('definition_del')
    definitions = AutoMembershipDefinitions(inst)
    definition = definitions.get(args.DEFNAME)
    regexes = AutoMembershipRegexRules(inst, definition.dn)
    for regex in regexes.list():
        regex.delete()
    definition.delete()
    log.info("Successfully deleted the %s definition", args.DEFNAME)
示例#6
0
def definition_show(inst, basedn, log, args):
    log = log.getChild('definition_show')
    definitions = AutoMembershipDefinitions(inst)
    definition = definitions.get(args.DEFNAME)

    if not definition.exists():
        raise ldap.NO_SUCH_OBJECT("Entry %s doesn't exists" % args.DEFNAME)
    if args and args.json:
        o_str = definition.get_all_attrs_json()
        log.info(o_str)
    else:
        log.info(definition.display())
示例#7
0
def regex_add(inst, basedn, log, args):
    log = log.getChild('regex_add')
    definitions = AutoMembershipDefinitions(inst)
    definition = definitions.get(args.DEFNAME)
    props = {'cn': args.REGEXNAME}
    generic_object_add(AutoMembershipRegexRule,
                       inst,
                       log,
                       args,
                       arg_to_attr_regex,
                       basedn=definition.dn,
                       props=props)
示例#8
0
def remove_definition(inst, basedn, log, args):
    """
        Remove automember definition for the given
        instance.

        :param name: An instance
        :type name: lib389.DirSrv

    """
    automembers = AutoMembershipDefinitions(inst)
    automember = automembers.get(args.name)

    automember.delete()
    log.info("Definition deleted successfully.")
示例#9
0
def regex_show(inst, basedn, log, args):
    log = log.getChild('regex_show')
    definitions = AutoMembershipDefinitions(inst)
    definition = definitions.get(args.DEFNAME)
    regexes = AutoMembershipRegexRules(inst, definition.dn)
    regex = regexes.get(args.REGEXNAME)

    if not regex.exists():
        raise ldap.NO_SUCH_OBJECT("Entry %s doesn't exists" % args.REGEXNAME)
    if args and args.json:
        o_str = regex.get_all_attrs_json()
        log.info(o_str)
    else:
        log.info(regex.display())
示例#10
0
def regex_list(inst, basedn, log, args):
    definitions = AutoMembershipDefinitions(inst)
    definition = definitions.get(args.DEFNAME)
    regexes = AutoMembershipRegexRules(inst, definition.dn)
    result = []
    result_json = []
    for regex in regexes.list():
        if args.json:
            result_json.append(json.loads(regex.get_all_attrs_json()))
        else:
            result.append(regex.rdn)
    if args.json:
        log.info(json.dumps({"type": "list", "items": result_json}, indent=4))
    else:
        if len(result) > 0:
            for i in result:
                log.info(i)
        else:
            log.info("No Automember regexes were found")
def list_definition(inst, basedn, log, args):
    """
        List automember definition if instance name
        is given else show all automember definitions.

        :param name: An instance 
        :type name: lib389.DirSrv

    """

    automembers = AutoMembershipDefinitions(inst)

    if args.name is not None:
        automember = automembers.get(args.name)
        log.info(automember.display())
    else:
        all_definitions = automembers.list()

        for definition in all_definitions:
            log.info(definition.display())
示例#12
0
def definition_edit(inst, basedn, log, args):
    log = log.getChild('definition_edit')
    definitions = AutoMembershipDefinitions(inst)
    definition = definitions.get(args.DEFNAME)
    generic_object_edit(definition, log, args, arg_to_attr_definition)
示例#13
0
def definition_del(inst, basedn, log, args):
    log = log.getChild('definition_del')
    definitions = AutoMembershipDefinitions(inst)
    definition = definitions.get(args.DEFNAME)
    definition.delete()
    log.info("Successfully deleted the %s definition", args.DEFNAME)