package com.cloudera.sa.node360.playarea;
import com.cloudera.sa.node360.localservers.LocalHBaseCluster;
import com.cloudera.sa.node360.model.EventPojo;
import com.cloudera.sa.node360.model.NetFlowPojo;
import com.cloudera.sa.node360.model.NodePojo;
import com.cloudera.sa.node360.nodepuller.listener.EventListener;
import com.cloudera.sa.node360.nodepuller.listener.InternalQueueListener;
import com.cloudera.sa.node360.nodepuller.listener.SystemOutListener;
import com.cloudera.sa.node360.service.HBaseService;
import com.cloudera.sa.node360.service.deamon.QueueToHBaseProcess;
import com.cloudera.sa.node360.symulator.NodeDataSymulator;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.net.StaticMapping;
import java.io.IOException;
import java.util.List;
/**
* Created by ted.malaska on 6/5/15.
*/
public class BackEndTests {
public static long startTime = System.currentTimeMillis();
public static void main(String args[]) throws Exception {
LocalHBaseCluster hbaseCluster = new LocalHBaseCluster();
Configuration config = hbaseCluster.getConfiguration();
QueueToHBaseProcess queueHBaseProcess = null;
try {
System.out.println("Step 1: Config");
HBaseService hbaseService = new HBaseService(config);
System.out.println("Step 2: Service");
hbaseService.generateTables();
System.out.println("Step 2.5: Tables");
populateInitialNodes(hbaseService);
System.out.println("Step 3: Nodes Populated");
EventListener listener = new InternalQueueListener();
System.out.println("Step 4: Listener");
NodeDataSymulator sym = new NodeDataSymulator(listener, hbaseService,
20, 20, 100, 7);
queueHBaseProcess = new QueueToHBaseProcess(hbaseService);
queueHBaseProcess.start();
sym.run(20);
Thread.sleep(1000);
System.out.println("Step 5: Sym");
runFetchesOnTheSystem(hbaseService);
System.out.println("Step 6: API Test");
} finally {
queueHBaseProcess.stop();
hbaseCluster.shutDown();
System.out.println("Step 7: Shut Down");
}
}
public static void populateInitialNodes(HBaseService service) throws IOException {
service.addNode(new NodePojo("127.1.1.1", "foo1", "20878", "A"));
service.addNode(new NodePojo("127.1.1.2", "foo2", "20878", "A"));
service.addNode(new NodePojo("127.1.1.3", "foo3", "20870", "B"));
service.addNode(new NodePojo("127.1.1.4", "foo4", "20870", "B"));
service.addNode(new NodePojo("127.1.2.5", "foo5", "20855", "C"));
service.addNode(new NodePojo("127.1.2.6", "foo6", "20870", "C"));
service.addNode(new NodePojo("127.1.2.7", "foo7", "20870", "C"));
service.addNode(new NodePojo("127.1.2.8", "foo8", "20870", "C"));
}
public static void runFetchesOnTheSystem(HBaseService service) throws IOException {
StaticMapping g;
System.out.println("FullNodeList");
List<NodePojo> fullNodeList = service.getFullNodeList();
for (NodePojo node: fullNodeList) {
System.out.println(" - " + node);
}
System.out.println();
System.out.println("ListFileEvents");
final List<EventPojo> fileEventList = service.getFileEventList("127.1.1.2", System.currentTimeMillis() - 100000, "/etc/hosts", 10);
for (EventPojo event: fileEventList) {
System.out.println(" - " + event.getMeta() + " : " + event.getNewFile());
}
System.out.println();
System.out.println("AutoCompleteList");
List<NodePojo> autoCompleteNodeList = service.getAutoCompleteNodeList("127.1.1", 10);
for (NodePojo node: autoCompleteNodeList) {
System.out.println(" - " + node);
}
System.out.println();
System.out.println("TSV CPU Graph");
System.out.println(service.getDetailedGraphWindowTSV("127.1.1.3", startTime, startTime + 5000 * 80, "cpu", 5000, true));
System.out.println();
System.out.println("TSV drives Graph");
System.out.println(service.getDetailedGraphWindowTSV("127.1.1.3", startTime, startTime + 5000 * 80, "drives", 5000, true));
System.out.println();
System.out.println("TSV NetFlow");
List<EventPojo> netflowEventList = service.getNetFlowEventWindow("127.1.1.3", startTime, startTime + 5000 * 80, "netflow");
for (EventPojo pojo: netflowEventList) {
for (NetFlowPojo netFlowPojo : pojo.getNetFlowPojoList()) {
System.out.println(" -- :" + netFlowPojo);
}
}
System.out.println(service.generateNodeGraphJson("127.1.1.3", startTime, startTime + 5000 * 80, "netflow"));
}
}