summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorChristopher MacGown <chris@pistoncloud.com>2011-07-22 20:29:37 -0700
committerChristopher MacGown <chris@pistoncloud.com>2011-07-22 20:29:37 -0700
commitd963e25906b75a48c75b6e589deb2a53f75d6ee3 (patch)
treeebb9ffa56454ca07ae7d088c73a42922acd45764 /nova/api
parent74c399cb2ebb914973c2f0dc6ecf4dd8bbc062d7 (diff)
Config-Drive happiness, minus smoketest
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/create_instance_helper.py7
-rw-r--r--nova/api/openstack/views/servers.py4
2 files changed, 10 insertions, 1 deletions
diff --git a/nova/api/openstack/create_instance_helper.py b/nova/api/openstack/create_instance_helper.py
index 2654e3c40..fe92bae2e 100644
--- a/nova/api/openstack/create_instance_helper.py
+++ b/nova/api/openstack/create_instance_helper.py
@@ -96,6 +96,7 @@ class CreateInstanceHelper(object):
locals())
raise faults.Fault(exc.HTTPBadRequest(explanation=msg))
+ config_drive = body['server'].get('config_drive')
personality = body['server'].get('personality')
injected_files = []
@@ -130,6 +131,7 @@ class CreateInstanceHelper(object):
extra_values = {
'instance_type': inst_type,
'image_ref': image_href,
+ 'config_drive': config_drive,
'password': password}
return (extra_values,
@@ -148,7 +150,8 @@ class CreateInstanceHelper(object):
zone_blob=zone_blob,
reservation_id=reservation_id,
min_count=min_count,
- max_count=max_count))
+ max_count=max_count,
+ config_drive=config_drive,))
except quota.QuotaError as error:
self._handle_quota_error(error)
except exception.ImageNotFound as error:
@@ -160,6 +163,8 @@ class CreateInstanceHelper(object):
def _handle_quota_error(self, error):
"""
Reraise quota errors as api-specific http exceptions
+
+
"""
if error.code == "OnsetFileLimitExceeded":
expl = _("Personality file limit exceeded")
diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py
index ab7e8da61..961932a4e 100644
--- a/nova/api/openstack/views/servers.py
+++ b/nova/api/openstack/views/servers.py
@@ -164,6 +164,7 @@ class ViewBuilderV11(ViewBuilder):
def _build_extra(self, response, inst):
self._build_links(response, inst)
+ self._build_config_drive(response, inst)
def _build_links(self, response, inst):
href = self.generate_href(inst["id"])
@@ -182,6 +183,9 @@ class ViewBuilderV11(ViewBuilder):
response["server"]["links"] = links
+ def _build_config_drive(self, response, inst):
+ response['server']['config_drive'] = inst.get('config_drive')
+
def generate_href(self, server_id):
"""Create an url that refers to a specific server id."""
return os.path.join(self.base_url, "servers", str(server_id))