Fixed some issues in getAll methods. Added a unit test. 15/1115/1
authorSuchi Raman <suchi.raman@plexxi.com>
Fri, 6 Sep 2013 15:28:45 +0000 (11:28 -0400)
committerSuchi Raman <suchi.raman@plexxi.com>
Fri, 6 Sep 2013 15:28:45 +0000 (11:28 -0400)
Signed-off-by: Suchi Raman <suchi.raman@plexxi.com>
affinity/api/META-INF/MANIFEST.MF
affinity/api/src/main/java/org/opendaylight/controller/affinity/AffinityGroup.java
affinity/api/src/main/java/org/opendaylight/controller/affinity/AffinityIdentifier.java
affinity/api/src/main/java/org/opendaylight/controller/affinity/IAffinityManager.java
affinity/implementation/META-INF/MANIFEST.MF
affinity/implementation/src/main/java/org/opendaylight/controller/affinity/internal/AffinityManagerImpl.java
affinity/implementation/src/test/java/org/opendaylight/controller/affinity/internal/AffinityManagerImplTest.java
affinity/northbound/src/main/resources/META-INF/MANIFEST.MF

index e4d9521a665a2f37852565cb8f0de288a330343c..b7641a6a6bd8b34f5a311acd635ae3b396034e06 100644 (file)
@@ -1,6 +1,6 @@
 Manifest-Version: 1.0\r
-Bnd-LastModified: 1378325274924
-Build-Jdk: 1.7.0_25
+Bnd-LastModified: 1378480461580\r
+Build-Jdk: 1.7.0_25\r
 Built-By: sraman\r
 Bundle-ManifestVersion: 2\r
 Bundle-Name: affinity\r
@@ -8,17 +8,16 @@ Bundle-SymbolicName: org.opendaylight.controller.affinity
 Bundle-Version: 0.4.0.SNAPSHOT\r
 Created-By: Apache Maven Bundle Plugin\r
 Export-Package: org.opendaylight.controller.affinity;uses:="javax.xml.bi\r
- nd.annotation,org.opendaylight.controller.sal.utils,org.opendaylight.co
- ntroller.sal.core";version="0.4.0.SNAPSHOT"
+ nd.annotation,org.opendaylight.controller.sal.utils,org.opendaylight.co\r
+ ntroller.sal.core";version="0.4.0.SNAPSHOT"\r
 Import-Package: javax.ws.rs;version="[1.1,2)",javax.ws.rs.core;version="\r
- [1.1,2)",javax.xml.bind,javax.xml.bind.annotation,javax.xml.bind.annota\r
- tion,org.apache.commons.lang3.builder;version="[3.1,4)",org.apache.feli\r
- x.dm;version="[3.0,4)",org.eclipse.osgi.framework.console;version="[1.1\r
- ,2)",org.opendaylight.controller.clustering.services;version="[0.4,1)",\r
- org.opendaylight.controller.configuration;version="[0.4,1)",org.openday\r
- light.controller.sal.core;version="[0.5,1)",org.opendaylight.controller\r
- .sal.inventory;version="[0.5,1)",org.opendaylight.controller.sal.packet\r
- ;version="[0.5,1)",org.opendaylight.controller.sal.utils;version="[0.5,\r
- 1)",org.osgi.framework;version="[1.7,2)",org.slf4j;version="[1.7,2)",or\r
- g.slf4j\r
+ [1.1,2)",javax.xml.bind,javax.xml.bind.annotation,org.apache.commons.la\r
+ ng3.builder;version="[3.1,4)",org.apache.felix.dm;version="[3.0,4)",org\r
+ .eclipse.osgi.framework.console;version="[1.1,2)",org.opendaylight.cont\r
+ roller.clustering.services;version="[0.4,1)",org.opendaylight.controlle\r
+ r.configuration;version="[0.4,1)",org.opendaylight.controller.sal.core;\r
+ version="[0.5,1)",org.opendaylight.controller.sal.inventory;version="[0\r
+ .5,1)",org.opendaylight.controller.sal.packet;version="[0.5,1)",org.ope\r
+ ndaylight.controller.sal.utils;version="[0.5,1)",org.osgi.framework;ver\r
+ sion="[1.7,2)",org.slf4j;version="[1.7,2)"\r
 Tool: Bnd-1.50.0\r
index d3f70e63279261502a1870500e73a22115cd70c5..19119809591135111859a0772fb82e4a5e25ebb6 100644 (file)
@@ -98,8 +98,9 @@ public class AffinityGroup implements Cloneable, Serializable {
     public Set<String> getIPs() {
         return elements.keySet();
     }
-    public Collection<AffinityIdentifier> getAllElements() {
-       return elements.values();
+    public ArrayList<AffinityIdentifier> getAllElements() {
+        ArrayList<AffinityIdentifier> retvalues = new ArrayList<AffinityIdentifier>(elements.values());
+       return retvalues;
     }
 }
 
index b6cf71cbbda7d6283d7308b3f167b77494356bf9..ad3bdd2b7934ef41bede4199e9d665b0f0861b4c 100644 (file)
@@ -23,5 +23,8 @@ public class AffinityIdentifier<T> {
     public void print() {
        System.out.println(name);
     }
+    public String toString() {
+       return "AffinityIdentifier [name= " + this.name + " value= " + value.toString() + "]";
+    }
 }
 
index 26059d06998f8ab9d9f2dedd7fb6bce2268cd541..a30e940e181358ce9334ffe54e96688364871b40 100644 (file)
 package org.opendaylight.controller.affinity;
 
 import java.net.InetAddress;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentMap;
 import java.util.Set;
 import java.util.Collection;
+import java.util.Map.Entry;
 
 import org.opendaylight.controller.sal.core.Host;
 import org.opendaylight.controller.sal.core.Node;
@@ -46,6 +48,8 @@ public interface IAffinityManager {
     /* Save all configs to their respective files. */
     public Status saveAffinityConfig();
 
-    public List<AffinityIdentifier> getAllElementsByAffinityIdentifier(AffinityGroup ag);
+    public ArrayList<AffinityIdentifier> getAllElementsByAffinityIdentifier(AffinityGroup ag);
     public List<Host> getAllElementsByHost(AffinityGroup ag);
+    public List<Entry<Host, Host>> getAllFlowsByHost(AffinityLink al);
+    public List<Entry<AffinityIdentifier, AffinityIdentifier>> getAllFlowsByAffinityIdentifier(AffinityLink al);
 }
index b051dfcecb257f5fc37f1dee416c7ee7bf4d3c86..cff6e0a664eb4848e962154a1523b7798d13ca17 100644 (file)
@@ -1,6 +1,6 @@
 Manifest-Version: 1.0\r
-Bnd-LastModified: 1378325277283
-Build-Jdk: 1.7.0_25
+Bnd-LastModified: 1378480463970\r
+Build-Jdk: 1.7.0_25\r
 Built-By: sraman\r
 Bundle-Activator: org.opendaylight.controller.affinity.internal.Activato\r
  r\r
@@ -14,11 +14,11 @@ Import-Package: javax.xml.bind.annotation,org.apache.commons.lang3.build
  osgi.framework.console;version="[1.1,2)",org.opendaylight.controller.af\r
  finity;version="[0.4,1)",org.opendaylight.controller.clustering.service\r
  s;version="[0.4,1)",org.opendaylight.controller.configuration;version="\r
- [0.4,1)",org.opendaylight.controller.hosttracker;version="[0.4,1)",org.
- opendaylight.controller.hosttracker.hostAware;version="[0.4,1)",org.ope
- ndaylight.controller.sal.core;version="[0.5,1)",org.opendaylight.contro
- ller.sal.inventory;version="[0.5,1)",org.opendaylight.controller.sal.pa
- cket;version="[0.5,1)",org.opendaylight.controller.sal.utils;version="[
- 0.5,1)",org.osgi.framework;version="[1.7,2)",org.slf4j;version="[1.7,2)
- "
+ [0.4,1)",org.opendaylight.controller.hosttracker;version="[0.4,1)",org.\r
+ opendaylight.controller.hosttracker.hostAware;version="[0.4,1)",org.ope\r
+ ndaylight.controller.sal.core;version="[0.5,1)",org.opendaylight.contro\r
+ ller.sal.inventory;version="[0.5,1)",org.opendaylight.controller.sal.pa\r
+ cket;version="[0.5,1)",org.opendaylight.controller.sal.utils;version="[\r
+ 0.5,1)",org.osgi.framework;version="[1.7,2)",org.slf4j;version="[1.7,2)\r
+ "\r
 Tool: Bnd-1.50.0\r
index 64f6ba01c6792a709cf540cf22452277101ecd49..95101ce550228b9ac636e670587cbde26e7de4ce 100644 (file)
@@ -24,6 +24,7 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.AbstractMap;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
@@ -343,9 +344,8 @@ public class AffinityManagerImpl implements IAffinityManager, IConfigurationCont
     }
 
     @Override 
-    public List<AffinityIdentifier> getAllElementsByAffinityIdentifier(AffinityGroup ag) {
-       List<AffinityIdentifier> elements = (List<AffinityIdentifier>) ag.getAllElements();
-       return elements;
+    public ArrayList<AffinityIdentifier> getAllElementsByAffinityIdentifier(AffinityGroup ag) {
+       return ag.getAllElements();
     }
  
     @Override 
@@ -362,22 +362,42 @@ public class AffinityManagerImpl implements IAffinityManager, IConfigurationCont
        }
        return hostList;
     }
-    /*
-    @Override 
-    public List<Entry<Host, Host>> getAllFlows(AffinityGroup ag) {
-       List<Entry<Host,Host>> hostPairList= new java.util.ArrayList<>();
-       java.util.Map.Entry<Host, Host> hp1=new java.util.AbstractMap.SimpleEntry<>(host1, host2);
-       hostPairList.add(hp1);
+
+    @Override
+    public List<Entry<Host, Host>> getAllFlowsByHost(AffinityLink al) {
+       List<Entry<Host,Host>> hostPairList= new ArrayList<Entry<Host, Host>>();
+
+       AffinityGroup fromGroup = al.getFromGroup();
+       AffinityGroup toGroup = al.getToGroup();
+       
+       for (AffinityIdentifier h1 : fromGroup.getAllElements()) {
+           for (AffinityIdentifier h2 : toGroup.getAllElements()) {
+               if (hostTracker != null) {
+                   Host host1 = hostTracker.hostFind((InetAddress) h1.get());
+                   Host host2 = hostTracker.hostFind((InetAddress) h2.get());
+                   Entry<Host, Host> hp1=new AbstractMap.SimpleEntry<Host, Host>(host1, host2);
+                   hostPairList.add(hp1);
+               }
+           }
+       }
        return hostPairList;
     }
 
     @Override 
-    public List<Entry<AffinityIdentifier, AffinityIdentifier>> getAllFlows(AffinityGroup ag) {
-       List<Entry<Host,Host>> hostPairList= new java.util.ArrayList<>();
-       java.util.Map.Entry<Host, Host> hp1=new java.util.AbstractMap.SimpleEntry<>(host1, host2);
-       hostPairList.add(hp1);
+    public List<Entry<AffinityIdentifier, AffinityIdentifier>> getAllFlowsByAffinityIdentifier(AffinityLink al) {
+       List<Entry<AffinityIdentifier, AffinityIdentifier>> hostPairList= new ArrayList<Entry<AffinityIdentifier, AffinityIdentifier>>();
+
+       AffinityGroup fromGroup = al.getFromGroup();
+       AffinityGroup toGroup = al.getToGroup();
+       
+       for (AffinityIdentifier h1 : fromGroup.getAllElements()) {
+           for (AffinityIdentifier h2 : toGroup.getAllElements()) {
+               Entry<AffinityIdentifier, AffinityIdentifier> hp1=new AbstractMap.SimpleEntry<AffinityIdentifier, AffinityIdentifier>(h1, h2);
+               hostPairList.add(hp1);
+           }
+       }
+       return hostPairList;
     }
-    */
 
     @Override
     public Status saveConfiguration() {
index 93f87909b7686837951cc5c8e2ae0bd324727e09..5c2d4c2f2d34613fedd9a5a178096a1299397873 100644 (file)
@@ -12,6 +12,7 @@ import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.List;
+import java.util.Map.Entry;
 
 import org.junit.Assert;
 import org.junit.Test;
@@ -21,6 +22,7 @@ import org.opendaylight.controller.sal.core.Property;
 import org.opendaylight.controller.sal.core.State;
 import org.opendaylight.controller.sal.core.UpdateType;
 import org.opendaylight.controller.sal.utils.Status;
+import org.opendaylight.controller.affinity.AffinityIdentifier;
 import org.opendaylight.controller.affinity.AffinityGroup;
 import org.opendaylight.controller.affinity.AffinityLink;
 import org.opendaylight.controller.sal.core.Host;
@@ -85,12 +87,31 @@ public class AffinityManagerImplTest {
         Assert.assertTrue(result.isSuccess());
        
        /* Test the get methods. */
-       System.out.println("Affinity group = " + ag1.getName());
+
+       /* Get all members as hosts */
+       System.out.println("Affinity group (as Hosts) = " + ag1.getName());
        List<Host> hostlist = affinitymgr.getAllElementsByHost(ag1);
        
        for (Host h : hostlist) {
            System.out.println("host = " + h.getNetworkAddressAsString());
        }
+       
+       /* Get all members as affinity identifiers */
+       System.out.println("Affinity group (as Affinity Identifiers) = " + ag1.getName());
+       ArrayList<AffinityIdentifier> affylist = affinitymgr.getAllElementsByAffinityIdentifier(ag1);
+       
+       for (AffinityIdentifier i : affylist) {
+           i.print();
+       }
+
+       /* Get all id pairs for an affinity link */
+       System.out.println("Affinity link = " + al1.getName());
+       List<Entry<AffinityIdentifier, AffinityIdentifier>> flowlist = affinitymgr.getAllFlowsByAffinityIdentifier(al1);
+       
+       for (Entry<AffinityIdentifier, AffinityIdentifier> flow : flowlist) {
+           System.out.println("flow " + "from: " + flow.getKey().toString() + "to: " + flow.getValue().toString());
+       }
+
        affinitymgr.saveConfiguration();
        /* Constraint checking? */
        result = (affinitymgr.removeAffinityGroup(ag1.getName()));
index bff70d47b7fc488fd50b23b9a3594481cb61d411..81cac31479d593697a631e3692ef328d37389e88 100644 (file)
@@ -1,6 +1,6 @@
 Manifest-Version: 1.0\r
-Bnd-LastModified: 1378325278167
-Build-Jdk: 1.7.0_25
+Bnd-LastModified: 1378480464813\r
+Build-Jdk: 1.7.0_25\r
 Built-By: sraman\r
 Bundle-ManifestVersion: 2\r
 Bundle-Name: northbound\r