1
2
3 import argparse
4 import os
5 import subprocess
6
7 import flask
8 from flask.ext.script import Manager, Command, Option, Group
9
10 from coprs import app
11 from coprs import db
12 from coprs import exceptions
13 from coprs import models
14 from coprs.logic import coprs_logic
15
17 - def run(self, test_args):
18 os.environ['COPRS_ENVIRON_UNITTEST'] = '1'
19 os.environ['COPR_CONFIG'] = '/etc/copr/copr_unit_test.conf'
20 os.environ['PYTHONPATH'] = '.'
21 subprocess.call(['py.test'] + (test_args or []))
22
23 option_list = (
24 Option('-a',
25 dest='test_args',
26 nargs=argparse.REMAINDER),
27 )
28
30 'Create the sqlite DB file (not the tables). Used for alembic, "create_db" does this automatically.'
32 if flask.current_app.config['SQLALCHEMY_DATABASE_URI'].startswith('sqlite'):
33
34 datadir_name = os.path.dirname(flask.current_app.config['SQLALCHEMY_DATABASE_URI'][10:])
35 if not os.path.exists(datadir_name):
36 os.makedirs(datadir_name)
37
39 'Create the DB scheme'
40 - def run(self, alembic_ini=None):
50
51 option_list = (
52 Option('--alembic',
53 '-f',
54 dest='alembic_ini',
55 help='Path to the alembic configuration file (alembic.ini)',
56 required=True),
57 )
58
63
67
70
72 print '{0} - chroot doesn\'t exist.'.format(chroot_name)
73
74
75 option_list = (
76 Option('chroot_names',
77 help='Chroot name, e.g. fedora-18-x86_64.',
78 nargs='+'),
79 )
80
82 'Creates a mock chroot in DB'
83 - def run(self, chroot_names):
92
94 'Activates or deactivates a chroot'
95 - def run(self, chroot_names, action):
105
106 option_list = ChrootCommand.option_list + (
107 Option('--action',
108 '-a',
109 dest='action',
110 help='Action to take - currently activate or deactivate',
111 choices=['activate', 'deactivate'],
112 required=True),
113 )
114
116 'Activates or deactivates a chroot'
117 - def run(self, chroot_names):
126
128 'Displays current mock chroots'
129 - def run(self, active_only):
132
133 option_list = (
134 Option('--active-only',
135 '-a',
136 dest='active_only',
137 help='Display only active chroots',
138 required=False,
139 action='store_true',
140 default=False),
141 )
142
144 - def run(self, name, **kwargs):
160
161 option_list = (
162 Option('name'),
163 Group(
164 Option('--admin',
165 action='store_true'),
166 Option('--no-admin',
167 action='store_true'),
168 exclusive=True
169 ),
170 Group(
171 Option('--proven',
172 action='store_true'),
173 Option('--no-proven',
174 action='store_true'),
175 exclusive=True
176 )
177 )
178
179 manager = Manager(app)
180 manager.add_command('test', TestCommand())
181 manager.add_command('create_sqlite_file', CreateSqliteFileCommand())
182 manager.add_command('create_db', CreateDBCommand())
183 manager.add_command('drop_db', DropDBCommand())
184 manager.add_command('create_chroot', CreateChrootCommand())
185 manager.add_command('alter_chroot', AlterChrootCommand())
186 manager.add_command('display_chroots', DisplayChrootsCommand())
187 manager.add_command('drop_chroot', DropChrootCommand())
188 manager.add_command('alter_user', AlterUserCommand())
189
190 if __name__ == '__main__':
191 manager.run()
192