From 9a00072d048485cc5f4dde0c7c22231ff5bf7cd7 Mon Sep 17 00:00:00 2001 From: "t.moriyama" Date: Sun, 9 Jun 2013 23:51:58 +0900 Subject: [PATCH] support springy 1.2 or later format --- linkpair/collect/agent/ovs_agent.py | 3 ++- linkpair/formatter/baseformatter.py | 27 +++++++++++++++++++++------ linkpair/formatter/grapheasy.py | 1 + linkpair/formatter/graphviz_tb.py | 27 +++++++++++++++++++++------ linkpair/formatter/springy.py | 25 ++++++++++++++++++++----- linkpair/formatter/springy_raphael.py | 13 +++++++------ 6 files changed, 72 insertions(+), 24 deletions(-) diff --git a/linkpair/collect/agent/ovs_agent.py b/linkpair/collect/agent/ovs_agent.py index f59e359..7f70f15 100755 --- a/linkpair/collect/agent/ovs_agent.py +++ b/linkpair/collect/agent/ovs_agent.py @@ -199,7 +199,8 @@ class OVSAgent(BaseAgent): Device(br_src, Device.BR_TYPE, br_src_meta), Device("OS Routing", Device.OS_ROUTE_TYPE), Port(port_name, Port.DEFAULT_TYPE, port_meta), - Port("")) + Port(""), + self._formatter.OS_ROUTING_FORMAT) else: ## Other OVSPort diff --git a/linkpair/formatter/baseformatter.py b/linkpair/formatter/baseformatter.py index de24430..8198211 100755 --- a/linkpair/formatter/baseformatter.py +++ b/linkpair/formatter/baseformatter.py @@ -22,9 +22,10 @@ class BaseFormatter(object): NOT_CONNECTED_STYLE = '' DEFAULT_FORMAT = '[ %s ] %s -- { label: "%s %s"; } [ %s ] %s' + OS_ROUTING_FORMAT = '[ %s ] %s -- { label: "%s %s"; } [ %s ] %s' NAMESPACE_FORMAT = '[ %s ] %s --> { label: %s %s; } [ %s ] %' - PATCH_FORMAT = '[ %s ] %s <==> { label: %s : %s; } [ %s ] %s' - VETH_FORMAT = '[ %s ] %s <--> { label: %s \| %s; } [ %s ] %s' + PATCH_FORMAT = '[ %s ] %s <==> { label: %s : %s; } [ %s ] %s' + VETH_FORMAT = '[ %s ] %s <--> { label: %s \| %s; } [ %s ] %s' HEADER_FORMAT = "" FOOTER_FORMAT = "" @@ -39,12 +40,26 @@ class BaseFormatter(object): def format_linkpair(cls, linkpair): formatted_lp = "" + device1_label = linkpair.device1 + device2_label = linkpair.device2 + port1_label = linkpair.port1 + port2_label = linkpair.port2 + + if linkpair.port1.metadata.has_key("remote_ip"): + port1_label = port1_label + " remote=" + linkpair.port1.metadata["remote_ip"] + if linkpair.port1.metadata.has_key("tag"): + port1_label = port1_label + " vlan=" + linkpair.port1.metadata["tag"] + if linkpair.port2.metadata.has_key("remote_ip"): + port2_label = port2_label + " remote=" + linkpair.port2.metadata["remote_ip"] + if linkpair.port2.metadata.has_key("tag"): + port2_label = port2_label + " vlan=" + linkpair.port2.metadata["tag"] + formatted_lp = linkpair.format % ( - linkpair.device1, + device1_label, cls.get_device_style(linkpair.device1.type), - linkpair.port1, - linkpair.port2, - linkpair.device2, + port1_label, + port2_label, + device2_label, cls.get_device_style(linkpair.device2.type)) return formatted_lp diff --git a/linkpair/formatter/grapheasy.py b/linkpair/formatter/grapheasy.py index 1386654..bbf3847 100755 --- a/linkpair/formatter/grapheasy.py +++ b/linkpair/formatter/grapheasy.py @@ -28,6 +28,7 @@ class GraphEasyFormatter(BaseFormatter): # VETH_FORMAT = '[ %s ] %s <--> { label: "%s \| %s"; } [ %s ] %s' DEFAULT_FORMAT = '[ %s ] %s -- { label: "%s %s"; labelcolor: #663333; } [ %s ] %s' + OS_ROUTING_FORMAT = '[ %s ] %s -- { label: "%s %s"; labelcolor: #663333; } [ %s ] %s' NAMESPACE_FORMAT = '[ %s ] %s --> { label: "%s %s"; labelcolor: #663333; } [ %s ] %s' PATCH_FORMAT = '[ %s ] %s <==> { label: "%s : %s"; labelcolor: #333366; } [ %s ] %s' VETH_FORMAT = '[ %s ] %s <--> { label: "%s \| %s"; labelcolor: #336633; } [ %s ] %s' diff --git a/linkpair/formatter/graphviz_tb.py b/linkpair/formatter/graphviz_tb.py index 88a7963..0abd574 100755 --- a/linkpair/formatter/graphviz_tb.py +++ b/linkpair/formatter/graphviz_tb.py @@ -24,9 +24,10 @@ class GraphvizTBFormatter(BaseFormatter): NOT_CONNECTED_STYLE = 'fillcolor="#ffdddd", style="filled,dotted"' DEFAULT_FORMAT = '"%s" -> "%s" [ color="#000000", fontcolor="#663333", label = "%s %s" ]' + OS_ROUTING_FORMAT = '"%s" -> "%s" [ color="#000000", fontcolor="#663333", label = "%s %s", style="dotted" ]' NAMESPACE_FORMAT = '"%s" -> "%s" [ color="#000000", fontcolor="#663333", label = "%s %s" ]' - PATCH_FORMAT = '"%s" -> "%s" [ dir=both, arrowhead=box, arrowtail=box, color="#000000:#000000", fontcolor="#333366", label = "%s : %s" ]' - VETH_FORMAT = '"%s" -> "%s" [ color="#000000", fontcolor="#336633", label="%s \| %s" ]' + PATCH_FORMAT = '"%s" -> "%s" [ dir=both, arrowhead=box, arrowtail=box, color="#000000:#000000", fontcolor="#333366", label = "%s : %s" ]' + VETH_FORMAT = '"%s" -> "%s" [ dir=both, arrowhead=box, arrowtail=box, color="#000000", fontcolor="#336633", label="%s \| %s" ]' # ADDNODE_STYLE = '"%s" [ fillcolor="#ffffff", style="filled,dotted" ]' ADDNODE_STYLE = '"%s" [ %s ]' @@ -122,9 +123,23 @@ node [ @classmethod def format_linkpair(cls, linkpair): formatted_lp = "" + device1_label = linkpair.device1 + device2_label = linkpair.device2 + port1_label = linkpair.port1 + port2_label = linkpair.port2 + + if linkpair.port1.metadata.has_key("remote_ip"): + port1_label = port1_label + " remote=" + linkpair.port1.metadata["remote_ip"].replace("\"", "\\\"") + if linkpair.port1.metadata.has_key("tag"): + port1_label = port1_label + " vlan=" + linkpair.port1.metadata["tag"] + if linkpair.port2.metadata.has_key("remote_ip"): + port2_label = port2_label + " remote=" + linkpair.port2.metadata["remote_ip"] + if linkpair.port2.metadata.has_key("tag"): + port2_label = port2_label + " vlan=" + linkpair.port2.metadata["tag"] + formatted_lp = linkpair.format % ( - linkpair.device1, - linkpair.device2, - linkpair.port1, - linkpair.port2) + device1_label, + device2_label, + port1_label, + port2_label) return formatted_lp diff --git a/linkpair/formatter/springy.py b/linkpair/formatter/springy.py index a033a19..d8d5350 100755 --- a/linkpair/formatter/springy.py +++ b/linkpair/formatter/springy.py @@ -23,6 +23,7 @@ class SpringyFormatter(BaseFormatter): NOT_CONNECTED_STYLE = "color: '#FFDDDD', directional: true" DEFAULT_FORMAT = "['%s', '%s', {%s, label: '%s %s'}]" + OS_ROUTING_FORMAT = "['%s', '%s', {%s, label: '%s %s'}]" NAMESPACE_FORMAT = "['%s', '%s', {%s, label: '%s %s'}]" PATCH_FORMAT = "['%s', '%s', {%s, label: '%s : %s'}]" VETH_FORMAT = "['%s', '%s', {%s, label: '%s \| %s'}]" @@ -42,7 +43,7 @@ class SpringyFormatter(BaseFormatter):