Add more comments and correct some typos in OpenstackNode

Change-Id: Ic70f39359b90bdecbb4ed0715dc5d2e00f7a4ffe
diff --git a/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/OpenstackNode.java b/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/OpenstackNode.java
index 2ecfefe..1b8316d 100644
--- a/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/OpenstackNode.java
+++ b/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/OpenstackNode.java
@@ -123,7 +123,7 @@
     PortNumber tunnelPortNum();
 
     /**
-     * Returns the vlan port nubmer.
+     * Returns the vlan port number.
      *
      * @return port number; null if vlan port does not exist
      */
diff --git a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNode.java b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNode.java
index f208529..8681008 100644
--- a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNode.java
+++ b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNode.java
@@ -52,8 +52,22 @@
     private final String uplinkPort;
     private final NodeState state;
 
+    private static final String NOT_NULL_MSG = "Node % cannot be null";
+
     private static final String OVSDB = "ovsdb:";
 
+    /**
+     * A default constructor of Openstack Node.
+     *
+     * @param hostname      hostname
+     * @param type          node type
+     * @param intgBridge    integration bridge
+     * @param managementIp  management IP address
+     * @param dataIp        data IP address
+     * @param vlanIntf      VLAN interface
+     * @param uplinkPort    uplink port name
+     * @param state         node state
+     */
     protected DefaultOpenstackNode(String hostname, NodeType type,
                                    DeviceId intgBridge,
                                    IpAddress managementIp,
@@ -279,6 +293,9 @@
                 .state(osNode.state());
     }
 
+    /**
+     * A builder class for openstack Node.
+     */
     public static final class Builder implements OpenstackNode.Builder {
 
         private String hostname;
@@ -290,16 +307,17 @@
         private String uplinkPort;
         private NodeState state;
 
+        // private constructor not intended to use from external
         private Builder() {
         }
 
         @Override
         public DefaultOpenstackNode build() {
-            checkArgument(hostname != null, "Node hostname cannot be null");
-            checkArgument(type != null, "Node type cannot be null");
-            checkArgument(intgBridge != null, "Node integration bridge cannot be null");
-            checkArgument(managementIp != null, "Node management IP cannot be null");
-            checkArgument(state != null, "Node state cannot be null");
+            checkArgument(hostname != null, NOT_NULL_MSG, "hostname");
+            checkArgument(type != null, NOT_NULL_MSG, "type");
+            checkArgument(intgBridge != null, NOT_NULL_MSG, "integration bridge");
+            checkArgument(managementIp != null, NOT_NULL_MSG, "management IP");
+            checkArgument(state != null, NOT_NULL_MSG, "state");
 
             if (type == NodeType.GATEWAY && uplinkPort == null) {
                 throw new IllegalArgumentException("Uplink port is required for gateway node");
diff --git a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNodeHandler.java b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNodeHandler.java
index 7b8cda1..397ff37 100644
--- a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNodeHandler.java
+++ b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNodeHandler.java
@@ -208,7 +208,7 @@
                 addSystemInterface(osNode, INTEGRATION_BRIDGE, osNode.vlanIntf());
             }
         } catch (Exception e) {
-            log.error("Exception occured because of {}", e.toString());
+            log.error("Exception occurred because of {}", e.toString());
         }
     }
 
@@ -226,6 +226,13 @@
         //TODO
     }
 
+    /**
+     * Checks whether the controller has a connection with an OVSDB that resides
+     * inside the given openstack node.
+     *
+     * @param osNode openstack node
+     * @return true if the controller is connected to the OVSDB, false otherwise
+     */
     private boolean isOvsdbConnected(OpenstackNode osNode) {
         OvsdbNodeId ovsdb = new OvsdbNodeId(osNode.managementIp(), ovsdbPort);
         OvsdbClientService client = ovsdbController.getOvsdbClient(ovsdb);
@@ -234,6 +241,13 @@
                 client.isConnected();
     }
 
+    /**
+     * Creates a bridge with a given name on a given openstack node.
+     *
+     * @param osNode openstack node
+     * @param bridgeName bridge name
+     * @param deviceId device identifier
+     */
     private void createBridge(OpenstackNode osNode, String bridgeName, DeviceId deviceId) {
         Device device = deviceService.getDevice(osNode.ovsdb());
         if (device == null || !device.is(BridgeConfig.class)) {
@@ -263,6 +277,13 @@
         bridgeConfig.addBridge(bridgeDesc);
     }
 
+    /**
+     * Adds a network interface (aka port) into a given bridge of openstack node.
+     *
+     * @param osNode openstack node
+     * @param bridgeName bridge name
+     * @param intfName interface name
+     */
     private void addSystemInterface(OpenstackNode osNode, String bridgeName, String intfName) {
         Device device = deviceService.getDevice(osNode.ovsdb());
         if (device == null || !device.is(BridgeConfig.class)) {
@@ -272,6 +293,11 @@
         bridgeConfig.addPort(BridgeName.bridgeName(bridgeName), intfName);
     }
 
+    /**
+     * Creates a tunnel interface in a given openstack node.
+     *
+     * @param osNode openstack node
+     */
     private void createTunnelInterface(OpenstackNode osNode) {
         if (isIntfEnabled(osNode, DEFAULT_TUNNEL)) {
             return;
@@ -317,6 +343,13 @@
         }
     }
 
+    /**
+     * Checks whether a given network interface in a given openstack node is enabled or not.
+     *
+     * @param osNode openstack node
+     * @param intf network interface name
+     * @return true if the given interface is enabled, false otherwise
+     */
     private boolean isIntfEnabled(OpenstackNode osNode, String intf) {
         if (!deviceService.isAvailable(osNode.intgBridge())) {
             return false;
@@ -327,6 +360,12 @@
                         port.isEnabled());
     }
 
+    /**
+     * Checks whether all requirements for this state are fulfilled or not.
+     *
+     * @param osNode openstack node
+     * @return true if all requirements are fulfilled, false otherwise
+     */
     private boolean isCurrentStateDone(OpenstackNode osNode) {
         switch (osNode.state()) {
             case INIT:
@@ -359,6 +398,12 @@
         }
     }
 
+    /**
+     * Configures the openstack node with new state.
+     *
+     * @param osNode openstack node
+     * @param newState a new state
+     */
     private void setState(OpenstackNode osNode, NodeState newState) {
         if (osNode.state() == newState) {
             return;
@@ -368,6 +413,11 @@
         log.info("Changed {} state: {}", osNode.hostname(), newState);
     }
 
+    /**
+     * Bootstraps a new openstack node.
+     *
+     * @param osNode openstack node
+     */
     private void bootstrapNode(OpenstackNode osNode) {
         if (isCurrentStateDone(osNode)) {
             setState(osNode, osNode.state().nextState());
@@ -377,6 +427,11 @@
         }
     }
 
+    /**
+     * An internal OVSDB listener. This listener is used for listening the
+     * network facing events from OVSDB device. If a new OVSDB device is detected,
+     * ONOS tries to bootstrap the openstack node.
+     */
     private class InternalOvsdbListener implements DeviceListener {
 
         @Override
@@ -415,6 +470,12 @@
         }
     }
 
+    /**
+     * An internal integration bridge listener. This listener is used for
+     * listening the events from integration bridge. To listen the events from
+     * other types of bridge such as provider bridge or tunnel bridge, we need
+     * to augment OpenstackNodeService.node() method.
+     */
     private class InternalBridgeListener implements DeviceListener {
 
         @Override
@@ -478,6 +539,10 @@
         }
     }
 
+    /**
+     * An internal openstack node listener.
+     * The notification is triggered by OpenstackNodeStore.
+     */
     private class InternalOpenstackNodeListener implements OpenstackNodeListener {
 
         @Override
diff --git a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DistributedOpenstackNodeStore.java b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DistributedOpenstackNodeStore.java
index b636152..ea21db5 100644
--- a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DistributedOpenstackNodeStore.java
+++ b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DistributedOpenstackNodeStore.java
@@ -148,6 +148,9 @@
         return osNode == null ? null : osNode.value();
     }
 
+    /**
+     * An internal openstack node map listener.
+     */
     private class OpenstackNodeMapListener implements MapEventListener<String, OpenstackNode> {
 
         @Override
diff --git a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/OpenstackNodeManager.java b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/OpenstackNodeManager.java
index f3ece18..1202d49 100644
--- a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/OpenstackNodeManager.java
+++ b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/OpenstackNodeManager.java
@@ -25,7 +25,6 @@
 import org.apache.felix.scr.annotations.Service;
 import org.onosproject.cluster.ClusterService;
 import org.onosproject.cluster.LeadershipService;
-import org.onosproject.cluster.NodeId;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.CoreService;
 import org.onosproject.event.ListenerRegistry;
@@ -87,14 +86,12 @@
     private final OpenstackNodeStoreDelegate delegate = new InternalNodeStoreDelegate();
 
     private ApplicationId appId;
-    private NodeId localNode;
 
     @Activate
     protected void activate() {
         appId = coreService.registerApplication(APP_ID);
         osNodeStore.setDelegate(delegate);
 
-        localNode = clusterService.getLocalNode().id();
         leadershipService.runForLeadership(appId.name());
 
         log.info("Started");