summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Andrews <jesse@gigantor.local>2010-10-21 08:42:15 -0700
committerJesse Andrews <jesse@gigantor.local>2010-10-21 08:42:15 -0700
commit943e8bcda4f304caa15d689d4db0e50376860f00 (patch)
treeb1be04908b7b0ee1ac32f7774f3907d0e5d822aa
parent3e3407f2e4f44e7f717bba94219bb0023695fc4d (diff)
downloadnova-943e8bcda4f304caa15d689d4db0e50376860f00.tar.gz
nova-943e8bcda4f304caa15d689d4db0e50376860f00.tar.xz
nova-943e8bcda4f304caa15d689d4db0e50376860f00.zip
validate device in AttachDisk
-rw-r--r--nova/api/ec2/cloud.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index 6d4f58499..bd7fbc3ac 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -25,6 +25,7 @@ datastore.
import base64
import datetime
import logging
+import re
import os
import time
@@ -533,6 +534,8 @@ class CloudController(object):
def attach_volume(self, context, volume_id, instance_id, device, **kwargs):
volume_ref = db.volume_get_by_ec2_id(context, volume_id)
+ if not re.match("^/dev/[a-z]d[a-z]+$", device):
+ raise exception.ApiError("Invalid device. Example /dev/vdb")
# TODO(vish): abstract status checking?
if volume_ref['status'] != "available":
raise exception.ApiError("Volume status must be available")