Exemplo n.º 1
0
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)
Exemplo n.º 2
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'])
Exemplo n.º 3
0
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()
Exemplo n.º 4
0
 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'])
Exemplo n.º 5
0
 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'])
Exemplo n.º 6
0
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()
Exemplo n.º 7
0
 def inner(*args, **kwargs):
     if plugin_name:
         plugin.load_plugins(plugin_endpoint, [plugin_name])
     ctor = service.load_service(name)
     return ctor(*args, **kwargs)
Exemplo n.º 8
0
 def setUp(self):
     super(FedmsgSenderTest, self).setUp()
     plugin.load_plugins('backend', ['fedmsg_publisher'])
Exemplo n.º 9
0
 def test_load_plugin_different_endpoints(self):
     load_plugins('backend', ['pagure'])
     load_plugins('frontend', ['pagure'])
Exemplo n.º 10
0
 def test_load_plugin_nonexistent_endpoint(self):
     load_plugins('xyzzy', ['pagure'])
Exemplo n.º 11
0
 def test_load_plugin_different_endpoints(self):
     load_plugins('backend', ['pagure'])
     load_plugins('frontend', ['pagure'])
Exemplo n.º 12
0
 def test_load_plugin_nonexistent(self):
     with self.assertRaisesRegex(RuntimeError, 'xyzzy plugin enabled but not installed'):
         load_plugins('frontend', ['xyzzy'])
Exemplo n.º 13
0
    def setUp(self):
        super(BackendTest, self).setUp()
        self.collection.secondary_mode = True
        self.db.commit()

        plugin.load_plugins('backend', ['fedmsg'])
Exemplo n.º 14
0
 def setUp(self):
     super(OSCIPluginTest, self).setUp()
     plugin.load_plugins('backend', ['osci'])
Exemplo n.º 15
0
 def setUp(self):
     super(TestPagure, self).setUp()
     plugin.load_plugins('frontend', ['pagure'])
Exemplo n.º 16
0
 def inner(*args, **kwargs):
     if plugin_name:
         plugin.load_plugins(plugin_endpoint, [plugin_name])
     ctor = service.load_service(name)
     return ctor(*args, **kwargs)
Exemplo n.º 17
0
 def setUp(self):
     super(TestPagure, self).setUp()
     plugin.load_plugins('frontend', ['pagure'])
Exemplo n.º 18
0
        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)
Exemplo n.º 19
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}
Exemplo n.º 20
0
 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()
Exemplo n.º 21
0
 def test_load_plugins(self):
     load_plugins('frontend', ['pagure'])
Exemplo n.º 22
0
# 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')
Exemplo n.º 23
0
 def test_load_plugin_nonexistent_endpoint(self):
     load_plugins('xyzzy', ['pagure'])
Exemplo n.º 24
0
 def test_load_plugin_nonexistent(self):
     with self.assertRaisesRegex(RuntimeError,
                                 'xyzzy plugin enabled but not installed'):
         load_plugins('frontend', ['xyzzy'])
Exemplo n.º 25
0
Arquivo: main.py Projeto: W3SS/koschei
        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)
Exemplo n.º 26
0
    def setUp(self):
        super(BackendTest, self).setUp()
        self.collection.secondary_mode = True
        self.db.commit()

        plugin.load_plugins('backend', ['fedmsg'])
Exemplo n.º 27
0
 def setUp(self):
     super(FedmsgSenderTest, self).setUp()
     plugin.load_plugins('backend', ['fedmsg_publisher'])
Exemplo n.º 28
0
 def test_load_plugins(self):
     load_plugins('frontend', ['pagure'])