Fix: check the remote server connectivity before adding to map

1. replace boolean typed enable flag into enumeration status type
2. put the service in pending state, if the activation was failed

Change-Id: I15110f3d837d9a3ecf048c2777ec6fae9bf264ff
diff --git a/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/util/OpenstackTelemetryUtil.java b/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/util/OpenstackTelemetryUtil.java
index 39b1fdb..afb7365 100644
--- a/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/util/OpenstackTelemetryUtil.java
+++ b/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/util/OpenstackTelemetryUtil.java
@@ -19,6 +19,10 @@
 import org.onlab.packet.IPv4;
 import org.onosproject.cfg.ConfigProperty;
 
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.net.SocketAddress;
 import java.util.Dictionary;
 import java.util.Optional;
 import java.util.Set;
@@ -34,6 +38,7 @@
     private static final String PROTOCOL_NAME_UDP = "udp";
     private static final String PROTOCOL_NAME_ANY = "any";
     private static final int ARBITRARY_PROTOCOL = 0x0;
+    private static final int TIMEOUT = 2000;
 
     /**
      * Prevents object instantiation from external.
@@ -110,4 +115,26 @@
                 return PROTOCOL_NAME_ANY;
         }
     }
+
+    /**
+     * Tests the connectivity with the given address and port.
+     *
+     * @param address address
+     * @param port port number
+     * @return true if the given address and port is accessible, false otherwise
+     */
+    public static boolean testConnectivity(String address, int port) {
+
+        boolean isConnected = false;
+        SocketAddress socketAddress = new InetSocketAddress(address, port);
+        Socket socket = new Socket();
+        try {
+            socket.connect(socketAddress, TIMEOUT);
+            socket.close();
+            isConnected = true;
+        } catch (IOException ignored) {
+        }
+
+        return isConnected;
+    }
 }