summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ipalib/encoder.py10
-rw-r--r--ipalib/frontend.py10
-rw-r--r--ipalib/parameters.py33
-rw-r--r--ipalib/plugins/baseldap.py6
-rw-r--r--ipaserver/plugins/ldap2.py18
-rwxr-xr-xmakeapi1
-rw-r--r--tests/test_ipalib/test_encoder.py2
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
diff --git a/makeapi b/makeapi
index d7c0cd5cc..bb455860c 100755
--- a/makeapi
+++ b/makeapi
@@ -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))