blob: 0f13c6e3d38bc82ce74d351813c1eccd2593bce6 [file] [log] [blame]
You Wang123d6942017-03-01 12:33:02 -08001*** Settings ***
2Documentation Test suite for Instance API verification
3Suite Setup Read InputFile
4Test Template Verify Instance API functionality
5Library Collections
6Library String
7Library OperatingSystem
8Library XML
9Library RequestsLibrary
Zack Williams821c5022020-01-15 15:11:46 -070010Library CORDRobot
11Library ImportResource resources=CORDRobot
12
You Wang123d6942017-03-01 12:33:02 -080013| Variables | ../Properties/RestApiProperties.py
14
15*** Variables ***
16${USER} admin
17${PASSWORD} admin
18${PATHFILE} ${CURDIR}/data/Instance.json
19| ${IP} | ${SERVER_IP}
20| ${PORT} | ${SERVER_PORT}
21
22*** Test Cases *** TYPE LISTINDEX
23Test Add Instance-1
24 CREATE 0
25
26Test Get Instance-1
27 RETRIEVE 0
28
29Test Delete Instance-1
30 DELETE 0
31
32Test Add Instance-2
33 CREATE 1
34
35Test Get Instance-2
36 RETRIEVE 1
37
38Test Delete Instance-2
39 DELETE 1
40
41*** Keywords ***
42Read InputFile
Zack Williams821c5022020-01-15 15:11:46 -070043 ${instanceList} = CORDRobot.jsonToList ${PATHFILE} InstanceInfo
You Wang123d6942017-03-01 12:33:02 -080044 Set Suite Variable ${iList} ${instanceList}
45 ${image}= Catenate SEPARATOR= http:// ${IP} : ${PORT} /api/core/images/1/
46 Set Suite Variable ${image} ${image}
47 ${slice}= Catenate SEPARATOR= http:// ${IP} : ${PORT} /api/core/slices/1/
48 Set Suite Variable ${slice} ${slice}
49 ${deployment}= Catenate SEPARATOR= http:// ${IP} : ${PORT} /api/core/deployments/1/
50 Set Suite Variable ${deployment} ${deployment}
51 ${node}= Catenate SEPARATOR= http:// ${IP} : ${PORT} /api/core/nodes/1/
52 Set Suite Variable ${node} ${node}
53 ${creator}= Catenate SEPARATOR= http:// ${IP} : ${PORT} /api/core/users/1/
54 Set Suite Variable ${creator} ${creator}
55
56Verify Instance API functionality
57 [Arguments] ${type} ${listIndex}
58 Run Keyword If "${type}" == "CREATE" Test Post Instances ${listIndex}
59 Run Keyword If "${type}" == "RETRIEVE" Test Get Instances ${listIndex}
60 Run Keyword If "${type}" == "DELETE" Test Delete Instances ${listIndex}
61
62Test Post Instances
63 [Arguments] ${listIndex}
64 ${instanceList} = Get Variable Value ${iList}
Zack Williams821c5022020-01-15 15:11:46 -070065 ${instanceDict}= CORDRobot.listToDict ${instanceList} ${listIndex}
You Wang123d6942017-03-01 12:33:02 -080066 ${image}= Get Variable Value ${image}
Zack Williams821c5022020-01-15 15:11:46 -070067 ${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} image ${image}
You Wang123d6942017-03-01 12:33:02 -080068 ${slice}= Get Variable Value ${slice}
Zack Williams821c5022020-01-15 15:11:46 -070069 ${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} slice ${slice}
You Wang123d6942017-03-01 12:33:02 -080070 ${deployment}= Get Variable Value ${deployment}
Zack Williams821c5022020-01-15 15:11:46 -070071 ${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} deployment ${deployment}
You Wang123d6942017-03-01 12:33:02 -080072 ${node}= Get Variable Value ${node}
Zack Williams821c5022020-01-15 15:11:46 -070073 ${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} node ${node}
You Wang123d6942017-03-01 12:33:02 -080074 ${creator}= Get Variable Value ${creator}
Zack Williams821c5022020-01-15 15:11:46 -070075 ${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} creator ${creator}
76 ${api_result}= CORDRobot.ApiPost CORE_INSTANCES ${instanceDict}
You Wang123d6942017-03-01 12:33:02 -080077 Should Be True ${api_result}
78
79Test Get Instances
80 [Arguments] ${listIndex}
Zack Williams821c5022020-01-15 15:11:46 -070081 ${json_result}= CORDRobot.ApiGet CORE_INSTANCES
You Wang123d6942017-03-01 12:33:02 -080082 Log ${json_result}
83 ${instanceList}= Get Variable Value ${iList}
Zack Williams821c5022020-01-15 15:11:46 -070084 ${instanceDict}= CORDRobot.listToDict ${instanceList} ${listIndex}
You Wang123d6942017-03-01 12:33:02 -080085 ${image}= Get Variable Value ${image}
Zack Williams821c5022020-01-15 15:11:46 -070086 ${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} image ${image}
You Wang123d6942017-03-01 12:33:02 -080087 ${slice}= Get Variable Value ${slice}
Zack Williams821c5022020-01-15 15:11:46 -070088 ${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} slice ${slice}
You Wang123d6942017-03-01 12:33:02 -080089 ${deployment}= Get Variable Value ${deployment}
Zack Williams821c5022020-01-15 15:11:46 -070090 ${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} deployment ${deployment}
You Wang123d6942017-03-01 12:33:02 -080091 ${node}= Get Variable Value ${node}
Zack Williams821c5022020-01-15 15:11:46 -070092 ${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} node ${node}
You Wang123d6942017-03-01 12:33:02 -080093 ${creator}= Get Variable Value ${creator}
Zack Williams821c5022020-01-15 15:11:46 -070094 ${instanceDict}= CORDRobot.setFieldValueInDict ${instanceDict} creator ${creator}
95 ${instanceName}= CORDRobot.getFieldValueFromDict ${instanceDict} name
96 ${getJsonDict}= CORDRobot.getDictFromListOfDict ${json_result} name ${instanceName}
97 ${test_result}= CORDRobot.compare_dict ${instanceDict} ${getJsonDict}
You Wang123d6942017-03-01 12:33:02 -080098 Should Be True ${json_result}
99
100Test Delete Instances
101 [Arguments] ${listIndex}
Zack Williams821c5022020-01-15 15:11:46 -0700102 ${json_getresult}= CORDRobot.ApiGet CORE_INSTANCES
You Wang123d6942017-03-01 12:33:02 -0800103 ${instanceList}= Get Variable Value ${iList}
Zack Williams821c5022020-01-15 15:11:46 -0700104 ${instanceDict}= CORDRobot.listToDict ${iList} ${listIndex}
105 ${instanceName}= CORDRobot.getFieldValueFromDict ${instanceDict} name
You Wang123d6942017-03-01 12:33:02 -0800106 Log ${instanceName}
Zack Williams821c5022020-01-15 15:11:46 -0700107 ${getInstanceDict}= CORDRobot.getDictFromListofDict ${json_getresult} name ${instanceName}
You Wang123d6942017-03-01 12:33:02 -0800108 Log ${getInstanceDict}
Zack Williams821c5022020-01-15 15:11:46 -0700109 ${instanceID}= CORDRobot.getFieldValueFromDict ${getInstanceDict} id
You Wang123d6942017-03-01 12:33:02 -0800110 Log ${instanceID}
Zack Williams821c5022020-01-15 15:11:46 -0700111 ${test_result}= CORDRobot.ApiDelete CORE_INSTANCES ${instanceID}
You Wang123d6942017-03-01 12:33:02 -0800112 Should be True ${test_result}