def test_instance_clone(uri, headers, cloned_vmname, resourcepool, count, region, tenant, project, hypervisorType, name, ostype, cpu, memory, network, subnet, ipaddress):
    instance_id = get_instance_id(uri, headers, cloned_vmname, resourcepool)
    instance_clone_url = create_instance_url + "/" + str(instance_id) + "/clone"
    region_id = get_datacenterid(uri, headers, region)
    resourcepool_id = get_resourcepoolid(uri, headers, resourcepool)
    tenant_id = get_tenant_id(uri, headers, tenant)
    project_id = get_project_id(uri, headers, project)
    disk = get_instance_disks(uri, headers, cloned_vmname, resourcepool)
    nic = get_intance_nics(uri, headers, cloned_vmname, resourcepool)
    network_id = get_network_id(uri, headers, network)
    subnet_id = get_subnet_id(uri, headers, network, subnet)
    ip_id = get_subnetip_id(uri, headers, network, subnet, ipaddress)
    object_id = get_object_id(uri,headers, resourcepool,network)
    instance_clone_param =[{
        "count" : count,
        "regionId" : region_id,
        "resourcePoolId" : resourcepool_id,
        "vdcId" : tenant_id,
        "projectId" : project_id,
        "hypervisorType" : hypervisorType,
        "name" : name,
        "description" : "",
        "imageId" : "" ,
        "osType" : ostype,
        "cpu" : cpu,
        "memory" : memory,
        "osDatastore" : "",
        "disks" : [{
            "os" : disk["os"],
            "size" : disk["size"],
            "id" : None,
            "name" : disk["name"],
            "diskId" : None,
            "diskName" : disk["diskName"],
            "instanceId" : None,
            "type" : disk["type"],
            "configs" : {
                "datastore" : ""
            }
        }],
        "nics" : [{
            "id" : "",
            "instanceId" : "",
            "networkId" : network_id,
            "subnetId" : subnet_id,
            "ipId" : ip_id,
            "ip" : ipaddress,
            "targetId": object_id,
            "type" : nic["type"],
        }]
  }]

    instance_clone_response = requests.post(url = uri + instance_clone_url,
                                            headers = headers,
                                            data = json.dumps(instance_clone_param)).json()
    allure.attach("请求响应code", str(instance_clone_response['status']))
    allure.attach("请求响应结果", str(instance_clone_response))
    my_log().info(instance_clone_response)
    assert instance_clone_response["status"] == 200
    time.sleep(300)
def get_snapshot_id(uri, headers, vmname, resourcepool):
    instance_id = get_instance_id(uri, headers, vmname, resourcepool)
    get_snapshot_url = create_instance_url + "/" + str(instance_id) + "/snapshots"
    get_snapshot_response = requests.get(url = uri + get_snapshot_url,
                                         headers = headers).json()
 #   if get_snapshot_response["name"] == snapshotName:
    return get_snapshot_response["data"][0]["id"]
def test_instance_migrate(uri, headers, vmname, resourcepool, hostname, storename):
    instance_id = get_instance_id(uri, headers, vmname, resourcepool)
    instance_migrate_url = create_instance_url + "/" + str(instance_id) + "/migrate"
    instance_migrateHost_data = {
        "instanceId": instance_id,
        "migrateType": "MigrateHost",
        "hostName": hostname
    }
    instance_migrateStore_data = {
         "instanceId": instance_id,
         "migrateType": "MigrateStore",
         "storeName": storename
    }
    instance_migrateHost_response = requests.put(url = uri + instance_migrate_url,
                                                 headers = headers,
                                                 data = json.dumps(instance_migrateHost_data)).json()
    allure.attach("请求响应code", str(instance_migrateHost_response['status']))
    allure.attach("请求响应结果", str(instance_migrateHost_response))
    my_log().info(instance_migrateHost_response)
    assert instance_migrateHost_response["status"] == 200

    time.sleep(30)

    instance_migrateStore_response = requests.put(url = uri + instance_migrate_url,
                                                  headers = headers,
                                                  data = json.dumps(instance_migrateStore_data)).json()
    allure.attach("请求响应code", str(instance_migrateStore_response['status']))
    allure.attach("请求响应结果", str(instance_migrateStore_response))
    my_log().info(instance_migrateStore_response)
    assert instance_migrateStore_response["status"] == 200
def get_instance_nicId(uri, headers, instance_name, resourcepool, ipaddress):
    instance_id = get_instance_id(uri, headers, instance_name, resourcepool)
    get_instance_nics_url = create_instance_url + "/" + str(instance_id) + "/nics"
    get_instance_nics_response = requests.get(url=uri + get_instance_nics_url,
                                              headers = headers).json()
    for nic in get_instance_nics_response["data"]:
        if nic["ip"] == ipaddress:
            return nic["id"]
def test_instance_delete(uri, headers, vmname, resourcepool):
    instance_id = get_instance_id(uri, headers, vmname, resourcepool)
    instance_delete_url = create_instance_url + "/" + str(instance_id)
    instance_delete_response = requests.delete(url= uri + instance_delete_url,
                                               headers = headers).json()
    allure.attach("请求响应code", str(instance_delete_response['status']))
    allure.attach("请求响应结果", str(instance_delete_response))
    my_log().info(instance_delete_response)
    assert instance_delete_response["status"] == 200
    time.sleep(300)
def test_instance_delete_nic(uri, headers, vmname, resourcepool, ipaddress):
    instance_id = get_instance_id(uri, headers, vmname, resourcepool)
    nic_id = get_instance_nicId(uri, headers, vmname, resourcepool, ipaddress)
    instance_deleteNic_url = create_instance_url + "/" + str(instance_id) + "/nics/" + str(nic_id)
    instance_deleteNic_response = requests.delete(url=uri + instance_deleteNic_url,
                                                  headers = headers).json()
    allure.attach("请求响应code", str(instance_deleteNic_response['status']))
    allure.attach("请求响应结果", str(instance_deleteNic_response))
    my_log().info(instance_deleteNic_response)
    assert instance_deleteNic_response["status"] == 200
def test_instance_resetOs(uri, headers, vmname, resourcepool):
    instance_id = get_instance_id(uri, headers, vmname, resourcepool)
    instance_resetOs_url = create_instance_url + "/" + str(instance_id) + "/resetOs"
    instance_resetOs_response = requests.put(url = uri + instance_resetOs_url,
                                             headers = headers).json()
    allure.attach("请求响应code", str(instance_resetOs_response['status']))
    allure.attach("请求响应结果", str(instance_resetOs_response))
    my_log().info(instance_resetOs_response)
    assert instance_resetOs_response["status"] == 200
    #重置虚拟机后等待5min,需要等待虚拟机创建完成
    time.sleep(300)
def test_instance_sync(uri, headers, vmname, resourcepool):
    instance_id = get_instance_id(uri, headers, vmname, resourcepool)
    instance_sync_url = create_instance_url + "/sync"
    instance_sync_data = [instance_id]
    instance_sync_response = requests.post(url = uri + instance_sync_url,
                                          headers = headers,
                                          data = json.dumps(instance_sync_data)).json()
    allure.attach("请求响应code", str(instance_sync_response['status']))
    allure.attach("请求响应结果", str(instance_sync_response))
    my_log().info(instance_sync_response)
    assert instance_sync_response["status"] == 200
def test_instance_resume(uri, headers, vmname, resourcepool):
    instance_id = get_instance_id(uri, headers, vmname, resourcepool)
    instance_resume_url = create_instance_url +"/" + str(instance_id) + "/resume"
    instance_resume_response =  requests.post(url = uri + instance_resume_url,
                                               headers = headers).json()
    allure.attach("请求响应code", str(instance_resume_response['status']))
    allure.attach("请求响应结果", str(instance_resume_response))
    my_log().info(instance_resume_response)
    assert  instance_resume_response["status"] == 200
    #虚拟机恢复后等待15s
    time.sleep(120)
Esempio n. 10
0
def test_instance_deleteSnapshot(uri, headers):
    vmname = instance_snapshot_data[0][0]
    resourcepool = instance_snapshot_data[0][1]
    instance_id = get_instance_id(uri, headers, vmname, resourcepool)
    snapshot_id = get_snapshot_id(uri, headers, vmname,resourcepool)
    instance_deleteSnapshot_url = create_instance_url + "/" + str(instance_id) + "/snapshots/" + str(snapshot_id)
    instance_deleteSnapshot_response = requests.delete(url = uri + instance_deleteSnapshot_url,
                                                    headers = headers).json()
    allure.attach("请求响应code", str(instance_deleteSnapshot_response['status']))
    allure.attach("请求响应结果", str(instance_deleteSnapshot_response))
    my_log().info(instance_deleteSnapshot_response)
    assert instance_deleteSnapshot_response["status"] == 200
Esempio n. 11
0
def test_instance_shutdownOS(uri, headers, vmname, resourcepool):
    instance_id = get_instance_id(uri, headers, vmname, resourcepool)
    instance_shutdownOS_url = create_instance_url +"/" + str(instance_id) + "/shutdownOS"
    instance_shutdownOS_data = {
        "instanceId": instance_id
    }
    instance_shutdownOS_response = requests.post(url = uri + instance_shutdownOS_url,
                                              headers = headers,
                                              data = json.dumps(instance_shutdownOS_data)).json()
    allure.attach("请求响应code", str(instance_shutdownOS_response['status']))
    allure.attach("请求响应结果", str(instance_shutdownOS_response))
    my_log().info(instance_shutdownOS_response)
    assert instance_shutdownOS_response["status"] == 200

    #虚拟机软重启后等待120s
    time.sleep(120)
Esempio n. 12
0
def test_instance_configCpuAndMemory(uri, headers, cpu, memory, name, resourcepool):
    instance_id = get_instance_id(uri, headers, name, resourcepool )
    vmName =  get_instance_vmName(uri, headers, name, resourcepool)
    configCpuAndMemory_url = create_instance_url + "/" + str(instance_id) +"/configCpuAndMemory"
    configCpuAndMemory_data = {
        "cpu": cpu,
        "memory": memory,
        "vmName": vmName,
        "name": name
    }
    configCpuAndMemory_response = requests.put(url= uri + configCpuAndMemory_url,
                                               headers = headers,
                                               data=json.dumps(configCpuAndMemory_data)).json()
    allure.attach("请求响应code", str(configCpuAndMemory_response['status']))
    allure.attach("请求响应结果", str(configCpuAndMemory_response))
    my_log().info(configCpuAndMemory_response)
    assert configCpuAndMemory_response["status"] == 200
Esempio n. 13
0
def test_instance_powerOff(uri, headers, vmname, resourcepool):
    instance_id = get_instance_id(uri, headers, vmname, resourcepool)
    instance_powerOff_url = create_instance_url + "/" + str(instance_id) + "/powerOff"

    instance_powerOff_data = {
        "instanceId": instance_id
    }

    instance_powerOff_response = requests.post(url=uri + instance_powerOff_url,
                                               headers=headers,
                                               data=json.dumps(instance_powerOff_data)).json()
    allure.attach("请求响应code", str(instance_powerOff_response['status']))
    allure.attach("请求响应结果", str(instance_powerOff_response))
    my_log().info(instance_powerOff_response)
    assert instance_powerOff_response["status"] == 200

    # 虚拟机关机后等待60s再开机
    time.sleep(60)
Esempio n. 14
0
def test_instance_createSnapshot(uri, headers, vmname, resourcepool, name, desc, memory, quiesce):
    instance_id = get_instance_id(uri, headers, vmname, resourcepool)
    instance_createSnapshot_url = create_instance_url + "/" + str(instance_id) + "/snapshots"
    instance_createSnapshot_data = {
        "instanceId": instance_id,
        "name": name,
        "desc": desc,
        "memory": memory,
        "quiesce": quiesce
    }
    instance_createSnapshot_response = requests.post(url = uri + instance_createSnapshot_url,
                                               headers = headers,
                                               data = json.dumps(instance_createSnapshot_data)).json()
    allure.attach("请求响应code", str(instance_createSnapshot_response['status']))
    allure.attach("请求响应结果", str(instance_createSnapshot_response))
    my_log().info(instance_createSnapshot_response)
    assert instance_createSnapshot_response["status"] == 200
    #创建快照后等待2min
    time.sleep(120)
Esempio n. 15
0
def test_instance_disks(uri, headers, vmname, resourcepool, name, os, size, type, datastore):
    instance_id = get_instance_id(uri, headers, vmname, resourcepool)
    instance_disks_url = create_instance_url + "/" + str(instance_id) + "/disks"
    instance_addDisk_data = {
        "name": name,
        "os": os,
        "size": size,
        "type": type,
        "configs":{
            "datastore": datastore
        }
    }

    instance_addDisk_response = requests.post(url = uri + instance_disks_url,
                                                  headers = headers,
                                                  data = json.dumps(instance_addDisk_data)).json()
    allure.attach("请求响应code", str(instance_addDisk_response['status']))
    allure.attach("请求响应结果", str(instance_addDisk_response))
    my_log().info(instance_addDisk_response)

    assert instance_addDisk_response["status"] == 200
Esempio n. 16
0
def test_instance_nic(uri, headers, vmname, resourcepool, resourcepoolType, network, subnet, ipaddress, type):
    instance_id = get_instance_id(uri, headers, vmname, resourcepool)
    networkId = get_network_id(uri, headers, network)
    subnetId = get_subnet_id(uri, headers,network,subnet)
    ipId = get_subnetip_id(uri, headers, network, subnet, ipaddress)
    targetId = get_object_id(uri, headers, resourcepool, network)
    instance_nic_url = create_instance_url + "/" + str(instance_id) + "/nics"
    if resourcepoolType == "vmware":
        instance_addNetwork_data = {
            "networkId": networkId,
            "subnetId": subnetId,
            "ipId": ipId,
            "ip": ipaddress,
            "targetId": targetId,
            "type": type
        }
        instance_addNetwork_response = requests.post(url = uri + instance_nic_url,
                                                     headers = headers,
                                                     data = json.dumps(instance_addNetwork_data)).json()
        allure.attach("请求响应code", str(instance_addNetwork_response['status']))
        allure.attach("请求响应结果", str(instance_addNetwork_response))
        my_log().info(instance_addNetwork_response)
        assert instance_addNetwork_response["status"] == 200
    elif resourcepoolType == "openstack":
        instance_addNetwork_data = {
            "networkId": networkId,
            "subnetId": subnetId,
            "ipId": ipId,
            "ip": ipaddress
        }
        instance_addNetwork_response = requests.post(url=uri + instance_nic_url,
                                                     headers=headers,
                                                     data=json.dumps(instance_addNetwork_data)).json()
        allure.attach("请求响应code", str(instance_addNetwork_response['status']))
        allure.attach("请求响应结果", str(instance_addNetwork_response))
        my_log().info(instance_addNetwork_response)
        assert instance_addNetwork_response["status"] == 200