OSDN Git Service

add CSVParser, TSVParser, BaseParser.
[ftg/ftg.git] / ftg / grapher.py
index 776bf06..4b877bc 100755 (executable)
@@ -4,43 +4,34 @@
 
 from ftg.utils.common import CommonUtils
 from ftg.parser.ovs_flow_dump import OVSFlowDumpParser
+from ftg.parser.csv import CSVParser
+from ftg.parser.tsv import TSVParser
 
 
 class Grapher():
-
-    def __init__(self, util, dump_file, formatter):
+    DUMP_FILE_OVS = 1
+    DUMP_FILE_CSV = 2
+    DUMP_FILE_TSV = 3
+    
+    def __init__(self, util, dump_file, dump_file_type, formatter):
         self.util = util
         self.dump_file = dump_file
+        self.dump_file_type = dump_file_type
         self.formatter = formatter
 
     def run(self):
-        parser = OVSFlowDumpParser(self.util, self.dump_file)
+        if self.dump_file_type == self.DUMP_FILE_OVS:
+            parser = OVSFlowDumpParser(self.util, self.dump_file)
+        elif self.dump_file_type == self.DUMP_FILE_CSV:
+            parser = CSVParser(self.util, self.dump_file)
+        elif self.dump_file_type == self.DUMP_FILE_TSV:
+            parser = TSVParser(self.util, self.dump_file)
+        else:
+            util.error_out("specify flow file with -i or -c or -t option.")
+            sys.exit(1)
+            
         parser.parse()
         tables = parser.get_tables()
         self.formatter.set_tables(tables)
         for formatted_line in self.formatter.format():
             print formatted_line
-
-#         for action in self.actions:
-#             action_title = "ACTION: " + action
-#             self.util.message_out("\n" + action_title)
-#             self.util.message_out("-" * len(action_title))
-#             action_type = str(self.scenario.get_item(action, "ACTION")).upper()
-#             action_params = self.scenario.get_items_as_dict(action)
-#             if action_type == "GENERATE":
-#                 packet_def_name = str(
-#                     self.scenario.get_item(action, "PACKET_DEF"))
-#                 task_runner = PacketGenerator(self.util, self._get_packet_def(
-#                     packet_def_name), action_params, self.reporter)
-#             elif action_type == "CAPTURE":
-#                 task_runner = PacketCapture(
-#                     self.util, self.packet_templates, action_params, self.reporter)
-#             elif action_type == "ANALYZE":
-#                 task_runner = PacketAnalyzer(
-#                     self.util, self.packet_templates, action_params, self.reporter)
-#             else:
-#                 packet_def_name = str(
-#                     self.scenario.get_item(action, "PACKET_DEF"))
-#                 task_runner = PacketGenerator(self.util, self._get_packet_def(
-#                     packet_def_name), action_params, self.reporter)
-#             task_runner.run()