Esempio n. 1
0
def execute():
    clear_result()
    ibofos_util.pci_rescan()
    out = CREATE_ARRAY_NO_SPARE.execute()
    print(out)
    out = cli.mount_ibofos()
    print(out)
    ibofos_util.pci_detach_and_attach(CREATE_ARRAY_NO_SPARE.DATA_DEV_1)
    time.sleep(2)
    ibofos_util.pci_detach_and_attach(CREATE_ARRAY_NO_SPARE.DATA_DEV_2)
    time.sleep(2)
    out = cli.unmount_ibofos()
    print(out)
    out = cli.delete_array("")
    print(out)
    ibofos_util.pci_rescan()
    ibofos.start_ibofos()
    cli.scan_device()
    cli.list_device()
    out = cli.create_array("uram0", DATA, SPARE, ARRAY_NAME, "")
    print(out)
    out = cli.mount_ibofos()
    print(out)

    return out
Esempio n. 2
0
def scan_dev():
    write_log("scan_dev begin")
    ibofos_util.pci_rescan()
    time.sleep(2)
    cli.scan_device()
    cli.list_device()
    write_log("scan_dev done")
def execute():
    pos_util.pci_rescan()
    out = CREATE_ARRAY_NO_SPARE.execute()
    print (out)
    out = cli.mount_array(ARRAYNAME)
    print (out)
    pos_util.pci_detach(CREATE_ARRAY_NO_SPARE.DATA_DEV_1)
    time.sleep(2)
    pos_util.pci_detach(CREATE_ARRAY_NO_SPARE.DATA_DEV_2)
    time.sleep(2)
    out = cli.unmount_array(ARRAYNAME)
    print (out)
    out = cli.delete_array(ARRAYNAME)
    print (out)
    pos.exit_pos()
    pos_util.pci_rescan()
    pos.start_pos()
    cli.scan_device()
    cli.list_device()
    out = cli.create_array("uram0", DATA, SPARE, ARRAYNAME, "RAID5")
    print (out)
    out = cli.mount_array(ARRAYNAME)
    print (out)

    return out
Esempio n. 4
0
def load_array():
    out = cli.load_array("")
    code = json_parser.get_response_code(out)
    cli.list_device()
    cli.list_volume("")
    if code == 0:
        write_log("array loaded successfully")
        return True
    else:
        write_log("array loading failed, code: " + str(code))
        return False
Esempio n. 5
0
def execute():
    clear_result()
    MOUNT_ARRAY_BASIC_1.execute()
    ibofos_util.pci_detach(MOUNT_ARRAY_BASIC_1.ANY_DATA)
    time.sleep(0.5)
    print(cli.list_device())
    ibofos_util.pci_detach(MOUNT_ARRAY_BASIC_1.ANY_OTHER_DATA)

    out = cli.unmount_ibofos()
    print(out)

    cur_info = json.loads(cli.array_info(""))
    cur_state = cur_info['Response']['info']['situation']
    print(cur_state)
    if cur_state != 'FAULT':
        print("STOP State is not triggered, try again")
        return cur_info
    wait_time = 20
    for i in reversed(range(wait_time)):
        print("Wait to cancel rebuild " + str(i) + " seconds left")
        time.sleep(1)

    out = cli.unmount_ibofos()
    print(out)
    return out
Esempio n. 6
0
def get_num_ssd():
    out = cli.list_device()
    numSSD = 0
    for device in json_parser.get_data(out)['devicelist']:
        if device['type'] == "SSD":
            numSSD += 1
    return numSSD
Esempio n. 7
0
def get_system_dev_for_spare():
    devicelist = cli.list_device()
    write_log(devicelist)
    data = json.loads(devicelist)
    actual_list = []
    for item in data['Response']['result']['data']['devicelist']:
        if item['type'] == "SSD" and item['class'] == "SYSTEM":
            return item['name']
    return "no remaining system device"
Esempio n. 8
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, "")
def check_result():
    out = cli.get_ibofos_info()
    data = json.loads(out)
    if data['Response']['info']['situation'] == "NORMAL":
        list = cli.list_device()
        data = json.loads(list)
        for item in data['Response']['result']['data']['devicelist']:
            if item['name'] == DETACH_TARGET_DEV :
                return "fail", list
        return "pass", out
    return "fail", out
Esempio n. 10
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
Esempio n. 11
0
def execute():
    START_POS_BASIC.execute()
    out = cli.list_device()
    return out
Esempio n. 12
0
def execute():
    clear_result()
    ibofos.start_ibofos()
    out = cli.list_device()
    return out