mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-24 17:28:08 +00:00
Add API endpoint to return all links attached to a node.
This commit is contained in:
parent
fd5df0052a
commit
62f87de23a
@ -90,7 +90,7 @@ class ProjectManager:
|
|||||||
return
|
return
|
||||||
# send a warning if used disk space is >= 90%
|
# send a warning if used disk space is >= 90%
|
||||||
if used_disk_space >= 90:
|
if used_disk_space >= 90:
|
||||||
message = 'Only {}% or less of free disk space detected in "{}" on "{}"'.format(100 - used_disk_space,
|
message = 'Only {:.2f}% or less of free disk space detected in "{}" on "{}"'.format(100 - used_disk_space,
|
||||||
project.path,
|
project.path,
|
||||||
platform.node())
|
platform.node())
|
||||||
log.warning(message)
|
log.warning(message)
|
||||||
|
@ -321,7 +321,7 @@ class Node:
|
|||||||
self._links.remove(link)
|
self._links.remove(link)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def link(self):
|
def links(self):
|
||||||
return self._links
|
return self._links
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
|
@ -307,6 +307,28 @@ class NodeHandler:
|
|||||||
yield from project.delete_node(request.match_info["node_id"])
|
yield from project.delete_node(request.match_info["node_id"])
|
||||||
response.set_status(204)
|
response.set_status(204)
|
||||||
|
|
||||||
|
@Route.get(
|
||||||
|
r"/projects/{project_id}/nodes/{node_id}/links",
|
||||||
|
parameters={
|
||||||
|
"project_id": "Project UUID",
|
||||||
|
"node_id": "Node UUID"
|
||||||
|
},
|
||||||
|
status_codes={
|
||||||
|
200: "Links returned",
|
||||||
|
400: "Invalid request",
|
||||||
|
404: "Instance doesn't exist"
|
||||||
|
},
|
||||||
|
description="Return all the links connected to this node")
|
||||||
|
def links(request, response):
|
||||||
|
|
||||||
|
project = yield from Controller.instance().get_loaded_project(request.match_info["project_id"])
|
||||||
|
node = project.get_node(request.match_info["node_id"])
|
||||||
|
links = []
|
||||||
|
for link in node.links:
|
||||||
|
links.append(link.__json__())
|
||||||
|
response.json(links)
|
||||||
|
response.set_status(200)
|
||||||
|
|
||||||
@Route.get(
|
@Route.get(
|
||||||
r"/projects/{project_id}/nodes/{node_id}/dynamips/auto_idlepc",
|
r"/projects/{project_id}/nodes/{node_id}/dynamips/auto_idlepc",
|
||||||
parameters={
|
parameters={
|
||||||
|
@ -98,7 +98,7 @@ def test_add_node(async_run, project, compute):
|
|||||||
|
|
||||||
assert link.create.called
|
assert link.create.called
|
||||||
link._project.controller.notification.emit.assert_called_with("link.created", link.__json__())
|
link._project.controller.notification.emit.assert_called_with("link.created", link.__json__())
|
||||||
assert link in node2.link
|
assert link in node2.links
|
||||||
|
|
||||||
|
|
||||||
def test_add_node_already_connected(async_run, project, compute):
|
def test_add_node_already_connected(async_run, project, compute):
|
||||||
@ -348,10 +348,10 @@ def test_delete(async_run, project, compute):
|
|||||||
node2._ports = [EthernetPort("E0", 0, 0, 4)]
|
node2._ports = [EthernetPort("E0", 0, 0, 4)]
|
||||||
async_run(link.add_node(node2, 0, 4))
|
async_run(link.add_node(node2, 0, 4))
|
||||||
|
|
||||||
assert link in node2.link
|
assert link in node2.links
|
||||||
|
|
||||||
async_run(link.delete())
|
async_run(link.delete())
|
||||||
assert link not in node2.link
|
assert link not in node2.links
|
||||||
|
|
||||||
|
|
||||||
def test_update_filters(async_run, project, compute):
|
def test_update_filters(async_run, project, compute):
|
||||||
|
Loading…
Reference in New Issue
Block a user