From 3757ba9ccf0915d1854c97f625effd0edbedfa12 Mon Sep 17 00:00:00 2001 From: Alessandro Pilotti Date: Fri, 9 Nov 2012 20:03:01 +0200 Subject: Fixes a bug in api.metadata.base.lookup() on Windows Fixes Bug #1077125 api.metadata.base.lookup() uses os.path.normpath() to normalize urls. This doesn't work on Windows as it transforms "/" in "\". The fix solves the issue, but os.path.normpath() should never be used to normalize urls. Change-Id: I83d0795d5875acac5fe9bd543f9ca9b4a3e2c8d5 --- nova/api/metadata/base.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nova/api/metadata/base.py b/nova/api/metadata/base.py index 469d87d46..6fd8b1374 100644 --- a/nova/api/metadata/base.py +++ b/nova/api/metadata/base.py @@ -21,6 +21,7 @@ import base64 import json import os +import posixpath from nova.api.ec2 import ec2utils from nova import block_device @@ -314,9 +315,9 @@ class InstanceMetadata(): def lookup(self, path): if path == "" or path[0] != "/": - path = os.path.normpath("/" + path) + path = posixpath.normpath("/" + path) else: - path = os.path.normpath(path) + path = posixpath.normpath(path) # fix up requests, prepending /ec2 to anything that does not match path_tokens = path.split('/')[1:] -- cgit