summaryrefslogtreecommitdiffstats
path: root/ipalib
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-12-22 15:41:24 -0700
committerJason Gerard DeRose <jderose@redhat.com>2008-12-22 15:41:24 -0700
commit5b637f6a18a647a0ff084b2932faa1a4a887a5c2 (patch)
tree17f3fdb8e1c00a6f14f2ffa2b9b5d4b45c6e48c8 /ipalib
parent885efbe085fcc177241a4553bde45f29241376e0 (diff)
downloadfreeipa-5b637f6a18a647a0ff084b2932faa1a4a887a5c2.tar.gz
freeipa-5b637f6a18a647a0ff084b2932faa1a4a887a5c2.tar.xz
freeipa-5b637f6a18a647a0ff084b2932faa1a4a887a5c2.zip
Removed depreciated code from config.py; removed corresponding unit tests
Diffstat (limited to 'ipalib')
-rw-r--r--ipalib/cli.py1
-rw-r--r--ipalib/config.py281
-rw-r--r--ipalib/plugable.py2
3 files changed, 2 insertions, 282 deletions
diff --git a/ipalib/cli.py b/ipalib/cli.py
index 518b71298..f4cdbbf57 100644
--- a/ipalib/cli.py
+++ b/ipalib/cli.py
@@ -37,7 +37,6 @@ import backend
import errors
import plugable
import ipa_types
-from config import set_default_env, read_config
import util
from constants import CLI_TAB
diff --git a/ipalib/config.py b/ipalib/config.py
index 1bec57e56..06ecb13f2 100644
--- a/ipalib/config.py
+++ b/ipalib/config.py
@@ -25,107 +25,13 @@ It will also take care of settings that can be discovered by different
methods, such as DNS.
"""
-from ConfigParser import SafeConfigParser, ParsingError, RawConfigParser
+from ConfigParser import RawConfigParser, ParsingError
import types
import os
from os import path
import sys
-from errors import check_isinstance, raise_TypeError
import constants
-DEFAULT_CONF='/etc/ipa/ipa.conf'
-
-
-class Environment(object):
- """
- A mapping object used to store the environment variables.
- """
-
- def __init__(self):
- object.__setattr__(self, '_Environment__map', {})
-
- def __getattr__(self, name):
- """
- Return the attribute named ``name``.
- """
- return self[name]
-
- def __setattr__(self, name, value):
- """
- Set the attribute named ``name`` to ``value``.
- """
- self[name] = value
-
- def __delattr__(self, name):
- """
- Raise AttributeError (deletion is not allowed).
- """
- raise AttributeError('cannot del %s.%s' %
- (self.__class__.__name__, name)
- )
-
- def __getitem__(self, key):
- """
- Return the value corresponding to ``key``.
- """
- val = self.__map[key]
- if hasattr(val, 'get_value'):
- return val.get_value()
- else:
- return val
-
- def __setitem__(self, key, value):
- """
- Set the item at ``key`` to ``value``.
- """
- if key in self or hasattr(self, key):
- if hasattr(self.__map[key], 'set_value'):
- self.__map[key].set_value(value)
- else:
- raise AttributeError('cannot overwrite %s.%s' %
- (self.__class__.__name__, key)
- )
- else:
- self.__map[key] = value
-
- def __contains__(self, key):
- """
- Return True if instance contains ``key``; otherwise return False.
- """
- return key in self.__map
-
- def __iter__(self):
- """
- Iterate through keys in ascending order.
- """
- for key in sorted(self.__map):
- yield key
-
- def update(self, new_vals, ignore_errors = False):
- """
- Update variables using keys and values from ``new_vals``.
-
- Error will occur if there is an attempt to override variable that was
- already set, unless``ignore_errors`` is True.
- """
- assert type(new_vals) == dict
- for key, value in new_vals.iteritems():
- if ignore_errors:
- try:
- self[key] = value
- except (AttributeError, KeyError):
- pass
- else:
- self[key] = value
-
- def get(self, name, default=None):
- """
- Return the value corresponding to ``key``. Defaults to ``default``.
- """
- if name in self:
- return self[name]
- else:
- return default
class Env(object):
@@ -349,188 +255,3 @@ class Env(object):
"""
for key in sorted(self.__d):
yield key
-
-
-def set_default_env(env):
- """
- Set default values for ``env``.
- """
- assert isinstance(env, Environment)
-
- default = dict(
- basedn = EnvProp(basestring, 'dc=example,dc=com'),
- container_accounts = EnvProp(basestring, 'cn=accounts'),
- container_user = EnvProp(basestring, 'cn=users,cn=accounts'),
- container_group = EnvProp(basestring, 'cn=groups,cn=accounts'),
- container_service = EnvProp(basestring, 'cn=services,cn=accounts'),
- container_host = EnvProp(basestring, 'cn=computers,cn=accounts'),
- container_hostgroup = EnvProp(basestring, 'cn=hostgroups,cn=accounts'),
- domain = LazyProp(basestring, get_domain),
- interactive = EnvProp(bool, True),
- query_dns = EnvProp(bool, True),
- realm = LazyProp(basestring, get_realm),
- server_context = EnvProp(bool, True),
- server = LazyIter(basestring, get_servers),
- verbose = EnvProp(bool, False),
- ldaphost = EnvProp(basestring, 'localhost'),
- ldapport = EnvProp(int, 389),
- )
-
- env.update(default)
-
-
-class EnvProp(object):
- """
- Environment set-once property with optional default value.
- """
- def __init__(self, type_, default, multi_value=False):
- """
- :param type_: Type of the property.
- :param default: Default value.
- :param multi_value: Allow multiple values.
- """
- if multi_value:
- if isinstance(default, tuple) and len(default):
- check_isinstance(default[0], type_, allow_none=True)
- self._type = type_
- self._default = default
- self._value = None
- self._multi_value = multi_value
-
- def get_value(self):
- """
- Return the value if it was set.
-
- If the value is not set return the default. Otherwise raise an
- exception.
- """
- if self._get() != None:
- return self._get()
- else:
- raise KeyError, 'Value not set'
-
- def set_value(self, value):
- """
- Set the value.
- """
- if self._value != None:
- raise KeyError, 'Value already set'
- self._value = self._validate(value)
-
- def _get(self):
- """
- Return value, default, or None.
- """
- if self._value != None:
- return self._value
- elif self._default != None:
- return self._default
- else:
- return None
-
- def _validate(self, value):
- """
- Make sure ``value`` is of the right type. Do conversions if necessary.
-
- This will also handle multi value.
- """
- if self._multi_value and isinstance(value, tuple):
- converted = []
- for val in value:
- converted.append(self._validate_value(val))
- return tuple(converted)
- else:
- return self._validate_value(value)
-
- def _validate_value(self, value):
- """
- Validate and convert a single value.
- """
- bool_true = ('true', 'yes', 'on')
- bool_false = ('false', 'no', 'off')
-
- if self._type == bool and isinstance(value, basestring):
- if value.lower() in bool_true:
- return True
- elif value.lower() in bool_false:
- return False
- else:
- raise raise_TypeError(value, bool, 'value')
- check_isinstance(value, self._type, 'value')
- return value
-
-
-class LazyProp(EnvProp):
- def __init__(self, type_, func, default=None, multi_value=False):
- check_isinstance(func, types.FunctionType, 'func')
- self._func = func
- EnvProp.__init__(self, type_, default, multi_value)
-
- def get_value(self):
- if self._get() != None:
- return self._get()
- else:
- return self._func()
-
-
-class LazyIter(LazyProp):
- def __init__(self, type_, func, default=None):
- LazyProp.__init__(self, type_, func, default, multi_value=True)
-
- def get_value(self):
- val = self._get()
- if val != None:
- if type(val) == tuple:
- for item in val:
- yield item
- else:
- yield val
- for item in self._func():
- if not val or item not in val:
- 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))
-
- parser = SafeConfigParser()
- if config_file == None:
- files = [DEFAULT_CONF, os.path.expanduser('~/.ipa.conf')]
- else:
- files = [config_file]
-
- for f in files:
- try:
- if isinstance(f, file):
- parser.readfp(f)
- else:
- parser.read(f)
- except ParsingError:
- print "Can't read %s" % f
-
- ret = {}
- if parser.has_section('defaults'):
- for name, value in parser.items('defaults'):
- value = tuple(elem.strip() for elem in value.split(','))
- if len(value) == 1:
- value = value[0]
- ret[name] = value
-
- return ret
-
-
-# these functions are here just to "emulate" dns resolving for now
-def get_domain():
- return "ipatest.com"
-
-
-def get_realm():
- return "IPATEST.COM"
-
-
-def get_servers():
- yield "server.ipatest.com"
- yield "backup.ipatest.com"
- yield "fake.ipatest.com"
diff --git a/ipalib/plugable.py b/ipalib/plugable.py
index 01b9b33c8..0120f9729 100644
--- a/ipalib/plugable.py
+++ b/ipalib/plugable.py
@@ -35,7 +35,7 @@ from os import path
import subprocess
import errors
from errors import check_type, check_isinstance
-from config import Environment, Env
+from config import Env
from constants import DEFAULT_CONFIG
import util