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
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 = ""
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
# 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'
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 ]'
@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
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'}]"
<script src="springy.js"></script>
<script src="springyui.js"></script>
<script>
-var graph = new Graph();
+var graph = new Springy.Graph();
'''
FOOTER_FORMAT = '''
@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,
+ device1_label,
+ device2_label,
cls.get_device_style(linkpair.device1.type),
- linkpair.port1,
- linkpair.port2)
+ port1_label,
+ port2_label)
return formatted_lp
NAMESPACE_STYLE = "color: '#FFDDDD', directional: true"
DEFAULT_FORMAT = "graph.newEdge(%s, %s, {color: '#00A0B0'});"
+ OS_ROUTING_FORMAT = "graph.newEdge(%s, %s, {color: '#00A0B0'});"
NAMESPACE_FORMAT = "graph.newEdge(%s, %s, {color: '#00A0B0'});"
PATCH_FORMAT = "graph.newEdge(%s, %s, {color: '#00A0B0'});"
VETH_FORMAT = "graph.newEdge(%s, %s, {color: '#00A0B0'});"
};
</script>
<script>
-var graph = new Graph();
+var graph = new Springy.Graph();
'''
FOOTER_FORMAT = '''
}
function doit() {
- var layout = new Layout.ForceDirected(graph, 1024, 800.0, 0.5);
+ var layout = new Springy.Layout.ForceDirected(graph, 1024, 800.0, 0.5);
var r = Raphael("holder", 1024, 800);
// calculate bounding box of graph layout.. with ease-in
var currentBB = layout.getBoundingBox();
- var targetBB = {bottomleft: new Vector(-2, -2), topright: new Vector(2, 2)};
+ var targetBB = {bottomleft: new Springy.Vector(-2, -2), topright: new Springy.Vector(2, 2)};
// auto adjusting bounding box
- Layout.requestAnimationFrame(function adjust() {
+ Springy.requestAnimationFrame(function adjust() {
targetBB = layout.getBoundingBox();
// current gets 20% closer to target every iteration
currentBB = {
var size = currentBB.topright.subtract(currentBB.bottomleft);
var sx = p.subtract(currentBB.bottomleft).divide(size.x).x * r.width;
var sy = p.subtract(currentBB.bottomleft).divide(size.y).y * r.height;
- return new Vector(sx, sy);
+ return new Springy.Vector(sx, sy);
};
- var renderer = new Renderer(layout,
+ var renderer = new Springy.Renderer(layout,
function clear() {
// code to clear screen
},