OSDN Git Service

add disable agent options
authort.moriyama <t.moriyama@users.sourceforge.jp>
Tue, 11 Jun 2013 07:10:31 +0000 (16:10 +0900)
committert.moriyama <t.moriyama@users.sourceforge.jp>
Tue, 11 Jun 2013 07:10:31 +0000 (16:10 +0900)
linkpair/collect/collector.py
ti2.py

index ec8b6ff..b0aeceb 100755 (executable)
@@ -22,6 +22,7 @@ from linkpair.collect.agent.veth_agent import VethAgent
 from linkpair.collect.agent.ovs_agent import OVSAgent
 from linkpair.collect.agent.linuxbridge_agent import LinuxBridgeAgent
 from linkpair.collect.agent.linuxvlan_agent import LinuxVlanAgent
+from linkpair.collect.agent.sspvxlan_agent import SSPVxlanAgent
 from linkpair.collect.agent.libvirt_agent import LibvirtAgent
 
 
@@ -33,7 +34,7 @@ class Collector(object):
 
     PEER_FOUND = 1
 
-    def __init__(self, remote_desc, dbu, formatter=GraphEasyFormatter()):
+    def __init__(self, opts, dbu, formatter=GraphEasyFormatter()):
         self._devices = {}
         self._ports = {}
         self._os_info = {}
@@ -44,7 +45,8 @@ class Collector(object):
         self._u = CommonUtils()
         self._db_enable = False
         self._sql_conn = None
-        self._remote_desc = remote_desc
+        self._opts = opts
+        self._remote_desc = opts.remote_desc
         self._ssh_username = ""
         self._ssh_hostname = ""
         self._ssh_hostport = 22
@@ -55,7 +57,7 @@ class Collector(object):
 
         ''' set parameters '''
         [self._ssh_username, self._ssh_hostname,
-            self._ssh_hostport] = self._u.parse_remote_desc(remote_desc)
+            self._ssh_hostport] = self._u.parse_remote_desc(self._remote_desc)
         self._dbu = dbu
         self._formatter = formatter
         self._runner = CommandRunner(self._remote_desc)
@@ -66,27 +68,38 @@ class Collector(object):
             self._port_to_br, self._iface_to_nss, self._veth_peer)
         cu = CollectUtils(
             cd, self._dbu, self._formatter)
-        os_agent = LinuxAgent(
-            self._runner, cu, self._remote_desc, cd, self._formatter)
-        os_agent.run()
-        namespace_agent = NamespaceAgent(
-            self._runner, cu, self._remote_desc, cd, self._formatter)
-        namespace_agent.run()
-        veth_agent = VethAgent(
-            self._runner, cu, self._remote_desc, cd, self._formatter)
-        veth_agent.run()
-        vlan_agent = LinuxVlanAgent(
-            self._runner, cu, self._remote_desc, cd, self._formatter)
-        vlan_agent.run()
-        ovs_agent = OVSAgent(
-            self._runner, cu, self._remote_desc, cd, self._formatter)
-        ovs_agent.run()
-        bridge_agent = LinuxBridgeAgent(
-            self._runner, cu, self._remote_desc, cd, self._formatter)
-        bridge_agent.run()
-        libvirt_agent = LibvirtAgent(
-            self._runner, cu, self._remote_desc, cd, self._formatter)
-        libvirt_agent.run()
+        if self._opts.disable_linux_agent == False:
+            os_agent = LinuxAgent(
+                self._runner, cu, self._remote_desc, cd, self._formatter)
+            os_agent.run()
+        if self._opts.disable_namespace_agent == False:
+            namespace_agent = NamespaceAgent(
+                self._runner, cu, self._remote_desc, cd, self._formatter)
+            namespace_agent.run()
+        if self._opts.disable_veth_agent == False:
+            veth_agent = VethAgent(
+                self._runner, cu, self._remote_desc, cd, self._formatter)
+            veth_agent.run()
+        if self._opts.disable_linuxvlan_agent == False:
+            vlan_agent = LinuxVlanAgent(
+                self._runner, cu, self._remote_desc, cd, self._formatter)
+            vlan_agent.run()
+        if self._opts.disable_sspvxlan_agent == False:
+            vxlan_agent = SSPVxlanAgent(
+                self._runner, cu, self._remote_desc, cd, self._formatter)
+            vxlan_agent.run()
+        if self._opts.disable_ovs_agent == False:
+            ovs_agent = OVSAgent(
+                self._runner, cu, self._remote_desc, cd, self._formatter)
+            ovs_agent.run()
+        if self._opts.disable_linuxbridge_agent == False:
+            bridge_agent = LinuxBridgeAgent(
+                self._runner, cu, self._remote_desc, cd, self._formatter)
+            bridge_agent.run()
+        if self._opts.disable_libvirt_agent == False:
+            libvirt_agent = LibvirtAgent(
+                self._runner, cu, self._remote_desc, cd, self._formatter)
+            libvirt_agent.run()
 
     def get_linkpairs(self):
         return self._linkpairs
diff --git a/ti2.py b/ti2.py
index ec3f07f..dfc9d8b 100755 (executable)
--- a/ti2.py
+++ b/ti2.py
@@ -49,6 +49,33 @@ if __name__ == "__main__":
                  help="store record to database", metavar="FILE")
     p.add_option('-t', '--datatype', dest='datatype', default="json",
                  help="specify database type(default: json)", metavar="TYPE")
+    g2 = OptionGroup(p, "Collector Agent flags",
+                     "disable Collector Agents")
+    g2.add_option(
+        '--disable_ovs_agent', dest='disable_ovs_agent', action="store_true", default=False,
+        help="disable Open vSwitch collector agent")
+    g2.add_option(
+        '--disable_linux_agent', dest='disable_linux_agent', action="store_true", default=False,
+        help="disable linux OS collector agent")
+    g2.add_option(
+        '--disable_linuxbridge_agent', dest='disable_linuxbridge_agent', action="store_true", default=False,
+        help="disable linux bridge collector agent")
+    g2.add_option(
+        '--disable_linuxvlan_agent', dest='disable_linuxvlan_agent', action="store_true", default=False,
+        help="disable linux vlan collector agent")
+    g2.add_option(
+        '--disable_libvirt_agent', dest='disable_libvirt_agent', action="store_true", default=False,
+        help="disable libvirt collector agent")
+    g2.add_option(
+        '--disable_namespace_agent', dest='disable_namespace_agent', action="store_true", default=False,
+        help="disable network namespace collector agent")
+    g2.add_option(
+        '--disable_sspvxlan_agent', dest='disable_sspvxlan_agent', action="store_true", default=False,
+        help="disable SSP VXLAN collector agent")
+    g2.add_option(
+        '--disable_veth_agent', dest='disable_veth_agent', action="store_true", default=False,
+        help="disable veth collector agent")
+    p.add_option_group(g2)
     p.add_option(
         '-v', '--verbose', dest='verbose', action="store_true", default=False,
         help="verbose output.")
@@ -70,7 +97,7 @@ if __name__ == "__main__":
     else:
         format = GraphEasyFormatter()
 
-    col = Collector(opts.remote_desc, dbu, format)
+    col = Collector(opts, dbu, format)
     if opts.remote_sshkey is not None:
         col.set_remote_sshkey(opts.remote_sshkey)
     if opts.remote_password is not None: