From: Madhu Venugopal Date: Thu, 12 Sep 2013 15:38:01 +0000 (-0700) Subject: Added Configurable parameter for the Connection Manager scheme and Container profile. X-Git-Tag: releasepom-0.1.0~101 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=8b921f98d7a20185646cb33be6d1fdb0e0874ba3 Added Configurable parameter for the Connection Manager scheme and Container profile. Change-Id: I2b65f80b9d2d0d914ff34cdf18af2e652d04a8b1 Signed-off-by: Madhu Venugopal --- diff --git a/opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/internal/ConnectionManager.java b/opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/internal/ConnectionManager.java index 7097958126..bd377190f2 100644 --- a/opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/internal/ConnectionManager.java +++ b/opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/internal/ConnectionManager.java @@ -133,11 +133,17 @@ public class ConnectionManager implements IConnectionManager, IConnectionListene } public void init() { + String schemeStr = System.getProperty("connection.scheme"); this.connectionEvents = new LinkedBlockingQueue(); schemes = new ConcurrentHashMap(); for (ConnectionMgmtScheme scheme : ConnectionMgmtScheme.values()) { AbstractScheme schemeImpl = SchemeFactory.getScheme(scheme, clusterServices); - if (schemeImpl != null) schemes.put(scheme, schemeImpl); + if (schemeImpl != null) { + schemes.put(scheme, schemeImpl); + if (scheme.name().equalsIgnoreCase(schemeStr)) { + activeScheme = scheme; + } + } } } diff --git a/opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/SingleControllerScheme.java b/opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/SingleControllerScheme.java index d80911a465..6afb27fb9e 100644 --- a/opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/SingleControllerScheme.java +++ b/opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/SingleControllerScheme.java @@ -1,7 +1,5 @@ package org.opendaylight.controller.connectionmanager.scheme; -import java.net.InetAddress; -import java.util.Set; import org.opendaylight.controller.clustering.services.IClusterGlobalServices; import org.opendaylight.controller.connectionmanager.ConnectionMgmtScheme; import org.opendaylight.controller.sal.core.Node; @@ -25,11 +23,8 @@ class SingleControllerScheme extends AbstractScheme { @Override public boolean isConnectionAllowedInternal(Node node) { if (nodeConnections == null) return true; - for (Node existingNode : nodeConnections.keySet()) { - Set controllers = nodeConnections.get(existingNode); - if (controllers == null || controllers.size() == 0) continue; - if (!controllers.contains(clusterServices.getMyAddress())) return false; - } - return true; + // Lets make it simple. The Cluster Coordinator is the master + if (clusterServices.amICoordinator()) return true; + return false; } -} +} \ No newline at end of file diff --git a/opendaylight/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerManager.java b/opendaylight/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerManager.java index da301ba8c0..5058e2a0ac 100644 --- a/opendaylight/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerManager.java +++ b/opendaylight/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerManager.java @@ -801,10 +801,12 @@ public class ContainerManager extends Authorization implements IContaine * @param delete */ private void updateResourceGroups(String containerName, boolean delete) { + String containerProfile = System.getProperty("container.profile"); + if (containerProfile == null) containerProfile = "Container"; // Container Roles and Container Resource Group - String groupName = "Container-" + containerName; - String containerAdminRole = "Container-" + containerName + "-Admin"; - String containerOperatorRole = "Container-" + containerName + "-Operator"; + String groupName = containerProfile+"-" + containerName; + String containerAdminRole = containerProfile+"-" + containerName + "-Admin"; + String containerOperatorRole = containerProfile+"-" + containerName + "-Operator"; Set allContainerSet = resourceGroups.get(allResourcesGroupName); if (delete) { resourceGroups.remove(groupName); diff --git a/opendaylight/distribution/opendaylight/src/main/resources/configuration/config.ini b/opendaylight/distribution/opendaylight/src/main/resources/configuration/config.ini index ba1a54b662..970929f794 100644 --- a/opendaylight/distribution/opendaylight/src/main/resources/configuration/config.ini +++ b/opendaylight/distribution/opendaylight/src/main/resources/configuration/config.ini @@ -40,6 +40,12 @@ felix.fileinstall.filter=^(?!org.apache.felix.fileinstall).* # logback configuration logback.configurationFile=configuration/logback.xml +# Container configuration +container.profile = Container + +# Connection manager configuration +connection.scheme = ANY_CONTROLLER_ONE_MASTER + # Embedded Tomcat configuration File org.eclipse.gemini.web.tomcat.config.path=configuration/tomcat-server.xml diff --git a/opendaylight/northbound/containermanager/src/main/java/org/opendaylight/controller/containermanager/northbound/ContainerManagerNorthbound.java b/opendaylight/northbound/containermanager/src/main/java/org/opendaylight/controller/containermanager/northbound/ContainerManagerNorthbound.java index 511addae78..e5d2b48d99 100644 --- a/opendaylight/northbound/containermanager/src/main/java/org/opendaylight/controller/containermanager/northbound/ContainerManagerNorthbound.java +++ b/opendaylight/northbound/containermanager/src/main/java/org/opendaylight/controller/containermanager/northbound/ContainerManagerNorthbound.java @@ -115,7 +115,7 @@ public class ContainerManagerNorthbound { * Example: * * Request URL: - * http://localhost:8080/controller/nb/v2/containermanager/all + * http://localhost:8080/controller/nb/v2/containermanager/containers * * Response Payload in XML: * <container-config-list> @@ -142,12 +142,12 @@ public class ContainerManagerNorthbound { * </container-config-list> * * Response Payload in JSON: - * { "container-config" : [ { "name" : "black", "nodeConnectors" : ["OF|1@OF|00:00:00:00:00:00:00:01", "OF|23@OF|00:00:00:00:00:00:20:21"], "staticVlan" : "10", "flowSpecs : [{ "name": "udp", "protocol": "UDP" }] } ] } - * { "container-config" : [ { "name" : "red", "nodeConnectors" : ["OF|1@OF|00:00:00:00:00:00:00:01", "OF|23@OF|00:00:00:00:00:00:20:21"], "staticVlan" : "20", "flowSpecs": [{ "name": "tcp", "protocol": "TCP" }] } ] } + * { "container-config" : [ { "container" : "black", "nodeConnectors" : ["OF|1@OF|00:00:00:00:00:00:00:01", "OF|23@OF|00:00:00:00:00:00:20:21"], "staticVlan" : "10", "flowSpecs : [{ "name": "udp", "protocol": "UDP" }] } ] } + * { "container-config" : [ { "container" : "red", "nodeConnectors" : ["OF|1@OF|00:00:00:00:00:00:00:01", "OF|23@OF|00:00:00:00:00:00:20:21"], "staticVlan" : "20", "flowSpecs": [{ "name": "tcp", "protocol": "TCP" }] } ] } * * */ - @Path("/all") + @Path("/containers") @GET @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) @TypeHint(ContainerConfigs.class) @@ -242,7 +242,7 @@ public class ContainerManagerNorthbound { * */ @Path("/container/{container}") - @POST + @PUT @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) @StatusCodes({ @ResponseCode(code = 201, condition = "Container created successfully"), @ResponseCode(code = 400, condition = "Invalid Container configuration."), @@ -407,7 +407,7 @@ public class ContainerManagerNorthbound { * * */ - @Path("/container/{container}/flowspec") + @Path("/container/{container}/flowspecs") @GET @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) @TypeHint(FlowSpecConfigs.class)