#
#
-__version__ = '1.1'
+__version__ = '1.2'
import sys
from optparse import OptionParser, OptionGroup
from linkpair.utils.common import CommonUtils
from linkpair.exporter.JSON import JsonExporter
from linkpair.importer.JSON import JsonImporter
+from linkpair.timer.collect_task import CollectTask
+import api_server
-def print_linkpair_records(lps):
+def print_linkpair_records(linkpairs):
util.debug_out("start print_linkpair_records()")
- formatter.set_linkpairs(lps)
- for lp in formatter.format_linkpairs():
- util.message_out(lp)
+ formatter.set_linkpairs(linkpairs)
+ for linkpair in formatter.format_linkpairs():
+ util.message_out(linkpair)
util.debug_out("end print_linkpair_records()")
+def collect_linkpairs(opts, util, formatter):
+ def collect_func():
+ col = Collector(opts, util, formatter)
+ if opts.remote_sshkey is not None:
+ col.set_remote_sshkey(opts.remote_sshkey)
+ col.connect_ssh()
+ if opts.remote_password is not None:
+ col.set_remote_password(opts.remote_password)
+ col.connect_ssh()
+ col.run()
+ return col.get_linkpairs()
+ return collect_func
+
if __name__ == "__main__":
# init program options
p = OptionParser(version="ver:%s" % __version__)
help="export linkpairs to stdout")
p.add_option('-i', '--import_file', dest='import_file',
help="import json file as linkpairs", metavar="FILE")
+ p.add_option('-a', '--api_server', dest='api_server', action="store_true", default=False,
+ help="enable Web API server")
g2 = OptionGroup(p, "Collector Agent flags",
"disable Collector Agents")
g2.add_option(
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)
- col.connect_ssh()
- if opts.remote_password is not None:
- col.set_remote_password(opts.remote_password)
- col.connect_ssh()
- col.run()
- linkpairs = col.get_linkpairs()
-
+ collect_func = collect_linkpairs(opts, util, formatter)
+ linkpairs = collect_func()
+
if opts.export_stdout:
exporter = JsonExporter(util, linkpairs)
- print(exporter.run())
+ util.message_out(exporter.run())
sys.exit(0)
-
- print_linkpair_records(linkpairs)
-
-# if dbu.enable_db:
-# dbu.close_db()
+ elif opts.api_server:
+ collect_task = CollectTask(collect_func, 30)
+ collect_task.start()
+ api_server.util = util
+ api_server.collect_func = collect_func
+ api_server.start_app()
+ else:
+ print_linkpair_records(linkpairs)