diff options
author | Sumit Bose <sbose@redhat.com> | 2012-09-05 13:21:04 +0200 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2012-09-07 16:50:35 +0200 |
commit | 67b47a65f2d07b350c970a6e2b4e55ae9adf50cd (patch) | |
tree | 8b538da5012b07fabd1648260b54801993fdf3af | |
parent | 377e1267b75e75fe0f5c7c557e1a9cce6b9fa160 (diff) | |
download | freeipa-67b47a65f2d07b350c970a6e2b4e55ae9adf50cd.tar.gz freeipa-67b47a65f2d07b350c970a6e2b4e55ae9adf50cd.tar.xz freeipa-67b47a65f2d07b350c970a6e2b4e55ae9adf50cd.zip |
IDRange CLI: allow to work without arguments
Fixes https://fedorahosted.org/freeipa/ticket/2999
-rw-r--r-- | API.txt | 2 | ||||
-rw-r--r-- | ipalib/plugins/idrange.py | 22 |
2 files changed, 17 insertions, 7 deletions
@@ -1888,7 +1888,7 @@ args: 1,11,3 arg: Str('cn', attribute=True, cli_name='name', multivalue=False, primary_key=True, required=True) option: Int('ipabaseid', attribute=True, cli_name='base_id', multivalue=False, required=True) option: Int('ipaidrangesize', attribute=True, cli_name='range_size', multivalue=False, required=True) -option: Int('ipabaserid', attribute=True, cli_name='rid_base', multivalue=False, required=True) +option: Int('ipabaserid', attribute=True, cli_name='rid_base', multivalue=False, required=False) option: Int('ipasecondarybaserid', attribute=True, cli_name='secondary_rid_base', multivalue=False, required=False) option: Str('ipanttrusteddomainsid', attribute=True, cli_name='dom_sid', multivalue=False, required=False) option: Str('iparangetype', attribute=True, cli_name='iparangetype', multivalue=False, required=False) diff --git a/ipalib/plugins/idrange.py b/ipalib/plugins/idrange.py index 23c8e0c34..3231156bd 100644 --- a/ipalib/plugins/idrange.py +++ b/ipalib/plugins/idrange.py @@ -63,7 +63,7 @@ class idrange(LDAPObject): cli_name='range_size', label=_("Number of IDs in the range"), ), - Int('ipabaserid', + Int('ipabaserid?', cli_name='rid_base', label=_('First RID of the corresponding RID range'), ), @@ -150,15 +150,25 @@ class idrange_add(LDAPCreate): def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options): assert isinstance(dn, DN) - if ('ipanttrusteddomainsid' not in options and - 'ipasecondarybaserid' not in options): - raise errors.ValidationError(name=_('Range setup'), - error=_('Ranges for local domain ' \ - 'must have a secondary RID base')) if 'ipanttrusteddomainsid' in options: + if 'ipasecondarybaserid' in options: + raise errors.ValidationError(name=_('ID Range setup'), + error=_('Options dom_sid and secondary_rid_base cannot ' \ + 'be used together')) + + if 'ipabaserid' not in options: + raise errors.ValidationError(name=_('ID Range setup'), + error=_('Options dom_sid and rid_base must ' \ + 'be used together')) + entry_attrs['objectclass'].append('ipatrustedaddomainrange') else: + if (('ipasecondarybaserid' in options) != ('ipabaserid' in options)): + raise errors.ValidationError(name=_('ID Range setup'), + error=_('Options secondary_rid_base and rid_base must ' \ + 'be used together')) + entry_attrs['objectclass'].append('ipadomainidrange') return dn |