示例#1
0
文件: migrate.py 项目: FengZiQ/cli
def clean_up_environment():
    clean_up()

    try:
        # stop all migrate
        vol_request = server.webapi('get', 'volume?page=1&page_size=100')

        if isinstance(vol_request, dict):

            for vol in json.loads(vol_request["text"]):

                if 'adv_role' in vol.keys() and vol['adv_role'] == 'Source':
                    server.webapi('post',
                                  'migrate/' + str(vol['id']) + '/stop',
                                  {"location": 2})

        # delete pool
        find_pd_id()

        # delete initiator
        init_request = server.webapi('get', 'initiator')

        if isinstance(init_request, dict):

            for init in json.loads(init_request["text"]):

                server.webapi('delete', 'initiator/' + str(init["id"]))

        return

    except ():

        tolog('to clean up environment is failed\r\n')
示例#2
0
def missing_parameter_transit(c):

    cli_failed_test = cli_test_failed_test()

    cli_failed_test.failed_test(c, data, 'missing_parameter_transit')

    # clean_up_environment
    find_pd_id()

    return cli_failed_test.FailFlag
示例#3
0
def missing_parameter_for_lunmap(c):

    cli_failed_test = cli_test_failed_test()

    cli_failed_test.failed_test(c, data, 'missing_parameter_for_lunmap')

    # clean up environment
    clean_up_environment()
    find_pd_id()

    return cli_failed_test.FailFlag
示例#4
0
文件: pool.py 项目: FengZiQ/cli
def add_pool_by_external_drive(c):
    # precondition
    if precondition():
        find_pd_id()

        cli_setting = cli_test_setting()

        cli_setting.setting(c, data, 'add_pool_by_external_drive', 3)

        return cli_setting.FailFlag
    else:
        tolog('precondition is failed\n')
示例#5
0
文件: allowip.py 项目: FengZiQ/cli
def missing_parameter_for_allowip(c):

    cli_failed_test = cli_test_failed_test()

    cli_failed_test.failed_test(c, data, 'missing_parameter_for_allowip')

    # clean up environment
    try:
        find_pd_id()
    except TypeError:
        tolog('to clean up environment is failed\r\n')

    return cli_failed_test.FailFlag
示例#6
0
文件: pool.py 项目: FengZiQ/cli
def add_pool_raid0(c):

    cli_setting = cli_test_setting()

    # precondition
    try:
        find_pd_id()
    except TypeError:
        tolog('precondition is failed\r\n')
    else:
        cli_setting.setting(c, data, 'add_pool_raid0', 3)

    return cli_setting.FailFlag
示例#7
0
文件: bgasched.py 项目: FengZiQ/cli
def clean_up_environment():
    try:
        bgaS_request = server.webapi('get', 'bgaschedule')

        bgaS_info = json.loads(bgaS_request['text'])

        for info in bgaS_info:

            server.webapi('delete', 'bgaschedule/' + str(info['id']))
    except:
        tolog('failed to clean up environment\n')

    find_pd_id()

    return
示例#8
0
文件: wcache.py 项目: FengZiQ/cli
def add_wcache_dedication(c):

    cli_setting = cli_test_setting()

    # precondition
    try:

        pdId = find_pd_id()
        # create pool
        server.webapi('post', 'pool', {
            "name": "test_cache_0",
            "pds": pdId[:3],
            "raid_level": "raid5"
        })
        server.webapi('post', 'pool', {
            "name": "test_cache_1",
            "pds": pdId[4:7],
            "raid_level": "raid5"
        })

    except TypeError:

        tolog('precondition is failed\r\n')

    else:

        cli_setting.setting(c, data, 'add_wcache_dedication', 1)

    return cli_setting.FailFlag
示例#9
0
def precondition():
    pdId = find_pd_id()
    # create pool
    server.webapi('post', 'pool', {
        "name": "test_clone_pool",
        "pds": pdId[:3],
        "raid_level": "raid5"
    })

    # create nasShare snapshot
    server.webapi('post', 'nasshare', {
        'pool_id': 0,
        'name': 'test_clone_nas',
        'capacity': '2GB'
    })

    server.webapi('post', 'snapshot', {
        "name": "test_clone_nas_snap",
        "type": 'nasshare',
        "source_id": 0
    })

    # create volume snapshot
    server.webapi('post', 'volume', {
        'pool_id': 0,
        'name': 'test_clone_volume',
        'capacity': '2GB'
    })

    server.webapi('post', 'snapshot', {
        "name": "test_clone_vol_snap",
        "type": 'volume',
        "source_id": 0
    })
示例#10
0
文件: spare.py 项目: FengZiQ/cli
def list_spare(c):
    cli_list = cli_test_list()
    try:
        # precondition
        pdId = find_pd_id()

        # create pool
        server.webapi('post', 'pool', {
            "name": "test_spare_pool",
            "pds": pdId[:3],
            "raid_level": "raid5"
        })

        # create spare
        server.webapi(
            'post', 'spare', {
                "dedicated": 'global',
                "revertible": 0,
                "pool_list": [],
                "pd_id": pdId[3]
            })
        server.webapi(
            'post', 'spare', {
                "dedicated": 'dedicated',
                "revertible": 1,
                "pool_list": [0],
                "pd_id": pdId[5]
            })
    except:

        tolog('precondition is failed\r\n')
    else:
        cli_list.list(c, data, 'list_spare')

        return cli_list.FailFlag
示例#11
0
文件: spare.py 项目: FengZiQ/cli
def add_dedicated_spare(c):

    cli_setting = cli_test_setting()

    # precondition
    try:

        pdId = find_pd_id()

    except:

        tolog('precondition is failed\r\n')

    else:

        # create pool
        server.webapi('post', 'pool', {
            "name": "test_spare_pool_0",
            "pds": pdId[:3],
            "raid_level": "raid5"
        })
        server.webapi('post', 'pool', {
            "name": "test_spare_pool_1",
            "pds": pdId[3:6],
            "raid_level": "raid5"
        })

        cli_setting.setting(c, data, 'add_dedicated_spare', 3)

    return cli_setting.FailFlag
示例#12
0
def raid10_start_rb(c):

    cli_setting = cli_test_setting()

    # precondition
    try:

        pdId = find_pd_id()

    except TypeError:

        tolog('precondition is failed\r\n')

    else:

        # create pool
        server.webapi('post', 'pool', {
            "name": "test_rb_10",
            "pds": pdId[:4],
            "raid_level": "raid10"
        })

        cli_setting.setting(c, data, 'raid10_start_rb', 3)

    return cli_setting.FailFlag
示例#13
0
文件: pool.py 项目: FengZiQ/cli
def expand_raid60_pool(c):

    cli_setting = cli_test_setting()

    # precondition
    try:

        pdId = find_pd_id()
        # create pool
        server.webapi(
            'post', 'pool', {
                "name": "expand_raid60_pool",
                "pds": pdId[:8],
                "raid_level": "raid60",
                "axle": 2
            })

        time.sleep(3)

    except TypeError:

        tolog('precondition is failed\r\n')

    else:

        cli_setting.setting(c, data, 'expand_raid60_pool', 3)

    return cli_setting.FailFlag
示例#14
0
文件: pool.py 项目: FengZiQ/cli
def list_pool(c):

    cli_list = cli_test_list()

    # precondition
    try:
        pdId = find_pd_id()
        # create pool
        server.webapi('post', 'pool', {
            "name": "raid0_pool",
            "pds": [pdId[0]],
            "raid_level": "raid0"
        })
        server.webapi('post', 'pool', {
            "name": "raid5_pool",
            "pds": pdId[1:4],
            "raid_level": "raid5"
        })

    except TypeError:

        tolog('precondition is failed\r\n')

    else:

        cli_list.list(c, data, 'list_pool')

    return cli_list.FailFlag
示例#15
0
def precondition():

    try:

        pdId = find_pd_id()

    except TypeError:

        tolog('precondition is failed\r\n')

    else:
        # create pool
        server.webapi('post', 'pool', {
            "name": "test_snap_pool",
            "pds": pdId[:3],
            "raid_level": "raid5"
        })

        # create nasShare
        server.webapi('post', 'nasshare', {
            'pool_id': 0,
            'name': 'test_snap_nas',
            'capacity': '2GB'
        })

        # create volume
        server.webapi('post', 'volume', {
            'pool_id': 0,
            'name': 'test_snap_volume',
            'capacity': '2GB'
        })
示例#16
0
def clear_phydrv(c):

    cli_setting = cli_test_setting()

    # precondition: create pool, create spare
    try:

        pdId = find_pd_id()
        server.webapi('post', 'pool', {
            "name": "test_phy_3",
            "pds": pdId[:3],
            "raid_level": "raid5"
        })
        server.webapi('post', 'spare', {
            "pd_id": pdId[4],
            "dedicated": 'global',
            "revertible": 0
        })

    except (TypeError, IndexError):

        tolog('precondition is failed\r\n')

    else:

        cli_setting.setting(c, data, 'clear_phydrv', 3)

        return cli_setting.FailFlag
示例#17
0
文件: spare.py 项目: FengZiQ/cli
def invalid_parameter_for_spare(c):

    cli_failed_test = cli_test_failed_test()

    # precondition
    try:

        pdId = find_pd_id()

    except:

        tolog('precondition is failed\r\n')

    else:

        # create pool
        server.webapi('post', 'pool', {
            "name": "test_spare_pool",
            "pds": pdId[:3],
            "raid_level": "raid0"
        })

        cli_failed_test.failed_test(c, data, 'invalid_parameter_for_spare')

    return cli_failed_test.FailFlag
示例#18
0
文件: rcache.py 项目: FengZiQ/cli
def add_rcache_by_multiple_pd(c):

    cli_setting = cli_test_setting()

    # precondition
    try:
        find_pd_id()

    except TypeError:

        tolog('precondition is failed\r\n')

    else:

        cli_setting.setting(c, data, 'add_rcache_by_multiple_pd', 1)

    return cli_setting.FailFlag
示例#19
0
def precondition():
    pdId = find_pd_id()

    # to add target
    fabric_request = server.webapi('get', 'fcinitiator')
    try:
        fabric_info = json.loads(fabric_request["text"])
        for fabric in fabric_info:
            if len(fabric["initiators"]) != 0:
                temp = fabric["initiators"]
                for t in temp:
                    if t['wwnn'] == '25-00-00-01-55-59-ea-9d':
                        server.webapi('post', 'target',
                                      {"name": '25-00-00-01-55-59-ea-9d'})
    except:
        tolog('precondition is failed\n')

    ssd_id = []

    # create pool
    server.webapi('post', 'pool', {
        "name": "test_phy_0",
        "pds": [pdId[0]],
        "raid_level": "RAID0"
    })
    server.webapi('post', 'pool', {
        "name": "test_phy_1",
        "pds": pdId[1:4],
        "raid_level": "raid5"
    })

    # create spare
    server.webapi('post', 'spare', {
        "pd_id": pdId[4],
        "dedicated": 'global',
        "revertible": 0
    })
    server.webapi(
        'post', 'spare', {
            "pd_id": pdId[5],
            "dedicated": 'dedicated',
            "revertible": 0,
            "pool_list": [0]
        })

    # create cache
    pd_request = server.webapi('get', 'phydrv')
    pd_info = json.loads(pd_request["text"])

    for info in pd_info:
        if info["media_type"] == 'SSD':
            ssd_id.append(info["id"])

    server.webapi('post', 'rcache/attach', {"pd_list": [ssd_id[0]]})
    server.webapi('post', 'wcache/attach', {
        "pd_list": ssd_id[1:],
        "pool_list": []
    })
示例#20
0
def invalid_setting_parameter(c):

    cli_failed_test = cli_test_failed_test()

    # precondition
    try:

        find_pd_id()

    except (TypeError, IndexError):

        tolog('precondition is failed\r\n')

    else:

        cli_failed_test.failed_test(c, data, 'invalid_setting_parameter')

        return cli_failed_test.FailFlag
示例#21
0
文件: wcache.py 项目: FengZiQ/cli
def add_wcache_no_dedication(c):

    cli_setting = cli_test_setting()

    # precondition
    try:

        find_pd_id()

    except TypeError:

        tolog('precondition is failed\r\n')

    else:

        cli_setting.setting(c, data, 'add_wcache_no_dedication', 1)

    return cli_setting.FailFlag
示例#22
0
def precondition():
    # disable domain, if enabled domain, to add user or group will happen error
    server.webapi('post', 'domain/leave')
    try:
        pdId = find_pd_id()
        # create pool
        server.webapi('post', 'pool', {
            "name": "test_acl_pool",
            "pds": pdId[:3],
            "raid_level": "raid5"
        })

        # create nasShare
        for i in range(2):
            server.webapi('post', 'nasshare', {
                'pool_id': 0,
                'name': 'test_acl_nas_' + str(i),
                'capacity': '2GB'
            })

        # create nas user
        for i in range(10):
            server.webapi('post', 'dsuser', {
                "id": 'test_acl_' + str(i),
                "password": '******'
            })

        # create nas group
        for i in range(10):
            server.webapi('post', 'dsgroup/editcancel')
            step1 = server.webapi('post', 'dsgroup/editbegin', {
                "page": 1,
                "page_size": 20
            })

            token = json.loads(step1["text"])[0]["token"]
            get_page_data = json.loads(step1["text"])[0]["page_data"]
            page_data = [[0, uid["uid"]] for uid in get_page_data]

            server.webapi('post', 'dsgroup/editnext', {
                "page": 1,
                "page_size": 20,
                "token": token,
                "page_data": page_data
            })
            server.webapi(
                'post', 'dsgroup/editsave', {
                    "id": 'test_acl_group_' + str(i),
                    "token": token,
                    "page_data": page_data
                })

            server.webapi('post', 'dsgroup/editcancel')
    except:
        tolog("precondition is failed\r\n")
示例#23
0
def clean_up_environment():
    # stop all replication
    replica_request = server.webapi('get', 'replica')
    if isinstance(replica_request, dict):

        try:

            for replica in json.loads(replica_request["text"]):

                server.webapi('post',
                              'replicaloc/' + str(replica["src_id"]) + '/stop')

                time.sleep(3)

        except (TypeError, KeyError):

            tolog('to clean up environment is failed\r\n')

        else:

            for i in range(3):

                server.webapi('delete', 'pool/' + str(i) + '?force=1')

    # delete pool
    find_pd_id()

    # delete initiator
    init_request = server.webapi('get', 'initiator')
    if isinstance(init_request, dict):

        try:

            for init in json.loads(init_request["text"]):

                server.webapi('delete', 'initiator/' + str(init["id"]))

        except (TypeError, KeyError):

            tolog('to clean up environment is failed\r\n')

    return
示例#24
0
def precondition():
    pdId = find_pd_id()

    # create pool
    server.webapi('post', 'pool', {"name": "test_transit_0", "pds": [pdId[0]], "raid_level": "RAID0"})
    server.webapi('post', 'pool', {"name": "test_transit_1", "pds": pdId[1:4], "raid_level": "raid5"})

    # create spare
    server.webapi('post', 'spare', {"pd_id": pdId[4], "dedicated": 'global', "revertible": 0})
    # server.webapi('post', 'spare', {"pd_id": pdId[5], "dedicated": 'dedicated', "revertible": 0, "pool_list": [0]})
    server.webapi('post', 'spare', {"pd_id": pdId[6], "dedicated": 'dedicated', "revertible": 1, "pool_list": [1]})
示例#25
0
def precondition():
    pdId = find_pd_id('4TB')
    # create pool
    server.webapi('post', 'pool', {"name": "test_quota_API", "pds": pdId, "raid_level": "raid5"})

    # create nasShare
    server.webapi('post', 'nasshare', {'pool_id': 0, 'name': 'test_protocol_api', 'capacity': '2GB'})

    # create clone
    server.webapi('post', 'snapshot', {"name": "test_quota_API_s", "type": 'nasshare', "source_id": 0})

    server.webapi('post', 'clone', {"name": "test_quota_API_c", "source_id": 0})
示例#26
0
def precondition():
    pdId = find_pd_id()
    server.webapi('post', 'pool', {
        "name": "test_protocol_API",
        "pds": pdId[:3],
        "raid_level": "raid5"
    })
    server.webapi('post', 'nasshare', {
        'pool_id': 0,
        'name': 'test_protocol_api',
        'capacity': '2GB'
    })
示例#27
0
def precondition():
    try:
        clean_up_environment()

        pdId = find_pd_id()
        # create pool
        server.webapi('post', 'pool', {
            "name": "T_lunMap_P0",
            "pds": pdId[6:9],
            "raid_level": "raid5"
        })

        # create volume and export it
        for i in range(3):
            server.webapi('post', 'volume', {
                'pool_id': 0,
                'name': 'T_lunMap_V' + str(i),
                'capacity': '100GB'
            })
            server.webapi('post', 'volume/' + str(i) + '/export')

        # create snapshot and export it
        for i in range(3):
            server.webapi('post', 'snapshot', {
                "name": "T_lunMap_SS" + str(i),
                "type": 'volume',
                "source_id": 2
            })
            server.webapi('post', 'snapshot/' + str(i) + '/export')

        # create clone and export it
        for i in range(3):
            server.webapi('post', 'clone', {
                "name": "T_lunMap_C" + str(i),
                "source_id": 2
            })
            server.webapi('post', 'clone/' + str(i) + '/export')

        # create initiator
        for i in range(4):
            server.webapi('post', 'initiator', {
                'type': 'iSCSI',
                'name': 'T.com' + str(i)
            })
            server.webapi('post', 'initiator', {
                'type': 'fc',
                'name': '00-11-22-33-00-00-11-1' + str(i)
            })
    except:
        tolog("precondition is failed\r\n")

    return
示例#28
0
文件: volume.py 项目: FengZiQ/cli
def deleteVolume(c):

    cli_delete = cli_test_delete()

    # precondition: create volume snapshot
    server.webapi('post', 'snapshot', {
        "name": "test_volume_snap",
        "type": 'volume',
        "source_id": 1
    })

    cli_delete.delete(c, data, 'deleteVolume', 3)

    # clean up environment
    try:

        find_pd_id()

    except TypeError:

        tolog('to clean up environment is failed\r\n')

    return cli_delete.FailFlag
示例#29
0
def findPoolId():
    # precondition
    pdId = find_pd_id('4TB')

    if len(pdId) > 0:
        # create pool
        server.webapi('post', 'pool', {
            "name": "test_NASShare_pool",
            "pds": pdId[:3],
            "raid_level": "raid5"
        })

    plId = '0'
    return plId
示例#30
0
def precondition():

    try:
        pdId = find_pd_id("2TB")

    except TypeError:

        tolog('precondition is failed\r\n')

    else:

        # create pool
        server.webapi('post', 'pool', {
            "name": 'test_protocol_pool',
            "raid_level": 'raid5',
            "pds": pdId
        })

        # create nasShare
        for i in range(3):
            server.webapi('post', 'nasshare', {
                "pool_id": 0,
                "name": 'test_protocol_nasShare_' + str(i),
                "capacity": '2GB'
            })

        # create snapshot
        for i in range(3):
            server.webapi('post', 'snapshot', {
                "name": 'test_protocol_snap_' + str(i),
                "type": 'nasshare',
                "source_id": 0
            })

        # create clone
        for i in range(3):
            server.webapi('post', 'clone', {
                "name": 'test_protocol_clone_' + str(i),
                "source_id": 0
            })

        # create nas user
        server.webapi('post', 'dsuser', {
            "id": 'test_protocol',
            "password": '******'
        })

    return