mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Reoganized global option functionality to it is easy for any script to use the environment-related global options; lite-xmlrpc.py now uses same global options
This commit is contained in:
@@ -26,6 +26,7 @@ http://docs.python.org/ref/sequence-types.html
|
||||
"""
|
||||
|
||||
import re
|
||||
import sys
|
||||
import inspect
|
||||
import threading
|
||||
import logging
|
||||
@@ -38,6 +39,7 @@ from constants import LOGGING_FILE_FORMAT, LOGGING_CONSOLE_FORMAT, DEFAULT_CONFI
|
||||
import util
|
||||
|
||||
|
||||
|
||||
class ReadOnly(object):
|
||||
"""
|
||||
Base class for classes with read-only attributes.
|
||||
@@ -812,6 +814,31 @@ class API(DictProxy):
|
||||
handler.setLevel(level)
|
||||
log.addHandler(handler)
|
||||
|
||||
def bootstrap_from_options(self, options=None, context=None):
|
||||
if options is None:
|
||||
parser = util.add_global_options()
|
||||
(options, args) = parser.parse_args(
|
||||
list(s.decode('utf-8') for s in sys.argv[1:])
|
||||
)
|
||||
overrides = {}
|
||||
if options.env is not None:
|
||||
assert type(options.env) is list
|
||||
for item in options.env:
|
||||
try:
|
||||
(key, value) = item.split('=', 1)
|
||||
except ValueError:
|
||||
# FIXME: this should raise an IPA exception with an
|
||||
# error code.
|
||||
# --Jason, 2008-10-31
|
||||
pass
|
||||
overrides[str(key.strip())] = value.strip()
|
||||
for key in ('conf', 'debug', 'verbose'):
|
||||
value = getattr(options, key, None)
|
||||
if value is not None:
|
||||
overrides[key] = value
|
||||
if context is not None:
|
||||
overrides['context'] = context
|
||||
self.bootstrap(**overrides)
|
||||
|
||||
def load_plugins(self):
|
||||
"""
|
||||
|
Reference in New Issue
Block a user