X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fcontainermanager%2Fimplementation%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcontainermanager%2Finternal%2FContainerImpl.java;h=1dfab887af4779039e677f8a40d9a9d30de9f5ac;hp=15f939d39bb853e7f411d3d71814fd21c0d8166b;hb=5ec563c2e47e7e104223bbad155f9f3f0fadd38b;hpb=29f7cfb54b580928c7feac63abce028a7014b0d5 diff --git a/opendaylight/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerImpl.java b/opendaylight/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerImpl.java index 15f939d39b..1dfab887af 100644 --- a/opendaylight/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerImpl.java +++ b/opendaylight/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerImpl.java @@ -13,21 +13,39 @@ * @brief Class that instantiated per-container implements the * interface IContainer * - * */ package org.opendaylight.controller.containermanager.internal; +import java.util.concurrent.ConcurrentMap; +import java.util.ArrayList; +import java.util.HashSet; import java.util.Dictionary; +import java.util.Map; + import org.apache.felix.dm.Component; +import org.opendaylight.controller.sal.core.ContainerFlow; +import org.opendaylight.controller.sal.core.IContainer; +import org.opendaylight.controller.sal.core.Node; import org.opendaylight.controller.sal.core.NodeConnector; + +import org.opendaylight.controller.containermanager.ContainerData; + import java.util.Set; -import org.opendaylight.controller.sal.core.Node; -import org.opendaylight.controller.sal.core.ContainerFlow; import java.util.List; -import org.opendaylight.controller.sal.core.IContainer; public class ContainerImpl implements IContainer { private String containerName = null; + private IContainerInternal iContainerInternal = null; + + public void setIContainerInternal(IContainerInternal s) { + this.iContainerInternal = s; + } + + public void unsetIContainerInternal(IContainerInternal s) { + if (this.iContainerInternal == s) { + this.iContainerInternal = null; + } + } /** * Function called by the dependency manager when all the required @@ -48,21 +66,52 @@ public class ContainerImpl implements IContainer { @Override public List getContainerFlows() { - return null; + List list = new ArrayList(); + + ContainerData d = this.iContainerInternal.getContainerData(this.containerName); + if (d != null) { + list.addAll(d.getContainerFlowSpecs()); + } + return list; } @Override public short getTag(Node n) { + ContainerData d = this.iContainerInternal.getContainerData(this.containerName); + if (d != null) { + return d.getStaticVlan(); + } + // Return 0 because in containerData that means an unassigned tag return (short) 0; } @Override public Set getNodeConnectors() { - return null; + Set set = new HashSet(); + + ContainerData d = this.iContainerInternal.getContainerData(this.containerName); + if (d != null) { + ConcurrentMap> m = d.getSwPorts(); + if (m != null) { + for (Map.Entry> entry : m.entrySet()) { + set.addAll(entry.getValue()); + } + } + } + return set; } @Override public Set getNodes() { - return null; + Set set = new HashSet(); + + ContainerData d = this.iContainerInternal.getContainerData(this.containerName); + if (d != null) { + ConcurrentMap> m = d.getSwPorts(); + if (m != null) { + set.addAll(m.keySet()); + } + } + return set; } }