package org.opennaas.extensions.macbridge.ios.resource.actionssets.actions.vlanawarebridge; import org.opennaas.core.resources.action.Action; import org.opennaas.core.resources.action.ActionException; import org.opennaas.core.resources.action.ActionResponse; import org.opennaas.core.resources.protocol.IProtocolSession; import org.opennaas.core.resources.protocol.IProtocolSessionManager; import org.opennaas.core.resources.protocol.ProtocolException; import org.opennaas.extensions.capability.macbridge.model.MACBridge; import org.opennaas.extensions.macbridge.ios.resource.commandsets.commands.IOSCommand; import org.opennaas.extensions.macbridge.ios.resource.commandsets.commands.ShowInterfacesStatusCommand; import org.opennaas.extensions.macbridge.ios.resource.commandsets.commands.ShowVLANCommand; import org.opennaas.extensions.macbridge.ios.resource.commandsets.commands.TerminalLengthCommand; import org.opennaas.extensions.protocols.cli.message.CLIResponseMessage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author Eduard Grasa */ public class RefreshAction extends Action { public static final String REFRESH_ACTION = "RefreshAction"; /** CLI Session Log */ static private Logger logger = LoggerFactory.getLogger(RefreshAction.class); /** * */ public RefreshAction() { super(); this.setActionID(REFRESH_ACTION); } @Override public boolean checkParams(Object params) throws ActionException { return true; } @Override public ActionResponse execute(IProtocolSessionManager protocolSessionManager) throws ActionException { IOSCommand command = null; MACBridge macBridgeModel = (MACBridge) this.getModelToUpdate(); try { logger.debug("Executing Refresh action"); IProtocolSession protocol = protocolSessionManager.obtainSessionByProtocol("cli", false); logger.debug("Connecting to device"); protocol.connect(); // Login and enter enable mode logger.debug("Setting terminal length"); command = new TerminalLengthCommand(); protocol.sendReceive(command.getCommand()); logger.debug("Retrieving interfaces status"); command = new ShowInterfacesStatusCommand(); CLIResponseMessage message = (CLIResponseMessage) protocol.sendReceive(command.getCommand()); command.updateModel(message, macBridgeModel); command = new ShowVLANCommand(); message = (CLIResponseMessage) protocol.sendReceive(command.getCommand()); command.updateModel(message, macBridgeModel); protocol.disconnect(); } catch (ProtocolException ex) { throw new ActionException(ex); } return ActionResponse.okResponse(this.getActionID()); } }