Create the project on compute only when needed

This commit is contained in:
Julien Duponchelle committed 2016-05-11 10:56:43 +02:00
1 parent ed0bae8689
commit cd836f146e
2 files changed
+19 -6

No files matched your search

+6 -1
View File
@@ -60,6 +60,9 @@ class Project:
self._links = {}
self._listeners = set()
# Create the project on demand on the compute node
self._project_created_on_compute = set()
@property
def name(self):
return self._name
@@ -103,7 +106,6 @@ class Project:
@asyncio.coroutine
def addCompute(self, compute):
self._computes.add(compute)
yield from compute.post("/projects", self)
@asyncio.coroutine
def addVM(self, compute, vm_id, **kwargs):
@@ -114,6 +116,9 @@ class Project:
"""
if vm_id not in self._vms:
vm = VM(self, compute, vm_id=vm_id, **kwargs)
if compute not in self._project_created_on_compute:
yield from compute.post("/projects", self)
self._project_created_on_compute.add(compute)
yield from vm.create()
self._vms[vm.id] = vm
return vm