diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtil.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtil.java
index d0fbe64..ca9647f 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtil.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtil.java
@@ -480,17 +480,7 @@
         StringBuilder endpointSb = new StringBuilder();
         endpointSb.append(auth.protocol().name().toLowerCase());
         endpointSb.append("://");
-        endpointSb.append(node.endPoint());
-        endpointSb.append(":");
-        endpointSb.append(auth.port());
-        endpointSb.append("/");
-
-        // in case the version is v3, we need to append identity path into endpoint
-        if (auth.version().equals(KEYSTONE_V3)) {
-            endpointSb.append(IDENTITY_PATH);
-        }
-
-        endpointSb.append(auth.version());
+        endpointSb.append(node.endpoint());
         return endpointSb.toString();
     }
 
diff --git a/apps/openstacknetworking/app/src/test/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtilTest.java b/apps/openstacknetworking/app/src/test/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtilTest.java
index eb323ef..0e291f8 100644
--- a/apps/openstacknetworking/app/src/test/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtilTest.java
+++ b/apps/openstacknetworking/app/src/test/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtilTest.java
@@ -397,12 +397,11 @@
     /**
      * Tests the getConnectedClient method.
      */
-    @Test(expected = Exception.class)
+    @Test
     public void testGetConnectedClient() {
         OpenstackNode.Builder osNodeBuilderV2 = DefaultOpenstackNode.builder();
         OpenstackAuth.Builder osNodeAuthBuilderV2 = DefaultOpenstackAuth.builder()
                 .version("v2.0")
-                .port(35357)
                 .protocol(OpenstackAuth.Protocol.HTTP)
                 .project("admin")
                 .username("admin")
@@ -412,16 +411,14 @@
         openstackControlNodeV2 = osNodeBuilderV2.hostname("controllerv2")
                 .type(OpenstackNode.NodeType.CONTROLLER)
                 .managementIp(IpAddress.valueOf("1.1.1.1"))
-                .endPoint("1.1.1.1")
+                .endpoint("1.1.1.1")
                 .authentication(osNodeAuthBuilderV2.build())
                 .state(NodeState.COMPLETE)
                 .build();
 
-
         OpenstackNode.Builder osNodeBuilderV3 = DefaultOpenstackNode.builder();
         OpenstackAuth.Builder osNodeAuthBuilderV3 = DefaultOpenstackAuth.builder()
                 .version("v2")
-                .port(80)
                 .protocol(OpenstackAuth.Protocol.HTTP)
                 .project("admin")
                 .username("admin")
@@ -431,7 +428,7 @@
         openstackControlNodeV3 = osNodeBuilderV3.hostname("controllerv3")
                 .type(OpenstackNode.NodeType.CONTROLLER)
                 .managementIp(IpAddress.valueOf("2.2.2.2"))
-                .endPoint("2.2.2.2")
+                .endpoint("2.2.2.2")
                 .authentication(osNodeAuthBuilderV3.build())
                 .state(NodeState.COMPLETE)
                 .build();
diff --git a/apps/openstacknetworking/network-cfg.json b/apps/openstacknetworking/network-cfg.json
index 76c5c09..38adbc7 100644
--- a/apps/openstacknetworking/network-cfg.json
+++ b/apps/openstacknetworking/network-cfg.json
@@ -57,7 +57,7 @@
             "hostname" : "controller",
             "type" : "CONTROLLER",
             "managementIp" : "172.16.130.10",
-            "endPoint" : "keystone-endpoint-url",
+            "endpoint" : "keystone-endpoint-url",
             "authentication" : {
               "version" : "v2.0",
               "port" : 35357,
