diff options
| author | Zhongyue Luo <zhongyue.nah@intel.com> | 2012-10-31 13:19:10 +0800 |
|---|---|---|
| committer | Zhongyue Luo <zhongyue.nah@intel.com> | 2012-11-05 15:08:45 +0800 |
| commit | d2e7bb04317f62643ab2005b601da2265c502c93 (patch) | |
| tree | c1d42bb8f9d83d0c64042feeaa9f193c71abca53 /nova | |
| parent | bb15f2b5b8f9127c1da6b26ac18b306378b3531a (diff) | |
Use uuidutils.is_uuid_like for uuid validation
Change-Id: I8fc760062ecaee45d263db663a52971be96f264a
Diffstat (limited to 'nova')
| -rw-r--r-- | nova/api/ec2/ec2utils.py | 8 | ||||
| -rw-r--r-- | nova/api/openstack/compute/contrib/floating_ips.py | 4 | ||||
| -rw-r--r-- | nova/api/openstack/compute/servers.py | 9 | ||||
| -rw-r--r-- | nova/compute/api.py | 3 | ||||
| -rw-r--r-- | nova/console/api.py | 4 | ||||
| -rw-r--r-- | nova/db/sqlalchemy/api.py | 15 | ||||
| -rw-r--r-- | nova/network/manager.py | 5 | ||||
| -rw-r--r-- | nova/network/quantumv2/api.py | 4 | ||||
| -rw-r--r-- | nova/tests/test_utils.py | 3 | ||||
| -rw-r--r-- | nova/utils.py | 12 |
10 files changed, 30 insertions, 37 deletions
diff --git a/nova/api/ec2/ec2utils.py b/nova/api/ec2/ec2utils.py index 4d0a926df..580cfdac7 100644 --- a/nova/api/ec2/ec2utils.py +++ b/nova/api/ec2/ec2utils.py @@ -25,7 +25,7 @@ from nova import flags from nova.network import model as network_model from nova.openstack.common import log as logging from nova.openstack.common import timeutils -from nova import utils +from nova.openstack.common import uuidutils FLAGS = flags.FLAGS @@ -130,7 +130,7 @@ def id_to_ec2_id(instance_id, template='i-%08x'): def id_to_ec2_inst_id(instance_id): """Get or create an ec2 instance ID (i-[base 16 number]) from uuid.""" - if utils.is_uuid_like(instance_id): + if uuidutils.is_uuid_like(instance_id): ctxt = context.get_admin_context() int_id = get_int_id_from_instance_uuid(ctxt, instance_id) return id_to_ec2_id(int_id) @@ -150,7 +150,7 @@ def get_instance_uuid_from_int_id(context, int_id): def id_to_ec2_snap_id(snapshot_id): """Get or create an ec2 volume ID (vol-[base 16 number]) from uuid.""" - if utils.is_uuid_like(snapshot_id): + if uuidutils.is_uuid_like(snapshot_id): ctxt = context.get_admin_context() int_id = get_int_id_from_snapshot_uuid(ctxt, snapshot_id) return id_to_ec2_id(int_id, 'snap-%08x') @@ -160,7 +160,7 @@ def id_to_ec2_snap_id(snapshot_id): def id_to_ec2_vol_id(volume_id): """Get or create an ec2 volume ID (vol-[base 16 number]) from uuid.""" - if utils.is_uuid_like(volume_id): + if uuidutils.is_uuid_like(volume_id): ctxt = context.get_admin_context() int_id = get_int_id_from_volume_uuid(ctxt, volume_id) return id_to_ec2_id(int_id, 'vol-%08x') diff --git a/nova/api/openstack/compute/contrib/floating_ips.py b/nova/api/openstack/compute/contrib/floating_ips.py index 56a6a8fad..4f6dbffdb 100644 --- a/nova/api/openstack/compute/contrib/floating_ips.py +++ b/nova/api/openstack/compute/contrib/floating_ips.py @@ -27,7 +27,7 @@ from nova.compute import utils as compute_utils from nova import exception from nova import network from nova.openstack.common import log as logging -from nova import utils +from nova.openstack.common import uuidutils LOG = logging.getLogger(__name__) @@ -307,7 +307,7 @@ class FloatingIPActionController(wsgi.Controller): # disassociate if associated if (instance and floating_ip.get('fixed_ip_id') and - (utils.is_uuid_like(id) and + (uuidutils.is_uuid_like(id) and [instance['uuid'] == id] or [instance['id'] == id])[0]): disassociate_floating_ip(self, context, instance, address) diff --git a/nova/api/openstack/compute/servers.py b/nova/api/openstack/compute/servers.py index ba88d72e7..c4293255d 100644 --- a/nova/api/openstack/compute/servers.py +++ b/nova/api/openstack/compute/servers.py @@ -36,6 +36,7 @@ from nova.openstack.common import importutils from nova.openstack.common import log as logging from nova.openstack.common.rpc import common as rpc_common from nova.openstack.common import timeutils +from nova.openstack.common import uuidutils from nova import utils @@ -621,7 +622,7 @@ class Controller(wsgi.Controller): # port parameter is only for qunatum v2.0 msg = _("Unknown argment : port") raise exc.HTTPBadRequest(explanation=msg) - if not utils.is_uuid_like(port_id): + if not uuidutils.is_uuid_like(port_id): msg = _("Bad port format: port uuid is " "not in proper format " "(%s)") % port_id @@ -629,9 +630,9 @@ class Controller(wsgi.Controller): else: network_uuid = network['uuid'] - if not port_id and not utils.is_uuid_like(network_uuid): + if not port_id and not uuidutils.is_uuid_like(network_uuid): br_uuid = network_uuid.split('-', 1)[-1] - if not utils.is_uuid_like(br_uuid): + if not uuidutils.is_uuid_like(br_uuid): msg = _("Bad networks format: network uuid is " "not in proper format " "(%s)") % network_uuid @@ -1099,7 +1100,7 @@ class Controller(wsgi.Controller): # down to an id and use the default glance connection params image_uuid = image_href.split('/').pop() - if not utils.is_uuid_like(image_uuid): + if not uuidutils.is_uuid_like(image_uuid): msg = _("Invalid imageRef provided.") raise exc.HTTPBadRequest(explanation=msg) diff --git a/nova/compute/api.py b/nova/compute/api.py index 1bbcdbda9..f72387f30 100644 --- a/nova/compute/api.py +++ b/nova/compute/api.py @@ -48,6 +48,7 @@ from nova.openstack.common import importutils from nova.openstack.common import jsonutils from nova.openstack.common import log as logging from nova.openstack.common import timeutils +from nova.openstack.common import uuidutils import nova.policy from nova import quota from nova.scheduler import rpcapi as scheduler_rpcapi @@ -1067,7 +1068,7 @@ class API(base.Base): def get(self, context, instance_id): """Get a single instance with the given instance_id.""" # NOTE(ameade): we still need to support integer ids for ec2 - if utils.is_uuid_like(instance_id): + if uuidutils.is_uuid_like(instance_id): instance = self.db.instance_get_by_uuid(context, instance_id) else: instance = self.db.instance_get(context, instance_id) diff --git a/nova/console/api.py b/nova/console/api.py index 8becf35cf..5a9294ce7 100644 --- a/nova/console/api.py +++ b/nova/console/api.py @@ -22,7 +22,7 @@ from nova.console import rpcapi as console_rpcapi from nova.db import base from nova import flags from nova.openstack.common import rpc -from nova import utils +from nova.openstack.common import uuidutils FLAGS = flags.FLAGS @@ -63,7 +63,7 @@ class API(base.Base): return rpcapi.get_console_topic(context, instance_host) def _get_instance(self, context, instance_uuid): - if utils.is_uuid_like(instance_uuid): + if uuidutils.is_uuid_like(instance_uuid): instance = self.db.instance_get_by_uuid(context, instance_uuid) else: instance = self.db.instance_get(context, instance_uuid) diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index a00895c57..d4173a7f8 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -35,6 +35,7 @@ from nova import exception from nova import flags from nova.openstack.common import log as logging from nova.openstack.common import timeutils +from nova.openstack.common import uuidutils from nova import utils from sqlalchemy import and_ from sqlalchemy.exc import IntegrityError @@ -1035,7 +1036,7 @@ def fixed_ip_associate(context, address, instance_uuid, network_id=None, reserved -- should be a boolean value(True or False), exact value will be used to filter on the fixed ip address """ - if not utils.is_uuid_like(instance_uuid): + if not uuidutils.is_uuid_like(instance_uuid): raise exception.InvalidUUID(uuid=instance_uuid) session = get_session() @@ -1067,7 +1068,7 @@ def fixed_ip_associate(context, address, instance_uuid, network_id=None, @require_admin_context def fixed_ip_associate_pool(context, network_id, instance_uuid=None, host=None): - if instance_uuid and not utils.is_uuid_like(instance_uuid): + if instance_uuid and not uuidutils.is_uuid_like(instance_uuid): raise exception.InvalidUUID(uuid=instance_uuid) session = get_session() @@ -1211,7 +1212,7 @@ def fixed_ip_get_by_address(context, address, session=None): @require_context def fixed_ip_get_by_instance(context, instance_uuid): - if not utils.is_uuid_like(instance_uuid): + if not uuidutils.is_uuid_like(instance_uuid): raise exception.InvalidUUID(uuid=instance_uuid) result = model_query(context, models.FixedIp, read_deleted="no").\ @@ -1463,7 +1464,7 @@ def instance_data_get_for_project(context, project_id, session=None): def instance_destroy(context, instance_uuid, constraint=None): session = get_session() with session.begin(): - if utils.is_uuid_like(instance_uuid): + if uuidutils.is_uuid_like(instance_uuid): instance_ref = instance_get_by_uuid(context, instance_uuid, session=session) else: @@ -1783,7 +1784,7 @@ def instance_test_and_set(context, instance_uuid, attr, ok_states, query = model_query(context, models.Instance, session=session, project_only=True) - if utils.is_uuid_like(instance_uuid): + if uuidutils.is_uuid_like(instance_uuid): query = query.filter_by(uuid=instance_uuid) else: raise exception.InvalidUUID(instance_uuid) @@ -1835,7 +1836,7 @@ def instance_update_and_get_original(context, instance_uuid, values): def _instance_update(context, instance_uuid, values, copy_old_instance=False): session = get_session() - if not utils.is_uuid_like(instance_uuid): + if not uuidutils.is_uuid_like(instance_uuid): raise exception.InvalidUUID(instance_uuid) with session.begin(): @@ -2926,7 +2927,7 @@ def volume_allocate_iscsi_target(context, volume_id, host): @require_admin_context def volume_attached(context, volume_id, instance_uuid, mountpoint): - if not utils.is_uuid_like(instance_uuid): + if not uuidutils.is_uuid_like(instance_uuid): raise exception.InvalidUUID(instance_uuid) session = get_session() diff --git a/nova/network/manager.py b/nova/network/manager.py index afe79a664..cfd1a320f 100644 --- a/nova/network/manager.py +++ b/nova/network/manager.py @@ -69,6 +69,7 @@ from nova.openstack.common import lockutils from nova.openstack.common import log as logging from nova.openstack.common.notifier import api as notifier from nova.openstack.common import timeutils +from nova.openstack.common import uuidutils import nova.policy from nova import quota from nova import utils @@ -943,7 +944,7 @@ class NetworkManager(manager.SchedulerDependentManager): # NOTE(francois.charlier): the instance may have been deleted already # thus enabling `read_deleted` admin_context = context.get_admin_context(read_deleted='yes') - if utils.is_uuid_like(instance_id): + if uuidutils.is_uuid_like(instance_id): instance_ref = self.db.instance_get_by_uuid(admin_context, instance_id) else: @@ -1277,7 +1278,7 @@ class NetworkManager(manager.SchedulerDependentManager): @wrap_check_policy def add_fixed_ip_to_instance(self, context, instance_id, host, network_id): """Adds a fixed ip to an instance from specified network.""" - if utils.is_uuid_like(network_id): + if uuidutils.is_uuid_like(network_id): network = self.get_network(context, network_id) else: network = self._get_network_by_id(context, network_id) diff --git a/nova/network/quantumv2/api.py b/nova/network/quantumv2/api.py index e8d672835..2cc607684 100644 --- a/nova/network/quantumv2/api.py +++ b/nova/network/quantumv2/api.py @@ -26,7 +26,7 @@ from nova.network import quantumv2 from nova.openstack.common import cfg from nova.openstack.common import excutils from nova.openstack.common import log as logging -from nova import utils +from nova.openstack.common import uuidutils quantum_opts = [ @@ -437,7 +437,7 @@ class API(base.Base): def _get_floating_ip_pool_id_by_name_or_id(self, client, name_or_id): search_opts = {NET_EXTERNAL: True, 'fields': 'id'} - if utils.is_uuid_like(name_or_id): + if uuidutils.is_uuid_like(name_or_id): search_opts.update({'id': name_or_id}) else: search_opts.update({'name': name_or_id}) diff --git a/nova/tests/test_utils.py b/nova/tests/test_utils.py index 1b84b858d..8b883f755 100644 --- a/nova/tests/test_utils.py +++ b/nova/tests/test_utils.py @@ -30,6 +30,7 @@ import nova from nova import exception from nova import flags from nova.openstack.common import timeutils +from nova.openstack.common import uuidutils from nova import test from nova import utils @@ -510,7 +511,7 @@ class GenericUtilsTestCase(test.TestCase): class IsUUIDLikeTestCase(test.TestCase): def assertUUIDLike(self, val, expected): - result = utils.is_uuid_like(val) + result = uuidutils.is_uuid_like(val) self.assertEqual(result, expected) def test_good_uuid(self): diff --git a/nova/utils.py b/nova/utils.py index 284d72b55..d97c2ce3f 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -772,18 +772,6 @@ def gen_uuid(): return uuid.uuid4() -def is_uuid_like(val): - """For our purposes, a UUID is a string in canonical form: - - aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa - """ - try: - uuid.UUID(val) - return True - except (TypeError, ValueError, AttributeError): - return False - - def bool_from_str(val): """Convert a string representation of a bool into a bool value""" |
