diff options
| author | Alex Meade <alex.meade@rackspace.com> | 2011-07-12 12:01:13 -0400 |
|---|---|---|
| committer | Alex Meade <alex.meade@rackspace.com> | 2011-07-12 12:01:13 -0400 |
| commit | 495137fb383766ae5345fd8b30610a93483c0eaf (patch) | |
| tree | 95bcc1fefd68eab678a947cd4498b0234413e5d8 /nova/api | |
| parent | a8c9082c701a65f221f218cd8baa92b3859fc0ab (diff) | |
Updated remove_version_from_href to be more intelligent
Added tests
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/openstack/common.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/nova/api/openstack/common.py b/nova/api/openstack/common.py index 9aa384f33..83854b13f 100644 --- a/nova/api/openstack/common.py +++ b/nova/api/openstack/common.py @@ -136,11 +136,21 @@ def get_id_from_href(href): raise webob.exc.HTTPBadRequest(_('could not parse id from href')) -def remove_version_from_href(base_url): +def remove_version_from_href(href): """Removes the api version from the href. Given: 'http://www.nova.com/v1.1/123' Returns: 'http://www.nova.com/123' """ - return base_url.rsplit('/', 1).pop(0) + try: + #matches /v#.# + new_href = re.sub(r'[/][v][0-9]*.[0-9]*', '', href) + if new_href == href: + msg = _('href does not contain version') + raise webob.exc.HTTPBadRequest(explanation=msg) + return new_href + except: + LOG.debug(_("Error removing version from href: %s") % href) + msg = _('could not parse version from href') + raise webob.exc.HTTPBadRequest(explanation=msg) |
