Wait for the end of project loading before making new change

Fix #790
This commit is contained in:
Julien Duponchelle committed 2016-11-18 17:35:28 +01:00
1 parent 5ab85e5c9e
commit 40af2a35e0
6 files changed
+56 -44

No files matched your search

+12 -1
View File
@@ -338,13 +338,24 @@ class Controller:
def get_project(self, project_id):
"""
Returns a compute server or raise a 404 error.
Returns a project or raise a 404 error.
"""
try:
return self._projects[project_id]
except KeyError:
raise aiohttp.web.HTTPNotFound(text="Project ID {} doesn't exist".format(project_id))
@asyncio.coroutine
def get_loaded_project(self, project_id):
"""
Returns a project or raise a 404 error.
If project is not finished to load wait for it
"""
project = self.get_project(project_id)
yield from project.wait_loaded()
return project
def remove_project(self, project):
del self._projects[project.id]