From 7f60e3eb5136444c86401bb3a1c3ae27fce668a1 Mon Sep 17 00:00:00 2001 From: Bruno Wagner Date: Fri, 5 Jun 2015 16:48:07 -0300 Subject: Refactoring the config, logging_setup is now called logger --- service/pixelated/application.py | 9 +++-- service/pixelated/config/args.py | 56 ------------------------------- service/pixelated/config/arguments.py | 56 +++++++++++++++++++++++++++++++ service/pixelated/config/logger.py | 34 +++++++++++++++++++ service/pixelated/config/logging_setup.py | 34 ------------------- service/pixelated/maintenance.py | 17 +++------- 6 files changed, 98 insertions(+), 108 deletions(-) delete mode 100644 service/pixelated/config/args.py create mode 100644 service/pixelated/config/arguments.py create mode 100644 service/pixelated/config/logger.py delete mode 100644 service/pixelated/config/logging_setup.py (limited to 'service/pixelated') diff --git a/service/pixelated/application.py b/service/pixelated/application.py index f36612f4..5914d51f 100644 --- a/service/pixelated/application.py +++ b/service/pixelated/application.py @@ -24,12 +24,11 @@ from twisted.internet import ssl from OpenSSL import SSL from OpenSSL import crypto -from pixelated.config import app_factory -from pixelated.config.args import parse_user_agent_args +from pixelated.config import arguments from pixelated.resources import loading_page from pixelated.config.initialize_leap import initialize_leap from pixelated.config.register import register -from pixelated.config.logging_setup import init_logging +from pixelated.config import logger, app_factory @defer.inlineCallbacks @@ -63,8 +62,8 @@ def _ssl_options(sslkey, sslcert): def initialize(): - args = parse_user_agent_args() - init_logging(debug=args.debug) + args = arguments.parse_user_agent_args() + logger.init(debug=args.debug) if args.register: register(*args.register) diff --git a/service/pixelated/config/args.py b/service/pixelated/config/args.py deleted file mode 100644 index 2c7470e2..00000000 --- a/service/pixelated/config/args.py +++ /dev/null @@ -1,56 +0,0 @@ -# -# Copyright (c) 2014 ThoughtWorks, Inc. -# -# Pixelated is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Pixelated is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with Pixelated. If not, see . - -import argparse -from pixelated.bitmask_libraries.config import DEFAULT_LEAP_HOME - - -def parse_user_agent_args(): - parser = argparse.ArgumentParser(description='Pixelated user agent.') - - parser_add_default_arguments(parser) - - parser.add_argument('--host', default='127.0.0.1', help='the host to run the user agent on') - parser.add_argument('--port', type=int, default=3333, help='the port to run the user agent on') - parser.add_argument('-sk', '--sslkey', metavar='', default=None, help='use specified file as web server\'s SSL key (when using the user-agent together with the pixelated-dispatcher)') - parser.add_argument('-sc', '--sslcert', metavar='', default=None, help='use specified file as web server\'s SSL certificate (when using the user-agent together with the pixelated-dispatcher)') - parser.add_argument('--register', metavar=('provider', 'username'), - nargs=2, help='register a new username on the desired LEAP provider') - args = parser.parse_args() - return args - - -def parse_maintenance_args(): - parser = argparse.ArgumentParser(description='pixelated maintenance') - parser_add_default_arguments(parser) - subparsers = parser.add_subparsers(help='commands', dest='command') - subparsers.add_parser('reset', help='reset account command') - mails_parser = subparsers.add_parser('load-mails', help='load mails into account') - mails_parser.add_argument('file', nargs='+', help='file(s) with mail data') - - subparsers.add_parser('dump-soledad', help='dump the soledad database') - subparsers.add_parser('sync', help='sync the soledad database') - - return parser.parse_args() - - -def parser_add_default_arguments(parser): - parser.add_argument('--debug', action='store_true', help='DEBUG mode.') - parser.add_argument('--organization-mode', help='Runs the user agent in organization mode, the credentials will be received from the stdin', default=False, action='store_true', dest='organization_mode') - parser.add_argument('-c', '--config', dest='credentials_file', metavar='', default=None, help='use specified file for credentials (for test purposes only)') - parser.add_argument('--leap-home', help='The folder where the user agent stores its data. Defaults to ~/.leap', dest='leap_home', default=DEFAULT_LEAP_HOME) - parser.add_argument('-lc', '--leap-provider-cert', metavar='', default=None, help='use specified file for LEAP provider cert authority certificate (url https:///ca.crt)') - parser.add_argument('-lf', '--leap-provider-cert-fingerprint', metavar='', default=None, help='use specified fingerprint to validate connection with LEAP provider', dest='leap_provider_cert_fingerprint') diff --git a/service/pixelated/config/arguments.py b/service/pixelated/config/arguments.py new file mode 100644 index 00000000..2c7470e2 --- /dev/null +++ b/service/pixelated/config/arguments.py @@ -0,0 +1,56 @@ +# +# Copyright (c) 2014 ThoughtWorks, Inc. +# +# Pixelated is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Pixelated is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with Pixelated. If not, see . + +import argparse +from pixelated.bitmask_libraries.config import DEFAULT_LEAP_HOME + + +def parse_user_agent_args(): + parser = argparse.ArgumentParser(description='Pixelated user agent.') + + parser_add_default_arguments(parser) + + parser.add_argument('--host', default='127.0.0.1', help='the host to run the user agent on') + parser.add_argument('--port', type=int, default=3333, help='the port to run the user agent on') + parser.add_argument('-sk', '--sslkey', metavar='', default=None, help='use specified file as web server\'s SSL key (when using the user-agent together with the pixelated-dispatcher)') + parser.add_argument('-sc', '--sslcert', metavar='', default=None, help='use specified file as web server\'s SSL certificate (when using the user-agent together with the pixelated-dispatcher)') + parser.add_argument('--register', metavar=('provider', 'username'), + nargs=2, help='register a new username on the desired LEAP provider') + args = parser.parse_args() + return args + + +def parse_maintenance_args(): + parser = argparse.ArgumentParser(description='pixelated maintenance') + parser_add_default_arguments(parser) + subparsers = parser.add_subparsers(help='commands', dest='command') + subparsers.add_parser('reset', help='reset account command') + mails_parser = subparsers.add_parser('load-mails', help='load mails into account') + mails_parser.add_argument('file', nargs='+', help='file(s) with mail data') + + subparsers.add_parser('dump-soledad', help='dump the soledad database') + subparsers.add_parser('sync', help='sync the soledad database') + + return parser.parse_args() + + +def parser_add_default_arguments(parser): + parser.add_argument('--debug', action='store_true', help='DEBUG mode.') + parser.add_argument('--organization-mode', help='Runs the user agent in organization mode, the credentials will be received from the stdin', default=False, action='store_true', dest='organization_mode') + parser.add_argument('-c', '--config', dest='credentials_file', metavar='', default=None, help='use specified file for credentials (for test purposes only)') + parser.add_argument('--leap-home', help='The folder where the user agent stores its data. Defaults to ~/.leap', dest='leap_home', default=DEFAULT_LEAP_HOME) + parser.add_argument('-lc', '--leap-provider-cert', metavar='', default=None, help='use specified file for LEAP provider cert authority certificate (url https:///ca.crt)') + parser.add_argument('-lf', '--leap-provider-cert-fingerprint', metavar='', default=None, help='use specified fingerprint to validate connection with LEAP provider', dest='leap_provider_cert_fingerprint') diff --git a/service/pixelated/config/logger.py b/service/pixelated/config/logger.py new file mode 100644 index 00000000..52f3f3a5 --- /dev/null +++ b/service/pixelated/config/logger.py @@ -0,0 +1,34 @@ +# +# Copyright (c) 2014 ThoughtWorks, Inc. +# +# Pixelated is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Pixelated is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with Pixelated. If not, see . + +import logging +import os +from twisted.python import log + + +def init(debug=False): + debug_enabled = debug or os.environ.get('DEBUG', False) + logging_level = logging.DEBUG if debug_enabled else logging.INFO + log_format = "%(asctime)s [%(name)s] %(levelname)s %(message)s" + date_format = '%Y-%m-%d %H:%M:%S' + + logging.basicConfig(level=logging_level, + format=log_format, + datefmt=date_format, + filemode='a') + + observer = log.PythonLoggingObserver() + observer.start() diff --git a/service/pixelated/config/logging_setup.py b/service/pixelated/config/logging_setup.py deleted file mode 100644 index 932f746d..00000000 --- a/service/pixelated/config/logging_setup.py +++ /dev/null @@ -1,34 +0,0 @@ -# -# Copyright (c) 2014 ThoughtWorks, Inc. -# -# Pixelated is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Pixelated is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with Pixelated. If not, see . - -import logging -import os -from twisted.python import log - - -def init_logging(debug=False): - debug_enabled = debug or os.environ.get('DEBUG', False) - logging_level = logging.DEBUG if debug_enabled else logging.INFO - log_format = "%(asctime)s [%(name)s] %(levelname)s %(message)s" - date_format = '%Y-%m-%d %H:%M:%S' - - logging.basicConfig(level=logging_level, - format=log_format, - datefmt=date_format, - filemode='a') - - observer = log.PythonLoggingObserver() - observer.start() diff --git a/service/pixelated/maintenance.py b/service/pixelated/maintenance.py index c3e021b4..756ad435 100644 --- a/service/pixelated/maintenance.py +++ b/service/pixelated/maintenance.py @@ -15,27 +15,18 @@ # along with Pixelated. If not, see . from mailbox import Maildir -from pixelated.config.args import parse_maintenance_args -from pixelated.config.initialize_leap import initialize_leap -from pixelated.config.logging_setup import init_logging from twisted.internet import reactor, defer from twisted.internet.threads import deferToThread +from pixelated.config.initialize_leap import initialize_leap +from pixelated.config import logger, arguments from leap.mail.imap.fields import WithMsgFields -# monkey patching some specifics -import pixelated.support.ext_protobuf -import pixelated.support.ext_sqlcipher -import pixelated.support.ext_esmtp_sender_factory -import pixelated.support.ext_fetch -import pixelated.support.ext_keymanager_fetch_key -import pixelated.support.ext_requests_urllib3 - def initialize(): - args = parse_maintenance_args() + args = arguments.parse_maintenance_args() - init_logging(debug=args.debug) + logger.init(debug=args.debug) leap_session = initialize_leap( args.leap_provider_cert, -- cgit v1.2.3