Expose debug informations about links

This commit is contained in:
Julien Duponchelle 2016-11-10 14:18:24 +01:00
parent bddf9ec2ac
commit 5f988bae2f
No known key found for this signature in database
GPG Key ID: CE8B29639E07F5E8
2 changed files with 21 additions and 6 deletions

View File

@ -28,6 +28,14 @@ class UDPLink(Link):
super().__init__(project, link_id=link_id) super().__init__(project, link_id=link_id)
self._capture_node = None self._capture_node = None
self._created = False self._created = False
self._link_data = []
@property
def debug_link_data(self):
"""
Use for the HTML debug page
"""
return self._link_data
@asyncio.coroutine @asyncio.coroutine
def create(self): def create(self):
@ -55,22 +63,22 @@ class UDPLink(Link):
self._node2_port = response.json["udp_port"] self._node2_port = response.json["udp_port"]
# Create the tunnel on both side # Create the tunnel on both side
data = { self._link_data.append({
"lport": self._node1_port, "lport": self._node1_port,
"rhost": node2_host, "rhost": node2_host,
"rport": self._node2_port, "rport": self._node2_port,
"type": "nio_udp" "type": "nio_udp"
} })
yield from node1.post("/adapters/{adapter_number}/ports/{port_number}/nio".format(adapter_number=adapter_number1, port_number=port_number1), data=data, timeout=120) yield from node1.post("/adapters/{adapter_number}/ports/{port_number}/nio".format(adapter_number=adapter_number1, port_number=port_number1), data=self._link_data[0], timeout=120)
data = { self._link_data.append({
"lport": self._node2_port, "lport": self._node2_port,
"rhost": node1_host, "rhost": node1_host,
"rport": self._node1_port, "rport": self._node1_port,
"type": "nio_udp" "type": "nio_udp"
} })
try: try:
yield from node2.post("/adapters/{adapter_number}/ports/{port_number}/nio".format(adapter_number=adapter_number2, port_number=port_number2), data=data, timeout=120) yield from node2.post("/adapters/{adapter_number}/ports/{port_number}/nio".format(adapter_number=adapter_number2, port_number=port_number2), data=self._link_data[1], timeout=120)
except Exception as e: except Exception as e:
# We clean the first NIO # We clean the first NIO
yield from node1.delete("/adapters/{adapter_number}/ports/{port_number}/nio".format(adapter_number=adapter_number1, port_number=port_number1), timeout=120) yield from node1.delete("/adapters/{adapter_number}/ports/{port_number}/nio".format(adapter_number=adapter_number1, port_number=port_number1), timeout=120)

View File

@ -46,12 +46,19 @@ in futur GNS3 versions.
<table border="1"> <table border="1">
<tr> <tr>
<th>ID</th> <th>ID</th>
<th>Data</th>
<th>Capture</th> <th>Capture</th>
<th>PCAP</th> <th>PCAP</th>
</tr> </tr>
{% for link in project.links.values() %} {% for link in project.links.values() %}
<tr> <tr>
<td>{{link.id}}</td> <td>{{link.id}}</td>
<td>
{% if link.debug_link_data|length == 2 %}
{{link.debug_link_data[0]}}<br>
{{link.debug_link_data[1]}}
{% endif %}
</td>
<td>{{link.capturing}}</td> <td>{{link.capturing}}</td>
<td><a href="/v2/projects/{{project.id}}/links/{{link.id}}/pcap">Download</a></td> <td><a href="/v2/projects/{{project.id}}/links/{{link.id}}/pcap">Download</a></td>
</tr> </tr>