示例#1
0
def add_spare(spare):
    out = cli.add_device(spare, "")
    code = json_parser.get_response_code(out)
    if code == 0:
        write_log ("Spare device: " + spare + " has been added successfully")
        return True
    else:
        write_log ("Spare device: " + spare + " adding failed, code: " + str(code))
        return False
示例#2
0
def execute():
    clear_result()
    ibofos_util.pci_rescan()
    MOUNT_VOL_BASIC_1.execute()
    ibofos_util.pci_detach_and_attach(DETACH_TARGET_DATA)
    time.sleep(6)  #TO TRIGGER REBUILD
    ibofos_util.pci_detach_and_attach(DETACH_TARGET_SPARE)
    time.sleep(3)
    print(cli.list_device())
    out = cli.add_device(NEW_SPARE, "")
示例#3
0
def execute():
    clear_result()
    MOUNT_ARRAY_NO_SPARE_3.execute()
    ibofos_util.pci_detach(MOUNT_ARRAY_NO_SPARE_3.DATA_DEV_1)
    time.sleep(2)
    ibofos_util.pci_detach(MOUNT_ARRAY_NO_SPARE_3.DATA_DEV_2)
    time.sleep(2)
    ibofos_util.pci_detach(MOUNT_ARRAY_NO_SPARE_3.DATA_DEV_3)
    time.sleep(2)
    cli.array_info(MOUNT_ARRAY_NO_SPARE_3.ARRAYNAME)
    out = cli.add_device(SPARE_DEV, MOUNT_ARRAY_NO_SPARE_3.ARRAYNAME)
    return out
示例#4
0
def execute():
    MOUNT_VOL_BASIC_1.execute()
    fio_proc = fio.start_fio(0, 200)
    time.sleep(10)
    pos_util.pci_detach_and_attach(DETACH_TARGET_DEV)
    detach_dev_timeout = 80
    time.sleep(detach_dev_timeout)
    print(cli.list_device())
    spare_dev_newly_attached = "unvme-ns-4"
    result = cli.add_device(spare_dev_newly_attached, ARRAYNAME)
    code = json_parser.get_response_code(result)
    if code == 0:
        print("device added successfully")
        rebuild_trigger_timeout = 100
        rebuild_started = False
        for i in range(rebuild_trigger_timeout):
            out = cli.array_info(ARRAYNAME)
            situ = json_parser.get_situation(out)
            if situ.find("REBUILD") >= 0:
                print("rebuilding started")
                rebuild_duration = 5
                time.sleep(rebuild_duration)
                rebuild_started = True
                break
            time.sleep(1)

        if rebuild_started == False:
            fio.stop_fio(fio_proc)
            return False

        pos_util.pci_detach_and_attach(MOUNT_VOL_BASIC_1.SPARE)
        #waiting for rebuild stopped
        print("Waiting for rebuild stopped")
        rebuild_stop_delay = 60
        time.sleep(rebuild_stop_delay)

        rebuild_started = False
        while True:
            out = cli.array_info(ARRAYNAME)
            situ = json_parser.get_situation(out)
            if situ.find("REBUILD") == -1 and rebuild_started == True:
                print("2nd rebuilding done")
                fio.wait_fio(fio_proc)
                return True
            elif rebuild_started == False and situ.find("REBUILD") >= 0:
                print("2nd rebuilding started")
                rebuild_started = True
            time.sleep(1)
    else:
        print("device added failure")
        fio.stop_fio(fio_proc)
        return False
示例#5
0
def execute():
    clear_result()
    DETACH_DEV_DATA_DEGRADED_IO.execute()
    out = cli.add_device(NEW_SPARE, "")
    rebuild_started = False
    while True:
        out = cli.get_ibofos_info()
        if out.find("REBUILDING") == -1 and rebuild_started == True:
            print ("rebuilding done")
            break
        elif rebuild_started == False and out.find("REBUILDING") >= 0:
            print ("rebuilding started")
            rebuild_started = True
        time.sleep(1)
def execute():
    DETACH_DEV_DATA_AND_DEGRADED_IO.execute()
    out = cli.add_device(NEW_SPARE, ARRAYNAME)
    rebuild_started = False
    while True:
        out = cli.array_info(ARRAYNAME)
        situ = json_parser.get_situation(out)
        if situ.find("REBUILD") == -1 and rebuild_started == True:
            print ("rebuilding done")
            break
        elif rebuild_started == False and situ.find("REBUILD") >= 0:
            print ("rebuilding started")
            rebuild_started = True
        time.sleep(1)
def execute():
    MOUNT_VOL_NO_SPARE.execute()
    fio_proc = fio.start_fio(0, 30)
    fio.wait_fio(fio_proc)
    fio_proc = fio.start_fio(0, 30)
    api.detach_ssd_and_attach(DETACH_TARGET_DEV)
    code = -1
    while code != 0:
            out = cli.add_device(FIRST_SPARE, ARRAYNAME)
            code = json_parser.get_response_code(out)
            print ("add spare response: " + str(code))
    print("spare added")
    cli.add_device(SECOND_SPARE, ARRAYNAME)

    if api.wait_situation(ARRAYNAME, "REBUILDING") is True:
        print("1st rebuilding")
        api.detach_ssd(FIRST_SPARE)
        timeout = 80000 #80s
        if api.wait_situation(ARRAYNAME, "DEGRADED", timeout) is True:
            print("1st rebuilding stopped")
            if api.wait_situation(ARRAYNAME, "REBUILDING", timeout) is True:
                print("2nd rebuilding")
                return "pass"
    return "fail"
def execute():
    clear_result()
    CREATE_ARRAY_NO_SPARE.execute()
    out = cli.add_device(SPARE_DEV, "")
    return out
示例#9
0
def execute():
    SCAN_DEV_BASIC.execute()
    out = cli.add_device("unmve-ns-3", "NOARRAY")
    return out
def execute():
    REBUILD_STOP_BASIC.execute()
    out = cli.add_device(REBUILD_STOP_BASIC.REMAINING_DEV, ARRAYNAME)
    print(out)
    return out
示例#11
0
def execute():
    clear_result()
    MOUNT_ARRAY_NO_SPARE_3.execute()
    out = cli.add_device(SPARE_DEV, "")
    return out
示例#12
0
def execute():
    MOUNT_ARRAY_NO_SPARE.execute()
    out = cli.add_device(SPARE_DEV, "wrong_array_name")
    return out
示例#13
0
def execute():
    CREATE_ARRAY_NO_SPARE.execute()
    out = cli.add_device(SPARE_DEV, ARRAYNAME)
    return out
示例#14
0
def execute():
    clear_result()
    ADD_DEV_BASIC_1.execute()
    out = cli.add_device(ADD_DEV_BASIC_1.SPARE_DEV, "")
    return out
def execute():
    clear_result()
    SCAN_DEV_BASIC_1.execute()
    out = cli.add_device("unmve-ns-3", "")
    return out
示例#16
0
def execute():
    ADD_SPARE_BASIC.execute()
    out = cli.add_device(ADD_SPARE_BASIC.SPARE_DEV, ARRAYNAME)
    return out
def execute():
    MOUNT_ARRAY_NO_SPARE.execute()
    wrong_dev = "wrong_dev"
    out = cli.add_device(wrong_dev, MOUNT_ARRAY_NO_SPARE.ARRAYNAME)
    return out
示例#18
0
def execute():
    clear_result()
    MOUNT_ARRAY_NO_SPARE_3.execute()
    wrong_dev = "wrong_dev"
    out = cli.add_device(wrong_dev, "")
    return out