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 if not (('COPR_CONFIG' in os.environ) and os.environ['COPR_CONFIG']):
20 os.environ['COPR_CONFIG'] = '/etc/copr/copr_unit_test.conf'
21 os.environ['PYTHONPATH'] = '.'
22 return subprocess.call(['py.test'] + (test_args or []))
23
24 option_list = (
25 Option('-a',
26 dest='test_args',
27 nargs=argparse.REMAINDER),
28 )
29
31 'Create the sqlite DB file (not the tables). Used for alembic, "create_db" does this automatically.'
33 if flask.current_app.config['SQLALCHEMY_DATABASE_URI'].startswith('sqlite'):
34
35 datadir_name = os.path.dirname(flask.current_app.config['SQLALCHEMY_DATABASE_URI'][10:])
36 if not os.path.exists(datadir_name):
37 os.makedirs(datadir_name)
38
40 'Create the DB scheme'
41 - def run(self, alembic_ini=None):
51
52 option_list = (
53 Option('--alembic',
54 '-f',
55 dest='alembic_ini',
56 help='Path to the alembic configuration file (alembic.ini)',
57 required=True),
58 )
59
64
68
70 print '{0} - already exists.'.format(chroot_name)
71
73 print '{0} - chroot doesn\'t exist.'.format(chroot_name)
74
75
76 option_list = (
77 Option('chroot_names',
78 help='Chroot name, e.g. fedora-18-x86_64.',
79 nargs='+'),
80 )
81
83 'Creates a mock chroot in DB'
84 - def run(self, chroot_names):
93
95 'Activates or deactivates a chroot'
96 - def run(self, chroot_names, action):
106
107 option_list = ChrootCommand.option_list + (
108 Option('--action',
109 '-a',
110 dest='action',
111 help='Action to take - currently activate or deactivate',
112 choices=['activate', 'deactivate'],
113 required=True),
114 )
115
117 'Activates or deactivates a chroot'
118 - def run(self, chroot_names):
127
129 'Displays current mock chroots'
130 - def run(self, active_only):
133
134 option_list = (
135 Option('--active-only',
136 '-a',
137 dest='active_only',
138 help='Display only active chroots',
139 required=False,
140 action='store_true',
141 default=False),
142 )
143
145 - def run(self, name, **kwargs):
161
162 option_list = (
163 Option('name'),
164 Group(
165 Option('--admin',
166 action='store_true'),
167 Option('--no-admin',
168 action='store_true'),
169 exclusive=True
170 ),
171 Group(
172 Option('--proven',
173 action='store_true'),
174 Option('--no-proven',
175 action='store_true'),
176 exclusive=True
177 )
178 )
179
180 manager = Manager(app)
181 manager.add_command('test', TestCommand())
182 manager.add_command('create_sqlite_file', CreateSqliteFileCommand())
183 manager.add_command('create_db', CreateDBCommand())
184 manager.add_command('drop_db', DropDBCommand())
185 manager.add_command('create_chroot', CreateChrootCommand())
186 manager.add_command('alter_chroot', AlterChrootCommand())
187 manager.add_command('display_chroots', DisplayChrootsCommand())
188 manager.add_command('drop_chroot', DropChrootCommand())
189 manager.add_command('alter_user', AlterUserCommand())
190
191 if __name__ == '__main__':
192 manager.run()
193