2 # vim: tabstop=4 shiftwidth=4 softtabstop=4
3 # -*- coding: utf-8 -*-
5 # ti2.py : List TAP device info for running VMs
8 # basecode "tapinfo.py" : List TAP device info for running VMs
13 from optparse import OptionParser, OptionGroup
14 from linkpair.collect.collector import Collector
15 from linkpair.formatter.grapheasy import GraphEasyFormatter
16 from linkpair.formatter.springy import SpringyFormatter
17 from linkpair.formatter.springy_raphael import SpringyRaphaelFormatter
18 from linkpair.formatter.graphviz_tb import GraphvizTBFormatter
19 from linkpair.utils.common import CommonUtils
20 from linkpair.exporter.json import JsonExporter
23 def print_linkpair_records(lps):
24 util.debug_out("start print_linkpair_records()")
25 formatter.set_linkpairs(lps)
26 for lp in formatter.format_linkpairs():
28 util.debug_out("end print_linkpair_records()")
30 if __name__ == "__main__":
31 # init program options
32 p = OptionParser(version="ver:%s" % __version__)
33 g1 = OptionGroup(p, "Remote connection",
34 "connect to a remote system via SSH")
35 g1.add_option('-r', '--remote', dest='remote_desc',
36 help="specify user's name and hostname, port number (ex. -r user@hostname:22)", metavar="REMOTE_DESC")
37 g1.add_option('-p', '--password', dest='remote_password',
38 help="specify user's SSH password", metavar="PASSWORD")
39 g1.add_option('-k', '--sshkey', dest='remote_sshkey',
40 help="specify user's SSH private-key file", metavar="FILE")
41 p.add_option_group(g1)
42 p.add_option('-f', '--format', dest='format',
43 choices=['g', 'graph-easy', 's', 'springy',
44 'r', 'springy-raphael', 't', 'graphviz-tb'],
45 default="graphviz-tb",
46 help="specify output format [FORMAT: g/graph-easy, s/springy, r/springy-raphael, t/graphviz-tb]",
48 p.add_option('-d', '--debug', dest='debug', action="store_true", default=False,
49 help="enable debug output")
50 p.add_option('-e', '--export_file', dest='export_file',
51 help="export linkpairs to json file", metavar="FILE")
52 p.add_option('-x', '--export_stdout', dest='export_stdout', action="store_true", default=False,
53 help="export linkpairs to stdout")
54 p.add_option('-i', '--import_file', dest='import_file',
55 help="import json file as linkpairs", metavar="FILE")
56 g2 = OptionGroup(p, "Collector Agent flags",
57 "disable Collector Agents")
59 '--disable_ovs_agent', dest='disable_ovs_agent', action="store_true", default=False,
60 help="disable Open vSwitch collector agent")
62 '--disable_linux_agent', dest='disable_linux_agent', action="store_true", default=False,
63 help="disable linux OS collector agent")
65 '--disable_linuxnet_agent', dest='disable_linuxnet_agent', action="store_true", default=False,
66 help="disable linux Network collector agent")
68 '--disable_linuxbridge_agent', dest='disable_linuxbridge_agent', action="store_true", default=False,
69 help="disable linux bridge collector agent")
71 '--disable_linuxvlan_agent', dest='disable_linuxvlan_agent', action="store_true", default=False,
72 help="disable linux vlan collector agent")
74 '--disable_libvirt_agent', dest='disable_libvirt_agent', action="store_true", default=False,
75 help="disable libvirt collector agent")
77 '--disable_namespace_agent', dest='disable_namespace_agent', action="store_true", default=False,
78 help="disable network namespace collector agent")
80 '--disable_sspvxlan_agent', dest='disable_sspvxlan_agent', action="store_true", default=False,
81 help="disable SSP VXLAN collector agent")
83 '--disable_veth_agent', dest='disable_veth_agent', action="store_true", default=False,
84 help="disable veth collector agent")
85 p.add_option_group(g2)
87 '-v', '--verbose', dest='verbose', action="store_true", default=False,
88 help="verbose output.")
89 (opts, args) = p.parse_args()
92 util.debug_out("init program options")
94 #if opts.database is not None and opts.database != "":
95 # dbu.db_enable = True
96 # sql_conn = dbu.open_db(opts.database)
99 if opts.format == "g" or opts.format == "graph-easy":
100 formatter = GraphEasyFormatter(util)
101 elif opts.format == "s" or opts.format == "springy":
102 formatter = SpringyFormatter(util)
103 elif opts.format == "r" or opts.format == "springy-raphael":
104 formatter = SpringyRaphaelFormatter(util)
105 elif opts.format == "t" or opts.format == "graphviz-tb":
106 formatter = GraphvizTBFormatter(util)
108 formatter = GraphvizTBFormatter()
109 util.debug_out("formatter: " + str(formatter))
111 col = Collector(opts, util, formatter)
112 if opts.remote_sshkey is not None:
113 col.set_remote_sshkey(opts.remote_sshkey)
114 if opts.remote_password is not None:
115 col.set_remote_password(opts.remote_password)
118 linkpairs = col.get_linkpairs()
120 # dbu.store_to_db(opts.database, linkpairs)
122 if opts.export_stdout:
123 exporter = JsonExporter(util, linkpairs)
124 print(exporter.export())
127 print_linkpair_records(linkpairs)