Changeset - 6e270cedc8aa
[Not reviewed]
default
0 1 0
Thomas De Schampheleire - 8 years ago 2018-05-01 21:59:03
thomas.de_schampheleire@nokia.com
setup-db: perform an initial repository scan as stated by the docs (Issue #302)

The documentation, as well as the prompt text inside setup-db itself, states
that the repository root location will be scanned automatically for existing
repositories.
However, this is not actually the case. Only exception is when the
'initial_repo_scan' is set to True in the ini file; in that case the scan is
done on each start of Kallithea.

Add the required repo scan logic at the end of setup-db, after setting up
the application completely (the database has only just been set up).

The app setup code from BasePasterCommand is duplicated - this command doesn't
fit in and need to run both before and after database creation.

The scan call from kallithea/config/app_cfg.py is also duplicated - that will
be removed next.
1 file changed with 11 insertions and 0 deletions:
0 comments (0 inline, 0 general)
kallithea/lib/paster_commands/setup_db.py
Show inline comments
 
@@ -20,12 +20,13 @@ Databaset setup gearbox command for Kall
 

	
 

	
 
import os
 
import sys
 
import paste.deploy
 

	
 
import kallithea
 
from kallithea.lib.db_manage import DbManage
 
from kallithea.lib.paster_commands.common import BasePasterCommand
 
from kallithea.model.meta import Session
 

	
 

	
 
# This is almost like SetupAppCommand ... but we have to pass options and it is
 
@@ -100,7 +101,17 @@ class Command(BasePasterCommand):
 
        dbmanage.create_default_user()
 
        dbmanage.admin_prompt()
 
        dbmanage.create_permissions()
 
        dbmanage.populate_default_permissions()
 
        Session().commit()
 

	
 
        # initial repository scan
 
        kallithea.config.middleware.make_app_without_logging(
 
                self.config.global_conf, **self.config.local_conf)
 
        added, _ = kallithea.lib.utils.repo2db_mapper(kallithea.model.scm.ScmModel().repo_scan())
 
        if added:
 
            print 'Initial repository scan: added following repositories:'
 
            print '\t','\n\t'.join(added)
 
        else:
 
            print 'Initial repository scan: no repositories found.'
 

	
 
        print 'Database set up successfully.'
0 comments (0 inline, 0 general)