diff --git a/src/test/cord-api/Framework/restApi.py b/src/test/cord-api/Framework/restApi.py
index ba2de91..cbd157c 100644
--- a/src/test/cord-api/Framework/restApi.py
+++ b/src/test/cord-api/Framework/restApi.py
@@ -118,6 +118,16 @@
         passed = self.checkResult(resp, requests.codes.created) or self.checkResult(resp, requests.codes.ok)
         return passed
 
+    def ApiPostReturnJson(self, key, jsonData):
+        url = self.getURL(key)
+        data = json.dumps(jsonData)
+        print "url, data..", url, data
+        resp = requests.post(url, data=data, headers=self.jsonHeader, auth=(self.user, self.password))
+        print "requests.codes.....",requests.codes.created
+        print "posted data...", resp.json()
+        passed = self.checkResult(resp, requests.codes.created) or self.checkResult(resp, requests.codes.ok)
+        return passed, resp.json()
+
     def ApiGet(self, key, urlSuffix=""):
         url = self.getURL(key) + str(urlSuffix)
         print "get url...",url
@@ -171,8 +181,22 @@
         return passed
 
 #test
-'''
+#'''
 test = restApi("MCORD_RestApiProperties.py")
 print test.getURL("CORE_INSTANCES")
 
-'''
+test = restApi()
+voltdevice = {
+   "name" : "volt-10",
+   "device_type" : "asf_olt",
+   "host" : "172.17.0.1",
+   "port" : 50060,
+   "switch_port" : "5",
+   "outer_tpid" : "0x8100",
+   "volt_service_id" : 7
+  }
+#result = test.ApiPost("VOLT_DEVICE",voltdevice) 
+dele = test.ApiChameleonDelete("VOLT_DEVICE",13)
+dele = test.ApiChameleonDelete("VOLT_DEVICE",14)
+dele = test.ApiChameleonDelete("VOLT_DEVICE",15)
+#'''
diff --git a/src/test/cord-api/Properties/RestApiProperties.py b/src/test/cord-api/Properties/RestApiProperties.py
index c34a378..d3d4606 100644
--- a/src/test/cord-api/Properties/RestApiProperties.py
+++ b/src/test/cord-api/Properties/RestApiProperties.py
@@ -16,12 +16,15 @@
 
 #!/usr/bin/env python
 
-SERVER_IP = 'localhost'
-SERVER_PORT = '9101'
+SERVER_IP = 'ms1343.utah.cloudlab.us'
+SERVER_PORT = '8080'
 XOS_USER = 'xosadmin@opencord.org'
-XOS_PASSWD = ''
+XOS_PASSWD = 'TbVle45watOPMeB1q93N'
 VOLT_SUBSCRIBER = '/xosapi/v1/rcord/cordsubscriberroots'
 VOLT_TENANT = '/xosapi/v1/volt/voltserviceinstances'
+VOLT_DEVICE = '/xosapi/v1/volt/oltdevices'
+VOLT_SERVICE = '/xosapi/v1/volt/voltservices'
+PON_PORT = '/xosapi/v1/volt/ponports'
 CH_CORE_SERVICELINK = '/xosapi/v1/core/serviceinstancelinks'
 TENANT_SUBSCRIBER = '/api/tenant/cord/subscriber/'
 TENANT_VOLT = '/api/tenant/cord/volt/'
diff --git a/src/test/cord-api/Tests/Sanity_PONPort.txt b/src/test/cord-api/Tests/Sanity_PONPort.txt
new file mode 100644
index 0000000..ba7237a
--- /dev/null
+++ b/src/test/cord-api/Tests/Sanity_PONPort.txt
@@ -0,0 +1,73 @@
+*** Settings ***
+Documentation     Test suite for PONPort
+Suite Setup       Read InputFile
+Test Template     Verify PONPort functionality
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+
+*** Variables ***
+# Update the input file for olt_device_id before running the tests
+${PATHFILE}       ${CURDIR}/data/PONPort.json
+
+*** Test Cases ***    TYPE                         LISTINDEX
+Test Create PONPort-1
+                      CREATE                       0
+
+Test Get PONPort-1
+                      RETRIEVE                     0
+Test Delete PONPort-1
+                      DELETE       0
+Test Create PONPort-2
+                      CREATE       1
+Test Get PONPort-2
+                      RETRIEVE     1
+Test Delete PONPort-2
+                      DELETE       1
+Test Create PONPort-3
+                      CREATE       2
+Test Get PONPort-3
+                      RETRIEVE     2
+Test Delete PONPort-3
+                      DELETE       2
+
+*** Keywords ***
+Read InputFile
+    ${PONPortList}=    utils.jsonToList    ${PATHFILE}    PONPortInfo
+    Set Suite Variable    ${plist}    ${PONPortList}
+    Set Suite Variable    ${PONPort_Id}    ${EMPTY}
+
+Verify PONPort functionality
+    [Arguments]    ${type}    ${listIndex}
+    Run Keyword If    "${type}" == "CREATE"    Test Post PONPort API    ${listIndex}
+    Run Keyword If    "${type}" == "RETRIEVE"    Test Get PONPort API    ${listIndex}
+    Run Keyword If    "${type}" == "DELETE"    Test Delete PONPort API    ${listIndex}
+
+Test Post PONPort API
+    [Arguments]    ${listIndex}
+    ${PONPortList} =    Get Variable Value    ${plist}
+    ${PONPortDict}=    utils.listToDict    ${PONPortList}    ${listIndex}
+    ${api_result_status}    ${api_result_json}=    restApi.ApiPostReturnJson    PON_PORT    ${PONPortDict}
+    Should Be True    ${api_result_status}
+    ${PONPort_Id}=    Get From Dictionary    ${api_result_json}    id
+    Set Global Variable    ${PONPort_Id}
+
+Test Get PONPort API
+    [Arguments]    ${listIndex}
+    Log    ${PONPort_Id}
+    ${json_result}=    restApi.ApiChameleonGet    PON_PORT    ${PONPort_Id}
+    Log    ${json_result}
+    ${PONPortList} =    Get Variable Value    ${plist}
+    ${PONPortDict}=    utils.listToDict    ${PONPortList}    ${listIndex}
+    Log    ${PONPortDict}
+    ${test_result}=    utils.compare_dict    ${PONPortDict}    ${json_result}
+    Should Be True    ${test_result}
+
+Test Delete PONPort API
+    [Arguments]    ${listIndex}
+    ${test_result}=    restApi.ApiChameleonDelete    PON_PORT    ${PONPort_Id}
+    Should Be True    ${test_result}
diff --git a/src/test/cord-api/Tests/VOLTDevice_Test.txt b/src/test/cord-api/Tests/VOLTDevice_Test.txt
new file mode 100644
index 0000000..d3b1f1c
--- /dev/null
+++ b/src/test/cord-api/Tests/VOLTDevice_Test.txt
@@ -0,0 +1,118 @@
+*** Settings ***
+Documentation     Test suite for VOLTDevice
+Suite Setup       Read InputFile
+Test Template     Verify VOLTDevice functionality
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+
+*** Variables ***
+${PATHFILE}       ${CURDIR}/data/VOLTDevice.json
+${PATHFILE1}      ${CURDIR}/data/PONPort.json
+
+*** Test Cases ***    TYPE                         LISTINDEX
+Test Create VOLTDevice-1
+                      CREATE                       0
+Test Get VOLTDevice-1
+                      RETRIEVE                     0
+Test Create PONPort-1
+                      PONCREATE                       0
+
+Test Get PONPort-1
+                      PONRETRIEVE                     0
+#Test Delete VOLTDevice-1
+#                      DELETE       0
+Test Create VOLTDevice-2
+                      CREATE       1
+Test Get VOLTDevice-2
+                      RETRIEVE     1
+Test Create PONPort-2
+                      PONCREATE       1
+Test Get PONPort-2
+                      PONRETRIEVE     1
+#Test Delete VOLTDevice-2
+#                      DELETE       1
+Test Create VOLTDevice-3
+                      CREATE       2
+Test Get VOLTDevice-3
+                      RETRIEVE     2
+Test Create PONPort-3
+                      CREATE       2
+Test Get PONPort-3
+                      RETRIEVE     2
+#Test Delete VOLTDevice-3
+#                      DELETE       2
+
+
+*** Keywords ***
+Read InputFile
+    ${voltDeviceList}=    utils.jsonToList    ${PATHFILE}    VOLTDeviceInfo
+    Set Suite Variable    ${dlist}    ${voltDeviceList}
+    Set Global Variable    ${VOLTDevice_Id}    ${EMPTY}
+    ${PONPortList}=    utils.jsonToList    ${PATHFILE1}    PONPortInfo
+    Set Suite Variable    ${plist}    ${PONPortList}
+    Set Suite Variable    ${PONPort_Id}    ${EMPTY}
+
+Verify VOLTDevice functionality
+    [Arguments]    ${type}    ${listIndex}
+    Run Keyword If    "${type}" == "CREATE"    Test Post VOLT Device API    ${listIndex}
+    Run Keyword If    "${type}" == "RETRIEVE"    Test Get VOLT Device API    ${listIndex}
+    Run Keyword If    "${type}" == "DELETE"    Test Delete VOLT Device API    ${listIndex}
+    Run Keyword If    "${type}" == "PONCREATE"    Test Post PONPort API    ${listIndex}
+    Run Keyword If    "${type}" == "PONRETRIEVE"    Test Get PONPort API    ${listIndex}
+
+Test Post VOLT Device API
+    [Arguments]    ${listIndex}
+    ${voltDeviceList} =    Get Variable Value    ${dlist}
+    ${voltDeviceDict}=    utils.listToDict    ${voltDeviceList}    ${listIndex}
+    ${api_getResult}=    restApi.ApiGet    VOLT_SERVICE
+    ${voltServiceList}=    Get From Dictionary    ${api_getResult}    items
+    ${voltServiceDict}=    utils.getDictFromListOfDict    ${voltServiceList}    leaf_model_name    VOLTService
+    ${VOLTService_Id}=    Get From Dictionary    ${voltServiceDict}    id
+    ${voltDeviceDict}=    utils.setFieldValueInDict    ${voltDeviceDict}    volt_service_id    ${VOLTService_Id}
+    Log    ${voltDeviceDict}
+    ${api_result_status}    ${api_result_json}=    restApi.ApiPostReturnJson    VOLT_DEVICE    ${voltDeviceDict}
+    Should Be True    ${api_result_status}
+    ${VOLTDevice_Id}=    Get From Dictionary    ${api_result_json}    id
+    Set Global Variable    ${VOLTDevice_Id}
+
+Test Get VOLT Device API
+    [Arguments]    ${listIndex}
+    Log    ${VOLTDevice_Id}
+    ${json_result}=    restApi.ApiChameleonGet    VOLT_DEVICE    ${VOLTDevice_Id}
+    Log    ${json_result}
+    ${voltDeviceList} =    Get Variable Value    ${dlist}
+    ${voltDeviceDict}=    utils.listToDict    ${voltDeviceList}    ${listIndex}
+    Log    ${voltDeviceDict}
+    ${test_result}=    utils.compare_dict    ${voltDeviceDict}    ${json_result}
+    Should Be True    ${test_result}
+
+Test Post PONPort API
+    [Arguments]    ${listIndex}
+    ${PONPortList} =    Get Variable Value    ${plist}
+    ${PONPortDict}=    utils.listToDict    ${PONPortList}    ${listIndex}
+    ${PONPortDict}=    utils.setFieldValueInDict    ${PONPortDict}    olt_device_id    ${VOLTDevice_Id}
+    ${api_result_status}    ${api_result_json}=    restApi.ApiPostReturnJson    PON_PORT    ${PONPortDict}
+    Should Be True    ${api_result_status}
+    ${PONPort_Id}=    Get From Dictionary    ${api_result_json}    id
+    Set Global Variable    ${PONPort_Id}
+
+Test Get PONPort API
+    [Arguments]    ${listIndex}
+    Log    ${PONPort_Id}
+    ${json_result}=    restApi.ApiChameleonGet    PON_PORT    ${PONPort_Id}
+    Log    ${json_result}
+    ${PONPortList} =    Get Variable Value    ${plist}
+    ${PONPortDict}=    utils.listToDict    ${PONPortList}    ${listIndex}
+    Log    ${PONPortDict}
+    ${test_result}=    utils.compare_dict    ${PONPortDict}    ${json_result}
+    Should Be True    ${test_result}
+
+Test Delete VOLT Device API
+    [Arguments]    ${listIndex}
+    ${test_result}=    restApi.ApiChameleonDelete    VOLT_DEVICE    ${VOLTDevice_Id}
+    Should Be True    ${test_result}
diff --git a/src/test/cord-api/Tests/data/Ch_Subscriber.json b/src/test/cord-api/Tests/data/Ch_Subscriber.json
index e194a2e..44bf456 100644
--- a/src/test/cord-api/Tests/data/Ch_Subscriber.json
+++ b/src/test/cord-api/Tests/data/Ch_Subscriber.json
@@ -8,8 +8,9 @@
             "status": "enabled",
             "service_specific_id": "304",
             "name": "My House-304",
-            "s_tag": 333,
-            "c_tag": 888
+            "c_tag": 888,
+            "olt_device": "volt-1",
+            "olt_port": "volt-port-1"
     },
     {
             "cdn_enable": false,
@@ -19,16 +20,18 @@
             "status": "enabled",
             "service_specific_id": "305",
             "name": "My House-305",
-            "s_tag": 555,
-            "c_tag": 999
+            "c_tag": 999,
+            "olt_device": "volt-2",
+            "olt_port": "volt-port-2"
     },
     {
             "cdn_enable": true,
             "uplink_speed": 500000000,
             "service_specific_id": "306",
             "name": "My House-306",
-            "s_tag": 666,
-            "c_tag": 661
+            "c_tag": 661,
+            "olt_device": "volt-3",
+            "olt_port": "volt-port-3"
     }
   ]
 }
diff --git a/src/test/cord-api/Tests/data/PONPort.json b/src/test/cord-api/Tests/data/PONPort.json
new file mode 100644
index 0000000..da28e42
--- /dev/null
+++ b/src/test/cord-api/Tests/data/PONPort.json
@@ -0,0 +1,19 @@
+{
+    "PONPortInfo" : [
+    {
+            "name": "volt-port-1",
+            "s_tag": 222,
+            "olt_device_id": 1
+    },
+    {
+            "name": "volt-port-2",
+            "s_tag": 444,
+            "olt_device_id": 1
+    },
+    {
+            "name": "volt-port-3",
+            "s_tag": 333,
+            "olt_device_id": 1
+    }
+  ]
+}
diff --git a/src/test/cord-api/Tests/data/VOLTDevice.json b/src/test/cord-api/Tests/data/VOLTDevice.json
new file mode 100644
index 0000000..03b8eb1
--- /dev/null
+++ b/src/test/cord-api/Tests/data/VOLTDevice.json
@@ -0,0 +1,34 @@
+{
+    "VOLTDeviceInfo" : [
+    {
+            "device_type": "simulate_olt",
+            "host": "172.17.0.1",
+            "port": 50060,
+            "switch_datapath_id": "of:0000000ce2314000",
+            "switch_port": "5",
+            "outer_tpid": "0x8100",
+            "name": "volt-1",
+            "volt_service_id": 1
+    },
+    {
+            "device_type": "asf_olt",
+            "host": "172.17.0.2",
+            "port": 50060,
+            "switch_datapath_id": "of:0000000ce2315000",
+            "switch_port": "5",
+            "outer_tpid": "0x8100",
+            "name": "volt-2",
+            "volt_service_id": 1
+    },
+    {
+            "device_type": "ponsim_olt",
+            "host": "172.17.0.3",
+            "port": 50060,
+            "switch_datapath_id": "of:0000000ce2316000",
+            "switch_port": "5",
+            "outer_tpid": "0x8100",
+            "name": "volt-3",
+            "volt_service_id": 1
+    }
+  ]
+}
