summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorJustin Santa Barbara <justin@fathomdb.com>2011-03-25 17:48:59 -0700
committerJustin Santa Barbara <justin@fathomdb.com>2011-03-25 17:48:59 -0700
commit5936449d99b852897fddbbb140465db0ad9a330c (patch)
treece23ffa59cc00f0e0719c0b6bedea78e7ad928da /nova
parentcd1bac4deff367131d43f87cdfbc3b6b34bbdc1e (diff)
Now that it's an extension, it has to be v1.1. Also fixed up all the things that changed in v1.1
Diffstat (limited to 'nova')
-rw-r--r--nova/api/openstack/__init__.py2
-rw-r--r--nova/api/openstack/common.py5
-rw-r--r--nova/tests/integrated/integrated_helpers.py21
-rw-r--r--nova/tests/integrated/test_extensions.py43
-rw-r--r--nova/tests/integrated/test_servers.py16
-rw-r--r--nova/tests/integrated/test_volumes.py6
6 files changed, 78 insertions, 15 deletions
diff --git a/nova/api/openstack/__init__.py b/nova/api/openstack/__init__.py
index 731e16a58..7f2bb1155 100644
--- a/nova/api/openstack/__init__.py
+++ b/nova/api/openstack/__init__.py
@@ -39,8 +39,6 @@ from nova.api.openstack import servers
from nova.api.openstack import server_metadata
from nova.api.openstack import shared_ip_groups
from nova.api.openstack import users
-from nova.api.openstack import volumes
-from nova.api.openstack import volume_attachments
from nova.api.openstack import zones
diff --git a/nova/api/openstack/common.py b/nova/api/openstack/common.py
index 8cad1273a..4ab6b7a81 100644
--- a/nova/api/openstack/common.py
+++ b/nova/api/openstack/common.py
@@ -21,6 +21,10 @@ import webob
from nova import exception
from nova import flags
+from nova import log as logging
+
+
+LOG = logging.getLogger('common')
FLAGS = flags.FLAGS
@@ -121,4 +125,5 @@ def get_id_from_href(href):
try:
return int(urlparse(href).path.split('/')[-1])
except:
+ LOG.debug(_("Error extracting id from href: %s") % href)
raise webob.exc.HTTPBadRequest(_('could not parse id from href'))
diff --git a/nova/tests/integrated/integrated_helpers.py b/nova/tests/integrated/integrated_helpers.py
index 99d597f9a..c64f6945d 100644
--- a/nova/tests/integrated/integrated_helpers.py
+++ b/nova/tests/integrated/integrated_helpers.py
@@ -196,7 +196,7 @@ class IntegratedUnitTestContext(object):
# so we treat it separately
self.api_service = api_service
- self.auth_url = 'http://localhost:8774/v1.0'
+ self.auth_url = 'http://localhost:8774/v1.1'
return api_service
@@ -229,18 +229,27 @@ class _IntegratedTestBase(test.TestCase):
server = {}
image = self.user.get_valid_image(create=True)
- image_id = image['id']
+ LOG.debug("Image: %s" % image)
- #TODO(justinsb): This is FUBAR
- image_id = abs(hash(image_id))
+ if 'imageRef' in image:
+ image_ref = image['imageRef']
+ else:
+ #NOTE(justinsb): The imageRef code hasn't yet landed
+ LOG.warning("imageRef not yet in images output")
+ image_ref = image['id']
+
+ #TODO(justinsb): This is FUBAR
+ image_ref = abs(hash(image_ref))
+
+ image_ref = 'http://fake.server/%s' % image_ref
# We now have a valid imageId
- server['imageId'] = image_id
+ server['imageRef'] = image_ref
# Set a valid flavorId
flavor = self.api.get_flavors()[0]
LOG.debug("Using flavor: %s" % flavor)
- server['flavorId'] = flavor['id']
+ server['flavorRef'] = 'http://fake.server/%s' % flavor['id']
# Set a valid server name
server_name = self.user.get_unused_server_name()
diff --git a/nova/tests/integrated/test_extensions.py b/nova/tests/integrated/test_extensions.py
new file mode 100644
index 000000000..39906e8d0
--- /dev/null
+++ b/nova/tests/integrated/test_extensions.py
@@ -0,0 +1,43 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2011 Justin Santa Barbara
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import os
+
+from nova import flags
+from nova.log import logging
+from nova.tests.integrated import integrated_helpers
+
+
+LOG = logging.getLogger('nova.tests.integrated')
+
+FLAGS = flags.FLAGS
+FLAGS.verbose = True
+
+
+class ExtensionsTest(integrated_helpers._IntegratedTestBase):
+ def _get_flags(self):
+ f = super(ExtensionsTest, self)._get_flags()
+ f['osapi_extensions_path'] = os.path.join(os.path.dirname(__file__),
+ "../api/openstack/extensions")
+ return f
+
+ def test_get_foxnsocks(self):
+ """Simple check that fox-n-socks works"""
+ response = self.api.api_request('/foxnsocks')
+ foxnsocks = response.read()
+ LOG.debug("foxnsocks: %s" % foxnsocks)
+ self.assertEqual('Try to say this Mr. Knox, sir...', foxnsocks)
diff --git a/nova/tests/integrated/test_servers.py b/nova/tests/integrated/test_servers.py
index c4676adc8..a0a6e333a 100644
--- a/nova/tests/integrated/test_servers.py
+++ b/nova/tests/integrated/test_servers.py
@@ -48,27 +48,29 @@ class ServersTest(integrated_helpers._IntegratedTestBase):
post = {'server': server}
- # Without an imageId, this throws 500.
+ # Without an imageRef, this throws 500.
# TODO(justinsb): Check whatever the spec says should be thrown here
self.assertRaises(client.OpenStackApiException,
self.api.post_server, post)
- # With an invalid imageId, this throws 500.
- server['imageId'] = self.user.get_invalid_image()
+ # With an invalid imageRef, this throws 500.
+ server['imageRef'] = self.user.get_invalid_image()
# TODO(justinsb): Check whatever the spec says should be thrown here
self.assertRaises(client.OpenStackApiException,
self.api.post_server, post)
- # Add a valid imageId
- server['imageId'] = good_server['imageId']
+ # Add a valid imageId/imageRef
+ server['imageId'] = good_server.get('imageId')
+ server['imageRef'] = good_server.get('imageRef')
# Without flavorId, this throws 500
# TODO(justinsb): Check whatever the spec says should be thrown here
self.assertRaises(client.OpenStackApiException,
self.api.post_server, post)
- # Set a valid flavorId
- server['flavorId'] = good_server['flavorId']
+ # Set a valid flavorId/flavorRef
+ server['flavorRef'] = good_server.get('flavorRef')
+ server['flavorId'] = good_server.get('flavorId')
# Without a name, this throws 500
# TODO(justinsb): Check whatever the spec says should be thrown here
diff --git a/nova/tests/integrated/test_volumes.py b/nova/tests/integrated/test_volumes.py
index f173efea7..9ddfe85f7 100644
--- a/nova/tests/integrated/test_volumes.py
+++ b/nova/tests/integrated/test_volumes.py
@@ -42,6 +42,12 @@ class VolumesTest(integrated_helpers._IntegratedTestBase):
f['volume_driver'] = 'nova.volume.driver.LoggingVolumeDriver'
return f
+ def test_get_volumes_summary(self):
+ """Simple check that listing volumes works"""
+ volumes = self.api.get_volumes(False)
+ for volume in volumes:
+ LOG.debug("volume: %s" % volume)
+
def test_get_volumes(self):
"""Simple check that listing volumes works"""
volumes = self.api.get_volumes()