ipalib: replace DeprecatedParam with deprecated Param argument

Introduce new `deprecated` Param keywork argument. Setting it to True on a
param has the same effect as using DeprecatedParam. This allows deprecating
params while retaining their type information.

Revert all DeprecatedParam params back to their original definition and set
`deprecated` to True.

Remove the now unused DeprecatedParam class.

https://fedorahosted.org/freeipa/ticket/4739

Reviewed-By: David Kupka <dkupka@redhat.com>
This commit is contained in:
Jan Cholasta
2016-06-03 09:00:34 +02:00
parent 0e989e2a28
commit 3cf5f83d92
10 changed files with 74 additions and 50 deletions
+11 -17
View File
@@ -941,7 +941,7 @@ option: Str('delattr*', cli_name='delattr')
option: Bool('idnsallowsyncptr?', autofill=False, cli_name='allow_sync_ptr') option: Bool('idnsallowsyncptr?', autofill=False, cli_name='allow_sync_ptr')
option: Str('idnsforwarders*', autofill=False, cli_name='forwarder') option: Str('idnsforwarders*', autofill=False, cli_name='forwarder')
option: StrEnum('idnsforwardpolicy?', autofill=False, cli_name='forward_policy', values=[u'only', u'first', u'none']) option: StrEnum('idnsforwardpolicy?', autofill=False, cli_name='forward_policy', values=[u'only', u'first', u'none'])
option: DeprecatedParam('idnszonerefresh?', autofill=False, cli_name='zone_refresh') option: Int('idnszonerefresh?', autofill=False, cli_name='zone_refresh', deprecated=True)
option: Flag('raw', autofill=True, cli_name='raw', default=False) option: Flag('raw', autofill=True, cli_name='raw', default=False)
option: Flag('rights', autofill=True, default=False) option: Flag('rights', autofill=True, default=False)
option: Str('setattr*', cli_name='setattr') option: Str('setattr*', cli_name='setattr')
@@ -1662,7 +1662,7 @@ output: Entry('result')
output: Output('summary', type=[<type 'unicode'>, <type 'NoneType'>]) output: Output('summary', type=[<type 'unicode'>, <type 'NoneType'>])
output: PrimaryKey('value') output: PrimaryKey('value')
command: hbacrule_add command: hbacrule_add
args: 1,16,3 args: 1,14,3
arg: Str('cn', cli_name='name') arg: Str('cn', cli_name='name')
option: StrEnum('accessruletype', autofill=True, cli_name='type', default=u'allow', values=[u'allow', u'deny']) option: StrEnum('accessruletype', autofill=True, cli_name='type', default=u'allow', values=[u'allow', u'deny'])
option: Str('addattr*', cli_name='addattr') option: Str('addattr*', cli_name='addattr')
@@ -1675,9 +1675,7 @@ option: Flag('no_members', autofill=True, default=False)
option: Flag('raw', autofill=True, cli_name='raw', default=False) option: Flag('raw', autofill=True, cli_name='raw', default=False)
option: StrEnum('servicecategory?', cli_name='servicecat', values=[u'all']) option: StrEnum('servicecategory?', cli_name='servicecat', values=[u'all'])
option: Str('setattr*', cli_name='setattr') option: Str('setattr*', cli_name='setattr')
option: DeprecatedParam('sourcehost_host?') option: StrEnum('sourcehostcategory?', cli_name='srchostcat', deprecated=True, values=[u'all'])
option: DeprecatedParam('sourcehost_hostgroup?')
option: DeprecatedParam('sourcehostcategory?')
option: StrEnum('usercategory?', cli_name='usercat', values=[u'all']) option: StrEnum('usercategory?', cli_name='usercat', values=[u'all'])
option: Str('version?') option: Str('version?')
output: Entry('result') output: Entry('result')
@@ -1754,7 +1752,7 @@ output: Output('result', type=[<type 'bool'>])
output: Output('summary', type=[<type 'unicode'>, <type 'NoneType'>]) output: Output('summary', type=[<type 'unicode'>, <type 'NoneType'>])
output: PrimaryKey('value') output: PrimaryKey('value')
command: hbacrule_find command: hbacrule_find
args: 1,18,4 args: 1,16,4
arg: Str('criteria?') arg: Str('criteria?')
option: StrEnum('accessruletype?', autofill=False, cli_name='type', default=u'allow', values=[u'allow', u'deny']) option: StrEnum('accessruletype?', autofill=False, cli_name='type', default=u'allow', values=[u'allow', u'deny'])
option: Flag('all', autofill=True, cli_name='all', default=False) option: Flag('all', autofill=True, cli_name='all', default=False)
@@ -1768,9 +1766,7 @@ option: Flag('pkey_only?', autofill=True, default=False)
option: Flag('raw', autofill=True, cli_name='raw', default=False) option: Flag('raw', autofill=True, cli_name='raw', default=False)
option: StrEnum('servicecategory?', autofill=False, cli_name='servicecat', values=[u'all']) option: StrEnum('servicecategory?', autofill=False, cli_name='servicecat', values=[u'all'])
option: Int('sizelimit?', autofill=False) option: Int('sizelimit?', autofill=False)
option: DeprecatedParam('sourcehost_host?', autofill=False) option: StrEnum('sourcehostcategory?', autofill=False, cli_name='srchostcat', deprecated=True, values=[u'all'])
option: DeprecatedParam('sourcehost_hostgroup?', autofill=False)
option: DeprecatedParam('sourcehostcategory?', autofill=False)
option: Int('timelimit?', autofill=False) option: Int('timelimit?', autofill=False)
option: StrEnum('usercategory?', autofill=False, cli_name='usercat', values=[u'all']) option: StrEnum('usercategory?', autofill=False, cli_name='usercat', values=[u'all'])
option: Str('version?') option: Str('version?')
@@ -1779,7 +1775,7 @@ output: ListOfEntries('result')
output: Output('summary', type=[<type 'unicode'>, <type 'NoneType'>]) output: Output('summary', type=[<type 'unicode'>, <type 'NoneType'>])
output: Output('truncated', type=[<type 'bool'>]) output: Output('truncated', type=[<type 'bool'>])
command: hbacrule_mod command: hbacrule_mod
args: 1,18,3 args: 1,16,3
arg: Str('cn', cli_name='name') arg: Str('cn', cli_name='name')
option: StrEnum('accessruletype?', autofill=False, cli_name='type', default=u'allow', values=[u'allow', u'deny']) option: StrEnum('accessruletype?', autofill=False, cli_name='type', default=u'allow', values=[u'allow', u'deny'])
option: Str('addattr*', cli_name='addattr') option: Str('addattr*', cli_name='addattr')
@@ -1794,9 +1790,7 @@ option: Flag('raw', autofill=True, cli_name='raw', default=False)
option: Flag('rights', autofill=True, default=False) option: Flag('rights', autofill=True, default=False)
option: StrEnum('servicecategory?', autofill=False, cli_name='servicecat', values=[u'all']) option: StrEnum('servicecategory?', autofill=False, cli_name='servicecat', values=[u'all'])
option: Str('setattr*', cli_name='setattr') option: Str('setattr*', cli_name='setattr')
option: DeprecatedParam('sourcehost_host?', autofill=False) option: StrEnum('sourcehostcategory?', autofill=False, cli_name='srchostcat', deprecated=True, values=[u'all'])
option: DeprecatedParam('sourcehost_hostgroup?', autofill=False)
option: DeprecatedParam('sourcehostcategory?', autofill=False)
option: StrEnum('usercategory?', autofill=False, cli_name='usercat', values=[u'all']) option: StrEnum('usercategory?', autofill=False, cli_name='usercat', values=[u'all'])
option: Str('version?') option: Str('version?')
output: Entry('result') output: Entry('result')
@@ -2017,7 +2011,7 @@ option: Flag('nodetail?', autofill=True, cli_name='nodetail', default=False)
option: Str('rules*', cli_name='rules') option: Str('rules*', cli_name='rules')
option: Str('service', cli_name='service') option: Str('service', cli_name='service')
option: Int('sizelimit?', autofill=False) option: Int('sizelimit?', autofill=False)
option: DeprecatedParam('sourcehost?') option: Str('sourcehost?', cli_name='srchost', deprecated=True)
option: Str('targethost', cli_name='host') option: Str('targethost', cli_name='host')
option: Str('user', cli_name='user') option: Str('user', cli_name='user')
option: Str('version?') option: Str('version?')
@@ -2608,8 +2602,8 @@ option: Str('delattr*', cli_name='delattr')
option: Int('ipabaseid?', autofill=False, cli_name='base_id') option: Int('ipabaseid?', autofill=False, cli_name='base_id')
option: Int('ipabaserid?', autofill=False, cli_name='rid_base') option: Int('ipabaserid?', autofill=False, cli_name='rid_base')
option: Int('ipaidrangesize?', autofill=False, cli_name='range_size') option: Int('ipaidrangesize?', autofill=False, cli_name='range_size')
option: DeprecatedParam('ipanttrusteddomainname?') option: Str('ipanttrusteddomainname?', autofill=False, cli_name='dom_name', deprecated=True)
option: DeprecatedParam('ipanttrusteddomainsid?') option: Str('ipanttrusteddomainsid?', autofill=False, cli_name='dom_sid', deprecated=True)
option: Int('ipasecondarybaserid?', autofill=False, cli_name='secondary_rid_base') option: Int('ipasecondarybaserid?', autofill=False, cli_name='secondary_rid_base')
option: Flag('raw', autofill=True, cli_name='raw', default=False) option: Flag('raw', autofill=True, cli_name='raw', default=False)
option: Flag('rights', autofill=True, default=False) option: Flag('rights', autofill=True, default=False)
@@ -4266,7 +4260,7 @@ option: Str('displayname?', autofill=True)
option: Str('employeenumber?') option: Str('employeenumber?')
option: Str('employeetype?') option: Str('employeetype?')
option: Str('facsimiletelephonenumber*', cli_name='fax') option: Str('facsimiletelephonenumber*', cli_name='fax')
option: DeprecatedParam('from_delete?', cli_name='from_delete', default=False) option: Bool('from_delete?', cli_name='from_delete', deprecated=True)
option: Str('gecos?', autofill=True) option: Str('gecos?', autofill=True)
option: Int('gidnumber?') option: Int('gidnumber?')
option: Str('givenname', cli_name='first') option: Str('givenname', cli_name='first')
+2 -2
View File
@@ -90,5 +90,5 @@ IPA_DATA_VERSION=20100614120000
# # # #
######################################################## ########################################################
IPA_API_VERSION_MAJOR=2 IPA_API_VERSION_MAJOR=2
IPA_API_VERSION_MINOR=171 IPA_API_VERSION_MINOR=172
# Last change: npmccallum - enable setting authinds on services # Last change: ipalib: replace DeprecatedParam with `deprecated` Param argument
+1 -1
View File
@@ -887,7 +887,7 @@ from ipalib.backend import Backend
from ipalib.frontend import Command, LocalOrRemote, Updater from ipalib.frontend import Command, LocalOrRemote, Updater
from ipalib.frontend import Object, Method from ipalib.frontend import Object, Method
from ipalib.crud import Create, Retrieve, Update, Delete, Search from ipalib.crud import Create, Retrieve, Update, Delete, Search
from ipalib.parameters import DefaultFrom, Bool, Flag, Int, Decimal, Bytes, Str, IA5Str, Password, DNParam, DeprecatedParam from ipalib.parameters import DefaultFrom, Bool, Flag, Int, Decimal, Bytes, Str, IA5Str, Password, DNParam
from ipalib.parameters import (BytesEnum, StrEnum, IntEnum, AccessTime, File, from ipalib.parameters import (BytesEnum, StrEnum, IntEnum, AccessTime, File,
DateTime, DNSNameParam) DateTime, DNSNameParam)
from ipalib.errors import SkipPluginModule from ipalib.errors import SkipPluginModule
+5 -16
View File
@@ -415,6 +415,7 @@ class Param(ReadOnly):
('option_group', unicode, None), ('option_group', unicode, None),
('cli_metavar', str, None), ('cli_metavar', str, None),
('no_convert', bool, False), ('no_convert', bool, False),
('deprecated', bool, False),
# The 'default' kwarg gets appended in Param.__init__(): # The 'default' kwarg gets appended in Param.__init__():
# ('default', self.type, None), # ('default', self.type, None),
@@ -871,6 +872,10 @@ class Param(ReadOnly):
if error is not None: if error is not None:
raise ValidationError(name=self.get_param_name(), error=error) raise ValidationError(name=self.get_param_name(), error=error)
def _rule_deprecated(self, _, value):
if self.deprecated:
return _('this option is deprecated')
def get_default(self, **kw): def get_default(self, **kw):
""" """
Return the static default or construct and return a dynamic default. Return the static default or construct and return a dynamic default.
@@ -1870,22 +1875,6 @@ class DNParam(Param):
return dn return dn
class DeprecatedParam(Any):
kwargs = Param.kwargs + (
('deprecate', bool, True),
)
def __init__(self, name, *rules, **kw):
if 'flags' in kw:
kw['flags'] = list(kw['flags']) + ['no_option']
else:
kw['flags'] = ['no_option']
super(DeprecatedParam, self).__init__(name, *rules, **kw)
def _rule_deprecate(self, _, value):
return _('this option is deprecated')
def create_param(spec): def create_param(spec):
""" """
Create an `Str` instance from the shorthand ``spec``. Create an `Str` instance from the shorthand ``spec``.
+6 -2
View File
@@ -44,7 +44,7 @@ from ipalib.capabilities import (
VERSION_WITHOUT_CAPABILITIES, VERSION_WITHOUT_CAPABILITIES,
client_has_capability) client_has_capability)
from ipalib.parameters import (Flag, Bool, Int, Decimal, Str, StrEnum, Any, from ipalib.parameters import (Flag, Bool, Int, Decimal, Str, StrEnum, Any,
DeprecatedParam, DNSNameParam) DNSNameParam)
from ipalib.plugable import Registry from ipalib.plugable import Registry
from .baseldap import ( from .baseldap import (
pkey_to_value, pkey_to_value,
@@ -4053,9 +4053,13 @@ class dnsconfig(LDAPObject):
label=_('Allow PTR sync'), label=_('Allow PTR sync'),
doc=_('Allow synchronization of forward (A, AAAA) and reverse (PTR) records'), doc=_('Allow synchronization of forward (A, AAAA) and reverse (PTR) records'),
), ),
DeprecatedParam('idnszonerefresh?', Int('idnszonerefresh?',
deprecated=True,
cli_name='zone_refresh', cli_name='zone_refresh',
label=_('Zone refresh interval'), label=_('Zone refresh interval'),
doc=_('An interval between regular polls of the name server for new DNS zones'),
minvalue=0,
flags={'no_option'},
), ),
Int('ipadnsversion?', # available only in installer/upgrade Int('ipadnsversion?', # available only in installer/upgrade
label=_('IPA DNS version'), label=_('IPA DNS version'),
+19 -4
View File
@@ -18,7 +18,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
from ipalib import api, errors from ipalib import api, errors
from ipalib import AccessTime, Str, StrEnum, Bool, DeprecatedParam from ipalib import AccessTime, Str, StrEnum, Bool
from ipalib.plugable import Registry from ipalib.plugable import Registry
from .baseldap import ( from .baseldap import (
pkey_to_value, pkey_to_value,
@@ -230,7 +230,14 @@ class hbacrule(LDAPObject):
doc=_('Host category the rule applies to'), doc=_('Host category the rule applies to'),
values=(u'all', ), values=(u'all', ),
), ),
DeprecatedParam('sourcehostcategory?'), StrEnum('sourcehostcategory?',
deprecated=True,
cli_name='srchostcat',
label=_('Source host category'),
doc=_('Source host category the rule applies to'),
values=(u'all', ),
flags={'no_option'},
),
StrEnum('servicecategory?', StrEnum('servicecategory?',
cli_name='servicecat', cli_name='servicecat',
label=_('Service category'), label=_('Service category'),
@@ -265,8 +272,16 @@ class hbacrule(LDAPObject):
label=_('Host Groups'), label=_('Host Groups'),
flags=['no_create', 'no_update', 'no_search'], flags=['no_create', 'no_update', 'no_search'],
), ),
DeprecatedParam('sourcehost_host?'), Str('sourcehost_host?',
DeprecatedParam('sourcehost_hostgroup?'), deprecated=True,
label=_('Source Hosts'),
flags=['no_create', 'no_update', 'no_search', 'no_option'],
),
Str('sourcehost_hostgroup?',
deprecated=True,
label=_('Source Host Groups'),
flags=['no_create', 'no_update', 'no_search', 'no_option'],
),
Str('memberservice_hbacsvc?', Str('memberservice_hbacsvc?',
label=_('Services'), label=_('Services'),
flags=['no_create', 'no_update', 'no_search'], flags=['no_create', 'no_update', 'no_search'],
+7 -2
View File
@@ -18,7 +18,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
from ipalib import api, errors, output, util from ipalib import api, errors, output, util
from ipalib import Command, Str, Flag, Int, DeprecatedParam from ipalib import Command, Str, Flag, Int
from ipalib import _ from ipalib import _
from ipapython.dn import DN from ipapython.dn import DN
from ipalib.plugable import Registry from ipalib.plugable import Registry
@@ -261,7 +261,12 @@ class hbactest(Command):
label=_('User name'), label=_('User name'),
primary_key=True, primary_key=True,
), ),
DeprecatedParam('sourcehost?'), Str('sourcehost?',
deprecated=True,
cli_name='srchost',
label=_('Source host'),
flags={'no_option'},
),
Str('targethost', Str('targethost',
cli_name='host', cli_name='host',
label=_('Target host'), label=_('Target host'),
+17 -3
View File
@@ -22,7 +22,7 @@ import six
from ipalib.plugable import Registry from ipalib.plugable import Registry
from .baseldap import (LDAPObject, LDAPCreate, LDAPDelete, from .baseldap import (LDAPObject, LDAPCreate, LDAPDelete,
LDAPRetrieve, LDAPSearch, LDAPUpdate) LDAPRetrieve, LDAPSearch, LDAPUpdate)
from ipalib import api, Int, Str, DeprecatedParam, StrEnum, _, ngettext from ipalib import api, Int, Str, StrEnum, _, ngettext
from ipalib import errors from ipalib import errors
from ipapython.dn import DN from ipapython.dn import DN
@@ -617,8 +617,22 @@ class idrange_mod(LDAPUpdate):
msg_summary = _('Modified ID range "%(value)s"') msg_summary = _('Modified ID range "%(value)s"')
takes_options = LDAPUpdate.takes_options + ( takes_options = LDAPUpdate.takes_options + (
DeprecatedParam('ipanttrusteddomainsid?'), Str(
DeprecatedParam('ipanttrusteddomainname?'), 'ipanttrusteddomainsid?',
deprecated=True,
cli_name='dom_sid',
flags=('no_update', 'no_option'),
label=_('Domain SID of the trusted domain'),
autofill=False,
),
Str(
'ipanttrusteddomainname?',
deprecated=True,
cli_name='dom_name',
flags=('no_search', 'virtual_attribute', 'no_update', 'no_option'),
label=_('Name of the trusted domain'),
autofill=False,
),
) )
def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options): def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options):
+5 -3
View File
@@ -23,7 +23,7 @@ from copy import deepcopy
import six import six
from ipalib import api, errors from ipalib import api, errors
from ipalib import DeprecatedParam from ipalib import Bool
from ipalib.plugable import Registry from ipalib.plugable import Registry
from .baseldap import ( from .baseldap import (
LDAPCreate, LDAPCreate,
@@ -270,10 +270,12 @@ class stageuser_add(baseuser_add):
has_output_params = baseuser_add.has_output_params + stageuser_output_params has_output_params = baseuser_add.has_output_params + stageuser_output_params
takes_options = LDAPCreate.takes_options + ( takes_options = LDAPCreate.takes_options + (
DeprecatedParam('from_delete?', Bool(
'from_delete?',
deprecated=True,
doc=_('Create Stage user in from a delete user'), doc=_('Create Stage user in from a delete user'),
cli_name='from_delete', cli_name='from_delete',
default=False, flags={'no_option'},
), ),
) )
+1
View File
@@ -153,6 +153,7 @@ ipa_class_members = {
'sortorder', 'sortorder',
'option_group', 'option_group',
'no_convert', 'no_convert',
'deprecated',
], ],
'ipalib.parameters.Bool': [ 'ipalib.parameters.Bool': [
'truths', 'truths',