--- /dev/null
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+# -*- coding: utf-8 -*-
+#
+
+import re
+import json
+from linkpair.device import Device
+from linkpair.port import Port
+from linkpair.linkpair import LinkPair
+from linkpair.collect.utils import CollectUtils
+from linkpair.collect.collector_dataset import CollectorDataset
+from linkpair.formatter.graphviz_tb import GraphvizTBFormatter
+
+
+class JsonImporter(object):
+
+ def __init__(self, util, import_file, formatter=GraphvizTBFormatter()):
+ self._import_file = import_file
+ self._devices = {}
+ self._ports = {}
+ self._os_info = {}
+ self._linuxnet = {}
+ self._linkpairs = []
+ self._port_to_br = {}
+ self._iface_to_nss = {}
+ self._veth_peer = {}
+# self._opts = opts
+ self._u = util
+ self._remote_desc = ""
+ self._ssh_username = ""
+ self._ssh_hostname = ""
+ self._ssh_hostport = 22
+ self._remote_password = ""
+ self._remote_sshkey = ""
+ self._ssh_keyauth = False
+ self._ssh_passauth = False
+ self._formatter = formatter
+ self._u.debug_out("JsonImporter initialized: " + self._import_file)
+
+ def run(self):
+ cd = CollectorDataset(
+ self._devices, self._ports, self._os_info, self._linuxnet, self._linkpairs,
+ self._port_to_br, self._iface_to_nss, self._veth_peer)
+ cu = CollectUtils(
+ cd, self._u, self._formatter)
+
+ f_import = open(self._import_file)
+ json_data = json.load(f_import)
+ f_import.close()
+
+ for linkpair in json_data["linkpairs"]:
+ self._u.debug_out(linkpair["linkid"])
+ device1 = Device(linkpair["linkpair"]["device1"]["label"],
+ int(linkpair["linkpair"]["device1"]["device_type"]),
+ linkpair["linkpair"]["device1"]["meta"])
+ device2 = Device(linkpair["linkpair"]["device2"]["label"],
+ int(linkpair["linkpair"]["device2"]["device_type"]),
+ linkpair["linkpair"]["device2"]["meta"])
+ port1 = Port(linkpair["linkpair"]["port1"]["label"],
+ int(linkpair["linkpair"]["port1"]["port_type"]),
+ linkpair["linkpair"]["port1"]["meta"])
+ port2 = Port(linkpair["linkpair"]["port2"]["label"],
+ int(linkpair["linkpair"]["port2"]["port_type"]),
+ linkpair["linkpair"]["port2"]["meta"])
+ format = int(linkpair["linkpair"]["format"])
+
+ cu.add_linkpair(
+ device1,
+ device2,
+ port1,
+ port2,
+ format)
+
+ def get_linkpairs(self):
+ return self._linkpairs
# vim: tabstop=4 shiftwidth=4 softtabstop=4
# -*- coding: utf-8 -*-
#
-# ti2.py : List TAP device info for running VMs
+# ti2.py : List informations of the TAP devices for running VMs
#
-# 2013/02/01 ver1.0
-# basecode "tapinfo.py" : List TAP device info for running VMs
#
+
__version__ = '1.1'
import sys
from linkpair.formatter.springy_raphael import SpringyRaphaelFormatter
from linkpair.formatter.graphviz_tb import GraphvizTBFormatter
from linkpair.utils.common import CommonUtils
-from linkpair.exporter.json import JsonExporter
+from linkpair.exporter.JSON import JsonExporter
+from linkpair.importer.JSON import JsonImporter
def print_linkpair_records(lps):
util = CommonUtils()
util.set_opts(opts)
util.debug_out("init program options")
- #dbu = DBUtils()
- #if opts.database is not None and opts.database != "":
- # dbu.db_enable = True
- # sql_conn = dbu.open_db(opts.database)
- # dbu.create_tables()
if opts.format == "g" or opts.format == "graph-easy":
formatter = GraphEasyFormatter(util)
formatter = GraphvizTBFormatter()
util.debug_out("formatter: " + str(formatter))
- col = Collector(opts, util, formatter)
- if opts.remote_sshkey is not None:
- col.set_remote_sshkey(opts.remote_sshkey)
- if opts.remote_password is not None:
- col.set_remote_password(opts.remote_password)
-
- col.run()
- linkpairs = col.get_linkpairs()
- #if dbu.db_enable:
- # dbu.store_to_db(opts.database, linkpairs)
+ if opts.import_file is not None:
+ importer = JsonImporter(util, opts.import_file, formatter)
+ importer.run()
+ linkpairs = importer.get_linkpairs()
+ else:
+ col = Collector(opts, util, formatter)
+ if opts.remote_sshkey is not None:
+ col.set_remote_sshkey(opts.remote_sshkey)
+ if opts.remote_password is not None:
+ col.set_remote_password(opts.remote_password)
+ col.run()
+ linkpairs = col.get_linkpairs()
if opts.export_stdout:
exporter = JsonExporter(util, linkpairs)
- print(exporter.export())
+ print(exporter.run())
sys.exit(0)
print_linkpair_records(linkpairs)