Merge "Added javadoc to maven-yang-plugin."
authorGiovanni Meo <gmeo@cisco.com>
Wed, 17 Apr 2013 05:55:47 +0000 (05:55 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Wed, 17 Apr 2013 05:55:47 +0000 (05:55 +0000)
opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/Controller.java
opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/MessageReadWriteService.java
opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/SecureMessageReadWriteService.java
opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/SwitchHandler.java
opendaylight/routing/dijkstra_implementation/src/main/java/org/opendaylight/controller/routing/dijkstra_implementation/internal/DijkstraImplementation.java
opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Path.java
opendaylight/topologymanager/src/main/java/org/opendaylight/controller/topologymanager/internal/TopologyManagerImpl.java

index f3004acaba5a3cb6c9ffb287bd968599283f1001..32cdeaa614e55264e397085c1e9ff05174fd6aff 100644 (file)
@@ -9,6 +9,7 @@
 
 package org.opendaylight.controller.protocol_plugin.openflow.core.internal;
 
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.nio.channels.SelectionKey;
 import java.nio.channels.Selector;
@@ -338,6 +339,28 @@ public class Controller implements IController, CommandProvider {
         }
     }
 
+    public void _controllerShowConnConfig(CommandInterpreter ci) {
+       String str = System.getProperty("secureChannelEnabled");
+        if ((str != null) && (str.trim().equalsIgnoreCase("true"))) { 
+            ci.print("The Controller and Switch should communicate through TLS connetion.\n");         
+
+               String keyStoreFile = System.getProperty("controllerKeyStore");
+               String trustStoreFile = System.getProperty("controllerTrustStore");
+               if ((keyStoreFile == null) || keyStoreFile.trim().isEmpty()) {          
+                ci.print("controllerKeyStore not specified in ./configuration/config.ini\n");                                  
+               } else {
+                ci.print("controllerKeyStore=" + keyStoreFile + "\n");         
+               }
+               if ((trustStoreFile == null) || trustStoreFile.trim().isEmpty()) {      
+                ci.print("controllerTrustStore not specified in ./configuration/config.ini\n");                                                                
+               } else {
+                ci.print("controllerTrustStore=" + trustStoreFile + "\n");             
+               }
+        } else {
+            ci.print("The Controller and Switch should communicate through TCP connetion.\n");         
+        }
+    }
+
     private void registerWithOSGIConsole() {
         BundleContext bundleContext = FrameworkUtil.getBundle(this.getClass())
                 .getBundleContext();
@@ -351,6 +374,7 @@ public class Controller implements IController, CommandProvider {
         help.append("--Open Flow Controller --\n");
         help.append("\tcontrollerShowSwitches\n");
         help.append("\tcontrollerReset\n");
+        help.append("\tcontrollerShowConnConfig\n");
         return help.toString();
     }
 }
index fb34b0f06371538930abc6fed698e4f6df12a735..8e611924e41ae8b6ce5951397e002f3b5f16cf81 100644 (file)
@@ -69,6 +69,8 @@ public class MessageReadWriteService implements IMessageReadWrite {
                        newBuffer.put(outBuffer);
                        outBuffer = newBuffer;
                }
+       }
+       synchronized (outBuffer) {
                msg.writeTo(outBuffer);
 
                if (!socket.isOpen()) {
index ddc87bc530a719fc3b6c3439ad6851bdeebf78bc..bb8ba04fb8cab97ede7cd7d03d3c4aa25a4800fc 100644 (file)
@@ -10,6 +10,7 @@
 package org.opendaylight.controller.protocol_plugin.openflow.core.internal;
 
 import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.nio.channels.AsynchronousCloseException;
@@ -74,11 +75,36 @@ public class SecureMessageReadWriteService implements IMessageReadWrite {
         * @throws Exception
         */
     private void createSecureChannel(SocketChannel socket) throws Exception {
-       String keyStoreFile = System.getProperty("controllerKeyStore").trim();
-       String keyStorePassword = System.getProperty("controllerKeyStorePassword").trim();
-       String trustStoreFile = System.getProperty("controllerTrustStore").trim();
-       String trustStorePassword = System.getProperty("controllerTrustStorePassword").trim();
-
+       String keyStoreFile = System.getProperty("controllerKeyStore");
+       String keyStorePassword = System.getProperty("controllerKeyStorePassword");
+       String trustStoreFile = System.getProperty("controllerTrustStore");
+       String trustStorePassword = System.getProperty("controllerTrustStorePassword");
+       
+       if (keyStoreFile != null) {
+               keyStoreFile = keyStoreFile.trim();
+       }
+       if ((keyStoreFile == null) || keyStoreFile.isEmpty()) {
+               throw new FileNotFoundException("controllerKeyStore not specified in ./configuration/config.ini");
+       }
+       if (keyStorePassword != null) {
+               keyStorePassword = keyStorePassword.trim();
+       } 
+       if ((keyStorePassword == null) || keyStorePassword.isEmpty()) {
+               throw new FileNotFoundException("controllerKeyStorePassword not specified in ./configuration/config.ini");
+       }
+       if (trustStoreFile != null) {
+               trustStoreFile = trustStoreFile.trim();
+       }
+       if ((trustStoreFile == null) || trustStoreFile.isEmpty()) {     
+               throw new FileNotFoundException("controllerTrustStore not specified in ./configuration/config.ini");
+       }
+       if (trustStorePassword != null) {
+               trustStorePassword = trustStorePassword.trim();
+       }
+        if ((trustStorePassword == null) || trustStorePassword.isEmpty()) {
+               throw new FileNotFoundException("controllerTrustStorePassword not specified in ./configuration/config.ini");
+       }
+       
         KeyStore ks = KeyStore.getInstance("JKS");
         KeyStore ts = KeyStore.getInstance("JKS");
         KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
@@ -126,6 +152,8 @@ public class SecureMessageReadWriteService implements IMessageReadWrite {
                        newBuffer.put(myAppData);
                        myAppData = newBuffer;
                }
+       }
+       synchronized (myAppData) {
                msg.writeTo(myAppData);
                myAppData.flip();
                sslEngineResult = sslEngine.wrap(myAppData, myNetData);
index cba8b1d4f17c38a9d232e1b54a3463c96cfe8dbf..5913ad0dd960036f3362c5e2325d0af5209529ab 100644 (file)
@@ -9,7 +9,7 @@
 
 package org.opendaylight.controller.protocol_plugin.openflow.core.internal;
 
-import java.io.IOException;
+import java.net.SocketException;
 import java.nio.channels.AsynchronousCloseException;
 import java.nio.channels.SelectionKey;
 import java.nio.channels.Selector;
@@ -249,7 +249,9 @@ public class SwitchHandler implements ISwitch {
     @Override
     public Integer asyncSend(OFMessage msg, int xid) {
        msg.setXid(xid);
-       transmitQ.add(new PriorityMessage(msg, 0));
+       if (transmitQ != null) {
+               transmitQ.add(new PriorityMessage(msg, 0));
+       }
         return xid;
     }
 
@@ -280,13 +282,17 @@ public class SwitchHandler implements ISwitch {
     @Override
     public Integer asyncFastSend(OFMessage msg, int xid) {
        msg.setXid(xid);
-       transmitQ.add(new PriorityMessage(msg, 1));
+       if (transmitQ != null) {
+               transmitQ.add(new PriorityMessage(msg, 1));
+       }
         return xid;
     }
 
    public void resumeSend() {
         try {
-                       msgReadWriteService.resumeSend();
+               if (msgReadWriteService != null) {
+                       msgReadWriteService.resumeSend();
+               }
                } catch (Exception e) {
                        reportError(e);
                }
@@ -445,7 +451,9 @@ public class SwitchHandler implements ISwitch {
     }
 
     private void reportError(Exception e) {
-       if (e instanceof AsynchronousCloseException) {
+       if (e instanceof AsynchronousCloseException ||
+               e instanceof InterruptedException ||
+               e instanceof SocketException) {
                logger.debug("Caught exception {}", e.getMessage());
        } else {
                logger.warn("Caught exception {}", e.getMessage());
@@ -739,6 +747,8 @@ public class SwitchHandler implements ISwitch {
                                logger.trace("Message sent: {}", pmsg.toString());
                        }
                        Thread.sleep(10);
+               } catch (InterruptedException ie) {
+                       reportError(new InterruptedException("PriorityMessageTransmit thread interrupted"));
                } catch (Exception e) {
                        reportError(e);
                }
index 05ec5d40530919941dd69f67a197111c7a565687..64cc3fbe01045f8e2bf372fbae0ee8e360f9f908 100644 (file)
@@ -111,22 +111,14 @@ public class DijkstraImplementation implements IRouting, ITopologyManagerAware {
                             .getNodeConnectorProp(dstNC,
                                     Bandwidth.BandwidthPropName);
 
-                    if ((bwSrc == null) || (bwDst == null)) {
-                        log.error("bwSrc:{} or bwDst:{} is null", bwSrc, bwDst);
-                        return (double) -1;
-                    }
-
-                    long srcLinkSpeed = bwSrc.getValue();
-                    if (srcLinkSpeed == 0) {
-                        log.trace("Edge {}: srcLinkSpeed is 0. Setting to {}!",
-                                e, DEFAULT_LINK_SPEED);
-                        srcLinkSpeed = DEFAULT_LINK_SPEED;
+                    long srcLinkSpeed = 0, dstLinkSpeed = 0;
+                    if ((bwSrc == null) || ((srcLinkSpeed = bwSrc.getValue()) == 0)) {
+                        log.debug("srcNC: {} - Setting srcLinkSpeed to Default!",srcNC);
+                         srcLinkSpeed = DEFAULT_LINK_SPEED;
                     }
-
-                    long dstLinkSpeed = bwDst.getValue();
-                    if (dstLinkSpeed == 0) {
-                        log.trace("Edge {}: dstLinkSpeed is 0. Setting to {}!",
-                                e, DEFAULT_LINK_SPEED);
+                    if ((bwDst == null) || ((dstLinkSpeed = bwDst.getValue()) == 0)) {
+                        log.debug("dstNC: {} - Setting dstLinkSpeed to Default!",dstNC);
                         dstLinkSpeed = DEFAULT_LINK_SPEED;
                     }
 
index 5584cd9461abc54d3e79a5c57737f576c0b9e816..5f2dc92aee8c06dd8e204a10af04910cf426bafb 100644 (file)
@@ -11,7 +11,7 @@
  * @file   Path.java
  *
  * @brief  Describe a path as a sequence of Edge such that from
- * each of its Tail Node there is an link to the next Head Node in the sequence
+ * each of its Head Node there is an link to the next Tail Node in the sequence
  *
  */
 package org.opendaylight.controller.sal.core;
@@ -29,7 +29,7 @@ import javax.xml.bind.annotation.XmlElement;
 
 /**
  * Describe a path as a sequence of Edge such that from
- * each of its Tail Node there is an link to the next Head Node in the
+ * each of its Head Node there is an link to the next Tail Node in the
  * sequence
  *
  */
@@ -50,15 +50,15 @@ public class Path implements Serializable {
     /**
      * Construct an object representing a path, the constructor will
      * check if the passed list of edges is such that for every
-     * consecutive edges the tailnode of the first edge coincide with
-     * the head node of the subsequent in order for connectivity to be there.
+     * consecutive edges the head node of the first edge coincide with
+     * the tail node of the subsequent in order for connectivity to be there.
      *
      * @param edges Edges of the path
      *
      */
     public Path(List<Edge> edges) throws ConstructionException {
-        // Lets check if the list of edges is such that the tail node
-        // of an edge is also the head node of the subsequent one
+        // Lets check if the list of edges is such that the head node
+        // of an edge is also the tail node of the subsequent one
         boolean sequential = true;
         if (edges.size() >= 2) {
             for (int i = 0; i < edges.size() - 1; i++) {
index 227df54944b115107079a93058c4845824110713..0eb7bdbc5c3ac57bc44f8168189456614e8eff98 100644 (file)
@@ -95,23 +95,26 @@ public class TopologyManagerImpl implements ITopologyManager,
 
     void setTopologyManagerAware(ITopologyManagerAware s) {
         if (this.topologyManagerAware != null) {
-               log.debug("Adding ITopologyManagerAware: " + s);
+               log.debug("Adding ITopologyManagerAware: {}", s);
             this.topologyManagerAware.add(s);
         }
     }
 
     void unsetTopologyManagerAware(ITopologyManagerAware s) {
         if (this.topologyManagerAware != null) {
+               log.debug("Removing ITopologyManagerAware: {}", s);
             this.topologyManagerAware.remove(s);
         }
     }
 
     void setTopoService(ITopologyService s) {
+       log.debug("Adding ITopologyService: {}", s);
         this.topoService = s;
     }
 
     void unsetTopoService(ITopologyService s) {
         if (this.topoService == s) {
+               log.debug("Removing ITopologyService: {}", s);
             this.topoService = null;
         }
     }
@@ -229,7 +232,7 @@ public class TopologyManagerImpl implements ITopologyManager,
         this.clusterContainerService
                 .destroyCache("topologymanager.nodeConnectorDB");
         this.nodeConnectorsDB = null;
-        log.debug("Topology Manager DB DE-allocated");
+        log.debug("Topology Manager DB Deallocated");
     }
 
     @SuppressWarnings("unchecked")
@@ -408,7 +411,7 @@ public class TopologyManagerImpl implements ITopologyManager,
         if (this.hostsDB == null) {
             return;
         }
-
+        
         switch (t) {
         case ADDED:
         case CHANGED:
@@ -470,6 +473,7 @@ public class TopologyManagerImpl implements ITopologyManager,
                     new HashSet<Property>());
             this.nodeConnectorsDB.put(e.getTailNodeConnector(),
                     new HashSet<Property>());
+            log.trace("Edge {}  {}", e.toString(), type.name());
             break;
         case REMOVED:
             // Now remove the edge from edgesDB
@@ -484,6 +488,7 @@ public class TopologyManagerImpl implements ITopologyManager,
             // should be safe to assume that won't happen.
             this.nodeConnectorsDB.remove(e.getHeadNodeConnector());
             this.nodeConnectorsDB.remove(e.getTailNodeConnector());
+            log.trace("Edge {}  {}", e.toString(), type.name());
             break;
         case CHANGED:
             Set<Property> old_props = this.edgesDB.get(e);
@@ -530,6 +535,7 @@ public class TopologyManagerImpl implements ITopologyManager,
 
             // Finally update
             this.edgesDB.put(e, props);
+            log.trace("Edge {}  {}", e.toString(), type.name());
             break;
         }
 
@@ -675,16 +681,16 @@ public class TopologyManagerImpl implements ITopologyManager,
                 //oneTopology.deleteUserConfiguredLink(linkTuple);
             } catch (Exception e) {
                 log
-                        .warn("Harmless : Exception while Deleting User Configured link "
-                                + link + " " + e.toString());
+                        .warn("Harmless : Exception while Deleting User Configured link {} {}",
+                                link, e.toString());
             }
             linkTuple = getReverseLinkTuple(link);
             try {
                 //oneTopology.deleteUserConfiguredLink(linkTuple);
             } catch (Exception e) {
                 log
-                        .error("Harmless : Exception while Deleting User Configured Reverse link "
-                                + link + " " + e.toString());
+                        .warn("Harmless : Exception while Deleting User Configured Reverse link {} {}",
+                                link, e.toString());
             }
         }
         return new Status(StatusCode.SUCCESS, null);
@@ -822,12 +828,12 @@ public class TopologyManagerImpl implements ITopologyManager,
 
     @Override
     public void edgeOverUtilized(Edge edge) {
-        log.warn("Link Utilization above normal: " + edge);
+        log.warn("Link Utilization above normal: {}", edge);
     }
 
     @Override
     public void edgeUtilBackToNormal(Edge edge) {
-        log.warn("Link Utilization back to normal: " + edge);
+        log.warn("Link Utilization back to normal: {}", edge);
     }
 
 }