diff options
author | Rob Crittenden <rcritten@redhat.com> | 2010-10-15 15:03:51 -0400 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2010-10-15 15:03:51 -0400 |
commit | 0ceba59d87d0e3b2ecce623367b34a0dd339c1c4 (patch) | |
tree | 1b2183c82851ec7b8b2f0925976e807e3db61be3 /ipalib | |
parent | 264413bcb9d5adaeb6815565cd099ea06e43e532 (diff) | |
download | freeipa-0ceba59d87d0e3b2ecce623367b34a0dd339c1c4.tar.gz freeipa-0ceba59d87d0e3b2ecce623367b34a0dd339c1c4.tar.xz freeipa-0ceba59d87d0e3b2ecce623367b34a0dd339c1c4.zip |
Add Requires on ipa-client to ipa-admintools, ensure ipa client is configured
It makes little sense to install ipa-admintools without ipa-client, require it.
Also see if the client has been configured. This is a bit tricky since we
have a full set of defaults. Add a new env option that gets set if at least
one configuration file is loaded.
ticket 213
Diffstat (limited to 'ipalib')
-rw-r--r-- | ipalib/cli.py | 4 | ||||
-rw-r--r-- | ipalib/config.py | 2 | ||||
-rw-r--r-- | ipalib/errors.py | 10 |
3 files changed, 15 insertions, 1 deletions
diff --git a/ipalib/cli.py b/ipalib/cli.py index 44f9c813c..dff709af0 100644 --- a/ipalib/cli.py +++ b/ipalib/cli.py @@ -37,7 +37,7 @@ import frontend import backend import plugable import util -from errors import PublicError, CommandError, HelpError, InternalError, NoSuchNamespaceError, ValidationError, NotFound +from errors import PublicError, CommandError, HelpError, InternalError, NoSuchNamespaceError, ValidationError, NotFound, NotConfiguredError from constants import CLI_TAB from parameters import Password, Bytes, File from text import _ @@ -945,6 +945,8 @@ def run(api): api.register(klass) api.load_plugins() api.finalize() + if not 'config_loaded' in api.env: + raise NotConfiguredError() sys.exit(api.Backend.cli.run(argv)) except KeyboardInterrupt: print '' diff --git a/ipalib/config.py b/ipalib/config.py index 1dbd5b7ce..91a189642 100644 --- a/ipalib/config.py +++ b/ipalib/config.py @@ -389,6 +389,8 @@ class Env(object): if key not in self: self[key] = value i += 1 + if 'config_loaded' not in self: # we loaded at least 1 file + self['config_loaded'] = True return (i, len(items)) def _join(self, key, *parts): diff --git a/ipalib/errors.py b/ipalib/errors.py index 42d43ce64..b960ffc75 100644 --- a/ipalib/errors.py +++ b/ipalib/errors.py @@ -746,6 +746,7 @@ class PasswordMismatch(InvocationError): errno = 3011 format = _('Passwords do not match') + class NotImplementedError(InvocationError): """ **3012** Raise when a function hasn't been implemented. @@ -755,6 +756,15 @@ class NotImplementedError(InvocationError): format = _('Command not implemented') +class NotConfiguredError(InvocationError): + """ + **3013** Raise when there is no configuration + """ + + errno = 3013 + format = _('Client is not configured. Run ipa-client-install.') + + ############################################################################## # 4000 - 4999: Execution errors |