Make capsule support availability zone
Change-Id: I38ade7d16bbbebb0bd1504691e6a2ace9bbadae8
This commit is contained in:
parent
6b7f1640ce
commit
d047616bbe
@ -6,6 +6,7 @@ metadata:
|
|||||||
labels:
|
labels:
|
||||||
foo: bar
|
foo: bar
|
||||||
restartPolicy: always
|
restartPolicy: always
|
||||||
|
availabilityZone: nova
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: test
|
- image: test
|
||||||
|
@ -7,6 +7,7 @@ metadata:
|
|||||||
app: web
|
app: web
|
||||||
app1: web1
|
app1: web1
|
||||||
restartPolicy: always
|
restartPolicy: always
|
||||||
|
availabilityZone: nova
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: ubuntu
|
- image: ubuntu
|
||||||
|
@ -167,6 +167,11 @@ class CapsuleController(base.Controller):
|
|||||||
new_capsule.meta_name = metadata_info.get('name', None)
|
new_capsule.meta_name = metadata_info.get('name', None)
|
||||||
new_capsule.meta_labels = metadata_info.get('labels', None)
|
new_capsule.meta_labels = metadata_info.get('labels', None)
|
||||||
|
|
||||||
|
extra_spec = {}
|
||||||
|
az_info = template_json.get('availabilityZone')
|
||||||
|
if az_info:
|
||||||
|
extra_spec['availability_zone'] = az_info
|
||||||
|
|
||||||
# Generate Object for infra container
|
# Generate Object for infra container
|
||||||
sandbox_container = objects.Container(context)
|
sandbox_container = objects.Container(context)
|
||||||
sandbox_container.project_id = context.project_id
|
sandbox_container.project_id = context.project_id
|
||||||
@ -245,7 +250,7 @@ class CapsuleController(base.Controller):
|
|||||||
new_capsule.memory = str(capsule_need_memory) + 'M'
|
new_capsule.memory = str(capsule_need_memory) + 'M'
|
||||||
new_capsule.save(context)
|
new_capsule.save(context)
|
||||||
compute_api.capsule_create(context, new_capsule, requested_networks,
|
compute_api.capsule_create(context, new_capsule, requested_networks,
|
||||||
requested_volumes)
|
requested_volumes, extra_spec)
|
||||||
# Set the HTTP Location Header
|
# Set the HTTP Location Header
|
||||||
pecan.response.location = link.build_url('capsules',
|
pecan.response.location = link.build_url('capsules',
|
||||||
new_capsule.uuid)
|
new_capsule.uuid)
|
||||||
|
@ -472,6 +472,7 @@ capsule_template = {
|
|||||||
"metadata": capsule_metadata,
|
"metadata": capsule_metadata,
|
||||||
"restartPolicy": capsule_restart_policy,
|
"restartPolicy": capsule_restart_policy,
|
||||||
"spec": capsule_spec,
|
"spec": capsule_spec,
|
||||||
|
"availabilityZone": availability_zone,
|
||||||
},
|
},
|
||||||
"additionalProperties": False,
|
"additionalProperties": False,
|
||||||
"required": ['kind', 'spec', 'metadata']
|
"required": ['kind', 'spec', 'metadata']
|
||||||
|
@ -187,8 +187,8 @@ class API(object):
|
|||||||
return self.rpcapi.image_search(context, image, image_driver,
|
return self.rpcapi.image_search(context, image, image_driver,
|
||||||
exact_match, *args)
|
exact_match, *args)
|
||||||
|
|
||||||
def capsule_create(self, context, new_capsule, requested_networks=None,
|
def capsule_create(self, context, new_capsule, requested_networks,
|
||||||
requested_volumes=None, extra_spec=None):
|
requested_volumes, extra_spec):
|
||||||
try:
|
try:
|
||||||
host_state = self._schedule_container(context, new_capsule,
|
host_state = self._schedule_container(context, new_capsule,
|
||||||
extra_spec)
|
extra_spec)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user