diff --git a/Jenkinsfile-rcord b/Jenkinsfile-rcord
index 0d08309..c7641d7 100644
--- a/Jenkinsfile-rcord
+++ b/Jenkinsfile-rcord
@@ -84,6 +84,10 @@
                 rm -r Log/ || true
                 rm -r TestDoc/ || true
                 mkdir TestDoc || true
+                export SERVER_IP=localhost
+                export SERVER_PORT=9101
+                export XOS_USER=xosadmin@opencord.org
+                export XOS_PASSWD=\$(cat /opt/credentials/xosadmin@opencord.org)
                 pybot -v CORD_PROFILE:${pod_config.cord_profile} -d Log -T verifyCollectDiag.robot
                 python -m robot.testdoc verifyCollectDiag.robot TestDoc/verifyCollectDiag.html
                 """)
@@ -101,6 +105,10 @@
                 """)
                 if (deployment_config.fabric_switches != null) {
                     runHeadNodeCmd("""
+                    export SERVER_IP=localhost
+                    export SERVER_PORT=9101
+                    export XOS_USER=xosadmin@opencord.org
+                    export XOS_PASSWD=\$(cat /opt/credentials/xosadmin@opencord.org)
                     cd /opt/cord/test/cord-tester/src/test/robot/
                     pybot --exclude notready -v FABRIC:on -v PUBLIC_IFACE:${pod_config.external_iface} -v CORD_PROFILE:${pod_config.cord_profile} -d Log -T SanityPhyPOD.robot
                     python -m robot.testdoc SanityPhyPOD.robot TestDoc/SanityPhyPOD.html
@@ -109,6 +117,10 @@
                 else {
                     // Exclude fabric related tests
                     runHeadNodeCmd("""
+                    export SERVER_IP=localhost
+                    export SERVER_PORT=9101
+                    export XOS_USER=xosadmin@opencord.org
+                    export XOS_PASSWD=\$(cat /opt/credentials/xosadmin@opencord.org)
                     cd /opt/cord/test/cord-tester/src/test/robot/
                     pybot --exclude notready --exclude fabric -v FABRIC:off -v PUBLIC_IFACE:${pod_config.external_iface} -v CORD_PROFILE:${pod_config.cord_profile} -d Log -T SanityPhyPOD.robot
                     python -m robot.testdoc SanityPhyPOD.robot TestDoc/SanityPhyPOD.html
@@ -121,10 +133,10 @@
         timeout(10) {
             try {
                 runHeadNodeCmd("""
-                cd /opt/cord/test/cord-tester/src/test/cord-api/Properties/
-                sed -i s/^SERVER_IP\\ =\\ .*/SERVER_IP\\ =\\ \\'localhost\\'/ RestApiProperties.py
-                sed -i s/^SERVER_PORT\\ =\\ .*/SERVER_PORT\\ =\\ \\'9101\\'/ RestApiProperties.py
-                sed -i s/^PASSWD\\ =\\ .*/PASSWD\\ =\\ \\'\\\$(cat /opt/credentials/xosadmin@opencord.org)\\'/ RestApiProperties.py
+                export SERVER_IP=localhost
+                export SERVER_PORT=9101
+                export XOS_USER=xosadmin@opencord.org
+                export XOS_PASSWD=\$(cat /opt/credentials/xosadmin@opencord.org)
                 all_passed=true
                 cd /opt/cord/test/cord-tester/src/test/cord-api/
                 rm -r Log/ || true
@@ -151,6 +163,10 @@
         timeout(30) {
             try {
                 runHeadNodeCmd("""
+                export SERVER_IP=localhost
+                export SERVER_PORT=9101
+                export XOS_USER=xosadmin@opencord.org
+                export XOS_PASSWD=\$(cat /opt/credentials/xosadmin@opencord.org)
                 cd /opt/cord/test/cord-tester/src/test/vsg/
                 rm -r Log/ || true
                 rm -r TestDoc/ || true
@@ -158,6 +174,10 @@
                 """)
                 if (deployment_config.pod_config.file_name != 'calix-pod1.yml') {
                     runHeadNodeCmd("""
+                    export SERVER_IP=localhost
+                    export SERVER_PORT=9101
+                    export XOS_USER=xosadmin@opencord.org
+                    export XOS_PASSWD=\$(cat /opt/credentials/xosadmin@opencord.org)
                     cd /opt/cord/test/cord-tester/src/test/vsg/
                     pybot -L TRACE -v pod:${deployment_config.pod_config.file_name} -d Log -T vsg_dataplane_test.robot
                     python -m robot.testdoc vsg_dataplane_test.robot TestDoc/vsg_dataplane_test.html
@@ -165,6 +185,10 @@
                 }
                 else {
                     runHeadNodeCmd("""
+                    export SERVER_IP=localhost
+                    export SERVER_PORT=9101
+                    export XOS_USER=xosadmin@opencord.org
+                    export XOS_PASSWD=\$(cat /opt/credentials/xosadmin@opencord.org)
                     cd /opt/cord/test/cord-tester/src/test/vsg/
                     pybot -L TRACE -v pod:${deployment_config.pod_config.file_name} -e dataplane -d Log -T vsg_dataplane_test.robot
                     python -m robot.testdoc vsg_dataplane_test.robot TestDoc/vsg_dataplane_test.html
