diff options
Diffstat (limited to 'nova')
| -rw-r--r-- | nova/api/openstack/__init__.py | 2 | ||||
| -rw-r--r-- | nova/api/openstack/common.py | 5 | ||||
| -rw-r--r-- | nova/tests/integrated/integrated_helpers.py | 21 | ||||
| -rw-r--r-- | nova/tests/integrated/test_extensions.py | 43 | ||||
| -rw-r--r-- | nova/tests/integrated/test_servers.py | 16 | ||||
| -rw-r--r-- | nova/tests/integrated/test_volumes.py | 6 |
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() |
