Merge branch 'master' into 2.2

This commit is contained in:
grossmj committed 2020-04-28 13:14:53 +09:30
commit 4ddd45f788
5 files changed
+21 -9

No files matched your search

+12
View File
@@ -86,6 +86,7 @@ class DockerVM(BaseNode):
self._telnet_servers = []
self._xvfb_process = None
self._vnc_process = None
self._vncconfig_process = None
self._console_resolution = console_resolution
self._console_http_path = console_http_path
self._console_http_port = console_http_port
@@ -615,6 +616,11 @@ class DockerVM(BaseNode):
x11_socket = os.path.join("/tmp/.X11-unix/", "X{}".format(self._display))
await wait_for_file_creation(x11_socket)
# Start vncconfig for tigervnc clipboard support, connection available only after socket creation.
tigervncconfig_path = shutil.which("vncconfig")
if tigervnc_path and tigervncconfig_path:
self._vncconfig_process = await asyncio.create_subprocess_exec(tigervncconfig_path, "-display", ":{}".format(self._display), "-nowin")
# sometimes the VNC process can crash
monitor_process(self._vnc_process, self._vnc_callback)
@@ -825,6 +831,12 @@ class DockerVM(BaseNode):
await self.stop()
if self.console_type == "vnc":
if self._vncconfig_process:
try:
self._vncconfig_process.terminate()
await self._vncconfig_process.wait()
except ProcessLookupError:
pass
if self._vnc_process:
try:
self._vnc_process.terminate()
@@ -40,7 +40,7 @@ class SnapshotHandler:
input=SNAPSHOT_CREATE_SCHEMA,
output=SNAPSHOT_OBJECT_SCHEMA,
status_codes={
201: "Snasphot created",
201: "Snapshot created",
404: "The project doesn't exist"
})
async def create(request, response):
@@ -57,21 +57,21 @@ class SnapshotHandler:
"project_id": "Project UUID",
},
status_codes={
200: "Snasphot list returned",
200: "Snapshot list returned",
404: "The project doesn't exist"
})
def list(request, response):
controller = Controller.instance()
project = controller.get_project(request.match_info["project_id"])
snapshots = [s for s in project.snapshots.values()]
response.json(sorted(snapshots, key=lambda s: s.created_at))
response.json(sorted(snapshots, key=lambda s: (s.created_at, s.name)))
@Route.delete(
r"/projects/{project_id}/snapshots/{snapshot_id}",
description="Delete a snapshot from disk",
parameters={
"project_id": "Project UUID",
"snapshot_id": "Snasphot UUID"
"snapshot_id": "Snapshot UUID"
},
status_codes={
204: "Changes have been written on disk",
@@ -89,7 +89,7 @@ class SnapshotHandler:
description="Restore a snapshot from disk",
parameters={
"project_id": "Project UUID",
"snapshot_id": "Snasphot UUID"
"snapshot_id": "Snapshot UUID"
},
output=PROJECT_OBJECT_SCHEMA,
status_codes={