Chameleon API Tests
Change-Id: I8002eb19add6e296f034adcdf7801d2ee54744cf
diff --git a/src/test/cord-api/Framework/restApi.py b/src/test/cord-api/Framework/restApi.py
index 5c22097..a14d196 100644
--- a/src/test/cord-api/Framework/restApi.py
+++ b/src/test/cord-api/Framework/restApi.py
@@ -90,11 +90,23 @@
data = json.dumps(jsonData)
print "url, data..", url, data
resp = requests.post(url, data=data, headers=self.jsonHeader, auth=(self.user, self.password))
- passed = self.checkResult(resp, requests.codes.created)
+ print "requests.codes.....",requests.codes.created
+ passed = self.checkResult(resp, requests.codes.created) or self.checkResult(resp, requests.codes.ok)
return passed
def ApiGet(self, key, urlSuffix=""):
url = self.getURL(key) + str(urlSuffix)
+ print "get url...",url
+ resp = requests.get(url, auth=(self.user, self.password))
+ passed = self.checkResult(resp, requests.codes.ok)
+ if not passed:
+ return None
+ else:
+ return resp.json()
+
+ def ApiChameleonGet(self, key, urlSuffix=""):
+ url = self.getURL(key) + "/" + str(urlSuffix)
+ print "get url...",url
resp = requests.get(url, auth=(self.user, self.password))
passed = self.checkResult(resp, requests.codes.ok)
if not passed:
@@ -110,11 +122,29 @@
passed = self.checkResult(resp, requests.codes.ok)
return passed
+ def ApiChameleonPut(self, key, jsonData, urlSuffix=""):
+ print "urlSuffix....",type(urlSuffix)
+ url = self.getURL(key) + "/" + str(urlSuffix)
+ print "url", url
+ data = json.dumps(jsonData)
+ resp = requests.put(url, data=data, headers=self.jsonHeader, auth=(self.user, self.password))
+ passed = self.checkResult(resp, requests.codes.ok)
+ return passed
+
def ApiDelete(self, key, urlSuffix=""):
url = self.getURL(key) + str(urlSuffix)
print "url",url
resp = requests.delete(url, auth=(self.user, self.password))
- passed = self.checkResult(resp, requests.codes.no_content)
+ #passed = self.checkResult(resp, requests.codes.no_content)
+ passed = self.checkResult(resp, requests.codes.created) or self.checkResult(resp, requests.codes.ok)
+ return passed
+
+ def ApiChameleonDelete(self, key, urlSuffix=""):
+ url = self.getURL(key) + "/" + str(urlSuffix)
+ print "url",url
+ resp = requests.delete(url, auth=(self.user, self.password))
+ #passed = self.checkResult(resp, requests.codes.no_content)
+ passed = self.checkResult(resp, requests.codes.created) or self.checkResult(resp, requests.codes.ok)
return passed
#test
@@ -142,30 +172,40 @@
#jsonGetData = test.ApiGet(key)
#jsonResponse = test.ApiPost(key,{"identity":{"name":"My House 22"}})
#jsonResponse = test.ApiPost(key,{"firstname":"Test002","lastname":"User002","email":"test002@onlab.us","password":"TestUser002","site": "http://localhost:8000/api/core/sites/1/"})
-#jsonResponse = test.ApiDelete(key,15)
+key = "VOLT_TENANT"
+key = "VOLT_SUBSCRIBER"
+#jsonResponse = test.ApiDelete(key,204)
#jsonResponse = test.ApiPut(key,{"firstname":"Test002","lastname":"User002","email":"test002update@onlab.us","password":"TestUser002","site": "http://localhost:8000/api/core/sites/1/"},14)
#jsonResponse = test.ApiPost(key2,{"username":"test002update@onlab.us","password":"TestUser002"})
#jsonResponse = test.ApiPost(key2,{"username":"padmin@vicci.org","password":"letmein"})
#jsonResponse = test.ApiPut(key,{"username":"testuser","password":"TestUser001"},"9")
-#key = "UTILS_SYNCHRONIZER"
-key = "CORE_SANITY_INSTANCES"
-key1 = "CORE_SANITY_SLICES"
-key2 = "CORE_SLICES"
+#key = "CORE_INSTANCES"
+#key1 = "CORE_SANITY_SLICES"
+#key2 = "CORE_SLICES"
#input_dict = { "s_tag" : "111", "c_tag" : "222", "subscriber" : 23}
input_dict = {
- "name": "test-instance",
- "image": 1,
- "slice": 1,
- "deployment": 1,
- "node": 1
- }
-input_dict1 = { "name" : "mysite_Test1", "site" : 1 , "creator" : 1}
-jsonResponse = test.ApiPost(key1,input_dict1)
-#jsonGetData = test.ApiGet(key)
-print "========="
+ "s_tag" : 117,
+ "c_tag" : 227
+ }
+
+#input_dict1 = { "name" : "mysite_Test1", "site" : 1 , "creator" : 1}
+input_dict2 = {
+
+ "cdn_enable": "true",
+ "uplink_speed": 1000000000,
+ "downlink_speed": 1000000000,
+ "enable_uverse": "true",
+ "status": "enabled",
+ "service_specific_id": "100",
+ "name": "My House"
+ }
+#jsonResponse = test.ApiPost(key,input_dict)
+#jsonResponse = test.ApiChameleonPut(key,input_dict,12)
+#jsonGetData = test.ApiGet(key,"/12")
+#print "========="
#print jsonGetData
#jsonEdit = test.ApiPut(key,{"c_tag" : "666","s_tag" : "123"},"30")
-#jsonO = test.ApiDelete(key2,"1")
+jsonO = test.ApiDelete(key,"/7")
#jsonResponse = test.ApiPut(key,{"identity":{"name":"My House 22"}},"71")
#jsonResponse = test.ApiPost(key,{"name":"test-2"})
#jsonResponse = test.ApiPut(key,{"name":"test1-changed"},"9")
diff --git a/src/test/cord-api/Framework/utils/utils.py b/src/test/cord-api/Framework/utils/utils.py
index fb1a797..832bee2 100644
--- a/src/test/cord-api/Framework/utils/utils.py
+++ b/src/test/cord-api/Framework/utils/utils.py
@@ -128,10 +128,12 @@
return_dict = {}
result = ''
for data in getJsonDataList:
+ print "data..",data
return_dict = {}
found = False
input_keys = data.keys()
for key in input_keys:
+ print "key in input_keys...",key
if key == searchKey and str(data[key]) == str(searchKeyValue):
found = True
return_dict = data
@@ -220,19 +222,251 @@
'''
#Test
dict_list = {
- "humanReadableName": "cordSubscriber-17",
- "id": 17,
- "features": {
- "uplink_speed": 1000000000,
- "downlink_speed": 1000000000,
- "status": "enabled"
+[
+ {
+ "humanReadableName": "mysite_vsg-1",
+ "validators": {
+ "policed": [],
+ "creator": [],
+ "ip": [],
+ "image": [
+ "notBlank"
+ ],
+ "backend_register": [
+ "notBlank"
+ ],
+ "flavor": [
+ "notBlank"
+ ],
+ "backend_status": [
+ "notBlank"
+ ],
+ "id": [],
+ "instance_name": [],
+ "slice": [
+ "notBlank"
+ ],
+ "backend_need_delete": [],
+ "enacted": [],
+ "no_sync": [],
+ "node": [
+ "notBlank"
+ ],
+ "userData": [],
+ "updated": [
+ "notBlank"
+ ],
+ "parent": [],
+ "deleted": [],
+ "lazy_blocked": [],
+ "deployment": [
+ "notBlank"
+ ],
+ "backend_need_reap": [],
+ "instance_uuid": [],
+ "numberCores": [
+ "notBlank"
+ ],
+ "name": [
+ "notBlank"
+ ],
+ "created": [],
+ "write_protect": [],
+ "isolation": [
+ "notBlank"
+ ],
+ "no_policy": [],
+ "instance_id": [],
+ "volumes": []
},
- "identity": {
- "account_num": "20",
- "name": "My House"
+ "id": 1,
+ "created": "2017-03-13T22:23:48.805109Z",
+ "updated": "2017-03-13T22:38:06.084074Z",
+ "enacted": "2017-03-13T22:38:43.894253Z",
+ "policed": "2017-03-13T22:38:08.086489Z",
+ "backend_register": "{\"next_run\": 0, \"last_success\": 1489444729.019414, \"exponent\": 0}",
+ "backend_status": "1 - OK",
+ "instance_id": "instance-00000001",
+ "instance_uuid": "a46d716f-e82c-4088-a042-72c3a97ed3ff",
+ "name": "mysite_vsg",
+ "instance_name": "mysite_vsg-1",
+ "ip": "10.1.0.17",
+ "image": "http://ms1333.utah.cloudlab.us:8080/api/core/images/1/",
+ "creator": "http://ms1333.utah.cloudlab.us:8080/api/core/users/1/",
+ "slice": "http://ms1333.utah.cloudlab.us:8080/api/core/slices/2/",
+ "deployment": "http://ms1333.utah.cloudlab.us:8080/api/core/deployments/1/",
+ "node": "http://ms1333.utah.cloudlab.us:8080/api/core/nodes/1/",
+ "numberCores": 0,
+ "flavor": "http://ms1333.utah.cloudlab.us:8080/api/core/flavors/1/",
+ "isolation": "vm",
+ "volumes": "/etc/dnsmasq.d,/etc/ufw",
+ "networks": [
+ "http://ms1333.utah.cloudlab.us:8080/api/core/networks/1/",
+ "http://ms1333.utah.cloudlab.us:8080/api/core/networks/2/"
+ ]
+ },
+ {
+ "humanReadableName": "mysite_exampleservice-2",
+ "validators": {
+ "policed": [],
+ "creator": [],
+ "ip": [],
+ "image": [
+ "notBlank"
+ ],
+ "backend_register": [
+ "notBlank"
+ ],
+ "flavor": [
+ "notBlank"
+ ],
+ "backend_status": [
+ "notBlank"
+ ],
+ "id": [],
+ "instance_name": [],
+ "slice": [
+ "notBlank"
+ ],
+ "backend_need_delete": [],
+ "enacted": [],
+ "no_sync": [],
+ "node": [
+ "notBlank"
+ ],
+ "userData": [],
+ "updated": [
+ "notBlank"
+ ],
+ "parent": [],
+ "deleted": [],
+ "lazy_blocked": [],
+ "deployment": [
+ "notBlank"
+ ],
+ "backend_need_reap": [],
+ "instance_uuid": [],
+ "numberCores": [
+ "notBlank"
+ ],
+ "name": [
+ "notBlank"
+ ],
+ "created": [],
+ "write_protect": [],
+ "isolation": [
+ "notBlank"
+ ],
+ "no_policy": [],
+ "instance_id": [],
+ "volumes": []
},
- "related": {}
+ "id": 2,
+ "created": "2017-03-13T22:38:03.872267Z",
+ "updated": "2017-03-13T22:38:06.047153Z",
+ "enacted": "2017-03-13T22:39:07.002800Z",
+ "policed": "2017-03-13T22:38:07.895147Z",
+ "backend_register": "{\"next_run\": 0, \"last_success\": 1489444774.726988, \"exponent\": 0}",
+ "backend_status": "1 - OK",
+ "instance_id": "instance-00000002",
+ "instance_uuid": "cb219739-0d11-48a2-9f19-1e2aba1f004e",
+ "name": "mysite_exampleservice",
+ "instance_name": "mysite_exampleservice-2",
+ "ip": "10.1.0.17",
+ "image": "http://ms1333.utah.cloudlab.us:8080/api/core/images/3/",
+ "creator": "http://ms1333.utah.cloudlab.us:8080/api/core/users/1/",
+ "slice": "http://ms1333.utah.cloudlab.us:8080/api/core/slices/4/",
+ "deployment": "http://ms1333.utah.cloudlab.us:8080/api/core/deployments/1/",
+ "node": "http://ms1333.utah.cloudlab.us:8080/api/core/nodes/1/",
+ "numberCores": 0,
+ "flavor": "http://ms1333.utah.cloudlab.us:8080/api/core/flavors/1/",
+ "isolation": "vm",
+ "networks": [
+ "http://ms1333.utah.cloudlab.us:8080/api/core/networks/3/",
+ "http://ms1333.utah.cloudlab.us:8080/api/core/networks/1/",
+ "http://ms1333.utah.cloudlab.us:8080/api/core/networks/4/"
+ ]
+ },
+ {
+ "humanReadableName": "mysite_vsg-3",
+ "validators": {
+ "policed": [],
+ "creator": [],
+ "ip": [],
+ "image": [
+ "notBlank"
+ ],
+ "backend_register": [
+ "notBlank"
+ ],
+ "flavor": [
+ "notBlank"
+ ],
+ "backend_status": [
+ "notBlank"
+ ],
+ "id": [],
+ "instance_name": [],
+ "slice": [
+ "notBlank"
+ ],
+ "backend_need_delete": [],
+ "enacted": [],
+ "no_sync": [],
+ "node": [
+ "notBlank"
+ ],
+ "userData": [],
+ "updated": [
+ "notBlank"
+ ],
+ "parent": [],
+ "deleted": [],
+ "lazy_blocked": [],
+ "deployment": [
+ "notBlank"
+ ],
+ "backend_need_reap": [],
+ "instance_uuid": [],
+ "numberCores": [
+ "notBlank"
+ ],
+ "name": [
+ "notBlank"
+ ],
+ "created": [],
+ "write_protect": [],
+ "isolation": [
+ "notBlank"
+ ],
+ "no_policy": [],
+ "instance_id": [],
+ "volumes": []
+ },
+ "id": 3,
+ "created": "2017-03-17T23:15:13.556863Z",
+ "updated": "2017-03-17T23:15:13.555271Z",
+ "enacted": "2017-03-17T23:15:24.376854Z",
+ "policed": "2017-03-17T23:15:14.991037Z",
+ "backend_register": "{\"next_run\": 0, \"last_success\": 1489792538.996003, \"exponent\": 0}",
+ "backend_status": "1 - OK",
+ "instance_id": "instance-00000003",
+ "instance_uuid": "ec5ece6d-bebe-4165-98c5-3a026a41c63c",
+ "name": "mysite_vsg",
+ "instance_name": "mysite_vsg-3",
+ "ip": "10.1.0.17",
+ "image": "http://ms1333.utah.cloudlab.us:8080/api/core/images/1/",
+ "creator": "http://ms1333.utah.cloudlab.us:8080/api/core/users/1/",
+ "slice": "http://ms1333.utah.cloudlab.us:8080/api/core/slices/2/",
+ "deployment": "http://ms1333.utah.cloudlab.us:8080/api/core/deployments/1/",
+ "node": "http://ms1333.utah.cloudlab.us:8080/api/core/nodes/1/",
+ "numberCores": 0,
+ "flavor": "http://ms1333.utah.cloudlab.us:8080/api/core/flavors/1/",
+ "isolation": "vm",
+ "volumes": "/etc/dnsmasq.d,/etc/ufw"
}
+ ]
+ }
input_dict = {
"s_tag" : "111",
"c_tag" : "222",
@@ -243,10 +477,10 @@
#data=test.jsonToList("Subscribers.json","SubscriberInfo")
#print test.jsonToList("Subscribers.json","SubscriberInfo")
#print "index 1...",test.listToDict(data,1)
-#result = test.getDictFromListOfDict(dict_list,"email",21)
+result = test.getDictFromListOfDict(dict_list,"instance_name","mysite_vsg-3")
#result = test.getFieldValueFromDict(dict_list,"id")
#result = test.getDictFromListOfDict(dict_list,"account_num",21)
#result = test.setFieldValueInDict(input_dict,"subscriber",new_value)
-result = test.getAllFieldValues(list1,"instance_name")
+#result = test.getAllFieldValues(list1,"instance_name")
print "finalllllll result....", result
'''
diff --git a/src/test/cord-api/Properties/RestApiProperties.py b/src/test/cord-api/Properties/RestApiProperties.py
index fc96dc5..f3f7418 100644
--- a/src/test/cord-api/Properties/RestApiProperties.py
+++ b/src/test/cord-api/Properties/RestApiProperties.py
@@ -1,22 +1,34 @@
#!/usr/bin/env python
-SERVER_IP = '10.128.100.9'
+SERVER_IP = 'ms0903.utah.cloudlab.us'
SERVER_PORT = '8080'
-USER = 'padmin@vicci.org'
-PASSWD = 'letmein'
+USER = 'xosadmin@opencord.org'
+PASSWD = 'AwHMOBEa9hhDMH4SuSUN'
+VOLT_SUBSCRIBER = '/xosapi/v1/rcord/cordsubscriberroots'
+VOLT_TENANT = '/xosapi/v1/volt/volttenants'
TENANT_SUBSCRIBER = '/api/tenant/cord/subscriber/'
TENANT_VOLT = '/api/tenant/cord/volt/'
UTILS_SYNCHRONIZER = '/api/utility/synchronizer/'
UTILS_LOGIN = '/api/utility/login/'
CORE_USERS = '/api/core/users/'
+CH_CORE_USERS = '/xosapi/v1/core/users'
CORE_SERVICES = '/api/core/services/'
+CH_CORE_SERVICES = '/xosapi/v1/core/services'
CORE_INSTANCES = '/api/core/instances/'
+CH_CORE_INSTANCES = '/xosapi/v1/core/instances'
CORE_DEPLOYMENTS = '/api/core/deployments/'
+CH_CORE_DEPLOYMENTS = '/xosapi//v1/core/deployments'
CORE_SANITY_INSTANCES = '/api/core/instances/?no_hyperlinks=1'
CORE_SANITY_SLICES = '/api/core/slices/?no_hyperlinks=1'
CORE_SLICES = '/api/core/slices/'
+CH_CORE_SLICES = '/xosapi/v1/core/slices'
CORE_SANITY_NODES = '/api/core/nodes/?no_hyperlinks=1'
CORE_NODES = '/api/core/nodes/'
+CH_CORE_NODES = '/xosapi/v1/core/nodes'
CORE_FLAVORS = '/api/core/flavors/'
+CH_CORE_FLAVORS = '/xosapi/v1/core/flavors'
CORE_SITES = '/api/core/sites/'
+CH_CORE_SITES = '/xosapi/v1/core/sites'
CORE_IMAGES = '/api/core/images/'
+CH_CORE_IMAGES = '/xosapi/v1/core/images'
CORE_SITEDEPLOYMENTS = '/api/core/sitedeployments'
+CH_CORE_SITEDEPLOYMENTS = '/xosapi/v1/core/sitedeployments'
diff --git a/src/test/cord-api/Tests/.gitignore b/src/test/cord-api/Tests/.gitignore
new file mode 100644
index 0000000..633ea0f
--- /dev/null
+++ b/src/test/cord-api/Tests/.gitignore
@@ -0,0 +1,3 @@
+log.html
+report.html
+output.xml
diff --git a/src/test/cord-api/Tests/Ch_DefaultServiceCheck.txt b/src/test/cord-api/Tests/Ch_DefaultServiceCheck.txt
new file mode 100644
index 0000000..2d9b5f2
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_DefaultServiceCheck.txt
@@ -0,0 +1,37 @@
+*** Settings ***
+Documentation Test suite for checking default services
+Suite Setup Read InputFile
+Test Template Verify Service Sanity
+Library Collections
+Library String
+Library OperatingSystem
+Library XML
+Library RequestsLibrary
+Library ../Framework/utils/utils.py
+Library ../Framework/restApi.py
+
+*** Variables ***
+${USER} admin
+${PASSWORD} admin
+${PATHFILE} ${CURDIR}/data/Ch_defaultServices.json
+
+*** Test Cases *** TYPE
+Test Service Sanity
+ SANITY
+
+*** Keywords ***
+Read InputFile
+ ${serviceList}= utils.jsonToList ${PATHFILE} ServiceInfo
+ Set Suite Variable ${slist} ${serviceList}
+
+Verify Service Sanity
+ [Arguments] ${type}
+ Run Keyword If "${type}" == "SANITY" Test Service Sanity
+
+Test Service Sanity
+ ${json_result}= restApi.ApiGet CH_CORE_SERVICES
+ ${json_result_list}= Get From Dictionary ${json_result} items
+ Log ${json_result_list}
+ ${serviceList}= Get Variable Value ${slist}
+ ${test_result}= utils.compare_list_of_dicts ${serviceList} ${json_result_list}
+ Should Be True ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_DeploymentTest.txt b/src/test/cord-api/Tests/Ch_DeploymentTest.txt
new file mode 100644
index 0000000..7a3de5d
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_DeploymentTest.txt
@@ -0,0 +1,100 @@
+*** Settings ***
+Documentation Test suite for Deployment verification
+Suite Setup Read InputFile
+Test Template Verify Deployment functionality
+Library Collections
+Library String
+Library OperatingSystem
+Library XML
+Library RequestsLibrary
+Library ../Framework/utils/utils.py
+Library ../Framework/restApi.py
+
+*** Variables ***
+${USER} admin
+${PASSWORD} admin
+${PATHFILE} ${CURDIR}/data/Ch_Deployment.json
+${PATHFILE2} ${CURDIR}/data/putDeployment.json
+
+*** Test Cases *** TYPE LISTINDEX
+Test Post Deployment-1
+ CREATE 0
+
+Test Get Deployment-1
+ RETRIEVE 0
+ #Test Edit Deployment-1 PUT 0
+
+Test Delete Deployment-1
+ DELETE 0
+
+Test Post Deployment-2
+ CREATE 1
+
+Test Get Deployment-2
+ RETRIEVE 1
+ #Test Edit Deployment-2 PUT 1
+
+Test Delete Deployment-2
+ DELETE 1
+
+*** Keywords ***
+Read InputFile
+ ${deploymentList}= utils.jsonToList ${PATHFILE} DeploymentInfo
+ Set Suite Variable ${dlist} ${deploymentList}
+ ${putDeploymentList}= utils.jsonToList ${PATHFILE2} DeploymentInfo
+ Set Suite Variable ${putList} ${putDeploymentList}
+
+Verify Deployment functionality
+ [Arguments] ${type} ${listIndex}
+ Run Keyword If "${type}" == "CREATE" Test Post Deployment API ${listIndex}
+ Run Keyword If "${type}" == "RETRIEVE" Test Get Deployment API ${listIndex}
+ Run Keyword If "${type}" == "PUT" Test Edit Deployment API ${listIndex}
+ Run Keyword If "${type}" == "DELETE" Test Delete Deployment API ${listIndex}
+
+Test Post Deployment API
+ [Arguments] ${listIndex}
+ ${deploymentList} = Get Variable Value ${dlist}
+ ${deploymentDict}= utils.listToDict ${deploymentList} ${listIndex}
+ ${api_result}= restApi.ApiPost CH_CORE_DEPLOYMENTS ${deploymentDict}
+ Should Be True ${api_result}
+
+Test Get Deployment API
+ [Arguments] ${listIndex}
+ ${json_result}= restApi.ApiGet CH_CORE_DEPLOYMENTS
+ ${json_result_list}= Get From Dictionary ${json_result} items
+ Log ${json_result_list}
+ ${deploymentList}= Get Variable Value ${dlist}
+ ${deploymentDict}= utils.listToDict ${deploymentList} ${listIndex}
+ ${name}= utils.getFieldValueFromDict ${deploymentDict} name
+ ${getJsonDict}= utils.getDictFromListOfDict ${json_result_list} name ${name}
+ ${test_result}= utils.compare_dict ${deploymentDict} ${getJsonDict}
+ Should Be True ${test_result}
+
+Test Edit Deployment API
+ [Arguments] ${listIndex}
+ ${get_result}= restApi.ApiGet CH_CORE_DEPLOYMENTS
+ ${putDeploymentList}= Get Variable Value ${putList}
+ ${putDeploymentDict}= utils.listToDict ${putDeploymentList} ${listIndex}
+ ${name}= utils.getFieldValueFromDict ${putDeploymentDict} name
+ ${deploymentDict}= utils.getDictFromListofDict ${get_result} name ${name}
+ ${deploymentID}= utils.getFieldValueFromDict ${deploymentDict} id
+ ${api_result}= restApi.ApiPut CH_CORE_DEPLOYMENTS ${putDeploymentDict} ${deploymentID}
+ Should Be True ${api_result}
+ ${getResultAfterPut}= restApi.ApiGet CH_CORE_DEPLOYMENTS ${deploymentID}
+ ${test_result}= utils.compare_dict ${putDeploymentDict} ${getResultAfterPut}
+ Should Be True ${test_result}
+
+Test Delete Deployment API
+ [Arguments] ${listIndex}
+ ${json_result}= restApi.ApiGet CH_CORE_DEPLOYMENTS
+ ${json_result_list}= Get From Dictionary ${json_result} items
+ ${deploymentList}= Get Variable Value ${dlist}
+ ${deploymentDict}= utils.listToDict ${deploymentList} ${listIndex}
+ ${name}= utils.getFieldValueFromDict ${deploymentDict} name
+ Log ${name}
+ ${deploymentDict}= utils.getDictFromListofDict ${json_result_list} name ${name}
+ Log ${deploymentDict}
+ ${deploymentId}= utils.getFieldValueFromDict ${deploymentDict} id
+ Log ${deploymentId}
+ ${test_result}= restApi.ApiChameleonDelete CH_CORE_DEPLOYMENTS ${deploymentId}
+ Should Be True ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_NodeTest.txt b/src/test/cord-api/Tests/Ch_NodeTest.txt
new file mode 100644
index 0000000..b777dea
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_NodeTest.txt
@@ -0,0 +1,81 @@
+*** Settings ***
+Documentation Test suite for Node API verification
+Suite Setup Read InputFile
+Test Template Verify Node API functionality
+Library Collections
+Library String
+Library OperatingSystem
+Library XML
+Library RequestsLibrary
+Library ../Framework/utils/utils.py
+Library ../Framework/restApi.py
+Variables ../Properties/RestApiProperties.py
+
+*** Variables ***
+${USER} admin
+${PASSWORD} admin
+${PATHFILE} ${CURDIR}/data/Ch_Node.json
+${IP} ${SERVER_IP}
+${PORT} ${SERVER_PORT}
+
+*** Test Cases *** TYPE LISTINDEX
+Test Post Node-1 CREATE 0
+
+Test Get Node-1 RETRIEVE 0
+
+Test Delete Node-1 DELETE 0
+
+Test Post Node-2 CREATE 1
+
+Test Get Node-2 RETRIEVE 1
+
+Test Delete Node-2 DELETE 1
+
+*** Keywords ***
+Read InputFile
+ ${nodeList}= utils.jsonToList ${PATHFILE} NodeInfo
+ Set Suite Variable ${nlist} ${nodeList}
+ ${siteDeployment}= Catenate SEPARATOR= http:// ${IP} : ${PORT}
+ ... /api/core/sitedeployments/1/
+ Set Suite Variable ${siteDeployment} ${siteDeployment}
+
+Verify Node API functionality
+ [Arguments] ${type} ${listIndex}
+ Run Keyword If "${type}" == "CREATE" Test Post Node API ${listIndex}
+ Run Keyword If "${type}" == "RETRIEVE" Test Get Node API ${listIndex}
+ Run Keyword If "${type}" == "DELETE" Test Delete Node API ${listIndex}
+
+Test Post Node API
+ [Arguments] ${listIndex}
+ ${nodeList}= Get Variable Value ${nlist}
+ ${nodeDict}= utils.listToDict ${nodeList} ${listIndex}
+ ${api_result}= restApi.ApiPost CH_CORE_NODES ${nodeDict}
+ Should Be True ${api_result}
+
+Test Get Node API
+ [Arguments] ${listIndex}
+ ${json_result}= restApi.ApiGet CH_CORE_NODES
+ ${json_result_list}= Get From Dictionary ${json_result} items
+ Log ${json_result_list}
+ ${nodeList}= Get Variable Value ${nlist}
+ ${nodeDict}= utils.listToDict ${nodeList} ${listIndex}
+ ${name}= utils.getFieldValueFromDict ${nodeDict} name
+ Log ${name}
+ ${getJsonDict}= utils.getDictFromListOfDict ${json_result_list} name ${name}
+ ${test_result}= utils.compare_dict ${nodeDict} ${getJsonDict}
+ Should Be True ${test_result}
+
+Test Delete Node API
+ [Arguments] ${listIndex}
+ ${json_result}= restApi.ApiGet CH_CORE_NODES
+ ${json_result_list}= Get From Dictionary ${json_result} items
+ ${nodeList}= Get Variable Value ${nlist}
+ ${nodeDict}= utils.listToDict ${nodeList} ${listIndex}
+ ${name}= utils.getFieldValueFromDict ${nodeDict} name
+ Log ${name}
+ ${nodeDict}= utils.getDictFromListofDict ${json_result_list} name ${name}
+ Log ${nodeDict}
+ ${nodeId}= utils.getFieldValueFromDict ${nodeDict} id
+ Log ${nodeId}
+ ${test_result}= restApi.ApiChameleonDelete CH_CORE_NODES ${nodeId}
+ Should Be True ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_SanityFlavors.txt b/src/test/cord-api/Tests/Ch_SanityFlavors.txt
new file mode 100644
index 0000000..72ced6e
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_SanityFlavors.txt
@@ -0,0 +1,76 @@
+*** Settings ***
+Documentation Test suite for Sanity Test of Flavors API
+Suite Setup Read InputFile
+Test Template Verify Flavor API functionality
+Library Collections
+Library String
+Library OperatingSystem
+Library XML
+Library RequestsLibrary
+Library ../Framework/utils/utils.py
+Library ../Framework/restApi.py
+
+*** Variables ***
+${USER} admin
+${PASSWORD} admin
+${PATHFILE} ${CURDIR}/data/Ch_Flavors.json
+
+*** Test Cases *** TYPE LISTINDEX
+Test Add Flavor-1 CREATE 0
+
+Test Get Flavor-1 RETRIEVE 0
+
+Test Delete Flavor-1
+ DELETE 0
+
+Test Add Flavor-2 CREATE 1
+
+Test Get Flavor-2 RETRIEVE 1
+
+Test Delete Flavor-2
+ DELETE 1
+
+*** Keywords ***
+Read InputFile
+ ${flavorList} = utils.jsonToList ${PATHFILE} flavorsInfo
+ Set Suite Variable ${vList} ${flavorList}
+
+Verify Flavor API functionality
+ [Arguments] ${type} ${listIndex}
+ Run Keyword If "${type}" == "CREATE" Test Post Flavors ${listIndex}
+ Run Keyword If "${type}" == "RETRIEVE" Test Get Flavors ${listIndex}
+ Run Keyword If "${type}" == "DELETE" Test Delete Flavors ${listIndex}
+
+Test Post Flavors
+ [Arguments] ${listIndex}
+ ${flavorList} = Get Variable Value ${vList}
+ ${flavorDict}= utils.listToDict ${flavorList} ${listIndex}
+ ${api_result}= restApi.ApiPost CH_CORE_FLAVORS ${flavorDict}
+ Should Be True ${api_result}
+
+Test Get Flavors
+ [Arguments] ${listIndex}
+ ${json_result}= restApi.ApiGet CH_CORE_FLAVORS
+ ${json_result_list}= Get From Dictionary ${json_result} items
+ Log ${json_result_list}
+ ${flavorList}= Get Variable Value ${vList}
+ ${inputDict}= utils.listToDict ${flavorList} ${listIndex}
+ ${flavorName}= utils.getFieldValueFromDict ${inputDict} name
+ ${getJsonDict}= utils.getDictFromListOfDict ${json_result_list} name ${flavorName}
+ ${test_result}= utils.compare_dict ${inputDict} ${getJsonDict}
+ Should Be True ${json_result}
+
+Test Delete Flavors
+ [Arguments] ${listIndex}
+ ${json_getresult}= restApi.ApiGet CH_CORE_FLAVORS
+ ${json_getresult_list}= Get From Dictionary ${json_getresult} items
+ ${flavorList}= Get Variable Value ${vList}
+ ${flavorDict}= utils.listToDict ${vList} ${listIndex}
+ ${flavorName}= utils.getFieldValueFromDict ${flavorDict} name
+ Log ${flavorName}
+ ${getFlavorDict}= utils.getDictFromListofDict ${json_getresult_list} name ${flavorName}
+ Log ${getFlavorDict}
+ ${flavorID}= utils.getFieldValueFromDict ${getFlavorDict} id
+ Log ${flavorID}
+ ${test_result}= restApi.ApiChameleonDelete CH_CORE_FLAVORS ${flavorID}
+ Should be True ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_SanityInstance.txt b/src/test/cord-api/Tests/Ch_SanityInstance.txt
new file mode 100644
index 0000000..01a972d
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_SanityInstance.txt
@@ -0,0 +1,81 @@
+*** Settings ***
+Documentation Test suite for Sanity Test of Instance API
+Suite Setup Read InputFile
+Test Template Verify Instance API functionality
+Library Collections
+Library String
+Library OperatingSystem
+Library XML
+Library RequestsLibrary
+Library ../Framework/utils/utils.py
+Library ../Framework/restApi.py
+
+*** Variables ***
+${USER} admin
+${PASSWORD} admin
+${PATHFILE} ${CURDIR}/data/Ch_SanityInstance.json
+
+*** Test Cases *** TYPE LISTINDEX
+Test Add Instance-1
+ CREATE 0
+
+Test Get Instance-1
+ RETRIEVE 0
+
+Test Delete Instance-1
+ DELETE 0
+
+Test Add Instance-2
+ CREATE 1
+
+Test Get Instance-2
+ RETRIEVE 1
+
+Test Delete Instance-2
+ DELETE 1
+
+*** Keywords ***
+Read InputFile
+ ${instanceList} = utils.jsonToList ${PATHFILE} InstanceInfo
+ Set Suite Variable ${iList} ${instanceList}
+
+Verify Instance API functionality
+ [Arguments] ${type} ${listIndex}
+ Run Keyword If "${type}" == "CREATE" Test Post Instances ${listIndex}
+ Run Keyword If "${type}" == "RETRIEVE" Test Get Instances ${listIndex}
+ Run Keyword If "${type}" == "DELETE" Test Delete Instances ${listIndex}
+
+Test Post Instances
+ [Arguments] ${listIndex}
+ ${instanceList} = Get Variable Value ${iList}
+ ${instanceDict}= utils.listToDict ${instanceList} ${listIndex}
+ ${api_result}= restApi.ApiPost CH_CORE_INSTANCES ${instanceDict}
+ Should Be True ${api_result}
+
+Test Get Instances
+ [Arguments] ${listIndex}
+ ${json_result}= restApi.ApiGet CH_CORE_INSTANCES
+ Log ${json_result}
+ ${json_result_list}= Get From Dictionary ${json_result} items
+ Log ${json_result_list}
+ ${instanceList}= Get Variable Value ${iList}
+ ${inputDict}= utils.listToDict ${instanceList} ${listIndex}
+ ${instanceName}= utils.getFieldValueFromDict ${inputDict} name
+ ${getJsonDict}= utils.getDictFromListOfDict ${json_result_list} name ${instanceName}
+ ${test_result}= utils.compare_dict ${inputDict} ${getJsonDict}
+ Should Be True ${json_result}
+
+Test Delete Instances
+ [Arguments] ${listIndex}
+ ${json_getresult}= restApi.ApiGet CH_CORE_INSTANCES
+ ${json_getresult_list}= Get From Dictionary ${json_getresult} items
+ ${instanceList}= Get Variable Value ${iList}
+ ${instanceDict}= utils.listToDict ${iList} ${listIndex}
+ ${instanceName}= utils.getFieldValueFromDict ${instanceDict} name
+ Log ${instanceName}
+ ${getInstanceDict}= utils.getDictFromListofDict ${json_getresult_list} name ${instanceName}
+ Log ${getInstanceDict}
+ ${instanceID}= utils.getFieldValueFromDict ${getInstanceDict} id
+ Log ${instanceID}
+ ${test_result}= restApi.ApiChameleonDelete CH_CORE_INSTANCES ${instanceID}
+ Should be True ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_ServiceTest.txt b/src/test/cord-api/Tests/Ch_ServiceTest.txt
new file mode 100644
index 0000000..9f06ad1
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_ServiceTest.txt
@@ -0,0 +1,104 @@
+*** Settings ***
+Documentation Test suite for Service verification
+Suite Setup Read InputFile
+Test Template Verify Service functionality
+Library Collections
+Library String
+Library OperatingSystem
+Library XML
+Library RequestsLibrary
+Library ../Framework/utils/utils.py
+Library ../Framework/restApi.py
+
+*** Variables ***
+${USER} admin
+${PASSWORD} admin
+${PATHFILE} ${CURDIR}/data/Ch_Service.json
+${PATHFILE2} ${CURDIR}/data/Ch_putService.json
+
+*** Test Cases *** TYPE LISTINDEX
+Test Post Service-1
+ CREATE 0
+
+Test Get Service-1 RETRIEVE 0
+
+Test Edit Service-1
+ PUT 0
+
+Test Delete Service-1
+ DELETE 0
+
+Test Post Service-2
+ CREATE 1
+
+Test Get Service-2 RETRIEVE 1
+
+Test Edit Service-2
+ PUT 1
+
+Test Delete Service-2
+ DELETE 1
+
+*** Keywords ***
+Read InputFile
+ ${serviceList}= utils.jsonToList ${PATHFILE} ServiceInfo
+ Set Suite Variable ${slist} ${serviceList}
+ ${putServiceList}= utils.jsonToList ${PATHFILE2} ServiceInfo
+ Set Suite Variable ${putList} ${putServiceList}
+
+Verify Service functionality
+ [Arguments] ${type} ${listIndex}
+ Run Keyword If "${type}" == "CREATE" Test Post Service API ${listIndex}
+ Run Keyword If "${type}" == "RETRIEVE" Test Get Service API ${listIndex}
+ Run Keyword If "${type}" == "PUT" Test Edit Service API ${listIndex}
+ Run Keyword If "${type}" == "DELETE" Test Delete Service API ${listIndex}
+
+Test Post Service API
+ [Arguments] ${listIndex}
+ ${serviceList} = Get Variable Value ${slist}
+ ${serviceDict}= utils.listToDict ${serviceList} ${listIndex}
+ ${api_result}= restApi.ApiPost CH_CORE_SERVICES ${serviceDict}
+ Should Be True ${api_result}
+
+Test Get Service API
+ [Arguments] ${listIndex}
+ ${json_result}= restApi.ApiGet CH_CORE_SERVICES
+ ${json_result_list}= Get From Dictionary ${json_result} items
+ Log ${json_result_list}
+ Log ${json_result}
+ ${serviceList}= Get Variable Value ${slist}
+ ${serviceDict}= utils.listToDict ${serviceList} ${listIndex}
+ ${name}= utils.getFieldValueFromDict ${serviceDict} name
+ ${getJsonDict}= utils.getDictFromListOfDict ${json_result_list} name ${name}
+ ${test_result}= utils.compare_dict ${serviceDict} ${getJsonDict}
+ Should Be True ${test_result}
+
+Test Edit Service API
+ [Arguments] ${listIndex}
+ ${get_result}= restApi.ApiGet CH_CORE_SERVICES
+ ${get_result_list}= Get From Dictionary ${get_result} items
+ ${putServiceList}= Get Variable Value ${putList}
+ ${putServiceDict}= utils.listToDict ${putServiceList} ${listIndex}
+ ${name}= utils.getFieldValueFromDict ${putServiceDict} name
+ ${serviceDict}= utils.getDictFromListofDict ${get_result_list} name ${name}
+ ${serviceID}= utils.getFieldValueFromDict ${serviceDict} id
+ ${api_result}= restApi.ApiChameleonPut CH_CORE_SERVICES ${putServiceDict} ${serviceID}
+ Should Be True ${api_result}
+ ${getResultAfterPut}= restApi.ApiChameleonGet CH_CORE_SERVICES ${serviceID}
+ ${test_result}= utils.compare_dict ${putServiceDict} ${getResultAfterPut}
+ Should Be True ${test_result}
+
+Test Delete Service API
+ [Arguments] ${listIndex}
+ ${json_result}= restApi.ApiGet CH_CORE_SERVICES
+ ${json_result_list}= Get From Dictionary ${json_result} items
+ ${serviceList}= Get Variable Value ${slist}
+ ${serviceDict}= utils.listToDict ${serviceList} ${listIndex}
+ ${name}= utils.getFieldValueFromDict ${serviceDict} name
+ Log ${name}
+ ${serviceDict}= utils.getDictFromListofDict ${json_result_list} name ${name}
+ Log ${serviceDict}
+ ${serviceId}= utils.getFieldValueFromDict ${serviceDict} id
+ Log ${serviceId}
+ ${test_result}= restApi.ApiChameleonDelete CH_CORE_SERVICES ${serviceId}
+ Should Be True ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_SiteTest.txt b/src/test/cord-api/Tests/Ch_SiteTest.txt
new file mode 100644
index 0000000..0748d18
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_SiteTest.txt
@@ -0,0 +1,97 @@
+*** Settings ***
+Documentation Test suite for Site verification
+Suite Setup Read InputFile
+Test Template Verify Site functionality
+Library Collections
+Library String
+Library OperatingSystem
+Library XML
+Library RequestsLibrary
+Library ../Framework/utils/utils.py
+Library ../Framework/restApi.py
+
+*** Variables ***
+${USER} admin
+${PASSWORD} admin
+${PATHFILE} ${CURDIR}/data/Ch_Site.json
+${PATHFILE2} ${CURDIR}/data/Ch_putSite.json
+
+*** Test Cases *** TYPE LISTINDEX
+Test Post Site-1 CREATE 0
+
+Test Get Site-1 RETRIEVE 0
+
+Test Edit Site-1 PUT 0
+
+Test Delete Site-1 DELETE 0
+
+Test Post Site-2 CREATE 1
+
+Test Get Site-2 RETRIEVE 1
+
+Test Edit Site-2 PUT 1
+
+Test Delete Site-2 DELETE 1
+
+*** Keywords ***
+Read InputFile
+ ${siteList}= utils.jsonToList ${PATHFILE} SiteInfo
+ Set Suite Variable ${slist} ${siteList}
+ ${putSiteList}= utils.jsonToList ${PATHFILE2} SiteInfo
+ Set Suite Variable ${putList} ${putSiteList}
+
+Verify Site functionality
+ [Arguments] ${type} ${listIndex}
+ Run Keyword If "${type}" == "CREATE" Test Post Site API ${listIndex}
+ Run Keyword If "${type}" == "RETRIEVE" Test Get Site API ${listIndex}
+ Run Keyword If "${type}" == "PUT" Test Edit Site API ${listIndex}
+ Run Keyword If "${type}" == "DELETE" Test Delete Site API ${listIndex}
+
+Test Post Site API
+ [Arguments] ${listIndex}
+ ${siteList} = Get Variable Value ${slist}
+ ${siteDict}= utils.listToDict ${siteList} ${listIndex}
+ ${api_result}= restApi.ApiPost CH_CORE_SITES ${siteDict}
+ Should Be True ${api_result}
+
+Test Get Site API
+ [Arguments] ${listIndex}
+ ${json_result}= restApi.ApiGet CH_CORE_SITES
+ ${json_result_list}= Get From Dictionary ${json_result} items
+ Log ${json_result_list}
+ ${siteList}= Get Variable Value ${slist}
+ ${siteDict}= utils.listToDict ${siteList} ${listIndex}
+ ${name}= utils.getFieldValueFromDict ${siteDict} name
+ ${getJsonDict}= utils.getDictFromListOfDict ${json_result_list} name ${name}
+ ${test_result}= utils.compare_dict ${siteDict} ${getJsonDict}
+ Should Be True ${test_result}
+
+Test Edit Site API
+ [Arguments] ${listIndex}
+ ${get_result}= restApi.ApiGet CH_CORE_SITES
+ ${get_result_list}= Get From Dictionary ${get_result} items
+ ${putSiteList}= Get Variable Value ${putList}
+ ${putSiteDict}= utils.listToDict ${putSiteList} ${listIndex}
+ ${name}= utils.getFieldValueFromDict ${putSiteDict} name
+ ${siteDict}= utils.getDictFromListofDict ${get_result_list} name ${name}
+ ${siteID}= utils.getFieldValueFromDict ${siteDict} id
+ ${api_result}= restApi.ApiChameleonPut CH_CORE_SITES ${putSiteDict} ${siteID}
+ Should Be True ${api_result}
+ ${getResultAfterPut}= restApi.ApiChameleonGet CH_CORE_SITES ${siteID}
+ ${test_result}= utils.compare_dict ${putSiteDict} ${getResultAfterPut}
+ Should Be True ${test_result}
+
+Test Delete Site API
+ [Arguments] ${listIndex}
+ ${json_result}= restApi.ApiGet CH_CORE_SITES
+ ${json_result_list}= Get From Dictionary ${json_result} items
+ ${siteList}= Get Variable Value ${slist}
+ ${siteDict}= utils.listToDict ${siteList} ${listIndex}
+ ${name}= utils.getFieldValueFromDict ${siteDict} name
+ Log ${name}
+ ${siteDict}= utils.getDictFromListofDict ${json_result_list} name ${name}
+ Log ${siteDict}
+ ${siteId}= utils.getFieldValueFromDict ${siteDict} id
+ Log ${siteId}
+ ${test_result}= restApi.ApiChameleonDelete CH_CORE_SITES ${siteId}
+ Should Be True ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_SliceTest.txt b/src/test/cord-api/Tests/Ch_SliceTest.txt
new file mode 100644
index 0000000..565e1cb
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_SliceTest.txt
@@ -0,0 +1,72 @@
+*** Settings ***
+Documentation Test suite for Slice API verification
+Suite Setup Read InputFile
+Test Template Verify Slice API functionality
+Library Collections
+Library String
+Library OperatingSystem
+Library XML
+Library RequestsLibrary
+Library ../Framework/utils/utils.py
+Library ../Framework/restApi.py
+Variables ../Properties/RestApiProperties.py
+
+*** Variables ***
+${USER} admin
+${PASSWORD} admin
+${PATHFILE} ${CURDIR}/data/Ch_Slice.json
+${IP} ${SERVER_IP}
+${PORT} ${SERVER_PORT}
+
+*** Test Cases *** TYPE LISTINDEX
+Test Add Slice-1 CREATE 0
+
+Test Get Slice-1 RETRIEVE 0
+
+Test Delete Slice-1
+ DELETE 0
+
+*** Keywords ***
+Read InputFile
+ ${sliceList} = utils.jsonToList ${PATHFILE} SliceInfo
+ Set Suite Variable ${sList} ${sliceList}
+
+Verify Slice API functionality
+ [Arguments] ${type} ${listIndex}
+ Run Keyword If "${type}" == "CREATE" Test Post Slice API ${listIndex}
+ Run Keyword If "${type}" == "RETRIEVE" Test Get Slice API ${listIndex}
+ Run Keyword If "${type}" == "DELETE" Test Delete Slice API ${listIndex}
+
+Test Post Slice API
+ [Arguments] ${listIndex}
+ ${sliceList} = Get Variable Value ${sList}
+ ${sliceDict}= utils.listToDict ${sliceList} ${listIndex}
+ ${api_result}= restApi.ApiPost CH_CORE_SLICES ${sliceDict}
+ Should Be True ${api_result}
+
+Test Get Slice API
+ [Arguments] ${listIndex}
+ ${json_result}= restApi.ApiGet CH_CORE_SLICES
+ ${json_result_list}= Get From Dictionary ${json_result} items
+ Log ${json_result_list}
+ ${sliceList}= Get Variable Value ${sList}
+ ${sliceDict}= utils.listToDict ${sliceList} ${listIndex}
+ ${sliceName}= Get From Dictionary ${sliceDict} name
+ ${getJsonDict}= utils.getDictFromListOfDict ${json_result_list} name ${sliceName}
+ ${test_result}= utils.compare_dict ${sliceDict} ${getJsonDict}
+ Should Be True ${json_result}
+
+Test Delete Slice API
+ [Arguments] ${listIndex}
+ ${json_getresult}= restApi.ApiGet CH_CORE_SLICES
+ ${json_getresult_list}= Get From Dictionary ${json_getresult} items
+ ${sliceList}= Get Variable Value ${sList}
+ ${sliceDict}= utils.listToDict ${sList} ${listIndex}
+ ${sliceName}= utils.getFieldValueFromDict ${sliceDict} name
+ Log ${sliceName}
+ ${getSliceDict}= utils.getDictFromListofDict ${json_getresult_list} name ${sliceName}
+ Log ${getSliceDict}
+ ${sliceID}= utils.getFieldValueFromDict ${getSliceDict} id
+ Log ${sliceID}
+ ${test_result}= restApi.ApiChameleonDelete CH_CORE_SLICES ${sliceID}
+ Should be True ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_SubscriberTest.txt b/src/test/cord-api/Tests/Ch_SubscriberTest.txt
new file mode 100644
index 0000000..0d0e2e3
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_SubscriberTest.txt
@@ -0,0 +1,113 @@
+*** Settings ***
+Documentation Test suite for Subscriber verification
+Suite Setup Read InputFile
+Test Template Verify Subscriber functionality
+Library Collections
+Library String
+Library OperatingSystem
+Library XML
+Library RequestsLibrary
+Library ../Framework/utils/utils.py
+Library ../Framework/restApi.py
+
+*** Variables ***
+${USER} admin
+${PASSWORD} admin
+${PATHFILE} ${CURDIR}/data/Ch_Subscriber.json
+${PATHFILE2} ${CURDIR}/data/Ch_putSubscriber.json
+
+*** Test Cases *** TYPE LISTINDEX
+Test Create Subscriber-1
+ CREATE 0
+
+Test Get_Subscriber-1
+ RETRIEVE 0
+
+Test Edit Subscriber-1
+ PUT 0
+
+Test Create Subscriber-2
+ CREATE 1
+
+Test Get_Subscriber-2
+ RETRIEVE 1
+
+Test Edit Subscriber-2
+ PUT 1
+
+Test Create Subscriber-3
+ CREATE 2
+
+Test Get_Subcriber-3
+ RETRIEVE 2
+
+Test Edit Subscriber-3
+ PUT 2
+
+*** Keywords ***
+Read InputFile
+ ${subscriberList} = utils.jsonToList ${PATHFILE} SubscriberInfo
+ Set Suite Variable ${slist} ${subscriberList}
+ ${putSubscriberList}= utils.jsonToList ${PATHFILE2} SubscriberInfo
+ Set Suite Variable ${putList} ${putSubscriberList}
+
+Verify Subscriber functionality
+ [Arguments] ${type} ${listIndex}
+ Run Keyword If "${type}" == "CREATE" Test Post Subscriber API ${listIndex}
+ Run Keyword If "${type}" == "RETRIEVE" Test Get Subscriber API ${listIndex}
+ Run Keyword If "${type}" == "DELETE" Test Delete Subscriber API ${listIndex}
+ Run Keyword If "${type}" == "PUT" Test Edit Subscriber API ${listIndex}
+
+Test Post Subscriber API
+ [Arguments] ${listIndex}
+ ${subscriberList} = Get Variable Value ${slist}
+ ${subscriberDict}= utils.listToDict ${subscriberList} ${listIndex}
+ ${api_result}= restApi.ApiPost VOLT_SUBSCRIBER ${subscriberDict}
+ Should Be True ${api_result}
+
+Test Get Subscriber API
+ [Arguments] ${listIndex}
+ ${json_result}= restApi.ApiGet VOLT_SUBSCRIBER
+ Log ${json_result}
+ ${subscriberList}= Get Variable Value ${slist}
+ ${subscriberDict}= utils.listToDict ${subscriberList} ${listIndex}
+ ${AccountNum}= utils.getFieldValueFromDict ${subscriberDict} service_specific_id
+ Log ${AccountNum}
+ ${json_result_list}= Get From dictionary ${json_result} items
+ ${getJsonDict}= utils.getDictFromListOfDict ${json_result_list} service_specific_id ${AccountNum}
+ Log ${getJsonDict}
+ Log ${subscriberDict}
+ ${test_result}= utils.compare_dict ${subscriberDict} ${getJsonDict}
+ Should Be True ${test_result}
+
+Test Edit Subscriber API
+ [Arguments] ${listIndex}
+ ${get_result}= restApi.ApiGet VOLT_SUBSCRIBER
+ ${get_result_list}= Get From Dictionary ${get_result} items
+ ${putSubscriberList}= Get Variable Value ${putList}
+ ${putSubscriberDict}= utils.listToDict ${putSubscriberList} ${listIndex}
+ ${AcctNum}= utils.getFieldValueFromDict ${putSubscriberDict} service_specific_id
+ Log ${AcctNum}
+ ${subscriberDict}= utils.getDictFromListofDict ${get_result_list} service_specific_id ${AcctNum}
+ ${subscriberID}= utils.getFieldValueFromDict ${subscriberDict} id
+ ${api_result}= restApi.ApiChameleonPut VOLT_SUBSCRIBER ${putSubscriberDict} ${subscriberID}
+ Should Be True ${api_result}
+ ${getResultAfterPut}= restApi.ApiGet VOLT_SUBSCRIBER
+ ${getResultList_AfterPut}= Get From Dictionary ${getResultAfterPut} items
+ ${getResultDict}= utils.getDictFromListOfDict ${getResultList_AfterPut} service_specific_id ${AcctNum}
+ ${test_result}= utils.compare_dict ${putSubscriberDict} ${getResultDict}
+ Should Be True ${test_result}
+
+Test Delete Subscriber API
+ [Arguments] ${listIndex}
+ ${json_result}= restApi.ApiGet VOLT_SUBSCRIBER
+ ${subscriberList}= Get Variable Value ${slist}
+ ${subscriberDict}= utils.listToDict ${subscriberList} ${listIndex}
+ ${AcctNum}= utils.getFieldValueFromDict ${subscriberDict} service_specific_id
+ Log ${AcctNum}
+ ${subscriberDict}= utils.getDictFromListofDict ${json_result} service_specific_id ${AcctNum}
+ Log ${subscriberDict}
+ ${subscriberId}= utils.getFieldValueFromDict ${subscriberDict} id
+ Log ${subscriberId}
+ ${test_result}= restApi.ApiDelete VOLT_SUBSCRIBER ${subscriberId}
+ Should Be True ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_UsersTest.txt b/src/test/cord-api/Tests/Ch_UsersTest.txt
new file mode 100644
index 0000000..cda8899
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_UsersTest.txt
@@ -0,0 +1,80 @@
+*** Settings ***
+Documentation Test suite for Users API
+Suite Setup Read InputFile
+Test Template Verify User functionality
+Library Collections
+Library String
+Library OperatingSystem
+Library XML
+Library RequestsLibrary
+Library ../Framework/utils/utils.py
+Library ../Framework/restApi.py
+
+*** Variables ***
+${USER} admin
+${PASSWORD} admin
+${PATHFILE} ${CURDIR}/data/Ch_Users.json
+
+*** Test Cases *** TYPE LISTINDEX
+Test Add User-1 CREATE 0
+
+Test Get User-1 RETRIEVE 0
+
+Test Delete User-1 DELETE 0
+
+Test Add User-2 CREATE 1
+
+Test Get User-2 RETRIEVE 1
+
+Test Delete User-2 DELETE 1
+
+Test Add User-3 CREATE 2
+
+Test Get User-3 RETRIEVE 2
+
+Test Delete User-3 DELETE 2
+
+*** Keywords ***
+Read InputFile
+ ${userList} = utils.jsonToList ${PATHFILE} UserInfo
+ Set Suite Variable ${uList} ${userList}
+
+Verify User functionality
+ [Arguments] ${type} ${listIndex}
+ Run Keyword If "${type}" == "CREATE" Test Post Users API ${listIndex}
+ Run Keyword If "${type}" == "RETRIEVE" Test Get Users API ${listIndex}
+ Run Keyword If "${type}" == "DELETE" Test Delete Users API ${listIndex}
+
+Test Post Users API
+ [Arguments] ${listIndex}
+ ${userList} = Get Variable Value ${uList}
+ ${userDict}= utils.listToDict ${userList} ${listIndex}
+ ${api_result}= restApi.ApiPost CH_CORE_USERS ${userDict}
+ Should Be True ${api_result}
+
+Test Get Users API
+ [Arguments] ${listIndex}
+ ${json_result}= restApi.ApiGet CH_CORE_USERS
+ ${json_result_list}= Get From Dictionary ${json_result} items
+ Log ${json_result_list}
+ ${userList}= Get Variable Value ${uList}
+ ${inputDict}= utils.listToDict ${userList} ${listIndex}
+ ${email}= utils.getFieldValueFromDict ${inputDict} email
+ ${getJsonDict}= utils.getDictFromListOfDict ${json_result_list} email ${email}
+ ${test_result}= utils.compare_dict ${inputDict} ${getJsonDict}
+ Should Be True ${json_result}
+
+Test Delete Users API
+ [Arguments] ${listIndex}
+ ${json_getresult}= restApi.ApiGet CH_CORE_USERS
+ ${json_getresult_list}= Get From Dictionary ${json_getresult} items
+ ${userList}= Get Variable Value ${uList}
+ ${userDict}= utils.listToDict ${uList} ${listIndex}
+ ${email}= utils.getFieldValueFromDict ${userDict} email
+ Log ${email}
+ ${getUserDict}= utils.getDictFromListofDict ${json_getresult_list} email ${email}
+ Log ${getUserDict}
+ ${userID}= utils.getFieldValueFromDict ${getUserDict} id
+ Log ${userID}
+ ${test_result}= restApi.ApiChameleonDelete CH_CORE_USERS ${userID}
+ Should be True ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_VoltTenant.txt b/src/test/cord-api/Tests/Ch_VoltTenant.txt
new file mode 100644
index 0000000..60b4a41
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_VoltTenant.txt
@@ -0,0 +1,69 @@
+*** Settings ***
+Documentation Test suite for volt Tenant Verification - Chameleon API
+Suite Setup Read InputFile
+Test Template Verify volt Tenant Functionality
+Library Collections
+Library String
+Library OperatingSystem
+Library XML
+Library RequestsLibrary
+Library ../Framework/utils/utils.py
+Library ../Framework/restApi.py
+
+*** Variables ***
+${USER} admin
+${PASSWORD} admin
+${PATHFILE} ${CURDIR}/data/Ch_VoltTenant.json
+${PATHFILE2} ${CURDIR}/data/Ch_putVoltTenant.json
+
+*** Test Cases *** TYPE LISTINDEX
+Test volt Tenant-1 CREATE 0
+
+Test volt Tenant-2 CREATE 1
+
+Test volt Tenant-3 CREATE 2
+
+*** Keywords ***
+Read InputFile
+ ${voltList} = utils.jsonToList ${PATHFILE} voltSubscriberInfo
+ Set Suite Variable ${vlist} ${voltList}
+ ${putvoltList}= utils.jsonToList ${PATHFILE2} voltSubscriberInfo
+ Set Suite Variable ${putList} ${putvoltList}
+
+Verify volt Tenant Functionality
+ [Arguments] ${type} ${listIndex}
+ Run Keyword If "${type}" == "CREATE" Test Post volt Tenant API ${listIndex}
+
+Test Post volt Tenant API
+ [Arguments] ${listIndex}
+ ${voltTenantList} = Get Variable Value ${vlist}
+ ${voltTenantDict}= utils.listToDict ${voltTenantList} ${listIndex}
+ ${voltDict}= Get From Dictionary ${voltTenantDict} voltTenant
+ ${service_specific_id}= Get From Dictionary ${voltTenantDict} service_specific_id
+ ${get_result}= restApi.ApiGet VOLT_SUBSCRIBER
+ ${get_result_list}= Get From Dictionary ${get_result} items
+ ${subscriberDict}= utils.getDictFromListofDict ${get_result_list} service_specific_id ${service_specific_id}
+ ${subscriberID}= utils.getFieldValueFromDict ${subscriberDict} id
+ Log ${subscriberID}
+ ${updatedVoltDict}= utils.setFieldValueInDict ${voltDict} subscriber_root_id ${subscriberID}
+ ${api_result}= restApi.ApiPost VOLT_TENANT ${updatedVoltDict}
+ Should Be True ${api_result}
+ # Verifying Get operation after POST
+ ${getVolt_result}= restApi.ApiGet VOLT_TENANT
+ ${getVolt_result_list}= Get From Dictionary ${getVolt_result} items
+ ${getJsonDict}= utils.getDictFromListOfDict ${getVolt_result_list} subscriber_root_id ${subscriberID}
+ ${test_result}= utils.compare_dict ${voltDict} ${getJsonDict}
+ Should Be True ${test_result}
+ # Verifying PUT operation
+ ${putvoltList}= Get Variable Value ${putList}
+ ${putVoltDict}= utils.listToDict ${putvoltList} ${listIndex}
+ ${putvoltTenantDict}= Get From Dictionary ${putVoltDict} voltTenant
+ ${voltID}= utils.getFieldValueFromDict ${getJsonDict} id
+ ${put_result}= restApi.ApiChameleonPut VOLT_TENANT ${putvoltTenantDict} ${voltID}
+ Should Be True ${put_result}
+ # Verifying Get after PUT operation
+ #${getVolt_afterPut}= restApi.ApiGet VOLT_TENANT
+ #${getVoltDict}= utils.getDictFromListofDict ${getVolt_afterPut} id ${voltID}
+ ${getVoltDict}= utils.ApiChemeleonGet VOLT_TENANT ${voltID}
+ ${result_afterPut}= utils.compare_dict ${putvoltTenantDict} ${getVoltDict}
+ Should Be True ${result_afterPut}
diff --git a/src/test/cord-api/Tests/Ch_defaultImagesCheck.txt b/src/test/cord-api/Tests/Ch_defaultImagesCheck.txt
new file mode 100644
index 0000000..541cf80
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_defaultImagesCheck.txt
@@ -0,0 +1,37 @@
+*** Settings ***
+Documentation Test suite for checking default images for R-CORD
+Suite Setup Read InputFile
+Test Template Verify Image Check
+Library Collections
+Library String
+Library OperatingSystem
+Library XML
+Library RequestsLibrary
+Library ../Framework/utils/utils.py
+Library ../Framework/restApi.py
+
+*** Variables ***
+${USER} admin
+${PASSWORD} admin
+${PATHFILE} ${CURDIR}/data/defaultImages.json
+
+*** Test Cases *** TYPE
+Test Default Images on R-CORD
+ IMAGE
+
+*** Keywords ***
+Read InputFile
+ ${imageList}= utils.jsonToList ${PATHFILE} imagesInfo
+ Set Suite Variable ${ilist} ${imageList}
+
+Verify Image Check
+ [Arguments] ${type}
+ Run Keyword If "${type}" == "IMAGE" Test Image Check
+
+Test Image Check
+ ${json_result}= restApi.ApiGet CH_CORE_IMAGES
+ ${json_result_list}= Get From Dictionary ${json_result} items
+ Log ${json_result_list}
+ ${imageList}= Get Variable Value ${ilist}
+ ${test_result}= utils.compare_list_of_dicts ${imageList} ${json_result_list}
+ Should Be True ${test_result}
diff --git a/src/test/cord-api/Tests/UISliceTest.txt b/src/test/cord-api/Tests/UISliceTest.txt
new file mode 100644
index 0000000..d1cd2e9
--- /dev/null
+++ b/src/test/cord-api/Tests/UISliceTest.txt
@@ -0,0 +1,87 @@
+*** Settings ***
+Documentation Test suite for Slice API verification
+Suite Setup Read InputFile
+Test Template Verify Slice API functionality
+Library Collections
+Library String
+Library OperatingSystem
+Library XML
+Library RequestsLibrary
+Library ../Framework/utils/utils.py
+Library ../Framework/restApi.py
+| Variables | ../Properties/RestApiProperties.py
+
+*** Variables ***
+${USER} admin
+${PASSWORD} admin
+${PATHFILE} ${CURDIR}/data/Slice.json
+| ${IP} | ${SERVER_IP}
+| ${PORT} | ${SERVER_PORT}
+
+*** Test Cases *** TYPE LISTINDEX
+Test Add Slice-1 CREATE 0
+
+Test Get Slice-1 RETRIEVE 0
+
+Test Delete Slice-1 DELETE 0
+
+Test Add Slice-2 CREATE 1
+
+Test Get Slice-2 RETRIEVE 1
+
+Test Delete Slice-2 DELETE 1
+
+*** Keywords ***
+Read InputFile
+ ${sliceList} = utils.jsonToList ${PATHFILE} SliceInfo
+ Set Suite Variable ${sList} ${sliceList}
+ ${site}= Catenate SEPARATOR= http:// ${IP} : ${PORT} /api/core/sites/1/
+ Set Suite Variable ${site} ${site}
+ ${creator}= Catenate SEPARATOR= http:// ${IP} : ${PORT} /api/core/users/1/
+ Set Suite Variable ${creator} ${creator}
+
+Verify Slice API functionality
+ [Arguments] ${type} ${listIndex}
+ Run Keyword If "${type}" == "CREATE" Test Post Slice API ${listIndex}
+ Run Keyword If "${type}" == "RETRIEVE" Test Get Slice API ${listIndex}
+ Run Keyword If "${type}" == "DELETE" Test Delete Slice API ${listIndex}
+
+Test Post Slice API
+ [Arguments] ${listIndex}
+ ${sliceList} = Get Variable Value ${sList}
+ ${sliceDict}= utils.listToDict ${sliceList} ${listIndex}
+ ${site}= Get Variable Value ${site}
+ ${sliceDict}= utils.setFieldValueInDict ${sliceDict} site ${site}
+ ${creator}= Get Variable Value ${creator}
+ ${sliceDict}= utils.setFieldValueInDict ${sliceDict} creator ${creator}
+ ${api_result}= restApi.ApiPost CORE_SLICES ${sliceDict}
+ Should Be True ${api_result}
+
+Test Get Slice API
+ [Arguments] ${listIndex}
+ ${json_result}= restApi.ApiGet CORE_SLICES
+ Log ${json_result}
+ ${sliceList}= Get Variable Value ${sList}
+ ${sliceDict}= utils.listToDict ${sliceList} ${listIndex}
+ ${site}= Get Variable Value ${site}
+ ${sliceDict}= utils.setFieldValueInDict ${sliceDict} site ${site}
+ ${creator}= Get Variable Value ${creator}
+ ${sliceDict}= utils.setFieldValueInDict ${sliceDict} creator ${creator}
+ ${ID}= utils.getFieldValueFromDict ${sliceDict} id
+ ${getJsonDict}= utils.getDictFromListOfDict ${json_result} id ${ID}
+ ${test_result}= utils.compare_dict ${sliceDict} ${getJsonDict}
+ Should Be True ${json_result}
+
+Test Delete Slice API
+ [Arguments] ${listIndex}
+ ${json_getresult}= restApi.ApiGet CORE_SLICES
+ ${sliceList}= Get Variable Value ${sList}
+ ${sliceDict}= utils.listToDict ${sList} ${listIndex}
+ ${sliceName}= utils.getFieldValueFromDict ${sliceDict} name
+ Log ${sliceName}
+ ${getSliceDict}= utils.getDictFromListofDict ${json_getresult} name ${sliceName}
+ Log ${getSliceDict}
+ ${sliceID}= utils.getFieldValueFromDict ${getSliceDict} id
+ Log ${sliceID}
+ ${test_result}= restApi.ApiDelete CORE_SLICES ${sliceID}
+ Should be True ${test_result}
diff --git a/src/test/cord-api/Tests/data/Ch_Deployment.json b/src/test/cord-api/Tests/data/Ch_Deployment.json
new file mode 100644
index 0000000..07f0f56
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_Deployment.json
@@ -0,0 +1,11 @@
+{
+ "DeploymentInfo":
+ [
+ {
+ "name": "test-deployment-1"
+ },
+ {
+ "name": "test-deployment-2"
+ }
+ ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_Flavors.json b/src/test/cord-api/Tests/data/Ch_Flavors.json
new file mode 100644
index 0000000..0437db2
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_Flavors.json
@@ -0,0 +1,12 @@
+{
+ "flavorsInfo": [
+ {
+ "flavor": "mq.test",
+ "name": "mq.test"
+ },
+ {
+ "flavor": "mq.test2",
+ "name": "mq.test2"
+ }
+ ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_Node.json b/src/test/cord-api/Tests/data/Ch_Node.json
new file mode 100644
index 0000000..245bcf3
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_Node.json
@@ -0,0 +1,13 @@
+{
+ "NodeInfo":
+ [
+ {
+ "name": "test-node-1",
+ "site_deployment_id": 1
+ },
+ {
+ "name": "test-node-2",
+ "site_deployment_id": 1
+ }
+ ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_SanityInstance.json b/src/test/cord-api/Tests/data/Ch_SanityInstance.json
new file mode 100644
index 0000000..d707b52
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_SanityInstance.json
@@ -0,0 +1,20 @@
+{
+ "InstanceInfo": [
+ {
+ "name": "test-instance1",
+ "image_id": 1,
+ "slice_id": 1,
+ "deployment_id": 1,
+ "node_id": 1,
+ "creator_id" : 1
+ },
+ {
+ "name": "test-instance",
+ "image_id": 1,
+ "slice_id": 1,
+ "deployment_id": 1,
+ "node_id": 1,
+ "creator_id" : 1
+ }
+ ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_Service.json b/src/test/cord-api/Tests/data/Ch_Service.json
new file mode 100644
index 0000000..0dd5193
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_Service.json
@@ -0,0 +1,13 @@
+{
+ "ServiceInfo":
+ [
+ {
+ "name": "test-service-1",
+ "description": "Test service No.1"
+ },
+ {
+ "name": "test-service-2",
+ "description": "Test service No.2"
+ }
+ ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_Site.json b/src/test/cord-api/Tests/data/Ch_Site.json
new file mode 100644
index 0000000..feffe3b
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_Site.json
@@ -0,0 +1,15 @@
+{
+ "SiteInfo":
+ [
+ {
+ "name": "test-site-1",
+ "login_base":"testsite1",
+ "abbreviated_name":"ts1"
+ },
+ {
+ "name": "test-site-2",
+ "login_base":"testsite2",
+ "abbreviated_name":"ts2"
+ }
+ ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_Slice.json b/src/test/cord-api/Tests/data/Ch_Slice.json
new file mode 100644
index 0000000..ee795b7
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_Slice.json
@@ -0,0 +1,14 @@
+{
+ "SliceInfo": [
+ {
+ "name": "mysite_test-slice-1",
+ "site_id": 1,
+ "creator_id": 1
+ },
+ {
+ "name": "mysite_test-slice-2",
+ "site_id": 2,
+ "creator_id": 2
+ }
+ ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_Subscriber.json b/src/test/cord-api/Tests/data/Ch_Subscriber.json
new file mode 100644
index 0000000..d5e81a1
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_Subscriber.json
@@ -0,0 +1,28 @@
+{
+ "SubscriberInfo" : [
+ {
+ "cdn_enable": true,
+ "uplink_speed": 1000000000,
+ "downlink_speed": 1000000000,
+ "enable_uverse": true,
+ "status": "enabled",
+ "service_specific_id": "304",
+ "name": "My House"
+ },
+ {
+ "cdn_enable": false,
+ "uplink_speed": 500000000,
+ "downlink_speed": 500000000,
+ "enable_uverse": false,
+ "status": "enabled",
+ "service_specific_id": "305",
+ "name": "My House-305"
+ },
+ {
+ "cdn_enable": true,
+ "uplink_speed": 500000000,
+ "service_specific_id": "306",
+ "name": "My House-306"
+ }
+ ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_Users.json b/src/test/cord-api/Tests/data/Ch_Users.json
new file mode 100644
index 0000000..0d8b415
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_Users.json
@@ -0,0 +1,26 @@
+{
+ "UserInfo": [
+ {
+ "firstname" : "TestUser001",
+ "lastname" : "User001",
+ "password" : "TestUser001",
+ "email" : "TestUser001@onlab.us",
+ "site_id": 1
+ },
+ {
+ "firstname" : "TestUser002",
+ "lastname" : "User002",
+ "password" : "TestUser002",
+ "email" : "TestUser002@onlab.us",
+ "site_id": 1
+ },
+ {
+ "firstname" : "TestUser003",
+ "lastname" : "User003",
+ "password" : "TestUser003",
+ "email" : "TestUser003@onlab.us",
+ "site_id": 1
+ }
+ ]
+}
+
diff --git a/src/test/cord-api/Tests/data/Ch_VoltTenant.json b/src/test/cord-api/Tests/data/Ch_VoltTenant.json
new file mode 100644
index 0000000..305ba90
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_VoltTenant.json
@@ -0,0 +1,31 @@
+{
+ "voltSubscriberInfo" : [
+ {
+ "voltTenant" :
+ {
+ "s_tag" : 114,
+ "c_tag" : 224,
+ "subscriber_root_id" : ""
+ },
+ "service_specific_id" : "304"
+ },
+ {
+ "voltTenant" :
+ {
+ "s_tag" : "121",
+ "c_tag" : "333",
+ "subscriber_root_id" : ""
+ },
+ "service_specific_id" : "305"
+ },
+ {
+ "voltTenant" :
+ {
+ "s_tag" : "131",
+ "c_tag" : "444",
+ "subscriber_root_id" : ""
+ },
+ "service_specific_id" : "306"
+ }
+ ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_defaultServices.json b/src/test/cord-api/Tests/data/Ch_defaultServices.json
new file mode 100644
index 0000000..4128481
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_defaultServices.json
@@ -0,0 +1,13 @@
+{
+ "ServiceInfo":
+ [
+ {"name": "ONOS_CORD"},
+ {"name": "vtn"},
+ {"name": "fabric"},
+ {"name": "ONOS_Fabric"},
+ {"name": "vrouter"},
+ {"name": "vsg"},
+ {"name": "volt"},
+ {"name": "vtr"}
+ ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_putService.json b/src/test/cord-api/Tests/data/Ch_putService.json
new file mode 100644
index 0000000..8a962a7
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_putService.json
@@ -0,0 +1,13 @@
+{
+ "ServiceInfo":
+ [
+ {
+ "name": "test-service-1",
+ "description": "Test service No.1 - Edited"
+ },
+ {
+ "name": "test-service-2",
+ "description": "Test service No.2 - Edited"
+ }
+ ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_putSite.json b/src/test/cord-api/Tests/data/Ch_putSite.json
new file mode 100644
index 0000000..6e1e4b3
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_putSite.json
@@ -0,0 +1,15 @@
+{
+ "SiteInfo":
+ [
+ {
+ "name": "test-site-1",
+ "login_base":"testsite1",
+ "abbreviated_name":"ts1 - edited"
+ },
+ {
+ "name": "test-site-2",
+ "login_base":"testsite2",
+ "abbreviated_name":"ts2 - edited"
+ }
+ ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_putSubscriber.json b/src/test/cord-api/Tests/data/Ch_putSubscriber.json
new file mode 100644
index 0000000..32f3607
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_putSubscriber.json
@@ -0,0 +1,23 @@
+{
+ "SubscriberInfo" : [
+ {
+ "cdn_enable": true,
+ "downlink_speed": 2000000000,
+ "service_specific_id": "304",
+ "name": "My House-Edited"
+ },
+ {
+ "uplink_speed": 100000000,
+ "enable_uverse": true,
+ "status": "disabled",
+ "service_specific_id": "305",
+ "name": "My House-305-Edited"
+ },
+ {
+ "cdn_enable": false,
+ "uplink_speed": 600000000,
+ "service_specific_id": "306",
+ "name": "My House-306-Edited"
+ }
+ ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_putVoltTenant.json b/src/test/cord-api/Tests/data/Ch_putVoltTenant.json
new file mode 100644
index 0000000..d3f4440
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_putVoltTenant.json
@@ -0,0 +1,28 @@
+{
+ "voltSubscriberInfo" : [
+ {
+ "voltTenant" :
+ {
+ "s_tag" : 118,
+ "c_tag" : 228
+ },
+ "service_specific_id" : "204"
+ },
+ {
+ "voltTenant" :
+ {
+ "s_tag" : "112",
+ "c_tag" : "331"
+ },
+ "service_specific_id" : "305"
+ },
+ {
+ "voltTenant" :
+ {
+ "s_tag" : "112",
+ "c_tag" : "442"
+ },
+ "service_specific_id" : "306"
+ }
+ ]
+}