diff options
| author | Tushar Patil <tushar.vitthal.patil@gmail.com> | 2011-08-31 23:50:08 +0000 |
|---|---|---|
| committer | Tarmac <> | 2011-08-31 23:50:08 +0000 |
| commit | 3bc7a44dad3233595beb20b63204f16f1cb4376e (patch) | |
| tree | 1625bb9b06181444e1b3df0708046155c174511e /nova/api | |
| parent | 3fa7bf7cc4dece3662cf31e8fb0b6daa7df54f8b (diff) | |
| parent | 476101d81cf81e6035b44e2257c1bcd8e958043a (diff) | |
| download | nova-3bc7a44dad3233595beb20b63204f16f1cb4376e.tar.gz nova-3bc7a44dad3233595beb20b63204f16f1cb4376e.tar.xz nova-3bc7a44dad3233595beb20b63204f16f1cb4376e.zip | |
Validates that user-data is b64 encoded.
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/openstack/create_instance_helper.py | 13 |
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): """ |
