From 600a8aabc783f911650c3bb93bd393a03c55435e Mon Sep 17 00:00:00 2001 From: Ryan Izard <rizard@g.clemson.edu> Date: Tue, 6 Oct 2015 15:39:38 -0400 Subject: [PATCH] Removing a bunch of unused annotations along with the source. --- .../core/OFConnection.java | 7 -- .../floodlightcontroller/core/OFSwitch.java | 29 +++--- .../core/annotations/LogMessageCategory.java | 34 ------- .../core/annotations/LogMessageDoc.java | 79 ----------------- .../core/annotations/LogMessageDocs.java | 36 -------- .../core/internal/Controller.java | 61 ------------- .../core/internal/OFChannelHandler.java | 57 ------------ .../internal/OFSwitchHandshakeHandler.java | 51 ----------- .../core/internal/OFSwitchManager.java | 28 +----- .../core/module/FloodlightModuleLoader.java | 29 ------ .../core/util/ListenerDispatcher.java | 9 -- .../core/util/SingletonTask.java | 4 - .../core/web/ControllerRoleResource.java | 6 -- .../core/web/SwitchResourceBase.java | 7 -- .../internal/LinkDiscoveryManager.java | 88 ++++--------------- .../packetstreamer/PacketStreamerHandler.java | 28 ------ .../packetstreamer/PacketStreamerServer.java | 2 - .../perfmon/PktInProcessingTime.java | 13 --- .../routing/ForwardingBase.java | 37 -------- .../staticflowentry/StaticFlowEntries.java | 2 - .../StaticFlowEntryPusher.java | 34 ------- .../web/StaticFlowEntryDeleteResource.java | 8 -- .../web/StaticFlowEntryPusherResource.java | 11 --- .../storage/AbstractStorageSource.java | 17 ---- .../topology/TopologyInstance.java | 7 -- .../topology/TopologyManager.java | 17 ---- .../util/ActionUtils.java | 14 --- .../util/LoadMonitor.java | 19 +--- .../sync/internal/DefaultStoreClient.java | 1 - .../sync/internal/StoreRegistry.java | 7 -- .../sync/internal/SyncManager.java | 36 -------- .../internal/config/FallbackCCProvider.java | 7 -- .../internal/remote/RemoteSyncManager.java | 7 -- .../rpc/AbstractRPCChannelHandler.java | 55 ------------ .../sync/internal/rpc/RPCChannelHandler.java | 11 --- .../sync/internal/rpc/RPCService.java | 17 ---- .../internal/store/JavaDBStorageEngine.java | 7 +- .../internal/store/ListenerStorageEngine.java | 7 -- 38 files changed, 32 insertions(+), 857 deletions(-) delete mode 100644 src/main/java/net/floodlightcontroller/core/annotations/LogMessageCategory.java delete mode 100644 src/main/java/net/floodlightcontroller/core/annotations/LogMessageDoc.java delete mode 100644 src/main/java/net/floodlightcontroller/core/annotations/LogMessageDocs.java diff --git a/src/main/java/net/floodlightcontroller/core/OFConnection.java b/src/main/java/net/floodlightcontroller/core/OFConnection.java index eb59851d1..c72c618c6 100644 --- a/src/main/java/net/floodlightcontroller/core/OFConnection.java +++ b/src/main/java/net/floodlightcontroller/core/OFConnection.java @@ -36,7 +36,6 @@ import org.jboss.netty.util.TimerTask; import java.util.Date; -import net.floodlightcontroller.core.annotations.LogMessageDoc; import net.floodlightcontroller.core.internal.Controller; import net.floodlightcontroller.core.internal.IOFConnectionListener; import net.floodlightcontroller.debugcounter.IDebugCounterService; @@ -152,12 +151,6 @@ public class OFConnection implements IOFConnection, IOFConnectionBackend{ } @Override - @LogMessageDoc(level = "WARN", - message = "Sending OF message that modifies switch " - + "state while in the slave role: {switch}", - explanation = "An application has sent a message to a switch " - + "that is not valid when the switch is in a slave role", - recommendation = LogMessageDoc.REPORT_CONTROLLER_BUG) public void write(Iterable<OFMessage> msglist) { if (!isConnected()) { if (logger.isDebugEnabled()) diff --git a/src/main/java/net/floodlightcontroller/core/OFSwitch.java b/src/main/java/net/floodlightcontroller/core/OFSwitch.java index 16684795e..1b72fef17 100644 --- a/src/main/java/net/floodlightcontroller/core/OFSwitch.java +++ b/src/main/java/net/floodlightcontroller/core/OFSwitch.java @@ -37,7 +37,6 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; import javax.annotation.Nonnull; -import net.floodlightcontroller.core.annotations.LogMessageDoc; import net.floodlightcontroller.core.internal.IOFSwitchManager; import net.floodlightcontroller.core.internal.TableFeatures; import net.floodlightcontroller.core.util.AppCookie; @@ -249,8 +248,12 @@ public class OFSwitch implements IOFSwitchBackend { newPortsByName.put(p.getName().toLowerCase(), p); if (!p.getState().contains(OFPortState.LINK_DOWN) && !p.getConfig().contains(OFPortConfig.PORT_DOWN)) { - newEnabledPortList.add(p); - newEnabledPortNumbers.add(p.getPortNo()); + if (!newEnabledPortList.contains(p)) { + newEnabledPortList.add(p); + } + if (!newEnabledPortNumbers.contains(p.getPortNo())) { + newEnabledPortNumbers.add(p.getPortNo()); + } } } portsByName = Collections.unmodifiableMap(newPortsByName); @@ -575,8 +578,12 @@ public class OFSwitch implements IOFSwitchBackend { // Enabled = not down admin (config) or phys (state) if (!p.getConfig().contains(OFPortConfig.PORT_DOWN) && !p.getState().contains(OFPortState.LINK_DOWN)) { - newEnabledPortList.add(p); - newEnabledPortNumbers.add(p.getPortNo()); + if (!newEnabledPortList.contains(p)) { + newEnabledPortList.add(p); + } + if (!newEnabledPortNumbers.contains(p.getPortNo())) { + newEnabledPortNumbers.add(p.getPortNo()); + } } // get changes @@ -785,12 +792,6 @@ public class OFSwitch implements IOFSwitchBackend { } @Override - @LogMessageDoc(level="WARN", - message="Sending OF message that modifies switch " + - "state while in the slave role: {switch}", - explanation="An application has sent a message to a switch " + - "that is not valid when the switch is in a slave role", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) public void write(Iterable<OFMessage> msglist) { if (isActive()) { connections.get(OFAuxId.MAIN).write(msglist); @@ -1110,12 +1111,6 @@ public class OFSwitch implements IOFSwitchBackend { } @Override - @LogMessageDoc(level="WARN", - message="Switch {switch} flow table is full", - explanation="The controller received flow table full " + - "message from the switch, could be caused by increased " + - "traffic pattern", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) public void setTableFull(boolean isFull) { if (isFull && !flowTableFull) { switchManager.addSwitchEvent(this.datapathId, diff --git a/src/main/java/net/floodlightcontroller/core/annotations/LogMessageCategory.java b/src/main/java/net/floodlightcontroller/core/annotations/LogMessageCategory.java deleted file mode 100644 index e9abf02a2..000000000 --- a/src/main/java/net/floodlightcontroller/core/annotations/LogMessageCategory.java +++ /dev/null @@ -1,34 +0,0 @@ -/** -* Copyright 2012, Big Switch Networks, Inc. -* Originally created by David Erickson, Stanford University -* -* Licensed under the Apache License, Version 2.0 (the "License"); you may -* not use this file except in compliance with the License. You may obtain -* a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -* License for the specific language governing permissions and limitations -* under the License. -**/ - -package net.floodlightcontroller.core.annotations; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - -/** - * Annotation used to set the category for log messages for a class - * @author readams - */ -@Target({ElementType.TYPE, ElementType.METHOD}) -public @interface LogMessageCategory { - /** - * The category for the log messages for this class - * @return - */ - String value() default "Core"; -} diff --git a/src/main/java/net/floodlightcontroller/core/annotations/LogMessageDoc.java b/src/main/java/net/floodlightcontroller/core/annotations/LogMessageDoc.java deleted file mode 100644 index 08b48dc84..000000000 --- a/src/main/java/net/floodlightcontroller/core/annotations/LogMessageDoc.java +++ /dev/null @@ -1,79 +0,0 @@ -/** -* Copyright 2012, Big Switch Networks, Inc. -* Originally created by David Erickson, Stanford University -* -* Licensed under the Apache License, Version 2.0 (the "License"); you may -* not use this file except in compliance with the License. You may obtain -* a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -* License for the specific language governing permissions and limitations -* under the License. -**/ - -package net.floodlightcontroller.core.annotations; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - -/** - * Annotation used to document log messages. This can be used to generate - * documentation on syslog output. - * @author readams - */ -@Target({ElementType.TYPE, ElementType.METHOD}) -public @interface LogMessageDoc { - public static final String NO_ACTION = "No action is required."; - public static final String UNKNOWN_ERROR = "An unknown error occured"; - public static final String GENERIC_ACTION = - "Examine the returned error or exception and take " + - "appropriate action."; - public static final String CHECK_SWITCH = - "Check the health of the indicated switch. " + - "Test and troubleshoot IP connectivity."; - public static final String HA_CHECK_SWITCH = - "Check the health of the indicated switch. If the problem " + - "persists or occurs repeatedly, it likely indicates a defect " + - "in the switch HA implementation."; - public static final String CHECK_CONTROLLER = - "Verify controller system health, CPU usage, and memory. " + - "Rebooting the controller node may help if the controller " + - "node is in a distressed state."; - public static final String REPORT_CONTROLLER_BUG = - "This is likely a defect in the controller. Please report this " + - "issue. Restarting the controller or switch may help to " + - "alleviate."; - public static final String REPORT_SWITCH_BUG = - "This is likely a defect in the switch. Please report this " + - "issue. Restarting the controller or switch may help to " + - "alleviate."; - public static final String TRANSIENT_CONDITION = - "This is normally a transient condition that does not necessarily " + - "represent an error. If, however, the condition persists or " + - "happens frequently you should report this as a controller defect."; - - /** - * The log level for the log message - * @return the log level as a string - */ - String level() default "INFO"; - /** - * The message that will be printed - * @return the message - */ - String message() default UNKNOWN_ERROR; - /** - * An explanation of the meaning of the log message - * @return the explanation - */ - String explanation() default UNKNOWN_ERROR; - /** - * The recommended action associated with the log message - * @return the recommendation - */ - String recommendation() default NO_ACTION; -} diff --git a/src/main/java/net/floodlightcontroller/core/annotations/LogMessageDocs.java b/src/main/java/net/floodlightcontroller/core/annotations/LogMessageDocs.java deleted file mode 100644 index 663baf0bc..000000000 --- a/src/main/java/net/floodlightcontroller/core/annotations/LogMessageDocs.java +++ /dev/null @@ -1,36 +0,0 @@ -/** -* Copyright 2012, Big Switch Networks, Inc. -* Originally created by David Erickson, Stanford University -* -* Licensed under the Apache License, Version 2.0 (the "License"); you may -* not use this file except in compliance with the License. You may obtain -* a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -* License for the specific language governing permissions and limitations -* under the License. -**/ - -package net.floodlightcontroller.core.annotations; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Target; - -/** - * Annotation used to document log messages. This can be used to generate - * documentation on syslog output. This version allows multiple log messages - * to be documentated on an interface. - * @author readams - */ -@Target({ElementType.TYPE, ElementType.METHOD}) -public @interface LogMessageDocs { - /** - * A list of {@link LogMessageDoc} elements - * @return the list of log message doc - */ - LogMessageDoc[] value(); -} diff --git a/src/main/java/net/floodlightcontroller/core/internal/Controller.java b/src/main/java/net/floodlightcontroller/core/internal/Controller.java index 86299625e..51c0dbc32 100644 --- a/src/main/java/net/floodlightcontroller/core/internal/Controller.java +++ b/src/main/java/net/floodlightcontroller/core/internal/Controller.java @@ -52,8 +52,6 @@ import net.floodlightcontroller.core.IOFSwitchListener; import net.floodlightcontroller.core.LogicalOFMessageCategory; import net.floodlightcontroller.core.PortChangeType; import net.floodlightcontroller.core.RoleInfo; -import net.floodlightcontroller.core.annotations.LogMessageDoc; -import net.floodlightcontroller.core.annotations.LogMessageDocs; import net.floodlightcontroller.core.module.FloodlightModuleException; import net.floodlightcontroller.core.module.FloodlightModuleLoader; import net.floodlightcontroller.core.util.ListenerDispatcher; @@ -91,8 +89,6 @@ import org.slf4j.LoggerFactory; import com.google.common.base.Optional; import com.google.common.base.Strings; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; - /** * The main controller class. Handles all setup and network listeners */ @@ -420,20 +416,6 @@ public class Controller implements IFloodlightProviderService, IStorageSourceLis * FIXME: this method and the ChannelHandler disagree on which messages * should be dispatched and which shouldn't */ - @LogMessageDocs({ - @LogMessageDoc(level="ERROR", - message="Ignoring PacketIn (Xid = {xid}) because the data" + - " field is empty.", - explanation="The switch sent an improperly-formatted PacketIn" + - " message", - recommendation=LogMessageDoc.CHECK_SWITCH), - @LogMessageDoc(level="WARN", - message="Unhandled OF Message: {} from {}", - explanation="The switch sent a message not handled by " + - "the controller") - }) - @SuppressFBWarnings(value="SF_SWITCH_NO_DEFAULT", - justification="False positive -- has default") @Override public void handleMessage(IOFSwitch sw, OFMessage m, FloodlightContext bContext) { @@ -646,15 +628,6 @@ public class Controller implements IFloodlightProviderService, IStorageSourceLis * @return A valid role if role information is specified in the * config params, otherwise null */ - @LogMessageDocs({ - @LogMessageDoc(message="Controller role set to {role}", - explanation="Setting the initial HA role to "), - @LogMessageDoc(level="ERROR", - message="Invalid current role value: {role}", - explanation="An invalid HA role value was read from the " + - "properties file", - recommendation=LogMessageDoc.CHECK_CONTROLLER) - }) protected HARole getInitialRole(Map<String, String> configParams) { HARole role = HARole.STANDBY; String roleString = configParams.get("role"); @@ -676,19 +649,6 @@ public class Controller implements IFloodlightProviderService, IStorageSourceLis * @throws IOException */ @Override - @LogMessageDocs({ - @LogMessageDoc(message="Listening for switch connections on {address}", - explanation="The controller is ready and listening for new" + - " switch connections"), - @LogMessageDoc(message="Storage exception in controller " + - "updates loop; terminating process", - explanation=ERROR_DATABASE, - recommendation=LogMessageDoc.CHECK_CONTROLLER), - @LogMessageDoc(level="ERROR", - message="Exception in controller updates loop", - explanation="Failed to dispatch controller event", - recommendation=LogMessageDoc.GENERIC_ACTION) - }) public void run() { this.moduleLoaderState = ModuleLoaderState.COMPLETE; @@ -772,11 +732,6 @@ public class Controller implements IFloodlightProviderService, IStorageSourceLis * Startup all of the controller's components * @param floodlightModuleLoader */ - @LogMessageDoc(message="Waiting for storage source", - explanation="The system database is not yet ready", - recommendation="If this message persists, this indicates " + - "that the system database has failed to start. " + - LogMessageDoc.CHECK_CONTROLLER) public void startupComponents(FloodlightModuleLoader floodlightModuleLoader) throws FloodlightModuleException { this.moduleLoaderState = ModuleLoaderState.STARTUP; @@ -810,10 +765,6 @@ public class Controller implements IFloodlightProviderService, IStorageSourceLis addInfoProvider("summary", this); } - @LogMessageDoc(level="ERROR", - message="failed to access storage: {reason}", - explanation="Could not retrieve forwarding configuration", - recommendation=LogMessageDoc.CHECK_CONTROLLER) private void readFlowPriorityConfigurationFromStorage() { try { Map<String, Object> row; @@ -961,13 +912,6 @@ public class Controller implements IFloodlightProviderService, IStorageSourceLis "Flow priority configuration has changed after " + "controller startup. Restart controller for new " + "configuration to take effect."; - @LogMessageDoc(level="WARN", - message=FLOW_PRIORITY_CHANGED_AFTER_STARTUP, - explanation="A user has changed the priority with which access " + - "and core flows are installed after controller startup. " + - "Changing this setting will only take affect after a " + - "controller restart", - recommendation="Restart controller") @Override public void rowsModified(String tableName, Set<Object> rowKeys) { if (tableName.equals(CONTROLLER_INTERFACE_TABLE_NAME)) { @@ -1007,11 +951,6 @@ public class Controller implements IFloodlightProviderService, IStorageSourceLis return rb.getUptime(); } - @LogMessageDoc(level="WARN", - message="Failure adding update {} to queue", - explanation="The controller tried to add an internal notification" + - " to its message queue but the add failed.", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) @Override public void addUpdateToQueue(IUpdate update) { try { diff --git a/src/main/java/net/floodlightcontroller/core/internal/OFChannelHandler.java b/src/main/java/net/floodlightcontroller/core/internal/OFChannelHandler.java index 437d97b4f..7d45c1ee8 100644 --- a/src/main/java/net/floodlightcontroller/core/internal/OFChannelHandler.java +++ b/src/main/java/net/floodlightcontroller/core/internal/OFChannelHandler.java @@ -25,8 +25,6 @@ import org.jboss.netty.util.Timer; import net.floodlightcontroller.core.IOFConnectionBackend; import net.floodlightcontroller.core.OFConnection; -import net.floodlightcontroller.core.annotations.LogMessageDoc; -import net.floodlightcontroller.core.annotations.LogMessageDocs; import net.floodlightcontroller.core.internal.OpenflowPipelineFactory.PipelineHandler; import net.floodlightcontroller.core.internal.OpenflowPipelineFactory.PipelineHandshakeTimeout; import net.floodlightcontroller.core.internal.OpenflowPipelineFactory.PipelineIdleReadTimeout; @@ -209,15 +207,6 @@ class OFChannelHandler extends IdleStateAwareChannelHandler { * @param sw The switch that sent the error * @param error The error message */ - @LogMessageDoc(level="ERROR", - message="Error {error type} {error code} from {switch} " + - "in state {state}", - explanation="The switch responded with an unexpected error" + - "to an OpenFlow message from the controller", - recommendation="This could indicate improper network operation. " + - "If the problem persists restarting the switch and " + - "controller may help." - ) protected void logError(OFErrorMsg error) { log.error("{} from switch {} in state {}", new Object[] { @@ -599,9 +588,6 @@ class OFChannelHandler extends IdleStateAwareChannelHandler { } @Override - @LogMessageDoc(message="New switch connection from {ip address}", - explanation="A new switch has connected from the " + - "specified IP address") public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception { log.debug("channelConnected on OFChannelHandler {}", String.format("%08x", System.identityHashCode(this))); @@ -613,8 +599,6 @@ class OFChannelHandler extends IdleStateAwareChannelHandler { } @Override - @LogMessageDoc(message="Disconnected switch {switch information}", - explanation="The specified switch has disconnected.") public void channelDisconnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception { // Only handle cleanup connection is even known @@ -628,47 +612,6 @@ class OFChannelHandler extends IdleStateAwareChannelHandler { } @Override - @LogMessageDocs({ - @LogMessageDoc(level="ERROR", - message="Disconnecting switch {switch} due to read timeout", - explanation="The connected switch has failed to send any " + - "messages or respond to echo requests", - recommendation=LogMessageDoc.CHECK_SWITCH), - @LogMessageDoc(level="ERROR", - message="Disconnecting switch {switch}: failed to " + - "complete handshake", - explanation="The switch did not respond correctly " + - "to handshake messages", - recommendation=LogMessageDoc.CHECK_SWITCH), - @LogMessageDoc(level="ERROR", - message="Disconnecting switch {switch} due to IO Error: {}", - explanation="There was an error communicating with the switch", - recommendation=LogMessageDoc.CHECK_SWITCH), - @LogMessageDoc(level="ERROR", - message="Disconnecting switch {switch} due to switch " + - "state error: {error}", - explanation="The switch sent an unexpected message", - recommendation=LogMessageDoc.CHECK_SWITCH), - @LogMessageDoc(level="ERROR", - message="Disconnecting switch {switch} due to " + - "message parse failure", - explanation="Could not parse a message from the switch", - recommendation=LogMessageDoc.CHECK_SWITCH), - @LogMessageDoc(level="ERROR", - message="Terminating controller due to storage exception", - explanation=Controller.ERROR_DATABASE, - recommendation=LogMessageDoc.CHECK_CONTROLLER), - @LogMessageDoc(level="ERROR", - message="Could not process message: queue full", - explanation="OpenFlow messages are arriving faster than " + - " the controller can process them.", - recommendation=LogMessageDoc.CHECK_CONTROLLER), - @LogMessageDoc(level="ERROR", - message="Error while processing message " + - "from switch {switch} {cause}", - explanation="An error occurred processing the switch message", - recommendation=LogMessageDoc.GENERIC_ACTION) - }) public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception { if (e.getCause() instanceof ReadTimeoutException) { diff --git a/src/main/java/net/floodlightcontroller/core/internal/OFSwitchHandshakeHandler.java b/src/main/java/net/floodlightcontroller/core/internal/OFSwitchHandshakeHandler.java index 1a1993e21..9621b995b 100644 --- a/src/main/java/net/floodlightcontroller/core/internal/OFSwitchHandshakeHandler.java +++ b/src/main/java/net/floodlightcontroller/core/internal/OFSwitchHandshakeHandler.java @@ -22,8 +22,6 @@ import net.floodlightcontroller.core.IOFSwitch.SwitchStatus; import net.floodlightcontroller.core.IOFSwitchBackend; import net.floodlightcontroller.core.PortChangeEvent; import net.floodlightcontroller.core.SwitchDescription; -import net.floodlightcontroller.core.annotations.LogMessageDoc; -import net.floodlightcontroller.core.annotations.LogMessageDocs; import net.floodlightcontroller.core.internal.OFSwitchAppHandshakePlugin.PluginResultType; import net.floodlightcontroller.util.OFDPAUtils; @@ -229,13 +227,6 @@ public class OFSwitchHandshakeHandler implements IOFConnectionListener { * @param role The role to send to the switch. * @throws IOException */ - @LogMessageDoc(level="WARN", - message="Reasserting master role on switch {SWITCH}, " + - "likely a configruation error with multiple masters", - explanation="The controller keeps getting permission error " + - "from switch, likely due to switch connected to another " + - "controller also in master mode", - recommendation=LogMessageDoc.CHECK_SWITCH) synchronized void sendRoleRequestIfNotPending(OFControllerRole role, long xid) throws IOException { long now = System.nanoTime(); @@ -883,15 +874,6 @@ public class OFSwitchHandshakeHandler implements IOFConnectionListener { * Log an OpenFlow error message from a switch * @param error The error message */ - @LogMessageDoc(level="ERROR", - message="Error {error type} {error code} from {switch} " + - "in state {state}", - explanation="The switch responded with an unexpected error" + - "to an OpenFlow message from the controller", - recommendation="This could indicate improper network operation. " + - "If the problem persists restarting the switch and " + - "controller may help." - ) protected void logError(OFErrorMsg error) { log.error("{} from switch {} in state {}", new Object[] { @@ -1104,16 +1086,6 @@ public class OFSwitchHandshakeHandler implements IOFConnectionListener { } @Override - @LogMessageDocs({ - @LogMessageDoc(level="WARN", - message="Config Reply from {switch} has " + - "miss length set to {length}", - explanation="The controller requires that the switch " + - "use a miss length of 0xffff for correct " + - "function", - recommendation="Use a different switch to ensure " + - "correct function") - }) void processOFGetConfigReply(OFGetConfigReply m) { if (m.getMissSendLen() == 0xffff) { log.trace("Config Reply from switch {} confirms " @@ -1184,11 +1156,6 @@ public class OFSwitchHandshakeHandler implements IOFConnectionListener { super(false); } - @LogMessageDoc(message="Switch {switch info} bound to class " + - "{switch driver}, description {switch description}", - explanation="The specified switch has been bound to " + - "a switch driver based on the switch description" + - "received from the switch") @Override void processOFStatsReply(OFStatsReply m) { // Read description, if it has been updated @@ -1543,15 +1510,6 @@ public class OFSwitchHandshakeHandler implements IOFConnectionListener { setSwitchStatus(SwitchStatus.MASTER); } - @LogMessageDoc(level="WARN", - message="Received permission error from switch {} while" + - "being master. Reasserting master role.", - explanation="The switch has denied an operation likely " + - "indicating inconsistent controller roles", - recommendation="This situation can occurs transiently during role" + - " changes. If, however, the condition persists or happens" + - " frequently this indicates a role inconsistency. " + - LogMessageDoc.CHECK_CONTROLLER ) @Override void processOFError(OFErrorMsg m) { // role changer will ignore the error if it isn't for it @@ -1748,15 +1706,6 @@ public class OFSwitchHandshakeHandler implements IOFConnectionListener { } @Override - @LogMessageDoc(level="WARN", - message="Received PacketIn from switch {} while" + - "being slave. Reasserting slave role.", - explanation="The switch has receive a PacketIn despite being " + - "in slave role indicating inconsistent controller roles", - recommendation="This situation can occurs transiently during role" + - " changes. If, however, the condition persists or happens" + - " frequently this indicates a role inconsistency. " + - LogMessageDoc.CHECK_CONTROLLER ) void processOFPacketIn(OFPacketIn m) { // we don't expect packetIn while slave, reassert we are slave switchManagerCounters.packetInWhileSwitchIsSlave.increment(); diff --git a/src/main/java/net/floodlightcontroller/core/internal/OFSwitchManager.java b/src/main/java/net/floodlightcontroller/core/internal/OFSwitchManager.java index bace34438..dbf9cc244 100644 --- a/src/main/java/net/floodlightcontroller/core/internal/OFSwitchManager.java +++ b/src/main/java/net/floodlightcontroller/core/internal/OFSwitchManager.java @@ -39,8 +39,6 @@ import net.floodlightcontroller.core.LogicalOFMessageCategory; import net.floodlightcontroller.core.PortChangeType; import net.floodlightcontroller.core.SwitchDescription; import net.floodlightcontroller.core.SwitchSyncRepresentation; -import net.floodlightcontroller.core.annotations.LogMessageDoc; -import net.floodlightcontroller.core.annotations.LogMessageDocs; import net.floodlightcontroller.core.internal.Controller.IUpdate; import net.floodlightcontroller.core.internal.Controller.ModuleLoaderState; import net.floodlightcontroller.core.module.FloodlightModuleContext; @@ -118,7 +116,6 @@ public class OFSwitchManager implements IOFSwitchManager, INewOFConnectionListen private ConcurrentHashMap<DatapathId, OFSwitchHandshakeHandler> switchHandlers; private ConcurrentHashMap<DatapathId, IOFSwitchBackend> switches; private ConcurrentHashMap<DatapathId, IOFSwitch> syncedSwitches; - private Set<DatapathId> pastSwitches; private ISwitchDriverRegistry driverRegistry; @@ -197,27 +194,6 @@ public class OFSwitchManager implements IOFSwitchManager, INewOFConnectionListen } } - @LogMessageDocs({ - @LogMessageDoc(level="ERROR", - message="Switch {switch} activated but was already active", - explanation="A switch that was already activated was " + - "activated again. This should not happen.", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG - ), - @LogMessageDoc(level="WARN", - message="New switch added {switch} for already-added switch {switch}", - explanation="A switch with the same DPID as another switch " + - "connected to the controller. This can be caused by " + - "multiple switches configured with the same DPID, or " + - "by a switch reconnected very quickly after " + - "disconnecting.", - recommendation="If this happens repeatedly, it is likely there " + - "are switches with duplicate DPIDs on the network. " + - "Reconfigure the appropriate switches. If it happens " + - "very rarely, then it is likely this is a transient " + - "network problem that can be ignored." - ) - }) @Override public synchronized void switchStatusChanged(IOFSwitchBackend sw, SwitchStatus oldStatus, SwitchStatus newStatus) { DatapathId dpid = sw.getId(); @@ -678,8 +654,6 @@ public class OFSwitchManager implements IOFSwitchManager, INewOFConnectionListen this.switchListeners = new CopyOnWriteArraySet<IOFSwitchListener>(); - this.pastSwitches = new HashSet<DatapathId>(); - /* TODO @Ryan try { this.storeClient = this.syncService.getStoreClient( @@ -922,7 +896,7 @@ public class OFSwitchManager implements IOFSwitchManager, INewOFConnectionListen try { try { - jp = f.createJsonParser(json); + jp = f.createParser(json); } catch (JsonParseException e) { throw new IOException(e); } diff --git a/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleLoader.java b/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleLoader.java index ded7b6d34..9a906671d 100644 --- a/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleLoader.java +++ b/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleLoader.java @@ -40,8 +40,6 @@ import java.util.ServiceConfigurationError; import java.util.ServiceLoader; import java.util.Set; -import net.floodlightcontroller.core.annotations.LogMessageDoc; -import net.floodlightcontroller.core.annotations.LogMessageDocs; import net.floodlightcontroller.core.module.FloodlightModulePriority.Priority; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -203,28 +201,6 @@ public class FloodlightModuleLoader { * @return An IFloodlightModuleContext with all the modules to be started * @throws FloodlightModuleException */ - @LogMessageDocs({ - @LogMessageDoc(level="INFO", - message="Loading modules from {file name}", - explanation="The controller is initializing its module " + - "configuration from the specified properties " + - "file or directory"), - @LogMessageDoc(level="INFO", - message="Loading default modules", - explanation="The controller is initializing its module " + - "configuration to the default configuration"), - @LogMessageDoc(level="ERROR", - message="Could not load module configuration file", - explanation="The controller failed to read the " + - "module configuration file", - recommendation="Verify that the module configuration is " + - "present. " + LogMessageDoc.CHECK_CONTROLLER), - @LogMessageDoc(level="ERROR", - message="Could not load default modules", - explanation="The controller failed to read the default " + - "module configuration", - recommendation=LogMessageDoc.CHECK_CONTROLLER) - }) public IFloodlightModuleContext loadModulesFromConfig(String fName) throws FloodlightModuleException { Properties prop = new Properties(); @@ -558,11 +534,6 @@ public class FloodlightModuleLoader { * Parses configuration parameters for each module * @param prop The properties file to use */ - @LogMessageDoc(level="WARN", - message="Module {module} not found or loaded. " + - "Not adding configuration option {key} = {value}", - explanation="Ignoring a configuration parameter for a " + - "module that is not loaded.") protected void parseConfigParameters(Properties prop) { if (prop == null) return; diff --git a/src/main/java/net/floodlightcontroller/core/util/ListenerDispatcher.java b/src/main/java/net/floodlightcontroller/core/util/ListenerDispatcher.java index 4a6b978c5..82a34a238 100644 --- a/src/main/java/net/floodlightcontroller/core/util/ListenerDispatcher.java +++ b/src/main/java/net/floodlightcontroller/core/util/ListenerDispatcher.java @@ -22,7 +22,6 @@ import java.util.HashSet; import java.util.List; import net.floodlightcontroller.core.IListener; -import net.floodlightcontroller.core.annotations.LogMessageDoc; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -60,14 +59,6 @@ public class ListenerDispatcher<U, T extends IListener<U>> { * Add a listener to the list of listeners * @param listener */ - @LogMessageDoc(level="ERROR", - message="No listener dependency solution: " + - "No listeners without incoming dependencies", - explanation="The set of listeners installed " + - "have dependencies with no solution", - recommendation="Install a different set of listeners " + - "or install all dependencies. This is a defect in " + - "the controller installation.") public void addListener(U type, T listener) { List<T> newlisteners = new ArrayList<T>(); if (listeners != null) diff --git a/src/main/java/net/floodlightcontroller/core/util/SingletonTask.java b/src/main/java/net/floodlightcontroller/core/util/SingletonTask.java index 7a145f82f..d7562b0a0 100644 --- a/src/main/java/net/floodlightcontroller/core/util/SingletonTask.java +++ b/src/main/java/net/floodlightcontroller/core/util/SingletonTask.java @@ -20,7 +20,6 @@ package net.floodlightcontroller.core.util; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; -import net.floodlightcontroller.core.annotations.LogMessageDoc; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -57,9 +56,6 @@ public class SingletonTask { } @Override - @LogMessageDoc(level="ERROR", - message="Exception while executing task", - recommendation=LogMessageDoc.GENERIC_ACTION) public void run() { synchronized (parent.context) { if (canceled || !parent.context.taskShouldRun) diff --git a/src/main/java/net/floodlightcontroller/core/web/ControllerRoleResource.java b/src/main/java/net/floodlightcontroller/core/web/ControllerRoleResource.java index c64f1a821..69c3723ae 100644 --- a/src/main/java/net/floodlightcontroller/core/web/ControllerRoleResource.java +++ b/src/main/java/net/floodlightcontroller/core/web/ControllerRoleResource.java @@ -23,7 +23,6 @@ import org.restlet.resource.ServerResource; import net.floodlightcontroller.core.IFloodlightProviderService; import net.floodlightcontroller.core.RoleInfo; -import net.floodlightcontroller.core.annotations.LogMessageDoc; import org.restlet.resource.Get; import org.restlet.resource.Post; @@ -57,11 +56,6 @@ public class ControllerRoleResource extends ServerResource { } @Post - @LogMessageDoc(level="WARN", - message="Invalid role value specified in REST API to " + - "set controller role", - explanation="An HA role change request was malformed.", - recommendation=LogMessageDoc.CHECK_CONTROLLER) public Map<String, String> setRole(String json) { Map<String, String> retValue = new HashMap<String, String>(); diff --git a/src/main/java/net/floodlightcontroller/core/web/SwitchResourceBase.java b/src/main/java/net/floodlightcontroller/core/web/SwitchResourceBase.java index 358d73717..0ade22924 100644 --- a/src/main/java/net/floodlightcontroller/core/web/SwitchResourceBase.java +++ b/src/main/java/net/floodlightcontroller/core/web/SwitchResourceBase.java @@ -22,7 +22,6 @@ import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import net.floodlightcontroller.core.IOFSwitch; -import net.floodlightcontroller.core.annotations.LogMessageDoc; import net.floodlightcontroller.core.internal.IOFSwitchService; import org.projectfloodlight.openflow.protocol.OFFeaturesReply; @@ -71,12 +70,6 @@ public class SwitchResourceBase extends ServerResource { * @return */ @SuppressWarnings("unchecked") - @LogMessageDoc(level="ERROR", - message="Failure retrieving statistics from switch {switch}", - explanation="An error occurred while retrieving statistics" + - "from the switch", - recommendation=LogMessageDoc.CHECK_SWITCH + " " + - LogMessageDoc.GENERIC_ACTION) protected List<OFStatsReply> getSwitchStatistics(DatapathId switchId, OFStatsType statType) { IOFSwitchService switchService = (IOFSwitchService) getContext().getAttributes().get(IOFSwitchService.class.getCanonicalName()); diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java index 9f1209d75..3950c2c43 100644 --- a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java +++ b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java @@ -53,9 +53,6 @@ import net.floodlightcontroller.core.IInfoProvider; import net.floodlightcontroller.core.IOFMessageListener; import net.floodlightcontroller.core.IOFSwitch; import net.floodlightcontroller.core.IOFSwitchListener; -import net.floodlightcontroller.core.annotations.LogMessageCategory; -import net.floodlightcontroller.core.annotations.LogMessageDoc; -import net.floodlightcontroller.core.annotations.LogMessageDocs; import net.floodlightcontroller.core.internal.IOFSwitchService; import net.floodlightcontroller.core.module.FloodlightModuleContext; import net.floodlightcontroller.core.module.FloodlightModuleException; @@ -129,7 +126,6 @@ import org.slf4j.LoggerFactory; * * @edited Ryan Izard, rizard@g.clemson.edu, ryan.izard@bigswitch.com */ -@LogMessageCategory("Network Topology") public class LinkDiscoveryManager implements IOFMessageListener, IOFSwitchListener, IStorageSourceListener, ILinkDiscoveryService, IFloodlightModule, IInfoProvider { @@ -301,10 +297,10 @@ IFloodlightModule, IInfoProvider { OFPortDesc ofpPort = iofSwitch.getPort(port); - if (log.isTraceEnabled()) { - log.trace("Sending LLDP packet out of swich: {}, port: {}, reverse: {}", - new Object[] {iofSwitch.getId().toString(), port.toString(), Boolean.toString(isReverse)}); - } + //if (log.isTraceEnabled()) { + log.warn("Sending LLDP packet out of swich: {}, port: {}, reverse: {}", + new Object[] {iofSwitch.getId().toString(), port.toString(), Boolean.toString(isReverse)}); + //} // using "nearest customer bridge" MAC address for broadest possible // propagation @@ -792,7 +788,7 @@ IFloodlightModule, IInfoProvider { new Object[] { time, iofSwitch.getId(), timestamp, remoteSwitch.getId(), iofSwitch.getId(), String.valueOf(latency.getValue()) }); } Link lt = new Link(remoteSwitch.getId(), remotePort, - iofSwitch.getId(), inPort, latency); /* we assume 0 latency is undefined */ + iofSwitch.getId(), inPort, latency); if (!isLinkAllowed(lt.getSrc(), lt.getSrcPort(), lt.getDst(), lt.getDstPort())) @@ -810,8 +806,7 @@ IFloodlightModule, IInfoProvider { lastBddpTime = new Date(firstSeenTime.getTime()); } - LinkInfo newLinkInfo = new LinkInfo(firstSeenTime, lastLldpTime, - lastBddpTime); + LinkInfo newLinkInfo = new LinkInfo(firstSeenTime, lastLldpTime, lastBddpTime); addOrUpdateLink(lt, newLinkInfo); @@ -828,6 +823,7 @@ IFloodlightModule, IInfoProvider { // the reverse link does not exist. if (newLinkInfo.getFirstSeenTime().getTime() > System.currentTimeMillis() - LINK_TIMEOUT) { + log.debug("Sending reverse LLDP for link {}", lt); this.sendDiscoveryMessage(lt.getDst(), lt.getDstPort(), isStandard, true); } @@ -895,11 +891,6 @@ IFloodlightModule, IInfoProvider { // Internal Methods - Discovery Related //*********************************** - @LogMessageDoc(level = "ERROR", - message = "Error in link discovery updates loop", - explanation = "An unknown error occured while dispatching " - + "link update notifications", - recommendation = LogMessageDoc.GENERIC_ACTION) private void doUpdatesThread() throws InterruptedException { do { LDUpdate update = updates.take(); @@ -1204,11 +1195,6 @@ IFloodlightModule, IInfoProvider { * @param isReverse * indicates whether the LLDP was sent as a response */ - @LogMessageDoc(level = "ERROR", - message = "Failure sending LLDP out port {port} on switch {switch}", - explanation = "An I/O error occured while sending LLDP message " - + "to the switch.", - recommendation = LogMessageDoc.CHECK_SWITCH) protected void sendDiscoveryMessage(DatapathId sw, OFPort port, boolean isStandard, boolean isReverse) { @@ -1246,17 +1232,18 @@ IFloodlightModule, IInfoProvider { IOFSwitch iofSwitch = switchService.getSwitch(sw); if (iofSwitch == null) continue; if (!iofSwitch.isActive()) continue; /* can't do anything if the switch is SLAVE */ - if (iofSwitch.getEnabledPorts() != null) { - for (OFPortDesc ofp : iofSwitch.getEnabledPorts()) { - if (isLinkDiscoverySuppressed(sw, ofp.getPortNo())) { + Collection<OFPort> c = iofSwitch.getEnabledPortNumbers(); + if (c != null) { + for (OFPort ofp : c) { + if (isLinkDiscoverySuppressed(sw, ofp)) { continue; } log.trace("Enabled port: {}", ofp); - sendDiscoveryMessage(sw, ofp.getPortNo(), true, false); + sendDiscoveryMessage(sw, ofp, true, false); // If the switch port is not already in the maintenance // queue, add it. - NodePortTuple npt = new NodePortTuple(sw, ofp.getPortNo()); + NodePortTuple npt = new NodePortTuple(sw, ofp); addToMaintenanceQueue(npt); } } @@ -1323,7 +1310,7 @@ IFloodlightModule, IInfoProvider { portLinks.put(dstNpt, new HashSet<Link>()); portLinks.get(dstNpt).add(lt); - + newInfo.addObservedLatency(lt.getLatency()); return true; @@ -1380,7 +1367,7 @@ IFloodlightModule, IInfoProvider { */ U64 currentLatency = existingInfo.getCurrentLatency(); U64 latencyToUse = existingInfo.addObservedLatency(lk.getLatency()); - + if (currentLatency == null) { /* no-op; already 'changed' as this is a new link */ } else if (!latencyToUse.equals(currentLatency)) { @@ -1394,14 +1381,6 @@ IFloodlightModule, IInfoProvider { return linkChanged; } - @LogMessageDocs({ - @LogMessageDoc(message="Inter-switch link detected:", - explanation="Detected a new link between two openflow switches," + - "use show link to find current status"), - @LogMessageDoc(message="Inter-switch link updated:", - explanation="Detected a link change between two openflow switches, " + - "use show link to find current status") - }) protected boolean addOrUpdateLink(Link lt, LinkInfo newInfo) { boolean linkChanged = false; @@ -1513,9 +1492,6 @@ IFloodlightModule, IInfoProvider { * @param links * The List of @LinkTuple to delete. */ - @LogMessageDoc(message="Inter-switch link removed:", - explanation="A previously detected link between two openflow switches no longer exists, " + - "use show link to find current status") protected void deleteLinks(List<Link> links, String reason, List<LDUpdate> updateList) { @@ -1665,14 +1641,6 @@ IFloodlightModule, IInfoProvider { //****************** // Internal Helper Methods //****************** - @LogMessageDoc(level="WARN", - message="Could not get list of interfaces of local machine to " + - "encode in TLV: {detail-msg}", - explanation="Outgoing LLDP packets encode a unique hash to " + - "identify the local machine. The list of network " + - "interfaces is used as input and the controller failed " + - "to query this list", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) protected void setControllerTLV() { // Setting the controllerTLVValue based on current nano time, // controller's IP address, and the network interface object hash @@ -2067,28 +2035,6 @@ IFloodlightModule, IInfoProvider { } @Override - @LogMessageDocs({ - @LogMessageDoc(level = "ERROR", - message = "No storage source found.", - explanation = "Storage source was not initialized; cannot initialize " - + "link discovery.", - recommendation = LogMessageDoc.REPORT_CONTROLLER_BUG), - @LogMessageDoc(level = "ERROR", - message = "Error in installing listener for " - + "switch config table {table}", - explanation = "Failed to install storage notification for the " - + "switch config table", - recommendation = LogMessageDoc.REPORT_CONTROLLER_BUG), - @LogMessageDoc(level = "ERROR", - message = "No storage source found.", - explanation = "Storage source was not initialized; cannot initialize " - + "link discovery.", - recommendation = LogMessageDoc.REPORT_CONTROLLER_BUG), - @LogMessageDoc(level = "ERROR", - message = "Exception in LLDP send timer.", - explanation = "An unknown error occured while sending LLDP " - + "messages to switches.", - recommendation = LogMessageDoc.CHECK_SWITCH) }) public void startUp(FloodlightModuleContext context) throws FloodlightModuleException { // Initialize role to floodlight provider role. @@ -2247,7 +2193,6 @@ IFloodlightModule, IInfoProvider { } } - //********************* // IInfoProvider //********************* @@ -2320,5 +2265,4 @@ IFloodlightModule, IInfoProvider { //no-op } } - -} +} \ No newline at end of file diff --git a/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerHandler.java b/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerHandler.java index a492cb829..d5d928696 100644 --- a/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerHandler.java +++ b/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerHandler.java @@ -16,9 +16,6 @@ package net.floodlightcontroller.packetstreamer; -import net.floodlightcontroller.core.annotations.LogMessageCategory; -import net.floodlightcontroller.core.annotations.LogMessageDoc; -import net.floodlightcontroller.core.annotations.LogMessageDocs; import net.floodlightcontroller.packetstreamer.thrift.*; import java.nio.ByteBuffer; @@ -35,7 +32,6 @@ import org.slf4j.LoggerFactory; /** * The PacketStreamer handler class that implements the service APIs. */ -@LogMessageCategory("OpenFlow Message Tracing") public class PacketStreamerHandler implements PacketStreamer.Iface { /** @@ -85,18 +81,6 @@ public class PacketStreamerHandler implements PacketStreamer.Iface { * @return A list of packets associated with the session */ @Override - @LogMessageDocs({ - @LogMessageDoc(level="ERROR", - message="Interrupted while waiting for session start", - explanation="The thread was interrupted waiting " + - "for the packet streamer session to start", - recommendation=LogMessageDoc.CHECK_CONTROLLER), - @LogMessageDoc(level="ERROR", - message="Interrupted while waiting for packets", - explanation="The thread was interrupted waiting " + - "for packets", - recommendation=LogMessageDoc.CHECK_CONTROLLER) - }) public List<ByteBuffer> getPackets(String sessionid) throws org.apache.thrift.TException { List<ByteBuffer> packets = new ArrayList<ByteBuffer>(); @@ -134,18 +118,6 @@ public class PacketStreamerHandler implements PacketStreamer.Iface { * @throws TException */ @Override - @LogMessageDocs({ - @LogMessageDoc(level="ERROR", - message="Could not push empty message", - explanation="An empty message was sent to the packet streamer", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG), - @LogMessageDoc(level="ERROR", - message="queue for session {sessionId} is null", - explanation="The queue for the packet streamer session " + - "is missing", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) - }) - public int pushMessageSync(Message msg) throws org.apache.thrift.TException { diff --git a/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerServer.java b/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerServer.java index e709ff7c7..c0c19c47c 100644 --- a/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerServer.java +++ b/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerServer.java @@ -27,14 +27,12 @@ import org.apache.thrift.transport.TNonblockingServerTransport; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import net.floodlightcontroller.core.annotations.LogMessageCategory; // Generated code import net.floodlightcontroller.packetstreamer.thrift.*; /** * The PacketStreamer Server that brokers the packet streaming service. */ -@LogMessageCategory("OpenFlow Message Tracing") public class PacketStreamerServer { protected static Logger log = LoggerFactory.getLogger(PacketStreamerServer.class); protected static int port = 9090; diff --git a/src/main/java/net/floodlightcontroller/perfmon/PktInProcessingTime.java b/src/main/java/net/floodlightcontroller/perfmon/PktInProcessingTime.java index 9e754469d..74c79e353 100644 --- a/src/main/java/net/floodlightcontroller/perfmon/PktInProcessingTime.java +++ b/src/main/java/net/floodlightcontroller/perfmon/PktInProcessingTime.java @@ -29,8 +29,6 @@ import net.floodlightcontroller.core.FloodlightContext; import net.floodlightcontroller.core.IFloodlightProviderService; import net.floodlightcontroller.core.IOFMessageListener; import net.floodlightcontroller.core.IOFSwitch; -import net.floodlightcontroller.core.annotations.LogMessageCategory; -import net.floodlightcontroller.core.annotations.LogMessageDoc; import net.floodlightcontroller.core.module.FloodlightModuleContext; import net.floodlightcontroller.core.module.FloodlightModuleException; import net.floodlightcontroller.core.module.IFloodlightModule; @@ -66,7 +64,6 @@ import org.slf4j.LoggerFactory; * syslog is generated instead * */ -@LogMessageCategory("Performance Monitoring") public class PktInProcessingTime implements IFloodlightModule, IPktInProcessingTimeService { @@ -149,11 +146,6 @@ public class PktInProcessingTime } @Override - @LogMessageDoc(level="WARN", - message="Time to process packet-in exceeded threshold: {}", - explanation="Time to process packet-in exceeded the configured " + - "performance threshold", - recommendation=LogMessageDoc.CHECK_CONTROLLER) public void recordEndTimePktIn(IOFSwitch sw, OFMessage m, FloodlightContext cntx) { if (isEnabled()) { long procTimeNs = System.nanoTime() - startTimePktNs; @@ -207,11 +199,6 @@ public class PktInProcessingTime } @Override - @LogMessageDoc(level="INFO", - message="Packet processing time threshold for warning" + - " set to {time} ms.", - explanation="Performance monitoring will log a warning if " + - "packet processing time exceeds the configured threshold") public void startUp(FloodlightModuleContext context) { // Add our REST API restApi.addRestletRoutable(new PerfWebRoutable()); diff --git a/src/main/java/net/floodlightcontroller/routing/ForwardingBase.java b/src/main/java/net/floodlightcontroller/routing/ForwardingBase.java index 175f464b2..981090eaa 100644 --- a/src/main/java/net/floodlightcontroller/routing/ForwardingBase.java +++ b/src/main/java/net/floodlightcontroller/routing/ForwardingBase.java @@ -30,9 +30,6 @@ import net.floodlightcontroller.core.FloodlightContext; import net.floodlightcontroller.core.IFloodlightProviderService; import net.floodlightcontroller.core.IOFMessageListener; import net.floodlightcontroller.core.IOFSwitch; -import net.floodlightcontroller.core.annotations.LogMessageCategory; -import net.floodlightcontroller.core.annotations.LogMessageDoc; -import net.floodlightcontroller.core.annotations.LogMessageDocs; import net.floodlightcontroller.core.internal.IOFSwitchService; import net.floodlightcontroller.core.util.AppCookie; import net.floodlightcontroller.debugcounter.IDebugCounterService; @@ -73,7 +70,6 @@ import org.slf4j.LoggerFactory; * responsible for programming flows to a switch in response to a policy * decision. */ -@LogMessageCategory("Flow Programming") public abstract class ForwardingBase implements IOFMessageListener { protected static Logger log = @@ -202,18 +198,6 @@ public abstract class ForwardingBase implements IOFMessageListener { * OFFlowMod.OFPFC_MODIFY etc. * @return srcSwitchIncluded True if the source switch is included in this route */ - @LogMessageDocs({ - @LogMessageDoc(level="WARN", - message="Unable to push route, switch at DPID {dpid} not available", - explanation="A switch along the calculated path for the " + - "flow has disconnected.", - recommendation=LogMessageDoc.CHECK_SWITCH), - @LogMessageDoc(level="ERROR", - message="Failure writing flow mod", - explanation="An I/O error occurred while writing a " + - "flow modification to a switch", - recommendation=LogMessageDoc.CHECK_SWITCH) - }) public boolean pushRoute(Route route, Match match, OFPacketIn pi, DatapathId pinSwitch, U64 cookie, FloodlightContext cntx, boolean reqeustFlowRemovedNotifn, boolean doFlush, @@ -327,20 +311,6 @@ public abstract class ForwardingBase implements IOFMessageListener { * @param cntx context of the packet * @param flush force to flush the packet. */ - @LogMessageDocs({ - @LogMessageDoc(level="ERROR", - message="BufferId is not and packet data is null. " + - "Cannot send packetOut. " + - "srcSwitch={dpid} inPort={port} outPort={port}", - explanation="The switch send a malformed packet-in." + - "The packet will be dropped", - recommendation=LogMessageDoc.REPORT_SWITCH_BUG), - @LogMessageDoc(level="ERROR", - message="Failure writing packet out", - explanation="An I/O error occurred while writing a " + - "packet out to a switch", - recommendation=LogMessageDoc.CHECK_SWITCH) - }) /** * Pushes a packet-out to a switch. The assumption here is that @@ -468,13 +438,6 @@ public abstract class ForwardingBase implements IOFMessageListener { packetOutMultiPort(packet.serialize(), sw, inPort, outPorts, cntx); } - @LogMessageDocs({ - @LogMessageDoc(level="ERROR", - message="Failure writing deny flow mod", - explanation="An I/O error occurred while writing a " + - "deny flow mod to a switch", - recommendation=LogMessageDoc.CHECK_SWITCH) - }) public static boolean blockHost(IOFSwitchService switchService, SwitchPort sw_tup, MacAddress host_mac, short hardTimeout, U64 cookie) { diff --git a/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntries.java b/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntries.java index c7b421c4a..12f24d8cc 100644 --- a/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntries.java +++ b/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntries.java @@ -23,7 +23,6 @@ import java.util.Iterator; import java.util.List; import java.util.Map; -import net.floodlightcontroller.core.annotations.LogMessageCategory; import net.floodlightcontroller.core.util.AppCookie; import net.floodlightcontroller.staticflowentry.web.StaticFlowEntryPusherResource; import net.floodlightcontroller.util.ActionUtils; @@ -57,7 +56,6 @@ import org.projectfloodlight.openflow.types.U64; * Represents static flow entries to be maintained by the controller on the * switches. */ -@LogMessageCategory("Static Flow Pusher") public class StaticFlowEntries { protected static Logger log = LoggerFactory.getLogger(StaticFlowEntries.class); private static final int INFINITE_TIMEOUT = 0; diff --git a/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntryPusher.java b/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntryPusher.java index e0f33f14b..d4e95df91 100644 --- a/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntryPusher.java +++ b/src/main/java/net/floodlightcontroller/staticflowentry/StaticFlowEntryPusher.java @@ -36,8 +36,6 @@ import net.floodlightcontroller.core.IOFMessageListener; import net.floodlightcontroller.core.IOFSwitch; import net.floodlightcontroller.core.IOFSwitchListener; import net.floodlightcontroller.core.PortChangeType; -import net.floodlightcontroller.core.annotations.LogMessageCategory; -import net.floodlightcontroller.core.annotations.LogMessageDoc; import net.floodlightcontroller.core.internal.IOFSwitchService; import net.floodlightcontroller.core.module.FloodlightModuleContext; import net.floodlightcontroller.core.module.FloodlightModuleException; @@ -77,7 +75,6 @@ import org.projectfloodlight.openflow.types.U64; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -@LogMessageCategory("Static Flow Pusher") /** * This module is responsible for maintaining a set of static flows on * switches. This is just a big 'ol dumb list of flows and something external @@ -309,11 +306,6 @@ implements IOFSwitchListener, IFloodlightModule, IStaticFlowEntryPusherService, * * @return */ - @LogMessageDoc(level="ERROR", - message="failed to access storage: {reason}", - explanation="Could not retrieve static flows from the system " + - "database", - recommendation=LogMessageDoc.CHECK_CONTROLLER) private Map<String, Map<String, OFFlowMod>> readEntriesFromStorage() { Map<String, Map<String, OFFlowMod>> entries = new ConcurrentHashMap<String, Map<String, OFFlowMod>>(); try { @@ -575,11 +567,6 @@ implements IOFSwitchListener, IFloodlightModule, IStaticFlowEntryPusherService, } } - @LogMessageDoc(level="ERROR", - message="inconsistent internal state: no switch has rule {rule}", - explanation="Inconsistent internat state discovered while " + - "deleting a static flow rule", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) private void deleteStaticFlowEntry(String entryName) { String dpid = entry2dpid.remove(entryName); @@ -616,11 +603,6 @@ implements IOFSwitchListener, IFloodlightModule, IStaticFlowEntryPusherService, * @param dpid The datapath ID of the switch to write to * @param messages The list of OFMessages to write. */ - @LogMessageDoc(level="ERROR", - message="Tried to write to switch {switch} but got {error}", - explanation="An I/O error occured while trying to write a " + - "static flow to a switch", - recommendation=LogMessageDoc.CHECK_SWITCH) private void writeOFMessagesToSwitch(DatapathId dpid, List<OFMessage> messages) { IOFSwitch ofswitch = switchService.getSwitch(dpid); if (ofswitch != null) { // is the switch connected @@ -637,11 +619,6 @@ implements IOFSwitchListener, IFloodlightModule, IStaticFlowEntryPusherService, * @param dpid The datapath ID of the switch to write to * @param message The OFMessage to write. */ - @LogMessageDoc(level="ERROR", - message="Tried to write to switch {switch} but got {error}", - explanation="An I/O error occured while trying to write a " + - "static flow to a switch", - recommendation=LogMessageDoc.CHECK_SWITCH) private void writeOFMessageToSwitch(DatapathId dpid, OFMessage message) { IOFSwitch ofswitch = switchService.getSwitch(dpid); if (ofswitch != null) { // is the switch connected @@ -675,11 +652,6 @@ implements IOFSwitchListener, IFloodlightModule, IStaticFlowEntryPusherService, * @param sw The IOFSwitch to write to * @param flowMod The OFFlowMod to write */ - @LogMessageDoc(level="ERROR", - message="Tried to write OFFlowMod to {switch} but got {error}", - explanation="An I/O error occured while trying to write a " + - "static flow to a switch", - recommendation=LogMessageDoc.CHECK_SWITCH) private void writeFlowModToSwitch(IOFSwitch sw, OFFlowMod flowMod) { sw.write(flowMod); sw.flush(); @@ -777,12 +749,6 @@ implements IOFSwitchListener, IFloodlightModule, IStaticFlowEntryPusherService, } @Override - @LogMessageDoc(level="ERROR", - message="Got a FlowRemove message for a infinite " + - "timeout flow: {flow} from switch {switch}", - explanation="Flows with infinite timeouts should not expire. " + - "The switch has expired the flow anyway.", - recommendation=LogMessageDoc.REPORT_SWITCH_BUG) public Command receive(IOFSwitch sw, OFMessage msg, FloodlightContext cntx) { switch (msg.getType()) { case FLOW_REMOVED: diff --git a/src/main/java/net/floodlightcontroller/staticflowentry/web/StaticFlowEntryDeleteResource.java b/src/main/java/net/floodlightcontroller/staticflowentry/web/StaticFlowEntryDeleteResource.java index 8c8baa3e3..d64b97103 100644 --- a/src/main/java/net/floodlightcontroller/staticflowentry/web/StaticFlowEntryDeleteResource.java +++ b/src/main/java/net/floodlightcontroller/staticflowentry/web/StaticFlowEntryDeleteResource.java @@ -24,9 +24,6 @@ import org.restlet.resource.ServerResource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - -import net.floodlightcontroller.core.annotations.LogMessageCategory; -import net.floodlightcontroller.core.annotations.LogMessageDoc; import net.floodlightcontroller.staticflowentry.StaticFlowEntries; import net.floodlightcontroller.staticflowentry.StaticFlowEntryPusher; import net.floodlightcontroller.storage.IStorageSourceService; @@ -41,15 +38,10 @@ import net.floodlightcontroller.storage.IStorageSourceService; * REST compliant. * */ -@LogMessageCategory("Static Flow Pusher Delete Resource") public class StaticFlowEntryDeleteResource extends ServerResource { protected static Logger log = LoggerFactory.getLogger(StaticFlowEntryDeleteResource.class); @Post - @LogMessageDoc(level="ERROR", - message="Error deleting flow mod request: {request}", - explanation="An invalid delete request was sent to static flow pusher", - recommendation="Fix the format of the static flow mod request") public String del(String fmJson) { IStorageSourceService storageSource = (IStorageSourceService)getContext().getAttributes(). diff --git a/src/main/java/net/floodlightcontroller/staticflowentry/web/StaticFlowEntryPusherResource.java b/src/main/java/net/floodlightcontroller/staticflowentry/web/StaticFlowEntryPusherResource.java index cfce15d2b..6c0897ba2 100644 --- a/src/main/java/net/floodlightcontroller/staticflowentry/web/StaticFlowEntryPusherResource.java +++ b/src/main/java/net/floodlightcontroller/staticflowentry/web/StaticFlowEntryPusherResource.java @@ -27,8 +27,6 @@ import org.restlet.resource.ServerResource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import net.floodlightcontroller.core.annotations.LogMessageCategory; -import net.floodlightcontroller.core.annotations.LogMessageDoc; import net.floodlightcontroller.staticflowentry.StaticFlowEntries; import net.floodlightcontroller.staticflowentry.StaticFlowEntryPusher; import net.floodlightcontroller.storage.IStorageSourceService; @@ -39,7 +37,6 @@ import net.floodlightcontroller.util.MatchUtils; * @author alexreimers * */ -@LogMessageCategory("Static Flow Pusher") public class StaticFlowEntryPusherResource extends ServerResource { protected static Logger log = LoggerFactory.getLogger(StaticFlowEntryPusherResource.class); @@ -282,10 +279,6 @@ public class StaticFlowEntryPusherResource extends ServerResource { * @return A string status message */ @Post - @LogMessageDoc(level="ERROR", - message="Error parsing push flow mod request: {request}", - explanation="An invalid request was sent to static flow pusher", - recommendation="Fix the format of the static flow mod request") public String store(String fmJson) { IStorageSourceService storageSource = (IStorageSourceService)getContext().getAttributes(). @@ -331,10 +324,6 @@ public class StaticFlowEntryPusherResource extends ServerResource { } @Delete - @LogMessageDoc(level="ERROR", - message="Error deleting flow mod request: {request}", - explanation="An invalid delete request was sent to static flow pusher", - recommendation="Fix the format of the static flow mod request") public String del(String fmJson) { IStorageSourceService storageSource = (IStorageSourceService)getContext().getAttributes(). diff --git a/src/main/java/net/floodlightcontroller/storage/AbstractStorageSource.java b/src/main/java/net/floodlightcontroller/storage/AbstractStorageSource.java index d7a6d88d6..f26bdce87 100644 --- a/src/main/java/net/floodlightcontroller/storage/AbstractStorageSource.java +++ b/src/main/java/net/floodlightcontroller/storage/AbstractStorageSource.java @@ -30,8 +30,6 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; -import net.floodlightcontroller.core.annotations.LogMessageCategory; -import net.floodlightcontroller.core.annotations.LogMessageDoc; import net.floodlightcontroller.core.module.FloodlightModuleContext; import net.floodlightcontroller.core.module.FloodlightModuleException; import net.floodlightcontroller.core.module.IFloodlightModule; @@ -45,8 +43,6 @@ import net.floodlightcontroller.storage.web.StorageWebRoutable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - -@LogMessageCategory("System Database") public abstract class AbstractStorageSource implements IStorageSourceService, IFloodlightModule { protected static Logger logger = LoggerFactory.getLogger(AbstractStorageSource.class); @@ -82,10 +78,6 @@ implements IStorageSourceService, IFloodlightModule { "An unknown error occurred while executing asynchronous " + "database operation"; - @LogMessageDoc(level="ERROR", - message="Failure in asynchronous call to executeQuery", - explanation=DB_ERROR_EXPLANATION, - recommendation=LogMessageDoc.GENERIC_ACTION) abstract class StorageCallable<V> implements Callable<V> { public V call() { try { @@ -101,10 +93,6 @@ implements IStorageSourceService, IFloodlightModule { abstract protected V doStorageOperation(); } - @LogMessageDoc(level="ERROR", - message="Failure in asynchronous call to updateRows", - explanation=DB_ERROR_EXPLANATION, - recommendation=LogMessageDoc.GENERIC_ACTION) abstract class StorageRunnable implements Runnable { public void run() { try { @@ -459,11 +447,6 @@ implements IStorageSourceService, IFloodlightModule { } } - @LogMessageDoc(level="ERROR", - message="Exception caught handling storage notification", - explanation="An unknown error occured while trying to notify" + - " storage listeners", - recommendation=LogMessageDoc.GENERIC_ACTION) protected synchronized void notifyListeners(StorageSourceNotification notification) { if (logger.isTraceEnabled()) { logger.trace("Notifying storage listeneres: {}", notification); diff --git a/src/main/java/net/floodlightcontroller/topology/TopologyInstance.java b/src/main/java/net/floodlightcontroller/topology/TopologyInstance.java index f29f030b9..b70196760 100644 --- a/src/main/java/net/floodlightcontroller/topology/TopologyInstance.java +++ b/src/main/java/net/floodlightcontroller/topology/TopologyInstance.java @@ -26,8 +26,6 @@ import java.util.Map; import java.util.PriorityQueue; import java.util.Set; -import net.floodlightcontroller.core.annotations.LogMessageCategory; -import net.floodlightcontroller.core.annotations.LogMessageDoc; import net.floodlightcontroller.routing.BroadcastTree; import net.floodlightcontroller.routing.Link; import net.floodlightcontroller.routing.Route; @@ -49,7 +47,6 @@ import com.google.common.cache.LoadingCache; * A representation of a network topology. Used internally by * {@link TopologyManager} */ -@LogMessageCategory("Network Topology") public class TopologyInstance { public static final short LT_SH_LINK = 1; @@ -279,10 +276,6 @@ public class TopologyInstance { * * http://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm */ - @LogMessageDoc(level="ERROR", - message="No DFS object for switch {} found.", - explanation="The internal state of the topology module is corrupt", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) public void identifyOpenflowDomains() { Map<DatapathId, ClusterDFS> dfsList = new HashMap<DatapathId, ClusterDFS>(); diff --git a/src/main/java/net/floodlightcontroller/topology/TopologyManager.java b/src/main/java/net/floodlightcontroller/topology/TopologyManager.java index 2741d39b1..74434c328 100644 --- a/src/main/java/net/floodlightcontroller/topology/TopologyManager.java +++ b/src/main/java/net/floodlightcontroller/topology/TopologyManager.java @@ -39,8 +39,6 @@ import net.floodlightcontroller.core.IHAListener; import net.floodlightcontroller.core.IOFMessageListener; import net.floodlightcontroller.core.IOFSwitch; import net.floodlightcontroller.core.LogicalOFMessageCategory; -import net.floodlightcontroller.core.annotations.LogMessageCategory; -import net.floodlightcontroller.core.annotations.LogMessageDoc; import net.floodlightcontroller.core.internal.IOFSwitchService; import net.floodlightcontroller.core.module.FloodlightModuleContext; import net.floodlightcontroller.core.module.FloodlightModuleException; @@ -85,7 +83,6 @@ import org.slf4j.LoggerFactory; * of the network graph, as well as implementing tools for finding routes * through the topology. */ -@LogMessageCategory("Network Topology") public class TopologyManager implements IFloodlightModule, ITopologyService, IRoutingService, ILinkDiscoveryListener, IOFMessageListener { protected static Logger log = LoggerFactory.getLogger(TopologyManager.class); @@ -269,11 +266,6 @@ public class TopologyManager implements IFloodlightModule, ITopologyService, IRo * Thread for recomputing topology. The thread is always running, * however the function applyUpdates() has a blocking call. */ - @LogMessageDoc(level="ERROR", - message="Error in topology instance task thread", - explanation="An unknown error occured in the topology " + - "discovery module.", - recommendation=LogMessageDoc.CHECK_CONTROLLER) protected class UpdateTopologyWorker implements Runnable { @Override public void run() { @@ -990,11 +982,6 @@ public class TopologyManager implements IFloodlightModule, ITopologyService, IRo * @param ports * @param cntx */ - @LogMessageDoc(level="ERROR", - message="Failed to clear all flows on switch {switch}", - explanation="An I/O error occured while trying send " + - "topology discovery packet", - recommendation=LogMessageDoc.CHECK_SWITCH) public void doMultiActionPacketOut(byte[] packetData, IOFSwitch sw, Set<OFPort> ports, FloodlightContext cntx) { @@ -1150,10 +1137,6 @@ public class TopologyManager implements IFloodlightModule, ITopologyService, IRo * multiple link removed messages. However, all the updates from * LinkDiscoveryManager would be propagated to the listeners of topology. */ - @LogMessageDoc(level="ERROR", - message="Error reading link discovery update.", - explanation="Unable to process link discovery update", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) public List<LDUpdate> applyUpdates() { List<LDUpdate> appliedUpdates = new ArrayList<LDUpdate>(); LDUpdate update = null; diff --git a/src/main/java/net/floodlightcontroller/util/ActionUtils.java b/src/main/java/net/floodlightcontroller/util/ActionUtils.java index a32cfc103..1f8c8269f 100644 --- a/src/main/java/net/floodlightcontroller/util/ActionUtils.java +++ b/src/main/java/net/floodlightcontroller/util/ActionUtils.java @@ -6,8 +6,6 @@ import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; -import net.floodlightcontroller.core.annotations.LogMessageDoc; - import org.projectfloodlight.openflow.protocol.OFFactories; import org.projectfloodlight.openflow.protocol.OFFlowMod; import org.projectfloodlight.openflow.protocol.OFVersion; @@ -149,10 +147,6 @@ public class ActionUtils { * @param actions; A list of OFActions to encode into one string * @return A dpctl-style string of the actions */ - @LogMessageDoc(level="ERROR", - message="Could not decode action {action}", - explanation="A static flow entry contained an invalid action", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) public static String actionsToString(List<OFAction> actions, Logger log) { StringBuilder sb = new StringBuilder(); for (OFAction a : actions) { @@ -354,10 +348,6 @@ public class ActionUtils { * @param bigString The string containing all the actions * @param log A logger to log for errors. */ - @LogMessageDoc(level="ERROR", - message="Unexpected action '{action}', '{subaction}'", - explanation="A static flow entry contained an invalid action", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) public static void fromString(OFFlowMod.Builder fmb, String bigString, Logger log) { List<OFAction> actions = new LinkedList<OFAction>(); if (bigString != null && !bigString.trim().isEmpty()) { @@ -877,10 +867,6 @@ public class ActionUtils { * @param log * @return */ - @LogMessageDoc(level="ERROR", - message="Invalid subaction: '{subaction}'", - explanation="A static flow entry contained an invalid subaction", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) private static OFActionOutput decode_output(String actionToDecode, OFVersion version, Logger log) { Matcher n = Pattern.compile("((all)|(controller)|(local)|(ingress-port)|(normal)|(flood))").matcher(actionToDecode); OFActionOutput.Builder ab = OFFactories.getFactory(version).actions().buildOutput(); diff --git a/src/main/java/net/floodlightcontroller/util/LoadMonitor.java b/src/main/java/net/floodlightcontroller/util/LoadMonitor.java index 5b234cd5e..39dbcb3e5 100644 --- a/src/main/java/net/floodlightcontroller/util/LoadMonitor.java +++ b/src/main/java/net/floodlightcontroller/util/LoadMonitor.java @@ -27,9 +27,6 @@ import java.util.concurrent.TimeUnit; import org.slf4j.Logger; -import net.floodlightcontroller.core.annotations.LogMessageDocs; -import net.floodlightcontroller.core.annotations.LogMessageDoc; - public class LoadMonitor implements Runnable { public enum LoadLevel { @@ -99,16 +96,6 @@ public class LoadMonitor implements Runnable { } @Override - @LogMessageDocs({ - @LogMessageDoc( - message="System under very heavy load, dropping some packet-ins", - explanation="We detcted that the system was under very heavy" + - " load, dropping some packet-ins temporarily"), - @LogMessageDoc( - message="System under heavy load, dropping some new flows", - explanation="We detcted that the system was under heavy load," + - " dropping some new flows temporarily") - }) public void run() { if (!isLinux) return; @@ -164,11 +151,7 @@ public class LoadMonitor implements Runnable { itersLoaded = 0; return; } - - @LogMessageDoc( - message="Exception in reading load monitor params, using defaults", - explanation="There was an error in inializing load monitor's props," + - " using default parameters") + protected String runcmd(String cmd) { String line; StringBuilder ret = new StringBuilder(); diff --git a/src/main/java/org/sdnplatform/sync/internal/DefaultStoreClient.java b/src/main/java/org/sdnplatform/sync/internal/DefaultStoreClient.java index 56d000d4f..6dc0211f2 100644 --- a/src/main/java/org/sdnplatform/sync/internal/DefaultStoreClient.java +++ b/src/main/java/org/sdnplatform/sync/internal/DefaultStoreClient.java @@ -42,7 +42,6 @@ public class DefaultStoreClient<K, V> extends AbstractStoreClient<K, V> { private Class<K> keyClass; private TypeReference<K> keyType; - @SuppressWarnings("unchecked") public DefaultStoreClient(IStore<K, V> delegate, IInconsistencyResolver<Versioned<V>> resolver, AbstractSyncManager syncManager, diff --git a/src/main/java/org/sdnplatform/sync/internal/StoreRegistry.java b/src/main/java/org/sdnplatform/sync/internal/StoreRegistry.java index cb71bd396..b83ed1a3d 100644 --- a/src/main/java/org/sdnplatform/sync/internal/StoreRegistry.java +++ b/src/main/java/org/sdnplatform/sync/internal/StoreRegistry.java @@ -10,8 +10,6 @@ import java.util.concurrent.locks.ReentrantLock; import javax.sql.ConnectionPoolDataSource; -import net.floodlightcontroller.core.annotations.LogMessageDoc; - import org.sdnplatform.sync.Versioned; import org.sdnplatform.sync.ISyncService.Scope; import org.sdnplatform.sync.error.PersistException; @@ -138,11 +136,6 @@ public class StoreRegistry { * @param key the key * @param value the value */ - @LogMessageDoc(level="ERROR", - message="Failed to queue hint for store {storeName}", - explanation="There was an error synchronizing data to " + - "remote nodes", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) public void queueHint(String storeName, ByteArray key, Versioned<byte[]> value) { try { diff --git a/src/main/java/org/sdnplatform/sync/internal/SyncManager.java b/src/main/java/org/sdnplatform/sync/internal/SyncManager.java index cfe27e00e..9db240c9c 100644 --- a/src/main/java/org/sdnplatform/sync/internal/SyncManager.java +++ b/src/main/java/org/sdnplatform/sync/internal/SyncManager.java @@ -51,9 +51,6 @@ import org.sdnplatform.sync.thrift.SyncValueMessage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import net.floodlightcontroller.core.annotations.LogMessageCategory; -import net.floodlightcontroller.core.annotations.LogMessageDoc; -import net.floodlightcontroller.core.annotations.LogMessageDocs; import net.floodlightcontroller.core.module.FloodlightModuleContext; import net.floodlightcontroller.core.module.FloodlightModuleException; import net.floodlightcontroller.core.module.IFloodlightService; @@ -70,7 +67,6 @@ import net.floodlightcontroller.threadpool.IThreadPoolService; * @author readams * @see ISyncService */ -@LogMessageCategory("State Synchronization") public class SyncManager extends AbstractSyncManager { protected static final Logger logger = LoggerFactory.getLogger(SyncManager.class.getName()); @@ -210,9 +206,6 @@ public class SyncManager extends AbstractSyncManager { /** * Perform a synchronization with the node specified */ - @LogMessageDoc(level="INFO", - message="[{id}->{id}] Synchronizing local state to remote node", - explanation="Normal state resynchronization is occurring") public void antientropy(Node node) { if (!rpcService.isConnected(node.getNodeId())) return; @@ -359,10 +352,6 @@ public class SyncManager extends AbstractSyncManager { * @param e the storage engine for the values * @param kv the values to synchronize */ - @LogMessageDoc(level="WARN", - message="Sync task queue full and not emptying", - explanation="The synchronization service is overloaded", - recommendation=LogMessageDoc.CHECK_CONTROLLER) public void queueSyncTask(SynchronizingStorageEngine e, ByteArray key, Versioned<byte[]> value) { storeRegistry.queueHint(e.getName(), key, value); @@ -592,15 +581,6 @@ public class SyncManager extends AbstractSyncManager { // Local methods // *************** - @LogMessageDocs({ - @LogMessageDoc(level="INFO", - message="[{id}] Updating sync configuration {config}", - explanation="The sync service cluster configuration has been updated"), - @LogMessageDoc(level="INFO", - message="[{id}] Local node configuration changed; restarting sync" + - "service", - explanation="The sync service must be restarted to update its configuration") - }) protected void doUpdateConfiguration() throws FloodlightModuleException { @@ -674,10 +654,6 @@ public class SyncManager extends AbstractSyncManager { * Periodically perform cleanup * @author readams */ - @LogMessageDoc(level="ERROR", - message="Cleanup task failed", - explanation="Failed to clean up deleted data in the store", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) protected class CleanupTask implements Runnable { @Override public void run() { @@ -699,10 +675,6 @@ public class SyncManager extends AbstractSyncManager { * Periodically perform antientropy * @author readams */ - @LogMessageDoc(level="ERROR", - message="Antientropy task failed", - explanation="Failed to synchronize state between two nodes", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) protected class AntientropyTask implements Runnable { @Override public void run() { @@ -725,10 +697,6 @@ public class SyncManager extends AbstractSyncManager { * Worker task to periodically rescan the configuration * @author readams */ - @LogMessageDoc(level="ERROR", - message="Failed to update configuration", - explanation="An error occured while updating sync service configuration", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) protected class UpdateConfigTask implements Runnable { @Override public void run() { @@ -750,10 +718,6 @@ public class SyncManager extends AbstractSyncManager { * appropriate messages to the node I/O channels * @author readams */ - @LogMessageDoc(level="ERROR", - message="Error occured in synchronization worker", - explanation="Failed to synchronize state to remote node", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) protected class HintWorker implements Runnable { ArrayList<Hint> tasks = new ArrayList<Hint>(50); protected Map<String, SyncMessage> messages = diff --git a/src/main/java/org/sdnplatform/sync/internal/config/FallbackCCProvider.java b/src/main/java/org/sdnplatform/sync/internal/config/FallbackCCProvider.java index 09278ae2c..3217e2a91 100644 --- a/src/main/java/org/sdnplatform/sync/internal/config/FallbackCCProvider.java +++ b/src/main/java/org/sdnplatform/sync/internal/config/FallbackCCProvider.java @@ -3,8 +3,6 @@ package org.sdnplatform.sync.internal.config; import java.util.Collections; import java.util.Map; -import net.floodlightcontroller.core.annotations.LogMessageCategory; -import net.floodlightcontroller.core.annotations.LogMessageDoc; import net.floodlightcontroller.core.module.FloodlightModuleContext; import org.sdnplatform.sync.error.SyncException; @@ -17,7 +15,6 @@ import org.slf4j.LoggerFactory; * Provide a fallback local configuration * @author readams */ -@LogMessageCategory("State Synchronization") public class FallbackCCProvider implements IClusterConfigProvider { protected static final Logger logger = LoggerFactory.getLogger(FallbackCCProvider.class.getName()); @@ -32,10 +29,6 @@ public class FallbackCCProvider implements IClusterConfigProvider { } @Override - @LogMessageDoc(level="INFO", - message="Cluster not yet configured; using fallback " + - "local configuration", - explanation="No other nodes are known") public ClusterConfig getConfig() throws SyncException { if (!warned) { logger.info("Cluster not yet configured; using fallback local " + diff --git a/src/main/java/org/sdnplatform/sync/internal/remote/RemoteSyncManager.java b/src/main/java/org/sdnplatform/sync/internal/remote/RemoteSyncManager.java index 5bf2e8885..efcc3ec67 100644 --- a/src/main/java/org/sdnplatform/sync/internal/remote/RemoteSyncManager.java +++ b/src/main/java/org/sdnplatform/sync/internal/remote/RemoteSyncManager.java @@ -37,8 +37,6 @@ import org.sdnplatform.sync.thrift.Store; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import net.floodlightcontroller.core.annotations.LogMessageCategory; -import net.floodlightcontroller.core.annotations.LogMessageDoc; import net.floodlightcontroller.core.module.FloodlightModuleContext; import net.floodlightcontroller.core.module.FloodlightModuleException; import net.floodlightcontroller.core.module.IFloodlightService; @@ -48,7 +46,6 @@ import net.floodlightcontroller.core.module.IFloodlightService; * remote sync manager over a TCP connection * @author readams */ -@LogMessageCategory("State Synchronization") public class RemoteSyncManager extends AbstractSyncManager { protected static final Logger logger = LoggerFactory.getLogger(RemoteSyncManager.class.getName()); @@ -271,10 +268,6 @@ public class RemoteSyncManager extends AbstractSyncManager { return future; } - @LogMessageDoc(level="WARN", - message="Unexpected sync message reply type={type} id={id}", - explanation="An error occurred in the sync protocol", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) public void dispatchReply(int xid, SyncReply reply) { RemoteSyncFuture future = futureMap.get(Integer.valueOf(xid)); diff --git a/src/main/java/org/sdnplatform/sync/internal/rpc/AbstractRPCChannelHandler.java b/src/main/java/org/sdnplatform/sync/internal/rpc/AbstractRPCChannelHandler.java index 3ea5f1a94..8fe90ff43 100644 --- a/src/main/java/org/sdnplatform/sync/internal/rpc/AbstractRPCChannelHandler.java +++ b/src/main/java/org/sdnplatform/sync/internal/rpc/AbstractRPCChannelHandler.java @@ -11,10 +11,6 @@ import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import javax.xml.bind.DatatypeConverter; -import net.floodlightcontroller.core.annotations.LogMessageCategory; -import net.floodlightcontroller.core.annotations.LogMessageDoc; -import net.floodlightcontroller.core.annotations.LogMessageDocs; - import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.ChannelStateEvent; @@ -65,7 +61,6 @@ import org.slf4j.LoggerFactory; * a {@link SyncMessage} which will provide specific type information. * @author readams */ -@LogMessageCategory("State Synchronization") public abstract class AbstractRPCChannelHandler extends IdleStateAwareChannelHandler { protected static final Logger logger = @@ -132,32 +127,6 @@ public abstract class AbstractRPCChannelHandler } @Override - @LogMessageDocs({ - @LogMessageDoc(level="ERROR", - message="[{id}->{id}] Disconnecting client due to read timeout", - explanation="The connected client has failed to send any " + - "messages or respond to echo requests", - recommendation=LogMessageDoc.CHECK_CONTROLLER), - @LogMessageDoc(level="ERROR", - message="[{id}->{id}] Disconnecting RPC node due to " + - "handshake timeout", - explanation="The remote node did not complete the handshake", - recommendation=LogMessageDoc.CHECK_CONTROLLER), - @LogMessageDoc(level="ERROR", - message="[{id}->{id}] IOException: {message}", - explanation="There was an error communicating with the " + - "remote client", - recommendation=LogMessageDoc.GENERIC_ACTION), - @LogMessageDoc(level="ERROR", - message="[{id}->{id}] ConnectException: {message} {error}", - explanation="There was an error connecting to the " + - "remote node", - recommendation=LogMessageDoc.GENERIC_ACTION), - @LogMessageDoc(level="ERROR", - message="[{}->{}] An error occurred on RPC channel", - explanation="An error occurred processing the message", - recommendation=LogMessageDoc.GENERIC_ACTION), - }) public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception { if (e.getCause() instanceof ReadTimeoutException) { @@ -219,10 +188,6 @@ public abstract class AbstractRPCChannelHandler * @param ctx the context * @param message the message object */ - @LogMessageDoc(level="WARN", - message="[{id}->{id}] Unhandled message: {message type}", - explanation="An unrecognized event occurred", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) protected void handleUnknownMessage(ChannelHandlerContext ctx, Object message) { logger.warn("[{}->{}] Unhandled message: {}", @@ -343,11 +308,6 @@ public abstract class AbstractRPCChannelHandler } - @LogMessageDoc(level="WARN", - message="Failed to authenticate connection from {remote}: {message}", - explanation="Challenge/Response authentication failed", - recommendation="Check the included error message, and " + - "verify the shared secret is correctly-configured") protected void handshake(HelloMessage request, Channel channel) { try { switch (getAuthScheme()) { @@ -527,11 +487,6 @@ public abstract class AbstractRPCChannelHandler MessageType.CLUSTER_JOIN_RESPONSE, channel); } - @LogMessageDoc(level="ERROR", - message="[{id}->{id}] Error for message {id} ({type}): " + - "{message} {error code}", - explanation="Remote client sent an error", - recommendation=LogMessageDoc.GENERIC_ACTION) protected void handleError(ErrorMessage error, Channel channel) { logger.error("[{}->{}] Error for message {} ({}): {} ({})", new Object[]{getLocalNodeIdString(), @@ -554,11 +509,6 @@ public abstract class AbstractRPCChannelHandler * @param type the type of the message that generated the error * @return the {@link SyncError} message */ - @LogMessageDoc(level="ERROR", - message="Unexpected error processing message {} ({})", - explanation="An error occurred while processing an " + - "RPC message", - recommendation=LogMessageDoc.GENERIC_ACTION) protected SyncMessage getError(int transactionId, Exception error, MessageType type) { int ec = SyncException.ErrorType.GENERIC.getValue(); @@ -590,11 +540,6 @@ public abstract class AbstractRPCChannelHandler * @param type The type of the message that generated the error * @param channel the channel to write the error */ - @LogMessageDoc(level="WARN", - message="[{id}->{id}] Received unexpected message: {type}", - explanation="A inappriopriate message was sent by the remote" + - "client", - recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG) protected void unexpectedMessage(int transactionId, MessageType type, Channel channel) { diff --git a/src/main/java/org/sdnplatform/sync/internal/rpc/RPCChannelHandler.java b/src/main/java/org/sdnplatform/sync/internal/rpc/RPCChannelHandler.java index 516f387a2..bb7f942cf 100644 --- a/src/main/java/org/sdnplatform/sync/internal/rpc/RPCChannelHandler.java +++ b/src/main/java/org/sdnplatform/sync/internal/rpc/RPCChannelHandler.java @@ -6,8 +6,6 @@ import java.util.List; import java.util.Random; import java.util.Map.Entry; -import net.floodlightcontroller.core.annotations.LogMessageCategory; -import net.floodlightcontroller.core.annotations.LogMessageDoc; import net.floodlightcontroller.debugcounter.IDebugCounter; import org.jboss.netty.channel.Channel; @@ -42,7 +40,6 @@ import org.slf4j.LoggerFactory; * Channel handler for the RPC service * @author readams */ -@LogMessageCategory("State Synchronization") public class RPCChannelHandler extends AbstractRPCChannelHandler { protected static final Logger logger = LoggerFactory.getLogger(RPCChannelHandler.class); @@ -88,14 +85,6 @@ public class RPCChannelHandler extends AbstractRPCChannelHandler { } @Override - @LogMessageDoc(level="ERROR", - message="[{id}->{id}] Attempted connection from unrecognized " + - "floodlight node {id}; disconnecting", - explanation="A unknown node connected. This can happen " + - "transiently if new nodes join the cluster.", - recommendation="If the problem persists, verify your cluster" + - "configuration and that you don't have unauthorized agents " + - "in your network.") protected void handleHello(HelloMessage hello, Channel channel) { if (!hello.isSetNodeId()) { // this is a client connection. Don't set this up as a node diff --git a/src/main/java/org/sdnplatform/sync/internal/rpc/RPCService.java b/src/main/java/org/sdnplatform/sync/internal/rpc/RPCService.java index 97f498a05..60dbcbbc8 100644 --- a/src/main/java/org/sdnplatform/sync/internal/rpc/RPCService.java +++ b/src/main/java/org/sdnplatform/sync/internal/rpc/RPCService.java @@ -16,9 +16,6 @@ import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.LinkedTransferQueue; -import net.floodlightcontroller.core.annotations.LogMessageCategory; -import net.floodlightcontroller.core.annotations.LogMessageDoc; -import net.floodlightcontroller.core.annotations.LogMessageDocs; import net.floodlightcontroller.core.util.SingletonTask; import net.floodlightcontroller.debugcounter.IDebugCounterService; @@ -40,13 +37,10 @@ import org.sdnplatform.sync.thrift.MessageType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - - /** * A lightweight RPC mechanism built on netty. * @author readams */ -@LogMessageCategory("State Synchronization") public class RPCService { protected static final Logger logger = LoggerFactory.getLogger(RPCService.class); @@ -223,14 +217,6 @@ public class RPCService { /** * Stop the RPC service */ - @LogMessageDocs({ - @LogMessageDoc(level="WARN", - message="Failed to cleanly shut down RPC server", - explanation="Could not close all open sockets cleanly"), - @LogMessageDoc(level="WARN", - message="Interrupted while shutting down RPC server", - explanation="Could not close all open sockets cleanly") - }) public void shutdown() { shutDown = true; try { @@ -436,9 +422,6 @@ public class RPCService { /** * Start listening sockets */ - @LogMessageDoc(level="INFO", - message="Listening for internal floodlight RPC on {port}", - explanation="The internal RPC service is ready for connections") protected void startServer(ChannelPipelineFactory pipelineFactory) { final ServerBootstrap bootstrap = new ServerBootstrap( diff --git a/src/main/java/org/sdnplatform/sync/internal/store/JavaDBStorageEngine.java b/src/main/java/org/sdnplatform/sync/internal/store/JavaDBStorageEngine.java index 2acc2fc22..c29b88dda 100644 --- a/src/main/java/org/sdnplatform/sync/internal/store/JavaDBStorageEngine.java +++ b/src/main/java/org/sdnplatform/sync/internal/store/JavaDBStorageEngine.java @@ -18,10 +18,7 @@ import java.util.NoSuchElementException; import javax.sql.ConnectionPoolDataSource; import javax.xml.bind.DatatypeConverter; -import net.floodlightcontroller.core.annotations.LogMessageCategory; - import org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource40; - import org.sdnplatform.sync.IClosableIterator; import org.sdnplatform.sync.IVersion; import org.sdnplatform.sync.Versioned; @@ -46,7 +43,6 @@ import com.fasterxml.jackson.dataformat.smile.SmileFactory; * Persistent storage engine that keeps its data in a JDB database * @author readams */ -@LogMessageCategory("State Synchronization") public class JavaDBStorageEngine implements IStorageEngine<ByteArray, byte[]> { protected static final Logger logger = LoggerFactory.getLogger(JavaDBStorageEngine.class.getName()); @@ -154,7 +150,8 @@ public class JavaDBStorageEngine implements IStorageEngine<ByteArray, byte[]> { } } - @Override + @SuppressWarnings("resource") + @Override public void put(ByteArray key, Versioned<byte[]> value) throws SyncException { StoreUtils.assertValidKey(key); diff --git a/src/main/java/org/sdnplatform/sync/internal/store/ListenerStorageEngine.java b/src/main/java/org/sdnplatform/sync/internal/store/ListenerStorageEngine.java index 9d6f9d79e..0bd1a439a 100644 --- a/src/main/java/org/sdnplatform/sync/internal/store/ListenerStorageEngine.java +++ b/src/main/java/org/sdnplatform/sync/internal/store/ListenerStorageEngine.java @@ -6,8 +6,6 @@ import java.util.Iterator; import java.util.List; import java.util.Map.Entry; -import net.floodlightcontroller.core.annotations.LogMessageCategory; -import net.floodlightcontroller.core.annotations.LogMessageDoc; import net.floodlightcontroller.debugcounter.IDebugCounter; import net.floodlightcontroller.debugcounter.IDebugCounterService; @@ -26,7 +24,6 @@ import org.slf4j.LoggerFactory; * registered listeners of changes * @author readams */ -@LogMessageCategory("State Synchronization") public class ListenerStorageEngine implements IStorageEngine<ByteArray, byte[]> { protected static Logger logger = @@ -144,10 +141,6 @@ public class ListenerStorageEngine notifyListeners(Collections.singleton(key).iterator(), type); } - @LogMessageDoc(level="ERROR", - message="An error occurred in a sync listener", - explanation="An unexpected error occured in a handler for " + - "an update to shared state.") protected void notifyListeners(Iterator<ByteArray> keys, UpdateType type) { for (MappingStoreListener msl : listeners) { try { -- GitLab