diff options
| author | Jesse Andrews <jesse@gigantor.local> | 2010-10-21 08:42:15 -0700 |
|---|---|---|
| committer | Jesse Andrews <jesse@gigantor.local> | 2010-10-21 08:42:15 -0700 |
| commit | 943e8bcda4f304caa15d689d4db0e50376860f00 (patch) | |
| tree | b1be04908b7b0ee1ac32f7774f3907d0e5d822aa | |
| parent | 3e3407f2e4f44e7f717bba94219bb0023695fc4d (diff) | |
| download | nova-943e8bcda4f304caa15d689d4db0e50376860f00.tar.gz nova-943e8bcda4f304caa15d689d4db0e50376860f00.tar.xz nova-943e8bcda4f304caa15d689d4db0e50376860f00.zip | |
validate device in AttachDisk
| -rw-r--r-- | nova/api/ec2/cloud.py | 3 |
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") |
