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