summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2011-11-02 15:44:31 +0000
committerGerrit Code Review <review@openstack.org>2011-11-02 15:44:31 +0000
commit830760b4c79cf9cdc80c6e0047ea206abc21f2c6 (patch)
tree0ffaadec82817d9cb1fa07637fa7cdb20a92e2c3 /nova/api
parentd3e0cfcc7f7bc24b4bd551f5b5c0c952f2fd2f3f (diff)
parenta225fa6acf9ea8689f66b5e415c4680795bac465 (diff)
downloadnova-830760b4c79cf9cdc80c6e0047ea206abc21f2c6.tar.gz
nova-830760b4c79cf9cdc80c6e0047ea206abc21f2c6.tar.xz
nova-830760b4c79cf9cdc80c6e0047ea206abc21f2c6.zip
Merge "Too much information is returned from POST /servers"
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/contrib/createserverext.py10
-rw-r--r--nova/api/openstack/servers.py8
-rw-r--r--nova/api/openstack/views/servers.py10
3 files changed, 20 insertions, 8 deletions
diff --git a/nova/api/openstack/contrib/createserverext.py b/nova/api/openstack/contrib/createserverext.py
index da95164e8..ab5037304 100644
--- a/nova/api/openstack/contrib/createserverext.py
+++ b/nova/api/openstack/contrib/createserverext.py
@@ -21,10 +21,12 @@ from nova.api.openstack import wsgi
class CreateServerController(servers.Controller):
- def _build_view(self, req, instance, is_detail=False):
- server = super(CreateServerController, self)._build_view(req,
- instance,
- is_detail)
+ def _build_view(self, req, instance, is_detail=False, is_create=False):
+ server = super(CreateServerController, self).\
+ _build_view(req,
+ instance,
+ is_detail=is_detail,
+ is_create=is_create)
if is_detail:
self._build_security_groups(server['server'], instance)
return server
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py
index 29160c5ce..8c1eaae9d 100644
--- a/nova/api/openstack/servers.py
+++ b/nova/api/openstack/servers.py
@@ -497,7 +497,7 @@ class Controller(object):
instance['instance_type'] = inst_type
instance['image_ref'] = image_href
- server = self._build_view(req, instance, is_detail=True)
+ server = self._build_view(req, instance, is_create=True)
if '_is_precooked' in server['server']:
del server['server']['_is_precooked']
else:
@@ -748,7 +748,7 @@ class Controller(object):
return common.get_id_from_href(flavor_ref)
- def _build_view(self, req, instance, is_detail=False):
+ def _build_view(self, req, instance, is_detail=False, is_create=False):
context = req.environ['nova.context']
project_id = getattr(context, 'project_id', '')
base_url = req.application_url
@@ -757,7 +757,9 @@ class Controller(object):
addresses_builder = views_addresses.ViewBuilder()
builder = views_servers.ViewBuilder(context, addresses_builder,
flavor_builder, image_builder, base_url, project_id)
- return builder.build(instance, is_detail=is_detail)
+ return builder.build(instance,
+ is_detail=is_detail,
+ is_create=is_create)
def _build_list(self, req, instances, is_detail=False):
params = req.GET.copy()
diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py
index 288730efe..4a0be46c1 100644
--- a/nova/api/openstack/views/servers.py
+++ b/nova/api/openstack/views/servers.py
@@ -41,13 +41,15 @@ class ViewBuilder(object):
self.base_url = base_url
self.project_id = project_id
- def build(self, inst, is_detail=False):
+ def build(self, inst, is_detail=False, is_create=False):
"""Return a dict that represenst a server."""
if inst.get('_is_precooked', False):
server = dict(server=inst)
else:
if is_detail:
server = self._build_detail(inst)
+ elif is_create:
+ server = self._build_create(inst)
else:
server = self._build_simple(inst)
@@ -59,6 +61,12 @@ class ViewBuilder(object):
"""Return a simple model of a server."""
return dict(server=dict(id=inst['uuid'], name=inst['display_name']))
+ def _build_create(self, inst):
+ """Return data that should be returned from a server create."""
+ server = dict(server=dict(id=inst['uuid']))
+ self._build_links(server['server'], inst)
+ return server
+
def _build_detail(self, inst):
"""Returns a detailed model of a server."""
vm_state = inst.get('vm_state', vm_states.BUILDING)