# HG changeset patch # User Sylvain Thénault # Date 1248432467 -7200 # Node ID 490f88fb99b634f6887f5c2b1beb95fbf85706ae # Parent a459a6ab78d0d25faaaf0e80ba0cb70c1059d78d new distinguish repairing/creating from regular start. use this for #323862: db-check should have a 'force' argument diff -r a459a6ab78d0 -r 490f88fb99b6 cwconfig.py --- a/cwconfig.py Fri Jul 24 12:43:41 2009 +0200 +++ b/cwconfig.py Fri Jul 24 12:47:47 2009 +0200 @@ -541,6 +541,8 @@ set_language = True # set this to true to avoid false error message while creating an application creating = False + # set this to true to allow somethings which would'nt be possible + repairing = False options = CubicWebNoAppConfiguration.options + ( ('log-file', diff -r a459a6ab78d0 -r 490f88fb99b6 cwctl.py --- a/cwctl.py Fri Jul 24 12:43:41 2009 +0200 +++ b/cwctl.py Fri Jul 24 12:47:47 2009 +0200 @@ -616,7 +616,7 @@ def upgrade_application(self, appid): from logilab.common.changelog import Version config = cwcfg.config_for(appid) - config.creating = True # notice we're not starting the server + config.repairing = True # notice we're not starting the server config.verbosity = self.config.verbosity try: config.set_sources_mode(self.config.ext_sources or ('migration',)) diff -r a459a6ab78d0 -r 490f88fb99b6 server/repository.py --- a/server/repository.py Fri Jul 24 12:43:41 2009 +0200 +++ b/server/repository.py Fri Jul 24 12:47:47 2009 +0200 @@ -220,8 +220,8 @@ for i in xrange(config['connections-pool-size']): self._available_pools.put_nowait(ConnectionsPool(self.sources)) self._shutting_down = False - if not config.creating: - # call application level initialisation hooks + if not (config.creating or config.repairing): + # call instance level initialisation hooks self.hm.call_hooks('server_startup', repo=self) # register a task to cleanup expired session self.looping_task(self.config['session-time']/3., @@ -455,7 +455,8 @@ """return the list of cubes used by this application. This is a public method, not requiring a session id. """ - versions = self.get_versions(not self.config.creating) + versions = self.get_versions(not (self.config.creating + or self.config.repairing)) cubes = list(versions) cubes.remove('cubicweb') return cubes diff -r a459a6ab78d0 -r 490f88fb99b6 server/serverctl.py --- a/server/serverctl.py Fri Jul 24 12:43:41 2009 +0200 +++ b/server/serverctl.py Fri Jul 24 12:47:47 2009 +0200 @@ -692,6 +692,11 @@ 'help': 're-indexes the database for full text search if this \ option is set to "y" or "yes" (may be long for large database).'} ), + ("force", + {'short': 'f', 'action' : "store_true", + 'default' : False, + 'help': 'don\'t check instance is up to date.'} + ), ) @@ -699,6 +704,7 @@ from cubicweb.server.checkintegrity import check appid = pop_arg(args, 1, msg="No application specified !") config = ServerConfiguration.config_for(appid) + config.repairing = self.config.force repo, cnx = repo_cnx(config) check(repo, cnx, self.config.checks, self.config.reindex, self.config.autofix)