def setUp(self): self.cinder_client_exception = cinder_exceptions.ClientException(404) self.glance_client_exception = glance_exceptions.ClientException() self.keystone_client_exception = keystone_exceptions.ClientException() self.neutron_client_exception = neutron_exceptions.NeutronClientException( ) self.nova_client_exception = nova_exceptions.ClientException(404)
def test_client_exception_from_glance_client(self): t = template_format.parse(test_template_glance_client_exception) template = parser.Template(t) stack = parser.Stack(self.ctx, 'test_stack', template) self.m.StubOutWithMock(self.gc.images, 'list') self.gc.images.list().AndRaise(glance_exceptions.ClientException(500)) self.m.StubOutWithMock(glance.GlanceClientPlugin, '_create') glance.GlanceClientPlugin._create().AndReturn(self.gc) self.m.ReplayAll() self.assertRaises(exception.StackValidationFailed, stack.validate) self.m.VerifyAll()
def test_client_exception_from_glance_client(self): t = template_format.parse(test_template_glance_client_exception) template = parser.Template(t) stack = parser.Stack(self.ctx, 'test_stack', template) self.m.StubOutWithMock(self.gc.images, 'list') self.gc.images.list().AndRaise(g_exc.ClientException(500)) self.m.StubOutWithMock(clients.OpenStackClients, 'glance') clients.OpenStackClients.glance().MultipleTimes().AndReturn(self.gc) self.m.ReplayAll() self.assertRaises(exception.StackValidationFailed, stack.validate) self.m.VerifyAll()
def test_get_image_id_glance_exception(self): """Test get_image_id when glance raises an exception.""" # Simulate HTTP exception img_name = str(uuid.uuid4()) self.glance_client.images.list.side_effect = [ glance_exceptions.ClientException("Error")] expected_error = "Error retrieving image list from glance: Error" e = self.assertRaises(exception.Error, self.glance_plugin.get_image_id_by_name, img_name) self.assertEqual(expected_error, six.text_type(e)) self.glance_client.images.list.assert_called_once_with( filters={'name': img_name})
def test_get_image_id_glance_exception(self): """Test get_image_id when glance raises an exception.""" # Simulate HTTP exception self.glance_client.images = self.m.CreateMockAnything() img_name = str(uuid.uuid4()) filters = {'name': img_name} self.glance_client.images.list(filters=filters).AndRaise( glance_exceptions.ClientException("Error")) self.m.ReplayAll() expected_error = "Error retrieving image list from glance: Error" e = self.assertRaises(exception.Error, self.glance_plugin.get_image_id_by_name, img_name) self.assertEqual(expected_error, six.text_type(e)) self.m.VerifyAll()
def wait_image_state(self, image_id, state): attempts = 0 img = self.get_glance().images.get(image_id) state = state.lower() while (attempts < int(self.params['poll_max']) and img.status.lower() != state and img.status.lower() != 'error'): self.logger.debug("Image '%s' has status '%s', waiting %ds", image_id, img.status, int(self.params['poll_secs'])) attempts += 1 time.sleep(int(self.params['poll_secs'])) img = self.get_glance().images.get(image_id) if img.status.lower() != state: raise glance_exceptions.ClientException( "Image '%s' unexpectedly has status '%s'" % (image_id, img.status)) self.logger.info("Image '%s' has status '%s'", image_id, state)