lister.cli: Insert optional flag to permit post insert data
That's needed for example for having the minimum necessary to make the debian lister run.
This commit is contained in:
parent
2c69b586bc
commit
b6b588dbbb
1 changed files with 26 additions and 1 deletions
|
@ -21,12 +21,16 @@ SUPPORTED_LISTERS = ['github', 'gitlab', 'bitbucket', 'debian']
|
|||
help='create tables')
|
||||
@click.option('--drop-tables', is_flag=True, default=False,
|
||||
help='Drop tables')
|
||||
def cli(db_url, lister, create_tables, drop_tables):
|
||||
@click.option('--with-data', is_flag=True, default=False,
|
||||
help='Insert minimum required data')
|
||||
def cli(db_url, lister, create_tables, drop_tables, with_data):
|
||||
"""Initialize db model according to lister.
|
||||
|
||||
"""
|
||||
override_conf = {'lister_db_url': db_url}
|
||||
|
||||
insert_minimum_data = None
|
||||
|
||||
if lister == 'github':
|
||||
from .github.models import IndexingModelBase as ModelBase
|
||||
from .github.lister import GitHubLister
|
||||
|
@ -49,6 +53,24 @@ def cli(db_url, lister, create_tables, drop_tables):
|
|||
ModelBase = DebianLister.MODEL
|
||||
_lister = DebianLister()
|
||||
|
||||
def insert_minimum_data(lister):
|
||||
from swh.storage.schemata.distribution import Distribution, Area
|
||||
d = Distribution(
|
||||
name='Debian',
|
||||
type='deb',
|
||||
mirror_uri='http://deb.debian.org/debian/')
|
||||
lister.db_session.add(d)
|
||||
|
||||
areas = []
|
||||
for distribution_name in ['stretch']:
|
||||
for area_name in ['main', 'contrib', 'non-free']:
|
||||
areas.append(Area(
|
||||
name='%s/%s' % (distribution_name, area_name),
|
||||
distribution=d,
|
||||
))
|
||||
lister.db_session.add_all(areas)
|
||||
lister.db_session.commit()
|
||||
|
||||
else:
|
||||
raise ValueError('Only supported listers are %s' % SUPPORTED_LISTERS)
|
||||
|
||||
|
@ -58,6 +80,9 @@ def cli(db_url, lister, create_tables, drop_tables):
|
|||
if create_tables:
|
||||
ModelBase.metadata.create_all(_lister.db_engine)
|
||||
|
||||
if with_data and insert_minimum_data:
|
||||
insert_minimum_data(_lister)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
cli()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue