summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorJesse Andrews <anotherjesse@gmail.com>2011-08-18 16:26:32 -0700
committerJesse Andrews <anotherjesse@gmail.com>2011-08-18 16:26:32 -0700
commitbbe414cba5d389b553fb3122a3a7dbc9c6d898f2 (patch)
treecc330ac04e6f42f02a5148891b600e9c27b6005c /nova
parent983e37ac5451cf26baf3460b33c90da498dff8ea (diff)
downloadnova-bbe414cba5d389b553fb3122a3a7dbc9c6d898f2.tar.gz
nova-bbe414cba5d389b553fb3122a3a7dbc9c6d898f2.tar.xz
nova-bbe414cba5d389b553fb3122a3a7dbc9c6d898f2.zip
follow same pattern as userdata (not metadata apporach)
Diffstat (limited to 'nova')
-rw-r--r--nova/api/openstack/create_instance_helper.py27
-rw-r--r--nova/api/openstack/views/servers.py3
2 files changed, 16 insertions, 14 deletions
diff --git a/nova/api/openstack/create_instance_helper.py b/nova/api/openstack/create_instance_helper.py
index e64a076c8..c2e9e76ac 100644
--- a/nova/api/openstack/create_instance_helper.py
+++ b/nova/api/openstack/create_instance_helper.py
@@ -75,13 +75,15 @@ class CreateInstanceHelper(object):
context = req.environ['nova.context']
server_dict = body['server']
- metadata = server_dict.get('metadata', {})
password = self.controller._get_server_admin_password(server_dict)
- # NOTE(ja): extract key_name and security_group from metadata
- # to use in os extensions for firewall & keypairs
- key_name = metadata.get('key_name')
- security_group = metadata.get('security_group')
+ if not 'name' in server_dict:
+ msg = _("Server name is not defined")
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ name = server_dict['name']
+ self._validate_server_name(name)
+ name = name.strip()
image_href = self.controller._image_ref_from_req_data(body)
# If the image href was generated by nova api, strip image_href
@@ -112,16 +114,13 @@ class CreateInstanceHelper(object):
msg = _("Invalid flavorRef provided.")
raise exc.HTTPBadRequest(explanation=msg)
- if not 'name' in server_dict:
- msg = _("Server name is not defined")
- raise exc.HTTPBadRequest(explanation=msg)
-
zone_blob = server_dict.get('blob')
- user_data = server_dict.get('user_data')
availability_zone = server_dict.get('availability_zone')
- name = server_dict['name']
- self._validate_server_name(name)
- name = name.strip()
+
+ # optional openstack extensions:
+ key_name = server_dict.get('key_name')
+ security_group = server_dict.get('security_group')
+ user_data = server_dict.get('user_data')
reservation_id = server_dict.get('reservation_id')
min_count = server_dict.get('min_count')
@@ -152,7 +151,7 @@ class CreateInstanceHelper(object):
display_description=name,
key_name=key_name,
security_group=security_group,
- metadata=metadata,
+ metadata=server_dict.get('metadata', {}),
injected_files=injected_files,
admin_password=password,
zone_blob=zone_blob,
diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py
index edc328129..ac2de0c57 100644
--- a/nova/api/openstack/views/servers.py
+++ b/nova/api/openstack/views/servers.py
@@ -78,6 +78,9 @@ class ViewBuilder(object):
metadata[item['key']] = str(item['value'])
inst_dict['metadata'] = metadata
+ inst_dict['key_name'] = inst.get('key_name')
+ inst_dict['security_group'] = inst.get('security_group')
+
inst_dict['hostId'] = ''
if inst.get('host'):
inst_dict['hostId'] = hashlib.sha224(inst['host']).hexdigest()