[ONOS-4871] Fix gateway external port from list to single port

 - Fix GatewayNode externalInterface from list to string
 - Fix GatewayService externalPort from list to portNumber

Change-Id: I8869c7bf550e005db854b464763cc2bc321faa6a
diff --git a/apps/openstacknetworking/routing/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackIcmpHandler.java b/apps/openstacknetworking/routing/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackIcmpHandler.java
index d9e632b..6eaddf1 100644
--- a/apps/openstacknetworking/routing/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackIcmpHandler.java
+++ b/apps/openstacknetworking/routing/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackIcmpHandler.java
@@ -331,7 +331,7 @@
     private Map<DeviceId, PortNumber> getExternalInfo() {
         Map<DeviceId, PortNumber> externalInfoMap = Maps.newHashMap();
         gatewayService.getGatewayDeviceIds().forEach(deviceId ->
-                externalInfoMap.putIfAbsent(deviceId, gatewayService.getGatewayExternalPorts(deviceId).get(0)));
+                externalInfoMap.putIfAbsent(deviceId, gatewayService.getGatewayExternalPort(deviceId)));
         return externalInfoMap;
     }
 }
diff --git a/apps/openstacknetworking/routing/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackPnatHandler.java b/apps/openstacknetworking/routing/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackPnatHandler.java
index ce33e9e..137c090 100644
--- a/apps/openstacknetworking/routing/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackPnatHandler.java
+++ b/apps/openstacknetworking/routing/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackPnatHandler.java
@@ -147,11 +147,11 @@
 
         ScalableGatewayService gatewayService = getService(ScalableGatewayService.class);
         GatewayNode gatewayNode = gatewayService.getGatewayNode(deviceId);
-        if (gatewayNode.getGatewayExternalInterfaceNames().size() == 0) {
+        if (gatewayNode.getGatewayExternalInterfaceName() == null) {
             log.error(EXTERNAL_PORT_NULL, deviceId.toString());
             return;
         }
-        treatment.setOutput(gatewayService.getGatewayExternalPorts(deviceId).get(0));
+        treatment.setOutput(gatewayService.getGatewayExternalPort(deviceId));
 
         ethernet.resetChecksum();
 
diff --git a/apps/openstacknetworking/routing/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackRoutingManager.java b/apps/openstacknetworking/routing/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackRoutingManager.java
index cbc8f18..bfcb2b8 100644
--- a/apps/openstacknetworking/routing/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackRoutingManager.java
+++ b/apps/openstacknetworking/routing/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackRoutingManager.java
@@ -468,7 +468,7 @@
                         DeviceId deviceId = pkt.receivedFrom().deviceId();
                         Port port = null;
                         port = deviceService.getPort(deviceId,
-                                gatewayService.getGatewayExternalPorts(deviceId).get(0));
+                                gatewayService.getGatewayExternalPort(deviceId));
                         if (port != null) {
                             OpenstackPort openstackPort = getOpenstackPort(ethernet.getSourceMAC(),
                                     Ip4Address.valueOf(iPacket.getSourceAddress()));
diff --git a/apps/openstacknetworking/routing/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackRoutingRulePopulator.java b/apps/openstacknetworking/routing/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackRoutingRulePopulator.java
index 95e15c3..d2c928f 100644
--- a/apps/openstacknetworking/routing/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackRoutingRulePopulator.java
+++ b/apps/openstacknetworking/routing/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackRoutingRulePopulator.java
@@ -188,7 +188,7 @@
 
         tBuilder.setIpSrc(externalIp);
         gatewayService.getGatewayNodes().forEach(node -> {
-            tBuilder.setOutput(gatewayService.getGatewayExternalPorts(node.getGatewayDeviceId()).get(0));
+            tBuilder.setOutput(gatewayService.getGatewayExternalPort(node.getGatewayDeviceId()));
             ForwardingObjective fo = DefaultForwardingObjective.builder()
                     .withSelector(sBuilder.build())
                     .withTreatment(tBuilder.build())
@@ -548,7 +548,7 @@
     }
 
     private PortNumber getExternalPortNum(DeviceId deviceId) {
-        return checkNotNull(gatewayService.getGatewayExternalPorts(deviceId).get(0), PORTNOTNULL);
+        return checkNotNull(gatewayService.getGatewayExternalPort(deviceId), PORTNOTNULL);
     }
 
     /**