34 Create FreeIPA CLI Plugin for the 389 Auto Membership plugin

Added new container in etc to hold the automembership configs.
Modified constants to point to the new container
Modified dsinstance to create the container
Created automember.py to add the new commands
Added xmlrpc test to verify functionality
Added minor fix to user.py for constant behavior between memberof
and automember

https://fedorahosted.org/freeipa/ticket/1272
This commit is contained in:
Jr Aquino
2011-08-30 17:48:15 -07:00
committed by Martin Kosek
parent 6b19b2dc89
commit d05ace8fba
10 changed files with 1834 additions and 0 deletions

113
API.txt
View File

@@ -99,6 +99,119 @@ option: Str('version?', exclude='webui', flags=['no_option', 'no_output'])
output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), 'User-friendly description of action performed')
output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None))
output: Output('value', <type 'unicode'>, "The primary_key value of the entry, e.g. 'jdoe' for a user")
command: automember_add
args: 1,5,3
arg: Str('cn', cli_name='automember_rule', label=Gettext('Automember Rule', domain='ipa', localedir=None), normalizer=<lambda>)
option: Str('description', attribute=True, cli_name='desc', label=Gettext('Description', domain='ipa', localedir=None), multivalue=False, required=False)
option: StrEnum('type', label=Gettext('Grouping Type', domain='ipa', localedir=None), values=(u'group', u'hostgroup'))
option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui', flags=['no_output'])
option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui', flags=['no_output'])
option: Str('version?', exclude='webui', flags=['no_option', 'no_output'])
output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), 'User-friendly description of action performed')
output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None))
output: Output('value', <type 'unicode'>, "The primary_key value of the entry, e.g. 'jdoe' for a user")
command: automember_add_condition
args: 1,8,5
arg: Str('cn', cli_name='automember_rule', label=Gettext('Automember Rule', domain='ipa', localedir=None), normalizer=<lambda>)
option: Str('description', attribute=True, autofill=False, cli_name='desc', label=Gettext('Description', domain='ipa', localedir=None), multivalue=False, required=False)
option: List('automemberinclusiveregex?', alwaysask=True, cli_name='inclusive_regex', label=Gettext('Inclusive Regex', domain='ipa', localedir=None), multivalue=True)
option: List('automemberexclusiveregex?', alwaysask=True, cli_name='exclusive_regex', label=Gettext('Exclusive Regex', domain='ipa', localedir=None), multivalue=True)
option: Str('key', flags=['no_create', 'no_update', 'no_search'], label=Gettext('Attribute Key', domain='ipa', localedir=None))
option: StrEnum('type', label=Gettext('Grouping Type', domain='ipa', localedir=None), values=(u'group', u'hostgroup'))
option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui', flags=['no_output'])
option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui', flags=['no_output'])
option: Str('version?', exclude='webui', flags=['no_option', 'no_output'])
output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), 'User-friendly description of action performed')
output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None))
output: Output('value', <type 'unicode'>, "The primary_key value of the entry, e.g. 'jdoe' for a user")
output: Output('failed', <type 'dict'>, Gettext('Conditions that could not be added', domain='ipa', localedir=None))
output: Output('completed', <type 'int'>, Gettext('Number of conditions added', domain='ipa', localedir=None))
command: automember_default_group_remove
args: 0,5,3
option: Str('description', attribute=True, autofill=False, cli_name='desc', label=Gettext('Description', domain='ipa', localedir=None), multivalue=False, required=False)
option: StrEnum('type', label=Gettext('Grouping Type', domain='ipa', localedir=None), values=(u'group', u'hostgroup'))
option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui', flags=['no_output'])
option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui', flags=['no_output'])
option: Str('version?', exclude='webui', flags=['no_option', 'no_output'])
output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), 'User-friendly description of action performed')
output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None))
output: Output('value', <type 'unicode'>, "The primary_key value of the entry, e.g. 'jdoe' for a user")
command: automember_default_group_set
args: 0,6,3
option: Str('description', attribute=True, autofill=False, cli_name='desc', label=Gettext('Description', domain='ipa', localedir=None), multivalue=False, required=False)
option: Str('automemberdefaultgroup', cli_name='default_group', flags=['no_create', 'no_update'], label=Gettext('Default Group', domain='ipa', localedir=None))
option: StrEnum('type', label=Gettext('Grouping Type', domain='ipa', localedir=None), values=(u'group', u'hostgroup'))
option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui', flags=['no_output'])
option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui', flags=['no_output'])
option: Str('version?', exclude='webui', flags=['no_option', 'no_output'])
output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), 'User-friendly description of action performed')
output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None))
output: Output('value', <type 'unicode'>, "The primary_key value of the entry, e.g. 'jdoe' for a user")
command: automember_default_group_show
args: 0,4,3
option: StrEnum('type', label=Gettext('Grouping Type', domain='ipa', localedir=None), values=(u'group', u'hostgroup'))
option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui', flags=['no_output'])
option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui', flags=['no_output'])
option: Str('version?', exclude='webui', flags=['no_option', 'no_output'])
output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), 'User-friendly description of action performed')
output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None))
output: Output('value', <type 'unicode'>, "The primary_key value of the entry, e.g. 'jdoe' for a user")
command: automember_del
args: 1,1,3
arg: Str('cn', cli_name='automember_rule', label=Gettext('Automember Rule', domain='ipa', localedir=None), normalizer=<lambda>)
option: StrEnum('type', label=Gettext('Grouping Type', domain='ipa', localedir=None), values=(u'group', u'hostgroup'))
output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), 'User-friendly description of action performed')
output: Output('result', <type 'dict'>, 'list of deletions that failed')
output: Output('value', <type 'unicode'>, "The primary_key value of the entry, e.g. 'jdoe' for a user")
command: automember_find
args: 1,5,4
arg: Str('criteria?', noextrawhitespace=False)
option: Str('description', attribute=True, autofill=False, cli_name='desc', label=Gettext('Description', domain='ipa', localedir=None), multivalue=False, query=True, required=False)
option: StrEnum('type', label=Gettext('Grouping Type', domain='ipa', localedir=None), values=(u'group', u'hostgroup'))
option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui', flags=['no_output'])
option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui', flags=['no_output'])
option: Str('version?', exclude='webui', flags=['no_option', 'no_output'])
output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), 'User-friendly description of action performed')
output: ListOfEntries('result', (<type 'list'>, <type 'tuple'>), Gettext('A list of LDAP entries', domain='ipa', localedir=None))
output: Output('count', <type 'int'>, 'Number of entries returned')
output: Output('truncated', <type 'bool'>, 'True if not all results were returned')
command: automember_mod
args: 1,5,3
arg: Str('cn', cli_name='automember_rule', label=Gettext('Automember Rule', domain='ipa', localedir=None), normalizer=<lambda>)
option: Str('description', attribute=True, autofill=False, cli_name='desc', label=Gettext('Description', domain='ipa', localedir=None), multivalue=False, required=False)
option: StrEnum('type', label=Gettext('Grouping Type', domain='ipa', localedir=None), values=(u'group', u'hostgroup'))
option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui', flags=['no_output'])
option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui', flags=['no_output'])
option: Str('version?', exclude='webui', flags=['no_option', 'no_output'])
output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), 'User-friendly description of action performed')
output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None))
output: Output('value', <type 'unicode'>, "The primary_key value of the entry, e.g. 'jdoe' for a user")
command: automember_remove_condition
args: 1,8,5
arg: Str('cn', cli_name='automember_rule', label=Gettext('Automember Rule', domain='ipa', localedir=None), normalizer=<lambda>)
option: Str('description', attribute=True, autofill=False, cli_name='desc', label=Gettext('Description', domain='ipa', localedir=None), multivalue=False, required=False)
option: List('automemberinclusiveregex?', alwaysask=True, cli_name='inclusive_regex', label=Gettext('Inclusive Regex', domain='ipa', localedir=None), multivalue=True)
option: List('automemberexclusiveregex?', alwaysask=True, cli_name='exclusive_regex', label=Gettext('Exclusive Regex', domain='ipa', localedir=None), multivalue=True)
option: Str('key', flags=['no_create', 'no_update', 'no_search'], label=Gettext('Attribute Key', domain='ipa', localedir=None))
option: StrEnum('type', label=Gettext('Grouping Type', domain='ipa', localedir=None), values=(u'group', u'hostgroup'))
option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui', flags=['no_output'])
option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui', flags=['no_output'])
option: Str('version?', exclude='webui', flags=['no_option', 'no_output'])
output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), 'User-friendly description of action performed')
output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None))
output: Output('value', <type 'unicode'>, "The primary_key value of the entry, e.g. 'jdoe' for a user")
output: Output('failed', <type 'dict'>, Gettext('Conditions that could not be removed', domain='ipa', localedir=None))
output: Output('completed', <type 'int'>, Gettext('Number of conditions removed', domain='ipa', localedir=None))
command: automember_show
args: 1,4,3
arg: Str('cn', cli_name='automember_rule', label=Gettext('Automember Rule', domain='ipa', localedir=None), normalizer=<lambda>)
option: StrEnum('type', label=Gettext('Grouping Type', domain='ipa', localedir=None), values=(u'group', u'hostgroup'))
option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui', flags=['no_output'])
option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui', flags=['no_output'])
option: Str('version?', exclude='webui', flags=['no_option', 'no_output'])
output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), 'User-friendly description of action performed')
output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None))
output: Output('value', <type 'unicode'>, "The primary_key value of the entry, e.g. 'jdoe' for a user")
command: automountkey_add
args: 2,7,3
arg: Str('automountlocationcn', cli_name='automountlocation', label=Gettext('Location', domain='ipa', localedir=None), query=True, required=True)