Minor fix for tapi helper and for TAPI Rpc error message

Change-Id: Ieef1c0937f797efc26a00d9e9e67850cb92f6919
diff --git a/apps/odtn/api/src/test/resources/openconfig-device-link.json b/apps/odtn/api/src/test/resources/openconfig-device-link.json
index 9cbc0e3..23bbf67 100644
--- a/apps/odtn/api/src/test/resources/openconfig-device-link.json
+++ b/apps/odtn/api/src/test/resources/openconfig-device-link.json
@@ -4,42 +4,48 @@
       "basic": {
         "type": "OPTICAL",
         "metric": 1,
-        "durable": true
+        "durable": true,
+        "bidirectional": true
       }
     },
     "netconf:127.0.0.1:11002/202-netconf:127.0.0.1:11003/202": {
       "basic": {
         "type": "OPTICAL",
         "metric": 1,
-        "durable": true
+        "durable": true,
+        "bidirectional": true
       }
     },
     "netconf:127.0.0.1:11002/203-netconf:127.0.0.1:11003/203": {
       "basic": {
         "type": "OPTICAL",
         "metric": 1,
-        "durable": true
+        "durable": true,
+        "bidirectional": true
       }
     },
     "netconf:127.0.0.1:11002/204-netconf:127.0.0.1:11003/204": {
       "basic": {
         "type": "OPTICAL",
         "metric": 1,
-        "durable": true
+        "durable": true,
+        "bidirectional": true
       }
     },
     "netconf:127.0.0.1:11002/205-netconf:127.0.0.1:11003/205": {
       "basic": {
         "type": "OPTICAL",
         "metric": 1,
-        "durable": true
+        "durable": true,
+        "bidirectional": true
       }
     },
     "netconf:127.0.0.1:11002/206-netconf:127.0.0.1:11003/206": {
       "basic": {
         "type": "OPTICAL",
         "metric": 1,
-        "durable": true
+        "durable": true,
+        "bidirectional": true
       }
     }
   }
diff --git a/apps/odtn/service/src/main/java/org/onosproject/odtn/internal/DcsBasedTapiConnectivityRpc.java b/apps/odtn/service/src/main/java/org/onosproject/odtn/internal/DcsBasedTapiConnectivityRpc.java
index d5f2962..b68696e 100755
--- a/apps/odtn/service/src/main/java/org/onosproject/odtn/internal/DcsBasedTapiConnectivityRpc.java
+++ b/apps/odtn/service/src/main/java/org/onosproject/odtn/internal/DcsBasedTapiConnectivityRpc.java
@@ -82,7 +82,7 @@
 
             // check SIP validation
             if (!disjoint(getUsedSips(), input.getSips())) {
-                log.error("check SIP validation : NG");
+                log.error("SIPS {} are already used, please use a different pair", input.getSips());
                 return new RpcOutput(RpcOutput.Status.RPC_FAILURE, null);
             }
             log.debug("check SIP validation : OK");
diff --git a/tools/test/scenarios/bin/tapiHelper.py b/tools/test/scenarios/bin/tapiHelper.py
index 9fe3fcc..f5bfcc8 100755
--- a/tools/test/scenarios/bin/tapiHelper.py
+++ b/tools/test/scenarios/bin/tapiHelper.py
@@ -141,6 +141,8 @@
     assert topo["uuid"] == nep_pair[1]["topology-uuid"]
     (src_onep, dst_onep) = (find_client_onep(nep_pair[0], topo["node"]),
                             find_client_onep(nep_pair[1], topo["node"]))
+    print "client side neps", (src_onep, dst_onep)
+
     src_sip_uuid, dst_sip_uuid = \
         (src_onep["mapped-service-interface-point"][0]["service-interface-point-uuid"],
          dst_onep["mapped-service-interface-point"][0]["service-interface-point-uuid"])
@@ -157,6 +159,14 @@
         raise Exception('POST {}'.format(resp.status_code))
     return resp
 
+#
+# Parse array structure "name" under structure "owned node edge point"
+#
+def parse_value(arr):
+    rtn = {}
+    for item in arr:
+        rtn[item["value-name"]] = item["value"]
+    return rtn
 
 #
 # Find node edge point of node structure in topology with client-side port, by using nep with line-side port.
@@ -168,16 +178,18 @@
             conn_id = None
             for onep in node["owned-node-edge-point"]:
                 if onep["uuid"] == line_nep_in_link["node-edge-point-uuid"]:
-                    assert onep["name"][1]["value-name"] == "odtn-connection-id"
-                    assert onep["name"][0]["value"] == "line"
-                    conn_id = onep["name"][1]["value"]
-                    break
+                    name = parse_value(onep["name"])
+                    if name["odtn-port-type"] == "line":
+                        conn_id = name["odtn-connection-id"]
+                        break
             if conn_id is None:
                 raise AssertionError("Cannot find owned node edge point with node id %s and nep id %s."
                                      % (line_nep_in_link["node-uuid"], line_nep_in_link["node-edge-point-uuid"], ))
             for onep in node["owned-node-edge-point"]:
-                if onep["name"][1]["value"] == conn_id and onep["name"][0]["value"] == "client":
+                name = parse_value(onep["name"])
+                if name["odtn-port-type"] == "client" and name["odtn-connection-id"] == conn_id:
                     return onep
+
     return None