diff options
-rw-r--r-- | ipalib/encoder.py | 10 | ||||
-rw-r--r-- | ipalib/frontend.py | 10 | ||||
-rw-r--r-- | ipalib/parameters.py | 33 | ||||
-rw-r--r-- | ipalib/plugins/baseldap.py | 6 | ||||
-rw-r--r-- | ipaserver/plugins/ldap2.py | 18 | ||||
-rwxr-xr-x | makeapi | 1 | ||||
-rw-r--r-- | tests/test_ipalib/test_encoder.py | 2 |
7 files changed, 10 insertions, 70 deletions
diff --git a/ipalib/encoder.py b/ipalib/encoder.py index 8d59bd316..691f4d8ca 100644 --- a/ipalib/encoder.py +++ b/ipalib/encoder.py @@ -79,7 +79,15 @@ class Encoder(object): return self.encoder_settings.encode_postprocessor( var.encode(self.encoder_settings.encode_to) ) - elif isinstance(var, (bool, float, Decimal, int, long)): + elif isinstance(var, bool): + if var: + var = 'TRUE' + else: + var = 'FALSE' + return self.encoder_settings.encode_postprocessor( + var.encode(self.encoder_settings.encode_to) + ) + elif isinstance(var, (float, Decimal, int, long)): return self.encoder_settings.encode_postprocessor( str(var).encode(self.encoder_settings.encode_to) ) diff --git a/ipalib/frontend.py b/ipalib/frontend.py index f66596343..b31d6d4b8 100644 --- a/ipalib/frontend.py +++ b/ipalib/frontend.py @@ -429,8 +429,6 @@ class Command(HasParam): if not self.api.env.in_server and 'version' not in params: params['version'] = API_VERSION self.validate(**params) - if self.api.env.in_server: - params = self.encode(**params) (args, options) = self.params_2_args_options(**params) ret = self.run(*args, **options) if ( @@ -615,14 +613,6 @@ class Command(HasParam): (k, self.params[k].convert(v)) for (k, v) in kw.iteritems() ) - def encode(self, **kw): - """ - Return a dictionary of encoded values. - """ - return dict( - (k, self.params[k].encode(v)) for (k, v) in kw.iteritems() - ) - def __convert_iter(self, kw): for param in self.params(): if kw.get(param.name, None) is None: diff --git a/ipalib/parameters.py b/ipalib/parameters.py index 35dbdd957..e9951a1c8 100644 --- a/ipalib/parameters.py +++ b/ipalib/parameters.py @@ -306,8 +306,6 @@ class Param(ReadOnly): - primary_key: Command's parameter primary key is used for unique identification of an LDAP object and for sorting - normalizer: a custom function for Param value normalization - - encoder: a custom function used to override Param subclass default - encoder - default_from: a custom function for generating default values of parameter instance - autofill: by default, only `required` parameters get a default value @@ -381,7 +379,6 @@ class Param(ReadOnly): ('multivalue', bool, False), ('primary_key', bool, False), ('normalizer', callable, None), - ('encoder', callable, None), ('default_from', DefaultFrom, None), ('autofill', bool, False), ('query', bool, False), @@ -901,36 +898,6 @@ class Param(ReadOnly): rule=rule, ) - def encode(self, value, force=False): - """ - Encode Python native type value to chosen backend format. Encoding is - applied for parameters representing actual attributes (attribute=True). - - The default encode method `Param._encode` can be overriden in a `Param` - instance with `encoder` attribute: - - >>> s = Str('my_str', encoder=lambda x:encode(x)) - - Note that the default method of encoding values is defined in - `Param._encode()`. - - :param value: Encoded value - :param force: If set to true, encoding takes place even for Params - not marked as attribute - """ - if not self.attribute and not force: #pylint: disable=E1101 - return value - if self.encoder is not None: #pylint: disable=E1101 - return self.encoder(value) #pylint: disable=E1101 - - return self._encode(value) - - def _encode(self, value): - """ - Encode a value to backend format. - """ - return value - def get_default(self, **kw): """ Return the static default or construct and return a dynamic default. diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py index e4f8cdc69..85a817231 100644 --- a/ipalib/plugins/baseldap.py +++ b/ipalib/plugins/baseldap.py @@ -933,12 +933,6 @@ last, after all sets and adds."""), raise errors.ValidationError(name=attr, error=err.error) except errors.ConversionError, err: raise errors.ConversionError(name=attr, error=err.error) - # FIXME: We use `force` when encoding because we know this is - # an attribute, even if it does not have the `attribute` flag - # set. This happens with no_update attributes, which are - # not cloned to Update commands. This cloning is where the flag - # gets set. - value = param.encode(value, force=True) entry_attrs[attr] = value else: # unknown attribute: remove duplicite and invalid values diff --git a/ipaserver/plugins/ldap2.py b/ipaserver/plugins/ldap2.py index ddef8dffc..6a3d2164e 100644 --- a/ipaserver/plugins/ldap2.py +++ b/ipaserver/plugins/ldap2.py @@ -59,7 +59,6 @@ except ImportError: from ldap.functions import explode_dn from ipalib.dn import DN from ipalib import _ -from ipalib.parameters import Bool import krbV @@ -76,23 +75,6 @@ MEMBERS_INDIRECT = 2 # SASL authentication mechanism SASL_AUTH = _ldap_sasl.sasl({}, 'GSSAPI') -# OID 1.3.6.1.4.1.1466.115.121.1.7 (Boolean) syntax encoding -def _encode_bool(self, value): - def encode_bool_value(value): - if value is None: - return None - if value: - return u'TRUE' - return u'FALSE' - - if type(value) in (tuple, list): - return tuple(encode_bool_value(v) for v in value) - else: - return encode_bool_value(value) - -# set own Bool parameter encoder -Bool._encode = _encode_bool - class IPASimpleLDAPObject(SimpleLDAPObject): ''' This is a thin layer over SimpleLDAPObject which allows us to utilize @@ -43,7 +43,6 @@ API_DOC_ERROR = 8 PARAM_IGNORED_KW_ATTRIBUTES = ('label', 'doc', 'normalizer', - 'encoder', 'default_from', 'hint', 'flags', diff --git a/tests/test_ipalib/test_encoder.py b/tests/test_ipalib/test_encoder.py index c43cea212..430eda047 100644 --- a/tests/test_ipalib/test_encoder.py +++ b/tests/test_ipalib/test_encoder.py @@ -49,7 +49,7 @@ class test_Encoder(ClassChecker): assert_equal(o.encode('ahoj'), 'ahoj'.encode(encode_to)) assert_equal(o.encode(_test_str_d), _test_str_e) # bool, float, int, long - assert_equal(o.encode(True), str(True).encode(encode_to)) + assert_equal(o.encode(True), 'TRUE'.encode(encode_to)) assert_equal(o.encode(1.01), str(1.01).encode(encode_to)) assert_equal(o.encode(1000), str(1000).encode(encode_to)) assert_equal(o.encode(long(1)), str(long(1)).encode(encode_to)) |