summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@gmail.com>2011-08-31 17:01:19 -0700
committerVishvananda Ishaya <vishvananda@gmail.com>2011-08-31 17:01:19 -0700
commit0f83de82b93d714be6df16b7f151141ab3f4d987 (patch)
treea07dc22352352b7599433b8cf46a6d857777ec7e /nova/api
parentbd917feb287a3d0e8f2f9f9c60b716c7f599f4ff (diff)
parent3bc7a44dad3233595beb20b63204f16f1cb4376e (diff)
merge trunk, fix conflict
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/create_instance_helper.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/nova/api/openstack/create_instance_helper.py b/nova/api/openstack/create_instance_helper.py
index 483ff4985..019283fdf 100644
--- a/nova/api/openstack/create_instance_helper.py
+++ b/nova/api/openstack/create_instance_helper.py
@@ -138,7 +138,10 @@ class CreateInstanceHelper(object):
raise exc.HTTPBadRequest(explanation=msg)
zone_blob = server_dict.get('blob')
+
user_data = server_dict.get('user_data')
+ self._validate_user_data(user_data)
+
availability_zone = server_dict.get('availability_zone')
name = server_dict['name']
self._validate_server_name(name)
@@ -370,6 +373,16 @@ class CreateInstanceHelper(object):
return networks
+ def _validate_user_data(self, user_data):
+ """Check if the user_data is encoded properly"""
+ if not user_data:
+ return
+ try:
+ user_data = base64.b64decode(user_data)
+ except TypeError:
+ expl = _('Userdata content cannot be decoded')
+ raise exc.HTTPBadRequest(explanation=expl)
+
class ServerXMLDeserializer(wsgi.XMLDeserializer):
"""