+++ /dev/null
-
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-/**
- * @file ContainerImpl.java
- *
- * @brief Class that instantiated per-container implements the
- * interface IContainer
- *
- */
-package org.opendaylight.controller.containermanager.internal;
-
-import java.util.ArrayList;
-import java.util.Dictionary;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ConcurrentMap;
-
-import org.apache.felix.dm.Component;
-import org.opendaylight.controller.containermanager.ContainerData;
-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;
-
-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
- * dependencies are satisfied
- *
- */
- void init(Component c) {
- Dictionary<?, ?> props = c.getServiceProperties();
- if (props != null) {
- this.containerName = (String) props.get("containerName");
- }
- }
-
- @Override
- public String getName() {
- return this.containerName;
- }
-
- @Override
- public List<ContainerFlow> getContainerFlows() {
- List<ContainerFlow> list = new ArrayList<ContainerFlow>();
-
- 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<NodeConnector> getNodeConnectors() {
- Set<NodeConnector> set = new HashSet<NodeConnector>();
-
- ContainerData d = this.iContainerInternal.getContainerData(this.containerName);
- if (d != null) {
- ConcurrentMap<Node, Set<NodeConnector>> m = d.getSwPorts();
- if (m != null) {
- for (Map.Entry<Node, Set<NodeConnector>> entry : m.entrySet()) {
- set.addAll(entry.getValue());
- }
- }
- }
- return set;
- }
-
- @Override
- public Set<Node> getNodes() {
- Set<Node> set = new HashSet<Node>();
-
- ContainerData d = this.iContainerInternal.getContainerData(this.containerName);
- if (d != null) {
- ConcurrentMap<Node, Set<NodeConnector>> m = d.getSwPorts();
- if (m != null) {
- set.addAll(m.keySet());
- }
- }
- return set;
- }
-
- @Override
- public String getContainerAdminRole() {
- return iContainerInternal.getContainerData(containerName).getContainerAdminRole();
- }
-
- @Override
- public String getContainerOperatorRole() {
- return iContainerInternal.getContainerData(containerName).getContainerOperatorRole();
- }
-}