Пример #1
0
def get_protocol_status_on_storage():
    # precondition
    precondition()

    # test data
    response = ['ftp', 'nfs', 'smb', 'tm_enable', 'allow_ip']

    tolog('Expect: \r\n' + str(response) + '\r\n')
    result = server.webapi('get', 'protocol/storage/nasshare_0')

    if isinstance(result, str):

        result_assert.FailFlag = True
        tolog('Fail: ' + result + '\r\n')

    else:

        check = json.loads(result["text"])[0]
        tolog('Actual: \r\n' + str(check.keys()).replace('u', '') + '\r\n')

        if len(response) != len(check.keys()):

            result_assert.FailFlag = True
            tolog('Fail: please check out response parameters count\r\n')

        else:

            for key in check.keys():

                if key not in response:
                    result_assert.FailFlag = True
                    tolog('Fail: ' + key + ' is not in response\r\n')

    result_assert.result_assert()
Пример #2
0
def reset_protocol_setting():
    # test data
    id = ['FTP', 'NFS', 'SMB']

    for i in range(len(id)):

        tolog('Expect: ' + id[i] + ' protocol should be reset\r\n')
        result = server.webapi('post', 'protocol/reset/' + id[i])

        if isinstance(result, str):

            result_assert.FailFlag = True
            tolog('Fail: ' + result + '\r\n')

        else:

            tolog('Actual: ' + id[i] + ' protocol is reset\r\n')

    tolog('Expect: all protocol should be reset\r\n')
    result2 = server.webapi('post', 'protocol/reset')

    if isinstance(result2, str):

        result_assert.FailFlag = True
        tolog('Fail: ' + result2 + '\r\n')

    else:

        tolog('Actual: all protocol is reset\r\n')

    result_assert.result_assert()
Пример #3
0
def get_ftp():
    # test data
    response = [
        'enable', 'encrypt_type', 'port', 'passive_start', 'passive_end',
        'charset', 'dw_rate', 'up_rate'
    ]

    tolog('Expect: \r\n' + str(response) + '\r\n')
    result = server.webapi('get', 'protocol/ftp')

    if isinstance(result, str):

        result_assert.FailFlag = True
        tolog('Fail: ' + result + '\r\n')

    else:

        check = json.loads(result["text"])[0]
        tolog('Actual: \r\n' + str(check.keys()).replace('u', '') + '\r\n')

        if len(response) != len(check.keys()):

            result_assert.FailFlag = True
            tolog('Fail: please check out response parameters count\r\n')

        else:

            for key in check.keys():

                if key not in response:

                    result_assert.FailFlag = True
                    tolog('Fail: ' + key + ' is not in response\r\n')

    result_assert.result_assert()
Пример #4
0
def get_protocol_running_status():
    # test data
    response = ['name', 'status']

    tolog('Expect: \r\n' + str(response) + '\r\n')
    result = server.webapi('get', 'protocol/status')

    if isinstance(result, str):

        result_assert.FailFlag = True
        tolog('Fail: ' + result + '\r\n')

    else:

        check = json.loads(result["text"])[0]
        tolog('Actual: \r\n' + str(check.keys()).replace('u', '') + '\r\n')

        if len(response) != len(check.keys()):

            result_assert.FailFlag = True
            tolog('Fail: please check out response parameters count\r\n')

        else:

            for key in check.keys():

                if key not in response:
                    result_assert.FailFlag = True
                    tolog('Fail: ' + key + ' is not in response\r\n')

    result_assert.result_assert()
Пример #5
0
def invalid_parameters_for_set_ftp():
    # test data
    settings = {
        'enable': [2, ''],
        'encrypt_type': [4, ''],
        'cmd_port': [0, 65536, ''],
        'passive_start': [1023, 65535, ''],
        'passive_end': [1024, 65536, ''],
        'charset': ['test', 0],
        'dw_rate': [''],
        'up_rate': ['']
    }

    for key in settings:

        for i in range(len(settings[key])):

            setting = {key: settings[key][i]}

            tolog('Expect: that should hint error when body is ' +
                  json.dumps(setting) + '\r\n')
            result = server.webapi('post', 'protocol/ftp', setting)

            if isinstance(result, dict):

                result_assert.FailFlag = True
                tolog('Fail: when body is ' + json.dumps(setting) + '\r\n')

            else:
                tolog('Actual: ' + result + '\r\n')

    result_assert.result_assert()
Пример #6
0
def problem_body_add_group_step3():
    # precondition: edit cancel
    server.webapi('post', 'dsgroup/editcancel')

    # step1
    step1 = server.webapi('post', 'dsgroup/editbegin', {
        "page": 1,
        "page_size": 500
    })
    token = json.loads(step1["text"])[0]["token"]

    # step2
    step2 = server.webapi('post', 'dsgroup/editbegin', {
        "token": token,
        "page_data": [[1, 1001]]
    })

    tolog('Expect: missing body should return error\r\n')
    result1 = server.webapi('post', 'dsgroup/editsave')

    if isinstance(result1, dict):

        result_assert.FailFlag = True
        tolog('Fail: that return 200 when body is missing\r\n')
        server.webapi('post', 'dsgroup/editcancel')

    else:
        server.webapi('post', 'dsgroup/editcancel')
        tolog('Actual: ' + result1 + '\r\n')

    # step1
    step1 = server.webapi('post', 'dsgroup/editbegin', {
        "page": 1,
        "page_size": 500
    })
    token = json.loads(step1["text"])[0]["token"]

    # step2
    step2 = server.webapi('post', 'dsgroup/editbegin', {
        "token": token,
        "page_data": [[1, 1001]]
    })

    tolog('Expect: body is empty that should return error\r\n')
    result2 = server.webapi('post', 'dsgroup/editsave', {})

    if isinstance(result2, dict):

        result_assert.FailFlag = True
        tolog('Fail: that return 200 when body is empty\r\n')
        server.webapi('post', 'dsgroup/editcancel')

    else:
        server.webapi('post', 'dsgroup/editcancel')
        tolog('Actual: ' + result2 + '\r\n')

    result_assert.result_assert()
Пример #7
0
def add_group_and_users_by_must_parameters():

    # precondition
    server.webapi('post', 'dsgroup/editcancel')

    tolog('Expect: add group "by_must_parameters" and add 10 user\r\n')

    step1 = server.webapi('post', 'dsgroup/editbegin', {
        "page": 1,
        "page_size": 20
    })

    if isinstance(step1, str):

        result_assert.FailFlag = True
        tolog("Fail: " + step1 + '\r\n')

    else:
        # test data
        token = json.loads(step1["text"])[0]["token"]
        get_page_data = json.loads(step1["text"])[0]["page_data"]
        page_data = [[1, uid["uid"]] for uid in get_page_data[1:]]

        step2 = server.webapi('post', 'dsgroup/editnext', {
            "token": token,
            "page_data": page_data,
            "page": 1,
            "page_size": 20
        })

        if isinstance(step2, str):
            result_assert.FailFlag = True
            tolog("Fail: " + step2 + '\r\n')

        else:

            step3 = server.webapi('post', 'dsgroup/editsave', {
                "id": 'by_must_parameters',
                "token": token,
                "page_data": page_data
            })

            if isinstance(step3, str):
                result_assert.FailFlag = True
                tolog("Fail: " + step3 + '\r\n')

            else:

                check = server.webapi('get', 'dsgroup/by_must_parameters')
                checkResult = json.loads(check["text"])[0]

                tolog('Actual: ' + json.dumps(checkResult) + '\r\n')

    result_assert.result_assert()
Пример #8
0
def invalid_group_name():
    # test data
    name = ['', 't' * 31, 1]

    for n in name:
        # precondition: cancel edit
        server.webapi('post', 'dsgroup/editcancel')

        tolog('Expect: that will hint error when group name is ' + str(n) +
              '\r\n')

        step1 = server.webapi('post', 'dsgroup/editbegin', {
            "page": 1,
            "page_size": 20
        })

        if isinstance(step1, str):
            result_assert.FailFlag = True
            tolog("Fail: " + step1 + '\r\n')

        else:
            # test data
            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]

            step2 = server.webapi('post', 'dsgroup/editnext', {
                "page": 1,
                "page_size": 20,
                "token": token,
                "page_data": page_data
            })

            if isinstance(step2, str):
                result_assert.FailFlag = True
                tolog("Fail: " + step2 + '\r\n')

            else:

                step3 = server.webapi('post', 'dsgroup/editsave', {
                    "id": n,
                    "token": token,
                    "page_data": page_data
                })

        if isinstance(step3, dict):

            result_assert.FailFlag = True
            tolog("Fail: group name can be specified " + str(n) + '\r\n')

        else:
            tolog('Actual: ' + step3 + '\r\n')

    result_assert.result_assert()
Пример #9
0
def set_ftp():
    # test data
    settings = {
        'enable': [0, 1, 0, 1, 0],
        'encrypt_type': [0, 1, 2, 3, 0],
        'cmd_port': [1, 2, 65534, 65535, 1],
        'passive_start': [1024, 1025, 65533, 65534, 1024],
        'passive_end': [1025, 1026, 65534, 65535, 1025],
        'charset': ['utf8', 'ja_jp', 'ko_kr', 'zh_cn', 'zh_tw'],
        'dw_rate': [0, 512, 2048, 65535, 65536],
        'up_rate': [65536, 65535, 1024, 126, 0]
    }

    for i in range(len(settings['charset'])):
        # test data
        setting = {}

        for key in settings:

            setting[key] = settings[key][i]

        tolog('Expect: that should return 200 when body is \r\n' +
              json.dumps(setting) + '\r\n')
        result = server.webapi('post', 'protocol/ftp', setting)

        if isinstance(result, str):

            result_assert.FailFlag = True
            tolog('Fail: ' + result + '\r\n')

        else:

            check = server.webapi('get', 'protocol/ftp')
            checkResult = json.loads(check['text'])[0]

            tolog('Actual: return 200, and gets ftp protocol info are \r\n' +
                  json.dumps(checkResult) + '\r\n')

            for v in setting.values():

                if v not in checkResult.values():

                    result_assert.FailFlag = True
                    tolog('Fail: please check out the value ' + str(v) +
                          '\r\n')

    result_assert.result_assert()
Пример #10
0
def set_protocol_settings_on_storage():
    # test data
    settings = {
        'ftp': [0, 1],
        'nfs': [1, 0],
        'smb': [1, 0],
        'tm_enable': [1, 0],
        'allow_ip': [[], []]
    }

    for i in range(len(settings['ftp'])):
        # test data
        setting = {}

        for key in settings:
            setting[key] = settings[key][i]

        tolog('Expect: that should return 200 when body is \r\n' +
              json.dumps(setting) + '\r\n')
        result = server.webapi('post', 'protocol/storage/nasshare_0', setting)

        if isinstance(result, str):

            result_assert.FailFlag = True
            tolog('Fail: ' + result + '\r\n')

        else:

            check = server.webapi('get', 'protocol/ftp')
            checkResult = json.loads(check['text'])[0]

            tolog('Actual: return 200, and gets ftp protocol info are \r\n' +
                  json.dumps(checkResult) + '\r\n')

            for v in setting.values():

                if v not in checkResult.values():
                    result_assert.FailFlag = True
                    tolog('Fail: please check out the value ' + str(v) +
                          '\r\n')

    result_assert.result_assert()
Пример #11
0
def invalid_path_parameters_for_get_protocol_status_on_storage():
    # test data
    id = ['nasshare_100', 'snapshot_100', 'clone_100', 'test', 0]

    for i in range(len(id)):

        tolog('Expect: that should hint error when path parameter is ' +
              str(id[i]) + '\r\n')
        result = server.webapi('post', 'protocol/storage/' + str(id[i]))

        if isinstance(result, dict):

            result_assert.FailFlag = True
            tolog('Fail: when path parameter is ' + str(id[i]) + '\r\n')

        else:

            tolog('Actual: ' + result + '\r\n')

    result_assert.result_assert()
Пример #12
0
def invalid_path_parameters_for_reset_protocol_setting():
    # test data
    id = ['test', 0]

    for i in range(len(id)):

        tolog('Expect: that should hint error when path parameter is ' +
              str(id[i]) + '\r\n')
        result = server.webapi('post', 'protocol/reset/' + str(id[i]))

        if isinstance(result, dict):

            result_assert.FailFlag = True
            tolog('Fail: when path parameter is ' + str(id[i]) + '\r\n')

        else:

            tolog('Actual: ' + result + '\r\n')

    result_assert.result_assert()
Пример #13
0
def set_smb():
    # test data
    settings = {
        'enable': [0, 1],
        'desc': ['', 'this is the test'],
        'workgroup': ['', 'test'],
        'nt_acl': ['yes', 'no']
    }

    for i in range(len(settings['enable'])):
        # test data
        setting = {}

        for key in settings:
            setting[key] = settings[key][i]

        tolog('Expect: that should return 200 when body is \r\n' +
              json.dumps(setting) + '\r\n')
        result = server.webapi('post', 'protocol/smb', setting)

        if isinstance(result, str):

            result_assert.FailFlag = True
            tolog('Fail: ' + result + '\r\n')

        else:

            check = server.webapi('get', 'protocol/smb')
            checkResult = json.loads(check['text'])[0]

            tolog('Actual: return 200, and gets ftp protocol info are \r\n' +
                  json.dumps(checkResult) + '\r\n')

            for v in setting.values():

                if v not in checkResult.values():
                    result_assert.FailFlag = True
                    tolog('Fail: please check out the value ' + str(v) +
                          '\r\n')

    result_assert.result_assert()
Пример #14
0
def search_ds_group():

    tolog('Expect: get group that name contains t\r\n')
    result = server.webapi(
        'get', "dsgroup?page=1&page_size=10&search=grp_name+like'%t%'")

    if isinstance(result, str):

        result_assert.FailFlag = True
        tolog('Fail: ' + result + '\r\n')

    else:

        check = json.loads(result["text"])

        checkResult = ''.join(str(check)).replace('[{', '').replace(
            '}]', '').replace('{', '').replace('},', '\r\n')

        tolog('Actual: \r\n' + checkResult)

    result_assert.result_assert()
Пример #15
0
def get_ds_groups():
    # test data
    response = ['id', 'gid', 'description']

    tolog('Expect: list all of groups sort by desc gro_name ')
    result = server.webapi(
        'get', 'dsgroup?page=1&page_size=500&sort=grp_name&direct=desc')

    if isinstance(result, str):

        result_assert.FailFlag = True
        tolog('Fail: ' + result + '\r\n')

    else:

        check = json.loads(result["text"])

        checkResult = ''.join(str(check)).replace('[{', '').replace(
            '}]', '').replace('{', '').replace('},', '\r\n')

        tolog('Actual: \r\n' + checkResult)

        for group in check:

            if len(response) != len(group.keys()):

                result_assert.FailFlag = True
                tolog('Fail: please check out response parameters count\r\n')
                break

            for p in group.keys():

                if p not in response:

                    result_assert.FailFlag = True
                    tolog('Fail: please check out response parameter: ' + p +
                          '\r\n')

    result_assert.result_assert()
Пример #16
0
def set_nfs():
    # test data
    settings = {
        'enable': [0, 1, 0, 1],
        'mountd_port': [1024, 1025, 65532, 65533]
    }

    for i in range(len(settings['mountd_port'])):
        # test data
        setting = {}

        for key in settings:
            setting[key] = settings[key][i]

        tolog('Expect: that should return 200 when body is \r\n' +
              json.dumps(setting) + '\r\n')
        result = server.webapi('post', 'protocol/nfs', setting)

        if isinstance(result, str):

            result_assert.FailFlag = True
            tolog('Fail: ' + result + '\r\n')

        else:

            check = server.webapi('get', 'protocol/nfs')
            checkResult = json.loads(check['text'])[0]

            tolog('Actual: return 200, and gets ftp protocol info are \r\n' +
                  json.dumps(checkResult) + '\r\n')

            for v in setting.values():

                if v not in checkResult.values():
                    result_assert.FailFlag = True
                    tolog('Fail: please check out the value ' + str(v) +
                          '\r\n')

    result_assert.result_assert()
Пример #17
0
def get_quota_by_default_path_parameter():
    # precondition
    # precondition()

    # test data
    id = ['nasshare_0', 'clone_0']
    response = ['status', 'qt_list']

    for i in range(len(id)):

        tolog('Expect: \r\n' + str(response) + '\r\n')
        result = server.webapi('get', 'quota/' + id[i])

        if isinstance(result, str):

            result_assert.FailFlag = True
            tolog('Fail: ' + result + '\r\n')

        else:

            check = json.loads(result["text"])[0]
            tolog('Actual: \r\n' + str(check.keys()).replace('u', '') + '\r\n')

            if len(response) != len(check.keys()):

                result_assert.FailFlag = True
                tolog('Fail: please check out response parameters count\r\n')

            else:

                for key in check:

                    if key not in response:
                        
                        result_assert.FailFlag = True
                        tolog('Fail: ' + key + ' is not in response\r\n')

    result_assert.result_assert()
Пример #18
0
def invalid_parameters_for_set_smb():
    # test data
    settings = {'enable': [-1, 2, ''], 'nt_acl': [-1, 0, '']}

    for key in settings:

        for i in range(len(settings[key])):

            setting = {key: settings[key][i]}

            tolog('Expect: that should hint error when body is ' +
                  json.dumps(setting) + '\r\n')
            result = server.webapi('post', 'protocol/smb', setting)

            if isinstance(result, dict):

                result_assert.FailFlag = True
                tolog('Fail: when body is ' + json.dumps(setting) + '\r\n')

            else:
                tolog('Actual: ' + result + '\r\n')

    result_assert.result_assert()
Пример #19
0
def enable_protocol():
    # test data
    id = ['FTP', 'NFS', 'SMB']

    for i in range(len(id)):
        # precondition: disable protocol
        server.webapi('post', 'protocol/disable/' + id[i])

        tolog('Expect: ' + id[i] +
              ' protocol should be enabled when it is disabled\r\n')
        result = server.webapi('post', 'protocol/enable/' + id[i])

        if isinstance(result, str):

            result_assert.FailFlag = True
            tolog('Fail: ' + result + '\r\n')

        else:

            tolog('Actual: ' + id[i] + ' protocol is enabled\r\n')

    for i in range(len(id)):

        tolog('Expect: ' + id[i] +
              ' protocol should be enabled when it is enabled\r\n')
        result = server.webapi('post', 'protocol/enable/' + id[i])

        if isinstance(result, str):

            result_assert.FailFlag = True
            tolog('Fail: ' + result + '\r\n')

        else:

            tolog('Actual: ' + id[i] + ' protocol is enabled\r\n')

    result_assert.result_assert()
Пример #20
0
def add_group_and_verify_name_rules():
    # precondition: create DSUser

    for i in range(10):
        server.webapi('post', 'dsuser', {
            "id": 'test_group_' + str(i),
            "password": '******'
        })

    # test data
    name = ['a', '12', 'N' * 29, 't' * 30]

    for n in name:
        # precondition: cancel edit
        server.webapi('post', 'dsgroup/editcancel')

        tolog('Expect: add group ' + n + '\r\n')

        step1 = server.webapi('post', 'dsgroup/editbegin', {
            "page": 1,
            "page_size": 20
        })

        if isinstance(step1, str):
            result_assert.FailFlag = True
            tolog("Fail: " + step1 + '\r\n')

        else:
            # test data
            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]

            step2 = server.webapi('post', 'dsgroup/editnext', {
                "page": 1,
                "page_size": 20,
                "token": token,
                "page_data": page_data
            })

            if isinstance(step2, str):
                result_assert.FailFlag = True
                tolog("Fail: " + step2 + '\r\n')

            else:

                step3 = server.webapi('post', 'dsgroup/editsave', {
                    "id": n,
                    "token": token,
                    "page_data": page_data
                })

                if isinstance(step3, str):
                    result_assert.FailFlag = True
                    tolog("Fail: " + step3 + '\r\n')

                else:

                    check = server.webapi('get', 'dsgroup/' + n)
                    checkResult = json.loads(check["text"])[0]

                    tolog('Actual: ' + json.dumps(checkResult) + '\r\n')

    result_assert.result_assert()