mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-24 17:28:08 +00:00
Support for auto open project
This commit is contained in:
parent
e710eff22e
commit
0613efa297
@ -299,7 +299,7 @@ class Controller:
|
|||||||
self.remove_project(self._projects[topo_data["project_id"]])
|
self.remove_project(self._projects[topo_data["project_id"]])
|
||||||
|
|
||||||
project = yield from self.add_project(path=os.path.dirname(path), status="closed", filename=os.path.basename(path), **topo_data)
|
project = yield from self.add_project(path=os.path.dirname(path), status="closed", filename=os.path.basename(path), **topo_data)
|
||||||
if load:
|
if load or project.auto_open:
|
||||||
yield from project.open()
|
yield from project.open()
|
||||||
return project
|
return project
|
||||||
|
|
||||||
|
@ -67,6 +67,8 @@ class Project:
|
|||||||
assert name is not None
|
assert name is not None
|
||||||
self._name = name
|
self._name = name
|
||||||
self._auto_start = False
|
self._auto_start = False
|
||||||
|
self._auto_close = False
|
||||||
|
self._auto_open = False
|
||||||
self._status = status
|
self._status = status
|
||||||
|
|
||||||
# Disallow overwrite of existing project
|
# Disallow overwrite of existing project
|
||||||
@ -139,8 +141,35 @@ class Project:
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def auto_start(self):
|
def auto_start(self):
|
||||||
|
"""
|
||||||
|
Should project auto start when opened
|
||||||
|
"""
|
||||||
return self._auto_start
|
return self._auto_start
|
||||||
|
|
||||||
|
@auto_start.setter
|
||||||
|
def auto_start(self, val):
|
||||||
|
self._auto_start = val
|
||||||
|
|
||||||
|
@property
|
||||||
|
def auto_close(self):
|
||||||
|
"""
|
||||||
|
Should project automaticaly closed when client
|
||||||
|
stop listening for notification
|
||||||
|
"""
|
||||||
|
return self._auto_close
|
||||||
|
|
||||||
|
@auto_close.setter
|
||||||
|
def auto_close(self, val):
|
||||||
|
self._auto_close = val
|
||||||
|
|
||||||
|
@property
|
||||||
|
def auto_open(self):
|
||||||
|
return self._auto_open
|
||||||
|
|
||||||
|
@auto_open.setter
|
||||||
|
def auto_open(self, val):
|
||||||
|
self._auto_open = val
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def controller(self):
|
def controller(self):
|
||||||
return self._controller
|
return self._controller
|
||||||
@ -604,7 +633,10 @@ class Project:
|
|||||||
"project_id": self._id,
|
"project_id": self._id,
|
||||||
"path": self._path,
|
"path": self._path,
|
||||||
"filename": self._filename,
|
"filename": self._filename,
|
||||||
"status": self._status
|
"status": self._status,
|
||||||
|
"auto_start": self._auto_start,
|
||||||
|
"auto_close": self._auto_close,
|
||||||
|
"auto_open": self._auto_open
|
||||||
}
|
}
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
|
@ -31,6 +31,10 @@ PROJECT_CREATE_SCHEMA = {
|
|||||||
"type": ["string", "null"],
|
"type": ["string", "null"],
|
||||||
"minLength": 1
|
"minLength": 1
|
||||||
},
|
},
|
||||||
|
"auto_close": {
|
||||||
|
"description": "Project auto close",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
"project_id": {
|
"project_id": {
|
||||||
"description": "Project UUID",
|
"description": "Project UUID",
|
||||||
"type": ["string", "null"],
|
"type": ["string", "null"],
|
||||||
@ -56,6 +60,18 @@ PROJECT_UPDATE_SCHEMA = {
|
|||||||
"description": "Path of the project on the server (work only with --local)",
|
"description": "Path of the project on the server (work only with --local)",
|
||||||
"type": ["string", "null"]
|
"type": ["string", "null"]
|
||||||
},
|
},
|
||||||
|
"auto_close": {
|
||||||
|
"description": "Project auto close when client cut off the notifications feed",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"auto_open": {
|
||||||
|
"description": "Project open when GNS3 start",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"auto_start": {
|
||||||
|
"description": "Project start when opened",
|
||||||
|
"type": "boolean"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"additionalProperties": False,
|
"additionalProperties": False,
|
||||||
}
|
}
|
||||||
@ -90,6 +106,18 @@ PROJECT_OBJECT_SCHEMA = {
|
|||||||
"status": {
|
"status": {
|
||||||
"description": "Project status Read only",
|
"description": "Project status Read only",
|
||||||
"enum": ["opened", "closed"]
|
"enum": ["opened", "closed"]
|
||||||
|
},
|
||||||
|
"auto_close": {
|
||||||
|
"description": "Project auto close when client cut off the notifications feed",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"auto_open": {
|
||||||
|
"description": "Project open when GNS3 start",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"auto_start": {
|
||||||
|
"description": "Project start when opened",
|
||||||
|
"type": "boolean"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"additionalProperties": False,
|
"additionalProperties": False,
|
||||||
|
@ -59,7 +59,16 @@ def test_affect_uuid():
|
|||||||
|
|
||||||
def test_json(tmpdir):
|
def test_json(tmpdir):
|
||||||
p = Project(name="Test")
|
p = Project(name="Test")
|
||||||
assert p.__json__() == {"name": "Test", "project_id": p.id, "path": p.path, "status": "opened", "filename": "Test.gns3"}
|
assert p.__json__() == {
|
||||||
|
"name": "Test",
|
||||||
|
"project_id": p.id,
|
||||||
|
"path": p.path,
|
||||||
|
"status": "opened",
|
||||||
|
"filename": "Test.gns3",
|
||||||
|
"auto_start": False,
|
||||||
|
"auto_close": False,
|
||||||
|
"auto_open": False
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def test_update(controller, async_run):
|
def test_update(controller, async_run):
|
||||||
|
Loading…
Reference in New Issue
Block a user