diff options
author | Martin Nagy <mnagy@redhat.com> | 2008-10-14 21:22:44 +0200 |
---|---|---|
committer | Martin Nagy <mnagy@redhat.com> | 2008-10-14 21:22:44 +0200 |
commit | ff88652a405c7fd9236a9b1d80dd8955a9ca056d (patch) | |
tree | 3b8480d9347f871fad54e89fc03bf4e4bc368788 /ipalib | |
parent | 9788800aa41146551baee6d36314a20203fd9d20 (diff) | |
download | freeipa-ff88652a405c7fd9236a9b1d80dd8955a9ca056d.tar.gz freeipa-ff88652a405c7fd9236a9b1d80dd8955a9ca056d.tar.xz freeipa-ff88652a405c7fd9236a9b1d80dd8955a9ca056d.zip |
Convert string values to boolean when generating environment
Diffstat (limited to 'ipalib')
-rw-r--r-- | ipalib/config.py | 38 | ||||
-rw-r--r-- | ipalib/plugins/f_user.py | 1 |
2 files changed, 29 insertions, 10 deletions
diff --git a/ipalib/config.py b/ipalib/config.py index c55c47c8a..a606a40b1 100644 --- a/ipalib/config.py +++ b/ipalib/config.py @@ -25,25 +25,41 @@ DEFAULT_CONF='/etc/ipa/ipa.conf' def generate_env(d={}): default = dict( - server_context = True, - query_dns = True, - verbose = False, + basedn = 'dc=example,dc=com', + container_user = 'cn=users,cn=accounts', + domain = LazyProp(get_domain), interactive = True, - server = LazyIter(get_servers), + query_dns = True, realm = LazyProp(get_realm), - domain = LazyProp(get_domain), - container_user='cn=users,cn=accounts', - basedn='dc=example,dc=com', + server_context = True, + server = LazyIter(get_servers), + verbose = False, ) for key, value in d.iteritems(): - if key in default and type(default[key]) in (LazyIter, LazyProp): - default[key].set_value(value) + if key in default: + if isinstance(default[key], (LazyIter, LazyProp)): + default[key].set_value(value) + else: + default[key] = convert_val(type(default[key]), value) else: - default[key] = value + default[key] = value return default +# TODO: Add a validation function +def convert_val(target_type, value): + bool_true = ('true', 'yes', 'on') + bool_false = ('false', 'no', 'off') + + if target_type == bool and isinstance(value, basestring): + if value.lower() in bool_true: + return True + elif value.lower() in bool_false: + return False + return target_type(value) + + class LazyProp(object): def __init__(self, func, value=None): assert isinstance(func, types.FunctionType) @@ -73,6 +89,8 @@ class LazyIter(LazyProp): yield item +# TODO: Make it possible to use var = 'foo, bar' without +# turning it into ("'foo", "bar'") def read_config(config_file=None): assert config_file == None or isinstance(config_file, (basestring, file)) diff --git a/ipalib/plugins/f_user.py b/ipalib/plugins/f_user.py index b35a11223..b2c191fbe 100644 --- a/ipalib/plugins/f_user.py +++ b/ipalib/plugins/f_user.py @@ -47,6 +47,7 @@ class envtest(frontend.Command): print "" else: print " %s: %s" % (var, val) + return {} api.register(envtest) |