Skip to content
Snippets Groups Projects
Commit c105dac8 authored by Tulio Ribeiro's avatar Tulio Ribeiro
Browse files

Atualizar no git hub para modificar no lab.

parent 79fbcdfa
No related branches found
No related tags found
No related merge requests found
package org.sdnplatform.sync.internal.config;
import java.io.IOException;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import net.floodlightcontroller.core.module.FloodlightModuleContext;
import org.projectfloodlight.openflow.protocol.OFControllerRole;
import org.projectfloodlight.openflow.types.DatapathId;
import org.sdnplatform.sync.error.SyncException;
import org.sdnplatform.sync.internal.SyncManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.MappingJsonFactory;
/**
* Provide a fallback local configuration
......@@ -22,6 +31,7 @@ public class FallbackCCProvider implements IClusterConfigProvider {
AuthScheme authScheme;
String keyStorePath;
String keyStorePassword;
int syncPort = 6642;
public FallbackCCProvider() throws SyncException {
......@@ -47,11 +57,16 @@ public class FallbackCCProvider implements IClusterConfigProvider {
keyStorePassword);
}
@Override
public void init(SyncManager syncManager, FloodlightModuleContext context) {
Map<String, String> config = context.getConfigParams(syncManager);
keyStorePath = config.get("keyStorePath");
keyStorePassword = config.get("keyStorePassword");
authScheme = AuthScheme.NO_AUTH;
try {
authScheme = AuthScheme.valueOf(config.get("authScheme"));
......
......@@ -3,15 +3,22 @@ package org.sdnplatform.sync.internal.config;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import org.python.antlr.PythonParser.print_stmt_return;
import org.sdnplatform.sync.error.SyncException;
import org.sdnplatform.sync.internal.SyncManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.MappingJsonFactory;
import net.floodlightcontroller.core.internal.FloodlightProvider;
import net.floodlightcontroller.core.module.FloodlightModuleContext;
import net.floodlightcontroller.storage.IResultSet;
......@@ -23,14 +30,15 @@ public class StorageCCProvider
LoggerFactory.getLogger(StorageCCProvider.class.getName());
private IStorageSourceService storageSource;
HashMap<Short, Node> clusterNode;
String thisControllerID;
AuthScheme authScheme;
String keyStorePath;
String keyStorePassword;
protected static final String CONTROLLER_TABLE_NAME = "controller_controller";
protected static final String CONTROLLER_ID = "id";
protected static final String CONTROLLER_ID = "controllerId";
protected static final String CONTROLLER_SYNC_ID = "sync_id";
protected static final String CONTROLLER_SYNC_DOMAIN_ID = "sync_domain_id";
protected static final String CONTROLLER_SYNC_PORT = "sync_port";
......@@ -41,8 +49,11 @@ public class StorageCCProvider
protected static final String CONTROLLER_INTERFACE_TYPE = "type";
protected static final String CONTROLLER_INTERFACE_NUMBER = "number";
protected static final String BOOT_CONFIG =
"/opt/bigswitch/run/boot-config";
//protected static final String BOOT_CONFIG =
// "/opt/bigswitch/run/boot-config";
protected static final String BOOT_CONFIG =
"/src/main/resources/floodlight/storageBootstrap.properties";
// **********************
// IClusterConfigProvider
......@@ -53,13 +64,20 @@ public class StorageCCProvider
FloodlightModuleContext context) {
storageSource = context.getServiceImpl(IStorageSourceService.class);
// storageSource.addListener(CONTROLLER_TABLE_NAME, this);
//storageSource.addListener(CONTROLLER_TABLE_NAME, this);
Map<String, String> config =
context.getConfigParams(FloodlightProvider.class);
thisControllerID = config.get("controllerid");
thisControllerID = config.get("controllerId");
config = context.getConfigParams(SyncManager.class);
String clusterNodes = config.get("clusterNodes");
clusterNode = jsonToNodeMap(clusterNodes, thisControllerID);
logger.info("Initial Cluster Nodes: {}",clusterNode);
logger.info("ControllerId at: {}", thisControllerID);
keyStorePath = config.get("keyStorePath");
keyStorePassword = config.get("keyStorePassword");
authScheme = AuthScheme.NO_AUTH;
......@@ -76,7 +94,7 @@ public class StorageCCProvider
try {
is = new FileInputStream(BOOT_CONFIG);
bootConfig.load(is);
thisControllerID = bootConfig.getProperty("controller-id");
thisControllerID = bootConfig.getProperty("controllerId");
} catch (Exception e) {
throw new SyncException("No controller ID configured and " +
"could not read " + BOOT_CONFIG);
......@@ -91,7 +109,7 @@ public class StorageCCProvider
if (thisControllerID == null) {
throw new SyncException("No controller ID configured");
}
logger.debug("Using controller ID: {}", thisControllerID);
logger.info("Using controller ID: {}", thisControllerID);
List<Node> nodes = new ArrayList<Node>();
short thisNodeId = -1;
......@@ -170,6 +188,73 @@ public class StorageCCProvider
} finally {
if (res != null) res.close();
}
}
/**
* Tulio Ribeiro
* @param String json
* @return Map<String, Node>
*/
private static HashMap<Short, Node> jsonToNodeMap(String json, String controllerId) {
MappingJsonFactory f = new MappingJsonFactory();
JsonParser jp;
HashMap<Short, Node> retValue = new HashMap<Short, Node>();
if (json == null || json.isEmpty()) {
return retValue;
}
try {
try {
jp = f.createParser(json);
} catch (JsonParseException e) {
throw new IOException(e);
}
jp.nextToken();
if (jp.getCurrentToken() != JsonToken.START_OBJECT) {
throw new IOException("Expected START_OBJECT");
}
while (jp.nextToken() != JsonToken.END_OBJECT) {
if (jp.getCurrentToken() != JsonToken.FIELD_NAME) {
throw new IOException("Expected FIELD_NAME");
}
String nodeId = jp.getCurrentName();
String host=null;
String domainId = controllerId;
String [] aux;
int port;
Node node=null;
jp.nextToken();
if (jp.getText().equals("")) {
continue;
}
host = jp.getValueAsString();
aux= host.split(":");
host = aux[0];
port = Integer.parseInt(aux[1]);
try {
logger.info("Initialize node: {}:{} {} {}",
new Object[]{host, port, nodeId, nodeId}
);
node = new Node(host, port, Short.parseShort(nodeId), Short.parseShort(nodeId));
retValue.put(Short.parseShort(nodeId), node);
//logger.info("Parsing JSON controllerId:{}, node:{}", controllerId, host+":"+port);
} catch(Exception e){
e.printStackTrace();
}
}
} catch (IOException e) {
logger.error("Problem: {}", e);
}
return retValue;
}
}
......@@ -127,6 +127,8 @@ public class SyncStoreCCProvider
}
Short localNodeId = getLocalNodeId();
//Short localNodeId = 2;
if (localNodeId == null) {
String seedStr =
unsyncStoreClient.getValue(SyncStoreCCProvider.SEEDS);
......
......@@ -16,6 +16,7 @@ net.floodlightcontroller.threadpool.ThreadPool
net.floodlightcontroller.core.internal.ShutdownServiceImpl
org.sdnplatform.sync.internal.SyncManager
org.sdnplatform.sync.internal.SyncTorture
net.floodlightcontroller.simpleft.FT
net.floodlightcontroller.staticflowentry.StaticFlowEntryPusher
net.floodlightcontroller.testmodule.TestModule
net.floodlightcontroller.topology.TopologyManager
......
......@@ -14,19 +14,21 @@ net.floodlightcontroller.linkdiscovery.internal.LinkDiscoveryManager,\
net.floodlightcontroller.ui.web.StaticWebRoutable,\
net.floodlightcontroller.loadbalancer.LoadBalancer,\
net.floodlightcontroller.firewall.Firewall,\
net.floodlightcontroller.simpleft.FT,\
net.floodlightcontroller.devicemanager.internal.DeviceManagerImpl,\
net.floodlightcontroller.accesscontrollist.ACL,\
net.floodlightcontroller.statistics.StatisticsCollector
org.sdnplatform.sync.internal.SyncManager.authScheme=CHALLENGE_RESPONSE
org.sdnplatform.sync.internal.SyncManager.keyStorePath=/etc/floodlight/auth_credentials.jceks
org.sdnplatform.sync.internal.SyncManager.keyStorePath=/etc/floodlight/mykey.jceks
org.sdnplatform.sync.internal.SyncManager.dbPath=/var/lib/floodlight/
org.sdnplatform.sync.internal.SyncManager.port=6642
org.sdnplatform.sync.internal.SyncManager.clusterNodes={"1":"192.168.1.131:6642","2":"192.168.1.131:6643"}
net.floodlightcontroller.forwarding.Forwarding.match=vlan, mac, ip, transport
net.floodlightcontroller.forwarding.Forwarding.flood-arp=NO
net.floodlightcontroller.core.internal.FloodlightProvider.openFlowPort=6653
net.floodlightcontroller.core.internal.FloodlightProvider.role=ACTIVE
net.floodlightcontroller.core.internal.FloodlightProvider.workerThreads=8
net.floodlightcontroller.core.internal.FloodlightProvider.controllerId=C1
net.floodlightcontroller.core.internal.FloodlightProvider.controllerId=1
net.floodlightcontroller.linkdiscovery.internal.LinkDiscoveryManager.latency-history-size=10
net.floodlightcontroller.linkdiscovery.internal.LinkDiscoveryManager.latency-update-threshold=0.5
net.floodlightcontroller.core.internal.OFSwitchManager.defaultMaxTablesToReceiveTableMissFlow=1
......@@ -37,7 +39,7 @@ net.floodlightcontroller.core.internal.OFSwitchManager.keyStorePath=/path/to/you
net.floodlightcontroller.core.internal.OFSwitchManager.keyStorePassword=your-keystore-password
net.floodlightcontroller.core.internal.OFSwitchManager.useSsl=NO
net.floodlightcontroller.core.internal.OFSwitchManager.supportedOpenFlowVersions=1.0, 1.1, 1.2, 1.3, 1.4
net.floodlightcontroller.core.internal.OFSwitchManager.switchesInitialState={"00:00:00:00:00:00:00:01":"ROLE_MASTER","00:00:00:00:00:00:00:02":"ROLE_SLAVE", "00:00:00:00:00:00:00:03":"ROLE_MASTER", "00:00:00:00:00:00:00:04":"ROLE_MASTER","00:00:00:00:00:00:00:05":"ROLE_MASTER"}
net.floodlightcontroller.core.internal.OFSwitchManager.switchesInitialState={"00:00:00:00:00:00:00:01":"ROLE_MASTER","00:00:00:00:00:00:00:02":"ROLE_MASTER", "00:00:00:00:00:00:00:03":"ROLE_MASTER", "00:00:00:00:00:00:00:04":"ROLE_SLAVE","00:00:00:00:00:00:00:05":"ROLE_SLAVE"}
net.floodlightcontroller.restserver.RestApiServer.keyStorePath=/path/to/your/keystore-file.jks
net.floodlightcontroller.restserver.RestApiServer.keyStorePassword=your-keystore-password
net.floodlightcontroller.restserver.RestApiServer.httpsNeedClientAuthentication=NO
......
......@@ -12,13 +12,14 @@ net.floodlightcontroller.linkdiscovery.internal.LinkDiscoveryManager,\
net.floodlightcontroller.ui.web.StaticWebRoutable,\
net.floodlightcontroller.loadbalancer.LoadBalancer,\
net.floodlightcontroller.firewall.Firewall,\
net.floodlightcontroller.simpleft.FT,\
net.floodlightcontroller.devicemanager.internal.DeviceManagerImpl,\
net.floodlightcontroller.accesscontrollist.ACL,\
net.floodlightcontroller.statistics.StatisticsCollector
org.sdnplatform.sync.internal.SyncManager.authScheme=CHALLENGE_RESPONSE
org.sdnplatform.sync.internal.SyncManager.keyStorePath=/etc/floodlight/auth_credentials.jceks
org.sdnplatform.sync.internal.SyncManager.dbPath=/var/lib/floodlight2/
org.sdnplatform.sync.internal.SyncManager.port=7742
org.sdnplatform.sync.internal.SyncManager.port=6642
net.floodlightcontroller.forwarding.Forwarding.match=vlan, mac, ip, transport
net.floodlightcontroller.forwarding.Forwarding.flood-arp=NO
net.floodlightcontroller.core.internal.FloodlightProvider.openFlowPort=7753
......@@ -35,6 +36,6 @@ net.floodlightcontroller.core.internal.OFSwitchManager.keyStorePath=/path/to/you
net.floodlightcontroller.core.internal.OFSwitchManager.keyStorePassword=your-keystore-password
net.floodlightcontroller.core.internal.OFSwitchManager.useSsl=NO
net.floodlightcontroller.core.internal.OFSwitchManager.supportedOpenFlowVersions=1.0, 1.1, 1.2, 1.3, 1.4
net.floodlightcontroller.core.internal.OFSwitchManager.switchesInitialState={"00:00:00:00:00:00:00:01":"ROLE_SLAVE","00:00:00:00:00:00:00:02":"ROLE_SLAVE", "00:00:00:00:00:00:00:03":"ROLE_SLAVE", "00:00:00:00:00:00:00:04":"ROLE_MASTER","00:00:00:00:00:00:00:05":"ROLE_SLAVE"}
net.floodlightcontroller.core.internal.OFSwitchManager.switchesInitialState={"00:00:00:00:00:00:00:01":"ROLE_SLAVE","00:00:00:00:00:00:00:02":"ROLE_SLAVE", "00:00:00:00:00:00:00:03":"ROLE_SLAVE", "00:00:00:00:00:00:00:04":"ROLE_MASTER","00:00:00:00:00:00:00:05":"ROLE_MASTER"}
net.floodlightcontroller.statistics.StatisticsCollector.enable=FALSE
net.floodlightcontroller.statistics.StatisticsCollector.collectionIntervalPortStatsSeconds=10
\ No newline at end of file
......@@ -15,14 +15,14 @@
<logger name="LogService" level="DEBUG"></logger> <!-- Restlet access logging -->
<logger name="net.floodlightcontroller" level="INFO"/>
<logger name="org.sdnplatform" level="INFO"></logger>
<logger name="net.floodlightcontroller.devicemanager" level="TRACE"></logger>
<logger name="net.floodlightcontroller.linkdiscovery" level="DEBUG"></logger>
<logger name="net.floodlightcontroller.forwarding" level="TRACE"></logger>
<logger name="net.floodlightcontroller.simpleft.FaultTolerance" level="TRACE"></logger>
<logger name="net.floodlightcontroller.devicemanager" level="INFO"></logger>
<logger name="net.floodlightcontroller.linkdiscovery" level="INFO"></logger>
<logger name="net.floodlightcontroller.forwarding" level="INFO"></logger>
<logger name="net.floodlightcontroller.simpleft.FT" level="TRACE"></logger>
<logger name="net.floodlightcontroller.core" level="INFO"></logger>
<logger name="net.floodlightcontroller.topology" level="TRACE" ></logger>
<logger name="org.projectfloodlight.openflow" level="INFO" ></logger>
<logger name="net.floodlightcontroller.core.internal.OFSwitchManager" level="TRACE"></logger>
<logger name="net.floodlightcontroller.core.internal.OFSwitchHandshakeHandler" level="TRACE"></logger>
<logger name="net.floodlightcontroller.core.internal.OFChannelHandler" level="TRACE"></logger>
<logger name="net.floodlightcontroller.core.internal.OFSwitchManager" level="INFO"></logger>
<logger name="net.floodlightcontroller.core.internal.OFSwitchHandshakeHandler" level="INFO"></logger>
<logger name="net.floodlightcontroller.core.internal.OFChannelHandler" level="INFO"></logger>
</configuration>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment