add a fake parameter

It will build the temporary database but never copy it to the final name.

Signed-off-by: Benjamin Dauvergne <bdauvergne@entrouvert.com>
This commit is contained in:
Benjamin Dauvergne 2016-12-09 16:40:26 +01:00
parent c32a880373
commit 2bdd5ef6c2
2 changed files with 10 additions and 6 deletions

View File

@ -47,11 +47,13 @@ def main2():
group = parser.add_mutually_exclusive_group()
parser.add_argument('--no-feed', dest='feed', help='only produce the model',
action='store_false', default=True)
parser.add_argument('--fake', action='store_true', default=False)
group.add_argument("-a", "--all", help="synchronize all wcs", action='store_true',
default=False)
group.add_argument('--url', help='url of the w.c.s. instance', required=False, default=None)
args, rest = parser.parse_known_args()
feed = args.feed
fake = args.fake
config = get_config(path=args.config_path)
# list all known urls
urls = [url for url in config.sections() if url.startswith('http://') or
@ -101,7 +103,7 @@ def main2():
logger.info('starting synchronizing w.c.s. at %r with PostgreSQL at %s', url,
pg_dsn)
feeder = WcsOlapFeeder(api=api, schema=schema, pg_dsn=pg_dsn, logger=logger,
config=defaults, do_feed=feed)
config=defaults, do_feed=feed, fake=fake)
feeder.feed()
logger.info('finished')
queue.put(False)

View File

@ -43,8 +43,9 @@ class Context(object):
class WcsOlapFeeder(object):
def __init__(self, api, pg_dsn, schema, logger=None, config=None, do_feed=True):
def __init__(self, api, pg_dsn, schema, logger=None, config=None, do_feed=True, fake=False):
self.api = api
self.fake = fake
self.logger = logger or Whatever()
self.schema = schema
self.connection = psycopg2.connect(dsn=pg_dsn)
@ -413,10 +414,11 @@ class WcsOlapFeeder(object):
raise
else:
if self.do_feed:
self.logger.debug('dropping schema %s', self.schema)
self.ex('DROP SCHEMA IF EXISTS {schema} CASCADE')
self.logger.debug('dropping schema %s to %s', self.schema + '_temp', self.schema)
self.ex('ALTER SCHEMA {schema_temp} RENAME TO {schema}')
if not self.fake:
self.logger.debug('dropping schema %s', self.schema)
self.ex('DROP SCHEMA IF EXISTS {schema} CASCADE')
self.logger.debug('dropping schema %s to %s', self.schema + '_temp', self.schema)
self.ex('ALTER SCHEMA {schema_temp} RENAME TO {schema}')
def insert_agent(self, name):
self.ex('INSERT INTO {agent_table} (label) VALUES (%s) RETURNING (id)', vars=[name])