mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-28 11:18:11 +00:00
parent
d5895c3a47
commit
d86cefaaeb
@ -23,7 +23,7 @@ import uuid
|
|||||||
|
|
||||||
class Node:
|
class Node:
|
||||||
|
|
||||||
def __init__(self, project, compute, node_id=None, node_type=None, name=None, console=None, console_type="telnet", properties={}):
|
def __init__(self, project, compute, node_id=None, node_type=None, name=None, console=None, console_type=None, properties={}):
|
||||||
"""
|
"""
|
||||||
:param project: Project of the node
|
:param project: Project of the node
|
||||||
:param compute: Compute server where the server will run
|
:param compute: Compute server where the server will run
|
||||||
@ -155,6 +155,7 @@ class Node:
|
|||||||
if self._console:
|
if self._console:
|
||||||
# console is optional for builtin nodes
|
# console is optional for builtin nodes
|
||||||
data["console"] = self._console
|
data["console"] = self._console
|
||||||
|
if self._console_type:
|
||||||
data["console_type"] = self._console_type
|
data["console_type"] = self._console_type
|
||||||
|
|
||||||
# None properties are not be send. Because it can mean the emulator doesn't support it
|
# None properties are not be send. Because it can mean the emulator doesn't support it
|
||||||
|
@ -275,11 +275,7 @@ class ProjectHandler:
|
|||||||
path = request.match_info["path"]
|
path = request.match_info["path"]
|
||||||
path = os.path.normpath(path)
|
path = os.path.normpath(path)
|
||||||
|
|
||||||
<< << << < HEAD: gns3server / handlers / api / compute / project_handler.py
|
|
||||||
# Raise an error if user try to escape
|
|
||||||
== == == =
|
|
||||||
# Raise error if user try to escape
|
# Raise error if user try to escape
|
||||||
>>>>>> > 1.5: gns3server / handlers / api / project_handler.py
|
|
||||||
if path[0] == ".":
|
if path[0] == ".":
|
||||||
raise aiohttp.web.HTTPForbidden
|
raise aiohttp.web.HTTPForbidden
|
||||||
path = os.path.join(project.path, path)
|
path = os.path.join(project.path, path)
|
||||||
@ -432,17 +428,9 @@ class ProjectHandler:
|
|||||||
project_id = request.match_info["project_id"]
|
project_id = request.match_info["project_id"]
|
||||||
project = pm.create_project(project_id=project_id)
|
project = pm.create_project(project_id=project_id)
|
||||||
|
|
||||||
<<<<<<< HEAD:gns3server/handlers/api/compute/project_handler.py
|
|
||||||
# We write the content to a temporary location and after we extract it all.
|
# We write the content to a temporary location and after we extract it all.
|
||||||
# It could be more optimal to stream this but it is not implemented in Python.
|
# It could be more optimal to stream this but it is not implemented in Python.
|
||||||
# Spooled means the file is temporary kept in memory until max_size is reached
|
# Spooled means the file is temporary kept in memory until max_size is reached
|
||||||
=======
|
|
||||||
# We write the content to a temporary location
|
|
||||||
# and after extract all. It could be more optimal to stream
|
|
||||||
# this but it's not implemented in Python.
|
|
||||||
#
|
|
||||||
# Spooled mean the file is temporary keep in ram until max_size
|
|
||||||
>>>>>>> 1.5:gns3server/handlers/api/project_handler.py
|
|
||||||
try:
|
try:
|
||||||
with tempfile.SpooledTemporaryFile(max_size=10000) as temp:
|
with tempfile.SpooledTemporaryFile(max_size=10000) as temp:
|
||||||
while True:
|
while True:
|
||||||
|
@ -111,7 +111,7 @@ NODE_OBJECT_SCHEMA = {
|
|||||||
},
|
},
|
||||||
"console_type": {
|
"console_type": {
|
||||||
"description": "Console type",
|
"description": "Console type",
|
||||||
"enum": ["serial", "vnc", "telnet"]
|
"enum": ["serial", "vnc", "telnet", None]
|
||||||
},
|
},
|
||||||
"properties": {
|
"properties": {
|
||||||
"description": "Properties specific to an emulator",
|
"description": "Properties specific to an emulator",
|
||||||
|
@ -148,7 +148,7 @@ class Documentation(object):
|
|||||||
|
|
||||||
if "enum" in prop:
|
if "enum" in prop:
|
||||||
field_type = "enum"
|
field_type = "enum"
|
||||||
prop['description'] = "Possible values: {}".format(', '.join(prop['enum']))
|
prop['description'] = "Possible values: {}".format(', '.join(map(lambda a: a or "null", prop['enum'])))
|
||||||
else:
|
else:
|
||||||
field_type = prop.get("type", "")
|
field_type = prop.get("type", "")
|
||||||
|
|
||||||
|
@ -99,7 +99,6 @@ def test_add_node_local(async_run):
|
|||||||
})
|
})
|
||||||
compute.post.assert_any_call('/projects/{}/vpcs/nodes'.format(project.id),
|
compute.post.assert_any_call('/projects/{}/vpcs/nodes'.format(project.id),
|
||||||
data={'node_id': node.id,
|
data={'node_id': node.id,
|
||||||
'console_type': 'telnet',
|
|
||||||
'startup_config': 'test.cfg',
|
'startup_config': 'test.cfg',
|
||||||
'name': 'test'})
|
'name': 'test'})
|
||||||
assert compute in project._project_created_on_compute
|
assert compute in project._project_created_on_compute
|
||||||
@ -126,7 +125,6 @@ def test_add_node_non_local(async_run):
|
|||||||
})
|
})
|
||||||
compute.post.assert_any_call('/projects/{}/vpcs/nodes'.format(project.id),
|
compute.post.assert_any_call('/projects/{}/vpcs/nodes'.format(project.id),
|
||||||
data={'node_id': node.id,
|
data={'node_id': node.id,
|
||||||
'console_type': 'telnet',
|
|
||||||
'startup_config': 'test.cfg',
|
'startup_config': 'test.cfg',
|
||||||
'name': 'test'})
|
'name': 'test'})
|
||||||
assert compute in project._project_created_on_compute
|
assert compute in project._project_created_on_compute
|
||||||
|
Loading…
Reference in New Issue
Block a user