2 # -*- coding: utf-8 -*-
4 # ti2.py : List TAP device info for running VMs
7 # basecode "tapinfo.py" : List TAP device info for running VMs
14 from optparse import OptionParser, OptionGroup
15 from linkpair.collect.collector import Collector
16 from linkpair.linkpair import LinkPair
17 from linkpair.formatter.grapheasy import GraphEasyFormatter
18 from linkpair.formatter.springy import SpringyFormatter
19 from linkpair.formatter.springy_raphael import SpringyRaphaelFormatter
20 from linkpair.formatter.graphviz_tb import GraphvizTBFormatter
21 from linkpair.dbutils import DBUtils
23 def print_linkpair_records(lps):
24 format.set_linkpairs(lps)
25 for lp in format.format_linkpairs():
28 if __name__ == "__main__":
29 # init program options
30 p = OptionParser(version="ver:%s" % __version__)
31 g1 = OptionGroup(p, "Remote connection",
32 "connect to a remote system via SSH")
33 g1.add_option('-r', '--remote', dest='remote_desc',
34 help="specify user's name and hostname, port number (ex. -r user@hostname:22)", metavar="REMOTE_DESC")
35 g1.add_option('-p', '--password', dest='remote_password',
36 help="specify user's SSH password", metavar="PASSWORD")
37 g1.add_option('-k', '--sshkey', dest='remote_sshkey',
38 help="specify user's SSH private-key file", metavar="FILE")
39 p.add_option_group(g1)
40 p.add_option('-f', '--format', dest='format',
41 choices=['g', 'graph-easy', 's', 'springy', 'r', 'springy-raphael', 't', 'graphviz-tb'],
43 help="specify output format [FORMAT: g/graph-easy, s/springy, r/springy-raphael, t/graphviz-tb]",
45 p.add_option('-d', '--database', dest='database', default="",
46 help="store record to database", metavar="FILE")
47 p.add_option('-t', '--datatype', dest='datatype', default="json",
48 help="specify database type(default: json)", metavar="TYPE")
50 '-v', '--verbose', dest='verbose', action="store_true", default=False,
51 help="verbose output.")
52 (opts, args) = p.parse_args()
54 if opts.database is not None and opts.database != "":
56 #sql_conn = dbu.open_db(opts.database)
59 if opts.format == "g" or opts.format == "graph-easy":
60 format = GraphEasyFormatter()
61 elif opts.format == "s" or opts.format == "springy":
62 format = SpringyFormatter()
63 elif opts.format == "r" or opts.format == "springy-raphael":
64 format = SpringyRaphaelFormatter()
65 elif opts.format == "t" or opts.format == "graphviz-tb":
66 format = GraphvizTBFormatter()
68 format = GraphEasyFormatter()
70 col = Collector(opts.remote_desc, dbu, format)
71 if opts.remote_sshkey is not None:
72 col.set_remote_sshkey(opts.remote_sshkey)
73 if opts.remote_password is not None:
74 col.set_remote_password(opts.remote_password)
77 linkpairs = col.get_linkpairs()
79 dbu.store_to_db(opts.database, linkpairs)
81 print_linkpair_records(linkpairs)