blob: a58f97b0c3c4aa03b04eac66b1a3ad29fe9ccc66 [file] [log] [blame]
import nmo from './nmo.js';
import Promise from 'bluebird';
import { getUrlFromCluster } from './utils';
import {replicate, createReplicatorDoc } from './replicate';
export function cli (cluster, dbname, url) {
return new Promise((resolve, reject) => {
if (!cluster) {
const msg = [
'Usage:',
'',
'nmo replicate-to <cluster> <databasename> <url/dbname> [--continuous] [--create-target] [--json]',
'nmo replicate-to <url> <databasename> <url/dbname> [--continuous] [--create-target] [--json]',
].join('\n');
const err = new Error(msg);
err.type = 'EUSAGE';
return reject(err);
}
replicateto(cluster, dbname, url)
.then(resp => {
console.log('Replication started.');
resolve(resp);
})
.catch(err => {
err.type = 'EUSAGE';
reject(err);
});
});
}
export default function replicateto(cluster, dbname, url) {
return new Promise((resolve, reject) => {
const clusterUrl = getUrlFromCluster(cluster);
const replicatorUrl = clusterUrl + '/_replicator';
const dbUrl = clusterUrl + '/' + dbname;
const replicator = createReplicatorDoc(url, dbUrl, {
continuous: !!nmo.config.get('continuous'),
"create_target": !!nmo.config.get('create-target')
});
replicate(replicatorUrl, replicator)
.then(resolve)
.catch(reject);
});
}