本文整理汇总了Python中stoqlib.lib.configparser.StoqConfig类的典型用法代码示例。如果您正苦于以下问题:Python StoqConfig类的具体用法?Python StoqConfig怎么用?Python StoqConfig使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了StoqConfig类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
def __init__(self, options, config=None):
if not config:
config = StoqConfig()
self.settings = config.get_settings()
self.link_request_done = False
self.create_examples = False
self.config = config
self.enable_production = False
self.has_installed_db = False
self.options = options
self.plugins = []
self.db_is_local = False
self.enable_online_services = True
self.auth_type = TRUST_AUTHENTICATION
if config.get('Database', 'enable_production') == 'True':
self.enable_production = True
if self.enable_production:
first_step = PluginStep(self)
else:
first_step = WelcomeStep(self)
BaseWizard.__init__(self, None, first_step, title=self.title)
self.get_toplevel().set_deletable(False)
self.next_button.grab_focus()
示例2: main
def main(args):
handler = StoqServerCmdHandler()
if not args:
handler.cmd_help()
return 1
cmd = args[0]
args = args[1:]
parser = get_option_parser()
handler.add_options(cmd, parser)
options, args = parser.parse_args(args)
config = StoqConfig()
filename = (options.filename
if options.load_config and options.filename else
APP_CONF_FILE)
config.load(filename)
# FIXME: This is called only when register_station=True. Without
# this, db_settings would not be updated. We should fix it on Stoq
config.get_settings()
register_config(config)
# FIXME: Maybe we should check_schema and load plugins here?
setup(config=config, options=options, register_station=False,
check_schema=False, load_plugins=True)
handler.run_cmd(cmd, options, *args)
示例3: _load_configuration
def _load_configuration(self):
from stoqlib.lib.configparser import StoqConfig
log.debug('reading configuration')
self._config = StoqConfig()
if self._options.filename:
self._config.load(self._options.filename)
else:
self._config.load_default()
示例4: main
def main(args):
if platform.system() == 'Windows':
_windows_fixes()
handler = StoqServerCmdHandler()
if not args:
handler.cmd_help()
return 1
cmd = args[0]
args = args[1:]
parser = get_option_parser()
handler.add_options(cmd, parser)
options, args = parser.parse_args(args)
config = StoqConfig()
filename = (options.filename
if options.load_config and options.filename else
APP_CONF_FILE)
config.load(filename)
# FIXME: This is called only when register_station=True. Without
# this, db_settings would not be updated. We should fix it on Stoq
config.get_settings()
register_config(config)
global SENTRY_URL, raven_client
SENTRY_URL = config.get('Sentry', 'url') or SENTRY_URL
raven_client = raven.Client(SENTRY_URL, release=stoqserver.version_str)
setup_excepthook(SENTRY_URL)
return handler.run_cmd(cmd, options, *args)
示例5: __init__
def __init__(self, options, config=None):
if not config:
config = StoqConfig()
self.settings = config.get_settings()
if is_windows:
self.settings.username = WINDOWS_DEFAULT_USER
self.settings.password = WINDOWS_DEFAULT_PASSWORD
self.settings.dbname = WINDOWS_DEFAULT_DBNAME
self.settings.address = "localhost"
self.settings.port = 5432
self.link_request_done = False
self.create_examples = False
self.config = config
self.enable_production = False
self.has_installed_db = False
self.options = options
self.db_is_local = False
self.enable_online_services = True
self.auth_type = TRUST_AUTHENTICATION
if config.get('Database', 'enable_production') == 'True':
self.enable_production = True
if self.enable_production:
first_step = CreateDatabaseStep(self)
elif is_windows and self.try_connect(self.settings, warn=False):
self.auth_type = PASSWORD_AUTHENTICATION
self.write_pgpass()
first_step = self.connect_for_settings()
else:
first_step = DatabaseLocationStep(self)
BaseWizard.__init__(self, None, first_step, title=self.title)
self.get_toplevel().set_deletable(False)
self.next_button.grab_focus()
示例6: _read_config
def _read_config(self, options, create=False, register_station=True, check_schema=True, load_plugins=True):
from stoqlib.lib.configparser import StoqConfig
from stoq.lib.startup import setup
config = StoqConfig()
if options.load_config and options.filename:
config.load(options.filename)
else:
config.load_default()
if create:
config.create()
# FIXME: This should be removed and we should just import
# the global settings after fixing StoqConfig to
# only update the global settings.
self._db_settings = config.get_settings()
setup(config, options, register_station=register_station, check_schema=check_schema, load_plugins=load_plugins)
return config
示例7: main
def main(args):
parser = get_option_parser()
group = optparse.OptionGroup(parser, 'Daemon')
group.add_option('', '--daemon-id',
action="store",
dest="daemon_id",
help='Daemon Identifier')
parser.add_option_group(group)
options, args = parser.parse_args(args)
if not options.daemon_id:
raise SystemExit("Need a daemon id")
from stoqlib.lib.message import error
from stoqlib.lib.configparser import StoqConfig
log.debug('reading configuration')
config = StoqConfig()
if options.filename:
config.load(options.filename)
else:
config.load_default()
settings = config.get_settings()
try:
store_dsn = settings.get_store_dsn()
except:
type, value, trace = sys.exc_info()
error(_("Could not open the database config file"),
_("Invalid config file settings, got error '%s', "
"of type '%s'") % (value, type))
from stoqlib.exceptions import StoqlibError
from stoqlib.database.exceptions import PostgreSQLError
from stoq.lib.startup import setup
log.debug('calling setup()')
# XXX: progress dialog for connecting (if it takes more than
# 2 seconds) or creating the database
try:
setup(config, options, register_station=True,
check_schema=False)
except (StoqlibError, PostgreSQLError) as e:
error(_('Could not connect to the database'),
'error=%s dsn=%s' % (str(e), store_dsn))
raise SystemExit("Error: bad connection settings provided")
daemon = Daemon(options.daemon_id)
daemon.run()
示例8: ShellDatabaseConnection
class ShellDatabaseConnection(object):
"""Sets up a database connection
- Connects to a database
- Telling why if it failed
- Runs database wizard if needed
- Runs schema migration
- Activates plugins
- Sets up main branch
"""
def __init__(self, options):
self._options = options
self._config = None
self._ran_wizard = False
def connect(self):
self._load_configuration()
self._maybe_run_first_time_wizard()
self._try_connect()
self._post_connect()
def _load_configuration(self):
from stoqlib.lib.configparser import StoqConfig
log.debug('reading configuration')
self._config = StoqConfig()
if self._options.filename:
self._config.load(self._options.filename)
else:
self._config.load_default()
def _maybe_run_first_time_wizard(self):
from stoqlib.gui.base.dialogs import run_dialog
from stoq.gui.config import FirstTimeConfigWizard
config_file = self._config.get_filename()
if self._options.wizard or not os.path.exists(config_file):
run_dialog(FirstTimeConfigWizard, None, self._options)
self._ran_wizard = True
if self._config.get('Database', 'enable_production') == 'True':
run_dialog(FirstTimeConfigWizard, None, self._options, self._config)
self._ran_wizard = True
def _get_password(self):
import binascii
configdir = self._config.get_config_directory()
filename = os.path.join(configdir, 'data')
if not os.path.exists(filename):
return
with open(filename, 'rb') as f:
return binascii.a2b_base64(f.read()).decode()
def _try_connect(self):
from stoqlib.lib.message import error
try:
store_uri = self._config.get_settings().get_store_uri()
except Exception:
type, value, trace = sys.exc_info()
error(_("Could not open the database config file"),
_("Invalid config file settings, got error '%s', "
"of type '%s'") % (value, type))
from stoqlib.database.exceptions import PostgreSQLError
from stoqlib.database.runtime import get_default_store
from stoqlib.exceptions import DatabaseError
from stoqlib.lib.pgpass import write_pg_pass
from stoq.lib.startup import setup
# XXX: progress dialog for connecting (if it takes more than
# 2 seconds) or creating the database
log.debug('calling setup()')
try:
setup(self._config, self._options, register_station=False,
check_schema=False, load_plugins=False)
# the setup call above is not really trying to connect (since
# register_station, check_schema and load_plugins are all False).
# Try to really connect here.
get_default_store()
except (StoqlibError, PostgreSQLError) as e:
log.debug('Connection failed.')
error(_('Could not connect to the database'),
'error=%s uri=%s' % (str(e), store_uri))
except DatabaseError:
log.debug('Connection failed. Tring to setup .pgpass')
# This is probably a missing password configuration. Setup the
# pgpass file and try again.
try:
password = self._get_password()
if not password:
# There is no password stored in data file. Abort
raise
from stoqlib.database.settings import db_settings
write_pg_pass(db_settings.dbname, db_settings.address,
db_settings.port, db_settings.username, password)
# Now that there is a pg_pass file, try to connect again
get_default_store()
except DatabaseError as e:
log.debug('Connection failed again.')
#.........这里部分代码省略.........
示例9: ShellDatabaseConnection
class ShellDatabaseConnection(object):
"""Sets up a database connection
- Connects to a database
- Telling why if it failed
- Runs database wizard if needed
- Runs schema migration
- Activates plugins
- Sets up main branch
"""
def __init__(self, options):
self._options = options
self._config = None
self._ran_wizard = False
def connect(self):
self._load_configuration()
self._maybe_run_first_time_wizard()
self._try_connect()
self._post_connect()
def _load_configuration(self):
from stoqlib.lib.configparser import StoqConfig
log.debug('reading configuration')
self._config = StoqConfig()
if self._options.filename:
self._config.load(self._options.filename)
else:
self._config.load_default()
def _maybe_run_first_time_wizard(self):
from stoqlib.gui.base.dialogs import run_dialog
from stoq.gui.config import FirstTimeConfigWizard
config_file = self._config.get_filename()
if self._options.wizard or not os.path.exists(config_file):
run_dialog(FirstTimeConfigWizard, None, self._options)
self._ran_wizard = True
if self._config.get('Database', 'enable_production') == 'True':
run_dialog(FirstTimeConfigWizard, None, self._options, self._config)
self._ran_wizard = True
def _try_connect(self):
from stoqlib.lib.message import error
try:
store_dsn = self._config.get_settings().get_store_dsn()
except:
type, value, trace = sys.exc_info()
error(_("Could not open the database config file"),
_("Invalid config file settings, got error '%s', "
"of type '%s'") % (value, type))
from stoqlib.database.exceptions import PostgreSQLError
from stoq.lib.startup import setup
# XXX: progress dialog for connecting (if it takes more than
# 2 seconds) or creating the database
log.debug('calling setup()')
try:
setup(self._config, self._options, register_station=False,
check_schema=False, load_plugins=False)
except (StoqlibError, PostgreSQLError) as e:
error(_('Could not connect to the database'),
'error=%s uri=%s' % (str(e), store_dsn))
def _post_connect(self):
self._check_schema_migration()
self._check_branch()
self._activate_plugins()
def _check_schema_migration(self):
from stoqlib.lib.message import error
from stoqlib.database.migration import needs_schema_update
from stoqlib.exceptions import DatabaseInconsistency
if needs_schema_update():
self._run_update_wizard()
from stoqlib.database.migration import StoqlibSchemaMigration
migration = StoqlibSchemaMigration()
try:
migration.check()
except DatabaseInconsistency as e:
error(_('The database version differs from your installed '
'version.'), str(e))
def _activate_plugins(self):
from stoqlib.lib.pluginmanager import get_plugin_manager
manager = get_plugin_manager()
manager.activate_installed_plugins()
def _check_branch(self):
from stoqlib.database.runtime import (get_default_store, new_store,
get_current_station,
set_current_branch_station)
from stoqlib.domain.person import Company
from stoqlib.lib.parameters import sysparam
from stoqlib.lib.message import info
#.........这里部分代码省略.........
示例10: setup
def setup(config=None, options=None, register_station=True, check_schema=True,
load_plugins=True):
"""
Loads the configuration from arguments and configuration file.
@param config: a StoqConfig instance
@param options: a Optionparser instance
@param register_station: if we should register the branch station.
@param check_schema: if we should check the schema
@param load_plugins: if we should load plugins for the system
"""
# NOTE: No GUI calls are allowed in here
# If you change anything here, you need to verify that all
# callsites are still working properly.
# bin/stoq
# bin/stoqdbadmin
# python stoq/tests/runtest.py
if options is None:
parser = get_option_parser()
options, args = parser.parse_args(sys.argv)
if options.verbose:
from kiwi.log import set_log_level
set_log_level('stoq*', 0)
setup_path()
if config is None:
config = StoqConfig()
if options.filename:
config.load(options.filename)
else:
config.load_default()
config.set_from_options(options)
register_config(config)
if options and options.sqldebug:
enable_debugging()
from stoq.lib.applist import ApplicationDescriptions
provide_utility(IApplicationDescriptions, ApplicationDescriptions(),
replace=True)
if register_station:
try:
default_store = get_default_store()
except DatabaseError as e:
error(e.short, str(e.msg))
config.get_settings().check_version(default_store)
if check_schema:
migration = StoqlibSchemaMigration()
migration.check()
if options and options.sqldebug:
enable_debugging()
set_current_branch_station(default_store, station_name=None)
if load_plugins:
from stoqlib.lib.pluginmanager import get_plugin_manager
manager = get_plugin_manager()
manager.activate_installed_plugins()
if check_schema:
default_store = get_default_store()
if not default_store.table_exists('system_table'):
error(
_("Database schema error"),
_("Table 'system_table' does not exist.\n"
"Consult your database administrator to solve this problem."))
if check_schema:
migration = StoqlibSchemaMigration()
migration.check()