def main(): parser = argparse.ArgumentParser() parser.add_argument('service') parser.add_argument('-d', '--debug', action='store_true') parser.add_argument('-s', '--debug-sql', action='store_true') args = parser.parse_args() load_config(['/usr/share/koschei/config.cfg', '/etc/koschei/config-backend.cfg']) if args.debug: logging.getLogger().setLevel(logging.DEBUG) if args.debug_sql: logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO) log = logging.getLogger('koschei.main') plugin.load_plugins('backend') svc = service.load_service(args.service) if not svc: print("No such service", file=sys.stderr) sys.exit(2) signal.signal(signal.SIGTERM, lambda x, y: sys.exit(0)) try: svc(backend.KoscheiBackendSession()).run_service() except Exception: log.exception("Service %s crashed.", args.service) raise except KeyboardInterrupt: sys.exit(0)
def setUp(self): super(BackendTest, self).setUp() self.koji_session = Mock() self.log = Mock() self.backend = Backend(db=self.s, koji_session=self.koji_session, log=logging.getLogger('koschei.backend')) plugin.load_plugins(['fedmsg_publisher'])
def main(): main_parser = argparse.ArgumentParser() subparser = main_parser.add_subparsers() for Cmd in Command.__subclasses__(): cmd_name = re.sub(r'([A-Z])', lambda s: '-' + s.group(0).lower(), Cmd.__name__)[1:] cmd = Cmd() parser = subparser.add_parser(cmd_name, help=cmd.__doc__) cmd.setup_parser(parser) parser.set_defaults(cmd=cmd) parser.description = cmd.__doc__ args = main_parser.parse_args() cmd = args.cmd kwargs = vars(args) log = logging.getLogger('koschei.admin') session = KoscheiAdminSession(log) del kwargs['cmd'] if cmd.load_plugins: plugin.load_plugins('backend') if cmd.needs_session: kwargs['session'] = session cmd.execute(**kwargs) if cmd.needs_session: session.db.commit() session.close()
def setUp(self): super(BackendTest, self).setUp() self.koji_session = KojiMock() self.secondary_koji = KojiMock() self.log = Mock() self.backend = Backend(db=self.s, koji_sessions={'primary': self.koji_session, 'secondary': self.secondary_koji}, log=logging.getLogger('koschei.backend')) plugin.load_plugins('backend', ['fedmsg_publisher'])
def setUp(self): super(BackendTest, self).setUp() self.koji_session = KojiMock() self.secondary_koji = KojiMock() self.log = Mock() self.backend = Backend(db=self.s, koji_sessions={ 'primary': self.koji_session, 'secondary': self.secondary_koji }, log=logging.getLogger('koschei.backend')) plugin.load_plugins('backend', ['fedmsg_publisher'])
def main(args, session=None): main_parser = argparse.ArgumentParser() subparser = main_parser.add_subparsers() for Cmd in Command.__subclasses__(): cmd_name = re.sub(r'([A-Z])', lambda s: '-' + s.group(0).lower(), Cmd.__name__)[1:] cmd = Cmd() parser = subparser.add_parser(cmd_name, help=cmd.__doc__) cmd.setup_parser(parser) parser.set_defaults(cmd=cmd) parser.description = cmd.__doc__ args = main_parser.parse_args(args) cmd = args.cmd kwargs = vars(args) if not session: session = KoscheiAdminSession() del kwargs['cmd'] if cmd.load_plugins: plugin.load_plugins('backend') if cmd.needs_session: kwargs['session'] = session cmd.execute(**kwargs) if cmd.needs_session: session.db.commit()
def inner(*args, **kwargs): if plugin_name: plugin.load_plugins(plugin_endpoint, [plugin_name]) ctor = service.load_service(name) return ctor(*args, **kwargs)
def setUp(self): super(FedmsgSenderTest, self).setUp() plugin.load_plugins('backend', ['fedmsg_publisher'])
def test_load_plugin_different_endpoints(self): load_plugins('backend', ['pagure']) load_plugins('frontend', ['pagure'])
def test_load_plugin_nonexistent_endpoint(self): load_plugins('xyzzy', ['pagure'])
def test_load_plugin_nonexistent(self): with self.assertRaisesRegex(RuntimeError, 'xyzzy plugin enabled but not installed'): load_plugins('frontend', ['xyzzy'])
def setUp(self): super(BackendTest, self).setUp() self.collection.secondary_mode = True self.db.commit() plugin.load_plugins('backend', ['fedmsg'])
def setUp(self): super(OSCIPluginTest, self).setUp() plugin.load_plugins('backend', ['osci'])
def setUp(self): super(TestPagure, self).setUp() plugin.load_plugins('frontend', ['pagure'])
import fedmsg.meta fedmsg_config = fedmsg.config.load_config() fedmsg.meta.make_processors(**fedmsg_config) except ImportError: print("Unable to initialize fedmsg", file=sys.stderr) if __name__ == '__main__': load_config( ['/usr/share/koschei/config.cfg', '/etc/koschei/config-backend.cfg']) log = logging.getLogger('koschei.main') if len(sys.argv) < 2: print("Requires service name", file=sys.stderr) sys.exit(2) name = sys.argv[1] plugin.load_plugins('backend') init_fedmsg() service = service.load_service(name) if not service: print("No such service", file=sys.stderr) sys.exit(2) signal.signal(signal.SIGTERM, lambda x, y: sys.exit(0)) try: service().run_service() except Exception: log.exception("Service %s crashed.", name) raise except KeyboardInterrupt: sys.exit(0)
from wtforms import StringField, TextAreaField from wtforms.validators import Regexp, ValidationError from koschei import util, plugin from koschei.config import get_config from koschei.frontend import app, db, frontend_config, auth from koschei.models import (Package, Build, PackageGroup, PackageGroupRelation, AdminNotice, User, BuildrootProblem, GroupACL, Collection, get_or_create) log = logging.getLogger('koschei.views') packages_per_page = frontend_config['packages_per_page'] builds_per_page = frontend_config['builds_per_page'] plugin.load_plugins('frontend') def page_args(clear=False, **kwargs): def proc_order(order): new_order = [] for item in order: if (item.replace('-', '') not in new_order and '-' + item not in new_order): new_order.append(item) return ','.join(new_order) if 'order_by' in kwargs: kwargs['order_by'] = proc_order(kwargs['order_by']) # the supposedly unnecessary call to items() is needed unfiltered = kwargs if clear else dict(request.args.items(), **kwargs) args = {k: v for k, v in unfiltered.items() if v is not None}
def setUp(self): super(ResolverTest, self).setUp() plugin.load_plugins('backend', ['fedmsg']) self.repo_resolver = RepoResolver(self.session) self.build_resolver = BuildResolver(self.session) self.db.commit()
def test_load_plugins(self): load_plugins('frontend', ['pagure'])
# Copyright (C) 2014-2016 Red Hat, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # Author: Michael Simacek <*****@*****.**> from koschei.frontend.base import app import koschei.frontend.auth import koschei.frontend.filters import koschei.frontend.model_additions import koschei.frontend.template_functions import koschei.frontend.api import koschei.frontend.views from koschei import plugin plugin.load_plugins('frontend')
import fedmsg import fedmsg.meta fedmsg_config = fedmsg.config.load_config() fedmsg.meta.make_processors(**fedmsg_config) except ImportError: print("Unable to initialize fedmsg", file=sys.stderr) if __name__ == '__main__': load_config(['/usr/share/koschei/config.cfg', '/etc/koschei/config-backend.cfg']) log = logging.getLogger('koschei.main') if len(sys.argv) < 2: print("Requires service name", file=sys.stderr) sys.exit(2) name = sys.argv[1] plugin.load_plugins('backend') init_fedmsg() service = service.load_service(name) if not service: print("No such service", file=sys.stderr) sys.exit(2) signal.signal(signal.SIGTERM, lambda x, y: sys.exit(0)) try: service().run_service() except Exception: log.exception("Service %s crashed.", name) raise except KeyboardInterrupt: sys.exit(0)