def run_and_pause(params):

    url = params["url"]
    user = params["user"]
    password = params["password"]
    source_bucket = params["source_bucket"]
    target_bucket = params["target_bucket"]
    target_cluster = params["target_cluster"]

    link_id = xdcrclient.link_id(url, user, password, source_bucket,target_bucket,target_cluster)
    complete = xdcrclient.ret_stat(url, user, password, source_bucket, link_id, "percent_completeness")

    print(complete)
    print("Starting replication ...")
    xdcrclient.pause(url,user,password,link_id,True)

    #TODO find out why the stat value stays sometimes at 100% even if data was added, maybe just an issue with the stat approx.
    # changes_left might be helpful, increased also if XDCR is paused

    while complete < 100.0:
        complete = xdcrclient.ret_stat(url, user, password, source_bucket, link_id, "percent_completeness")
        print("Comlete: " + str(complete))
        time.sleep(10)

    xdcrclient.pause(url, user, password, link_id)

    print("Replication finished.")
Ejemplo n.º 2
0
def run_and_pause(params):

    url = params["url"]
    user = params["user"]
    password = params["password"]
    source_bucket = params["source_bucket"]
    target_bucket = params["target_bucket"]
    target_cluster = params["target_cluster"]

    link_id = xdcrclient.link_id(url, user, password, source_bucket,
                                 target_bucket, target_cluster)
    complete = xdcrclient.ret_stat(url, user, password, source_bucket, link_id,
                                   "percent_completeness")

    print(complete)
    print("Starting replication ...")
    xdcrclient.pause(url, user, password, link_id, True)

    #TODO find out why the stat value stays sometimes at 100% even if data was added, maybe just an issue with the stat approx.
    # changes_left might be helpful, increased also if XDCR is paused

    while complete < 100.0:
        complete = xdcrclient.ret_stat(url, user, password, source_bucket,
                                       link_id, "percent_completeness")
        print("Comlete: " + str(complete))
        time.sleep(10)

    xdcrclient.pause(url, user, password, link_id)

    print("Replication finished.")
def test_ret_stat():

    print("Testing to retrieve statistics ...")
    link_id = xdcrclient.link_id(BASE_URL, ADMIN_USER, ADMIN_PWD,"social","test_xdcr","local")
    print(link_id)
    result = xdcrclient.ret_stat(BASE_URL, ADMIN_USER, ADMIN_PWD, "social", link_id, "percent_completeness")
    print result
    assert result == 0.0
Ejemplo n.º 4
0
def test_ret_stat():

    print("Testing to retrieve statistics ...")
    link_id = xdcrclient.link_id(BASE_URL, ADMIN_USER, ADMIN_PWD, "social",
                                 "test_xdcr", "local")
    print(link_id)
    result = xdcrclient.ret_stat(BASE_URL, ADMIN_USER, ADMIN_PWD, "social",
                                 link_id, "percent_completeness")
    print result
    assert result == 0.0
def test_pause():
    print("Testing to pause the replication ...")
    link_id = xdcrclient.link_id(BASE_URL, ADMIN_USER, ADMIN_PWD,"social","test_xdcr","local")
    print(link_id)
    result = xdcrclient.pause(BASE_URL,ADMIN_USER,ADMIN_PWD,link_id)
    print result
    assert "'pauseRequested': True" in str(result)
    result =     result = xdcrclient.pause(BASE_URL,ADMIN_USER,ADMIN_PWD,link_id,True)
    print result
    assert "'pauseRequested': False" in str(result)
Ejemplo n.º 6
0
def test_pause():
    print("Testing to pause the replication ...")
    link_id = xdcrclient.link_id(BASE_URL, ADMIN_USER, ADMIN_PWD, "social",
                                 "test_xdcr", "local")
    print(link_id)
    result = xdcrclient.pause(BASE_URL, ADMIN_USER, ADMIN_PWD, link_id)
    print result
    assert "'pauseRequested': True" in str(result)
    result = result = xdcrclient.pause(BASE_URL, ADMIN_USER, ADMIN_PWD,
                                       link_id, True)
    print result
    assert "'pauseRequested': False" in str(result)
Ejemplo n.º 7
0
def main(args=sys.argv):

    if len(args) == 9:
        print("Starting the daemon ...")

        #Run as daemon
        #daemon.daemonize("cb-scheduled-xdcr.pid")

        url = args[1]
        user = args[2]
        password = args[3]
        source_bucket = args[4]
        target_bucket = args[5]
        target_cluster = args[6]
        start_time = args[7]
        interval = float(args[8])

        #Parse the date
        start_time_arr = parse_data_arg(start_time)

        #Make sure that XDCR is paused
        link_id = xdcrclient.link_id(url, user, password, source_bucket,
                                     target_bucket, target_cluster)
        xdcrclient.pause(url, user, password, link_id)

        #Prepare the job  parameters and schedule the job
        params = {
            "url": url,
            "user": user,
            "password": password,
            "source_bucket": source_bucket,
            "target_bucket": target_bucket,
            "target_cluster": target_cluster,
            "start_time_arr": start_time_arr,
            "interval": interval
        }

        print("Scheduling the job ...")
        print("params = " + str(params))

        jobscheduler.run(start_time_arr[0], start_time_arr[1],
                         start_time_arr[2], start_time_arr[3],
                         start_time_arr[4], interval, run_and_pause, params)

    else:
        usage()
def main(args = sys.argv):

    if len(args) == 9:
        print("Starting the daemon ...")

        #Run as daemon
        #daemon.daemonize("cb-scheduled-xdcr.pid")

        url = args[1]
        user = args[2]
        password = args[3]
        source_bucket = args[4]
        target_bucket = args[5]
        target_cluster = args[6]
        start_time = args[7]
        interval = float(args[8])

        #Parse the date
        start_time_arr = parse_data_arg(start_time)

        #Make sure that XDCR is paused
        link_id = xdcrclient.link_id(url, user, password, source_bucket,target_bucket,target_cluster)
        xdcrclient.pause(url,user,password,link_id)


        #Prepare the job  parameters and schedule the job
        params = { "url" : url, "user" : user, "password" : password, "source_bucket" : source_bucket,
                   "target_bucket" : target_bucket, "target_cluster" : target_cluster,
                   "start_time_arr" : start_time_arr, "interval" : interval }

        print("Scheduling the job ...")
        print("params = " + str(params))

        jobscheduler.run(start_time_arr[0],start_time_arr[1],start_time_arr[2],start_time_arr[3],start_time_arr[4],interval,run_and_pause,params)

    else:
        usage()