
es.tid.topologyModuleBase.management.TMManagementSession Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of topology Show documentation
Show all versions of topology Show documentation
Traffic Engineering Database, BGP-LS peer, Topology Module
The newest version!
package es.tid.topologyModuleBase.management;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.util.ArrayList;
import java.util.logging.Logger;
//import es.tid.pce.server.DomainPCESession;
import es.tid.topologyModuleBase.TopologyModuleParamsArray;
import es.tid.topologyModuleBase.database.TopologiesDataBase;
import es.tid.topologyModuleBase.plugins.TMPlugin;
/**
*
* @author La comunidad
*
*/
public class TMManagementSession extends Thread {
private boolean started = false;
/**
* The socket of the management session
*/
private Socket socket;
/**
* Logger
*/
private Logger log;
/**
* Output Stream of the managament session, to write the answers.
*/
private PrintStream out;
/**
* The TEDB
*/
private TopologiesDataBase tedb;
/*
*
*/
TopologyModuleParamsArray params;
ArrayList pluginsList;
//public static ArrayList oneSession = new ArrayList();
public TMManagementSession(Socket s,TopologiesDataBase tedb, TopologyModuleParamsArray params, ArrayList pluginsList ){
this.socket=s;
this.tedb=tedb;
this.params = params;
this.pluginsList=pluginsList;
log=Logger.getLogger("TMController");
}
public void run(){
log.info("Starting Management session for TM");
boolean running=true;
try {
out=new PrintStream(socket.getOutputStream());
} catch (IOException e) {
log.warning("Management session cancelled: "+e.getMessage());
return;
}
try {
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while (running) {
if (!started)
{
out.print("\n");
out.print(" T ,\r\n");
out.print(" O |'. ,\r\n");
out.print(" P | '-._ / )\r\n");
out.print(" O .' .._ ', /_'-,\r\n");
out.print(" ' / _'.'_\\ /._)')\r\n");
out.print(" M : / '_' '_' / _.'\r\n");
out.print(" O |E | |Q| |Q| / /\r\n");
out.print(" D .' _\\ '-' '-' /\r\n");
out.print(" U .'--.(S ,__` ) /\r\n");
out.print(" L '-. _.' /\r\n");
out.print(" E __.--'----( /\r\n");
out.print(" _.-' : __\\ /\r\n");
out.print(" ( __.' :' :Y\r\n");
out.print(" '. '._, : :|\r\n");
out.print(" '. ) :.__:|\r\n");
out.print(" \\ \\______/\r\n");
out.print(" '._L/_H____]\r\n");
out.print(" /_ /\r\n");
out.print(" / '-.__.-')\r\n");
out.print(" : / /\r\n");
out.print(" : / /\r\n");
out.print(" ,/_____/----;\r\n");
out.print(" '._____)----'\r\n");
out.print(" / / /\r\n");
out.print(" / / /\r\n");
out.print(" .' / \\\r\n");
out.print(" (______(-.____)\r\n");
out.print("***********************************************\n");
started = true;
}
out.print("Available commands:\r\n\n");
out.print("\t1) showTED\r\n");
out.print("\t2) showPlugins\r\n");
out.print("\t3) help\r\n");
out.print("\tENTER) quit\r\n");
out.print("TM:>");
String command = null;
try {
command = br.readLine();
} catch (IOException ioe) {
log.warning("IO error trying to read your command");
return;
}
if(command == null)
{
continue;
}
if (command.equals("quit") || command.equals("")) {
log.info("Ending Management Session");
out.println("bye!");
try {
out.close();
} catch (Exception e){
e.printStackTrace();
}
try {
br.close();
} catch (Exception e){
e.printStackTrace();
}
return;
}
if (command.equals("showTED") || command.equals("1")) {
out.print(tedb.printTopology()+"\n");
}
else if (command.equals("showPlguins") || command.equals("2")) {
int i=1;
for(TMPlugin p : this.pluginsList){
out.print(i+") "+p.getPluginName());
if(p.isRunning()) out.print(" [Running]\n");
else out.print(" [Stop]\n");
i++;
}
out.print("ENTER) back\n\nTM:>");
String command2;
try {
command2 = br.readLine();
} catch (IOException ioe) {
log.warning("IO error trying to read your command");
return;
}
if(command2 == null)
{
continue;
}
try{
int option = Integer.parseInt(command2);
out.print(this.pluginsList.get(option-1).displayInfo()+"\n\n");
}catch(java.lang.NumberFormatException e){
continue;
}
}
else if (command.equals("help") || command.equals("3")) {
out.print("Available commands:\r\n\n");
out.print("\t1) showTED\r\n");
out.print("\t2) help\r\n");
out.print("\tENTER) quit\r\n");
}
else{
out.print("invalid command\n");
out.print("\n");
}
}
} catch (Exception e) {
e.printStackTrace();
return;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy