Manifest-Version: 1.0\r
-Bnd-LastModified: 1377774582874\r
-Build-Jdk: 1.6.0_37\r
+Bnd-LastModified: 1378325274924
+Build-Jdk: 1.7.0_25
Built-By: sraman\r
Bundle-ManifestVersion: 2\r
Bundle-Name: affinity\r
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";version="0.4.0.SNA\r
- PSHOT"\r
+ nd.annotation,org.opendaylight.controller.sal.utils,org.opendaylight.co
+ ntroller.sal.core";version="0.4.0.SNAPSHOT"
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
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
+import java.util.Collection;
import java.util.ArrayList;
import java.util.List;
return (elements.size());
}
public void print() {
+ System.out.println("Printing affinity group " + this.name);
for (AffinityIdentifier value : elements.values()) {
value.print();
}
public Set<String> getIPs() {
return elements.keySet();
}
+ public Collection<AffinityIdentifier> getAllElements() {
+ return elements.values();
+ }
}
public void setName(String name) {
this.name = name;
}
+ public String getName(String name) {
+ return (this.name);
+ }
public void print() {
- System.out.println(value);
+ System.out.println(name);
}
}
import java.util.Map;
import java.util.concurrent.ConcurrentMap;
import java.util.Set;
+import java.util.Collection;
+import org.opendaylight.controller.sal.core.Host;
import org.opendaylight.controller.sal.core.Node;
import org.opendaylight.controller.sal.core.NodeConnector;
import org.opendaylight.controller.sal.core.Property;
/* Save all configs to their respective files. */
public Status saveAffinityConfig();
+
+ public List<AffinityIdentifier> getAllElementsByAffinityIdentifier(AffinityGroup ag);
+ public List<Host> getAllElementsByHost(AffinityGroup ag);
}
Manifest-Version: 1.0\r
-Bnd-LastModified: 1377774584891\r
-Build-Jdk: 1.6.0_37\r
+Bnd-LastModified: 1378325277283
+Build-Jdk: 1.7.0_25
Built-By: sraman\r
Bundle-Activator: org.opendaylight.controller.affinity.internal.Activato\r
r\r
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.sal.core;version="[0.5,1)",org.ope\r
- ndaylight.controller.sal.inventory;version="[0.5,1)",org.opendaylight.c\r
- ontroller.sal.packet;version="[0.5,1)",org.opendaylight.controller.sal.\r
- utils;version="[0.5,1)",org.osgi.framework;version="[1.7,2)",org.slf4j;\r
- version="[1.7,2)"\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)
+ "
Tool: Bnd-1.50.0\r
<configuration>
<instructions>
<Export-Package>
- org.opendaylight.controller.affinity.implementation
</Export-Package>
<Import-Package>
org.opendaylight.controller.affinity,
org.opendaylight.controller.clustering.services,
org.opendaylight.controller.configuration,
+ org.opendaylight.controller.hosttracker,
+ org.opendaylight.controller.hosttracker.hostAware,
org.opendaylight.controller.sal.core,
org.opendaylight.controller.sal.utils,
org.opendaylight.controller.sal.packet,
<artifactId>forwardingrulesmanager</artifactId>
<version>0.4.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.controller</groupId>
+ <artifactId>hosttracker</artifactId>
+ <version>0.4.0-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>affinity</artifactId>
import org.opendaylight.controller.forwardingrulesmanager.FlowEntry;
import org.opendaylight.controller.sal.core.IContainer;
import org.opendaylight.controller.sal.core.Node;
+import org.opendaylight.controller.sal.core.Host;
import org.opendaylight.controller.sal.core.NodeConnector;
import org.opendaylight.controller.sal.core.NodeTable;
import org.opendaylight.controller.sal.core.Property;
import org.opendaylight.controller.sal.utils.IObjectReader;
import org.opendaylight.controller.sal.utils.ObjectReader;
import org.opendaylight.controller.sal.utils.ObjectWriter;
+import org.opendaylight.controller.sal.utils.NetUtils;
+import org.opendaylight.controller.hosttracker.IfIptoHost;
import org.opendaylight.controller.sal.utils.Status;
import org.opendaylight.controller.sal.utils.StatusCode;
import org.opendaylight.controller.sal.utils.ServiceHelper;
import org.opendaylight.controller.affinity.AffinityGroup;
import org.opendaylight.controller.affinity.AffinityLink;
+import org.opendaylight.controller.affinity.AffinityIdentifier;
import org.opendaylight.controller.affinity.IAffinityManager;
import org.opendaylight.controller.affinity.IAffinityManagerAware;
import org.slf4j.Logger;
private ConcurrentMap<String, AffinityLink> affinityLinkList;
private ConcurrentMap<Long, String> configSaveEvent;
+ private IfIptoHost hostTracker;
+
private final Set<IAffinityManagerAware> affinityManagerAware = Collections
.synchronizedSet(new HashSet<IAffinityManagerAware>());
}
+ void setHostTracker(IfIptoHost h) {
+ this.hostTracker = h;
+ }
+
+ void unsetHostTracker(IfIptoHost h) {
+ if (this.hostTracker.equals(h)) {
+ this.hostTracker = null;
+ }
+ }
+
public Status addAffinityLink(AffinityLink al) {
boolean putNewLink = false;
}
}
}
+
+ @Override
+ public List<AffinityIdentifier> getAllElementsByAffinityIdentifier(AffinityGroup ag) {
+ List<AffinityIdentifier> elements = (List<AffinityIdentifier>) ag.getAllElements();
+ return elements;
+ }
+
+ @Override
+ public List<Host> getAllElementsByHost(AffinityGroup ag) {
+ List<Host> hostList= new ArrayList<Host>();
+
+ for (AffinityIdentifier h : ag.getAllElements()) {
+ /* TBD: Do not assume this to be an InetAddress. */
+ h.print();
+ if (hostTracker != null) {
+ Host host1 = hostTracker.hostFind((InetAddress) h.get());
+ hostList.add(host1);
+ }
+ }
+ 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);
+ 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);
+ }
+ */
+
@Override
public Status saveConfiguration() {
return saveAffinityConfig();
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
+import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.opendaylight.controller.sal.utils.Status;
import org.opendaylight.controller.affinity.AffinityGroup;
import org.opendaylight.controller.affinity.AffinityLink;
+import org.opendaylight.controller.sal.core.Host;
public class AffinityManagerImplTest {
Status ret2 = ag1.add("10.0.0.20");
Assert.assertTrue(ret2.isSuccess());
+ ag1.print();
+
// Add an invalid element.
Status ret3 = ag1.add("10");
System.out.println(ret3);
result = affinitymgr.addAffinityLink(al2);
Assert.assertTrue(result.isSuccess());
+ /* Test the get methods. */
+ System.out.println("Affinity group = " + ag1.getName());
+ List<Host> hostlist = affinitymgr.getAllElementsByHost(ag1);
+
+ for (Host h : hostlist) {
+ System.out.println("host = " + h.getNetworkAddressAsString());
+ }
+ affinitymgr.saveConfiguration();
/* Constraint checking? */
- result = (affinitymgr.removeAffinityGroup(ag1.getName()));
+ result = (affinitymgr.removeAffinityGroup(ag1.getName()));
Assert.assertTrue(result.isSuccess());
-
- affinitymgr.saveConfiguration();
}
}
Manifest-Version: 1.0\r
-Bnd-LastModified: 1377774585678\r
-Build-Jdk: 1.6.0_37\r
+Bnd-LastModified: 1378325278167
+Build-Jdk: 1.7.0_25
Built-By: sraman\r
Bundle-ManifestVersion: 2\r
Bundle-Name: northbound\r