def handle(self, *args, **options): source_uri = getattr(settings, 'PRODUCTION_COUCHDB_URI', None) target_uri = XFormInstance.get_db().uri if source_uri is None: print "\n\tNo production URI to replicate from, we're done here.\n" print "\n\tNo settings.PRODUCTION_COUCHDB_URI has been set\n" sys.exit() input_query = options['query_string'] if not input_query: print "\tRunning default query for user.is_superuser" query_string = BASE_QUERY else: query_string = input_query print "\n\tRunning user query: %s" % query_string user_pillow = UserPillow() user_es = user_pillow.get_es() doc_ids = [ res['_id'] for res in get_query_results(user_es, query_string) ] do_replicate = options['makeitso'] repl_params = {'doc_ids': doc_ids} if 'cancel' in args: repl_params['cancel'] = True print "\n\tSending a replication cancel notification to server" else: print "\n\tStarting staging replication from prod" if do_replicate: server = CommCareUser.get_db().server server.replicate(source_uri, target_uri, **repl_params) AuditEvent.audit_command() else: print "\n\tReplication dry run with params: %s" % repl_params
def handle(self, *args, **options): source_uri = getattr(settings, 'PRODUCTION_COUCHDB_URI', None) target_uri = XFormInstance.get_db().uri if source_uri is None: print "\n\tNo production URI to replicate from, we're done here.\n" print "\n\tNo settings.PRODUCTION_COUCHDB_URI has been set\n" sys.exit() input_query = options['query_string'] if not input_query: print "\tRunning default query for user.is_superuser" query_string = BASE_QUERY else: query_string = input_query print "\n\tRunning user query: %s" % query_string user_pillow = UserPillow() user_es = user_pillow.get_es() doc_ids = [res['_id'] for res in get_query_results(user_es, query_string)] do_replicate = options['makeitso'] repl_params = { 'doc_ids': doc_ids } if 'cancel' in args: repl_params['cancel'] = True print "\n\tSending a replication cancel notification to server" else: print "\n\tStarting staging replication from prod" if do_replicate: server = CommCareUser.get_db().server server.replicate(source_uri, target_uri, **repl_params) AuditEvent.audit_command() else: print "\n\tReplication dry run with params: %s" % repl_params