Merge "Create a fixture around fake_notifier"

This commit is contained in:
Zuul 2021-06-09 00:54:27 +00:00 committed by Gerrit Code Review
commit 620a931813
44 changed files with 505 additions and 522 deletions

View File

@ -20,6 +20,7 @@ from .glance import GlanceFixture # noqa: F401
from .libvirt import LibvirtFixture # noqa: F401 from .libvirt import LibvirtFixture # noqa: F401
from .libvirt_imagebackend import LibvirtImageBackendFixture # noqa: F401 from .libvirt_imagebackend import LibvirtImageBackendFixture # noqa: F401
from .neutron import NeutronFixture # noqa: F401 from .neutron import NeutronFixture # noqa: F401
from .notifications import NotificationFixture # noqa: F401
from .nova import * # noqa: F401, F403 from .nova import * # noqa: F401, F403
from .os_brick import OSBrickFixture # noqa: F401 from .os_brick import OSBrickFixture # noqa: F401
from .policy import OverridePolicyFixture # noqa: F401 from .policy import OverridePolicyFixture # noqa: F401

39
nova/tests/fixtures/notifications.py vendored Normal file
View File

@ -0,0 +1,39 @@
# 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 fixtures
from nova.tests.unit import fake_notifier
class NotificationFixture(fixtures.Fixture):
def __init__(self, test):
self.test = test
def setUp(self):
super().setUp()
self.addCleanup(fake_notifier.reset)
fake_notifier.stub_notifier(self.test)
def reset(self):
fake_notifier.reset()
def wait_for_versioned_notifications(
self, event_type, n_events=1, timeout=10.0,
):
return fake_notifier.VERSIONED_SUBS[event_type].wait_n(
n_events, event_type, timeout,
)
@property
def versioned_notifications(self):
return fake_notifier.VERSIONED_NOTIFICATIONS

View File

@ -15,7 +15,7 @@ from oslo_utils.fixture import uuidsentinel as uuids
from nova import context from nova import context
from nova import objects from nova import objects
from nova import test from nova import test
from nova.tests.unit import fake_notifier from nova.tests import fixtures
class ImageCacheTest(test.TestCase): class ImageCacheTest(test.TestCase):
@ -26,8 +26,8 @@ class ImageCacheTest(test.TestCase):
self.flags(compute_driver='fake.FakeDriverWithCaching') self.flags(compute_driver='fake.FakeDriverWithCaching')
fake_notifier.stub_notifier(self) self.notifier = self.useFixture(fixtures.NotificationFixture(self))
self.addCleanup(fake_notifier.reset)
self.context = context.get_admin_context() self.context = context.get_admin_context()
self.conductor = self.start_service('conductor') self.conductor = self.start_service('conductor')
@ -70,10 +70,10 @@ class ImageCacheTest(test.TestCase):
mgr = getattr(self, host) mgr = getattr(self, host)
self.assertEqual(set(), mgr.driver.cached_images) self.assertEqual(set(), mgr.driver.cached_images)
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'aggregate.cache_images.start') 'aggregate.cache_images.start')
progress = fake_notifier.wait_for_versioned_notifications( progress = self.notifier.wait_for_versioned_notifications(
'aggregate.cache_images.progress', n_events=4) 'aggregate.cache_images.progress', n_events=4)
self.assertEqual(4, len(progress), progress) self.assertEqual(4, len(progress), progress)
for notification in progress: for notification in progress:
@ -89,7 +89,7 @@ class ImageCacheTest(test.TestCase):
self.assertEqual(4, payload['total']) self.assertEqual(4, payload['total'])
self.assertIn('conductor', notification['publisher_id']) self.assertIn('conductor', notification['publisher_id'])
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'aggregate.cache_images.end') 'aggregate.cache_images.end')
logtext = self.stdlog.logger.output logtext = self.stdlog.logger.output

View File

@ -16,7 +16,6 @@ import time
from nova import context as nova_context from nova import context as nova_context
from nova import objects from nova import objects
from nova.tests.functional import integrated_helpers from nova.tests.functional import integrated_helpers
from nova.tests.unit import fake_notifier
class ComputeManagerInitHostTestCase( class ComputeManagerInitHostTestCase(
@ -164,7 +163,7 @@ class TestComputeRestartInstanceStuckInBuild(
# the instance.create.start is the closest thing to the # the instance.create.start is the closest thing to the
# instance_claim call we can wait for in the test # instance_claim call we can wait for in the test
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.create.start') 'instance.create.start')
with mock.patch('nova.compute.manager.LOG.debug') as mock_log: with mock.patch('nova.compute.manager.LOG.debug') as mock_log:

View File

@ -19,7 +19,6 @@ from nova import exception
from nova import test from nova import test
from nova.tests import fixtures as nova_fixtures from nova.tests import fixtures as nova_fixtures
from nova.tests.functional import integrated_helpers from nova.tests.functional import integrated_helpers
from nova.tests.unit import fake_notifier
class FakeCinderError(object): class FakeCinderError(object):
@ -48,8 +47,6 @@ class LiveMigrationCinderFailure(integrated_helpers._IntegratedTestBase):
def setUp(self): def setUp(self):
super(LiveMigrationCinderFailure, self).setUp() super(LiveMigrationCinderFailure, self).setUp()
fake_notifier.stub_notifier(self)
self.addCleanup(fake_notifier.reset)
# Start a second compute node (the first one was started for us by # Start a second compute node (the first one was started for us by
# _IntegratedTestBase. set_nodes() is needed to avoid duplicate # _IntegratedTestBase. set_nodes() is needed to avoid duplicate
# nodenames. See comments in test_bug_1702454.py. # nodenames. See comments in test_bug_1702454.py.

View File

@ -32,7 +32,6 @@ from nova import test
from nova.tests import fixtures as nova_fixtures from nova.tests import fixtures as nova_fixtures
from nova.tests.functional import fixtures as func_fixtures from nova.tests.functional import fixtures as func_fixtures
from nova.tests.functional import integrated_helpers from nova.tests.functional import integrated_helpers
from nova.tests.unit import fake_notifier
from nova.virt import driver as virt_driver from nova.virt import driver as virt_driver
@ -703,8 +702,6 @@ class TestProviderConfig(integrated_helpers.ProviderUsageBaseTestCase):
self.api = self.useFixture(nova_fixtures.OSAPIFixture( self.api = self.useFixture(nova_fixtures.OSAPIFixture(
api_version='v2.1')).admin_api api_version='v2.1')).admin_api
self.api.microversion = 'latest' self.api.microversion = 'latest'
fake_notifier.stub_notifier(self)
self.addCleanup(fake_notifier.reset)
self.start_service('conductor') self.start_service('conductor')
# start nova-compute that will not have the additional trait. # start nova-compute that will not have the additional trait.
self._start_compute("fake-host-1") self._start_compute("fake-host-1")

View File

@ -40,7 +40,6 @@ from nova import test
from nova.tests import fixtures as nova_fixtures from nova.tests import fixtures as nova_fixtures
from nova.tests.functional.api import client as api_client from nova.tests.functional.api import client as api_client
from nova.tests.functional import fixtures as func_fixtures from nova.tests.functional import fixtures as func_fixtures
from nova.tests.unit import fake_notifier
from nova import utils from nova import utils
@ -408,7 +407,7 @@ class InstanceHelperMixin:
self.api.post_server_action( self.api.post_server_action(
server['id'], {'reboot': {'type': 'HARD' if hard else 'SOFT'}}, server['id'], {'reboot': {'type': 'HARD' if hard else 'SOFT'}},
) )
fake_notifier.wait_for_versioned_notifications('instance.reboot.end') self.notifier.wait_for_versioned_notifications('instance.reboot.end')
return self._wait_for_state_change(server, expected_state) return self._wait_for_state_change(server, expected_state)
def _attach_interface(self, server, port_uuid): def _attach_interface(self, server, port_uuid):
@ -419,14 +418,14 @@ class InstanceHelperMixin:
} }
} }
attachment = self.api.attach_interface(server['id'], body) attachment = self.api.attach_interface(server['id'], body)
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.interface_attach.end') 'instance.interface_attach.end')
return attachment return attachment
def _detach_interface(self, server, port_uuid): def _detach_interface(self, server, port_uuid):
"""detach a neutron port form a server.""" """detach a neutron port form a server."""
self.api.detach_interface(server['id'], port_uuid) self.api.detach_interface(server['id'], port_uuid)
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.interface_detach.end') 'instance.interface_detach.end')
def _rebuild_server(self, server, image_uuid, expected_state='ACTIVE'): def _rebuild_server(self, server, image_uuid, expected_state='ACTIVE'):
@ -434,7 +433,7 @@ class InstanceHelperMixin:
self.api.post_server_action( self.api.post_server_action(
server['id'], {'rebuild': {'imageRef': image_uuid}}, server['id'], {'rebuild': {'imageRef': image_uuid}},
) )
fake_notifier.wait_for_versioned_notifications('instance.rebuild.end') self.notifier.wait_for_versioned_notifications('instance.rebuild.end')
return self._wait_for_state_change(server, expected_state) return self._wait_for_state_change(server, expected_state)
def _migrate_server(self, server, host=None): def _migrate_server(self, server, host=None):
@ -446,7 +445,7 @@ class InstanceHelperMixin:
def _resize_server(self, server, flavor_id): def _resize_server(self, server, flavor_id):
self.api.post_server_action( self.api.post_server_action(
server['id'], {'resize': {'flavorRef': flavor_id}}) server['id'], {'resize': {'flavorRef': flavor_id}})
fake_notifier.wait_for_versioned_notifications('instance.resize.end') self.notifier.wait_for_versioned_notifications('instance.resize.end')
return self._wait_for_state_change(server, 'VERIFY_RESIZE') return self._wait_for_state_change(server, 'VERIFY_RESIZE')
def _confirm_resize(self, server, *, cross_cell=False): def _confirm_resize(self, server, *, cross_cell=False):
@ -469,7 +468,7 @@ class InstanceHelperMixin:
# dest host revert_resize method but the allocations are cleaned up # dest host revert_resize method but the allocations are cleaned up
# in the source host finish_revert_resize method so we need to wait # in the source host finish_revert_resize method so we need to wait
# for the finish_revert_resize method to complete. # for the finish_revert_resize method to complete.
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.resize_revert.end') 'instance.resize_revert.end')
return server return server
@ -488,13 +487,13 @@ class InstanceHelperMixin:
def _suspend_server(self, server, expected_state='SUSPENDED'): def _suspend_server(self, server, expected_state='SUSPENDED'):
"""Suspend a server.""" """Suspend a server."""
self.api.post_server_action(server['id'], {'suspend': {}}) self.api.post_server_action(server['id'], {'suspend': {}})
fake_notifier.wait_for_versioned_notifications('instance.suspend.end') self.notifier.wait_for_versioned_notifications('instance.suspend.end')
return self._wait_for_state_change(server, expected_state) return self._wait_for_state_change(server, expected_state)
def _resume_server(self, server, expected_state='ACTIVE'): def _resume_server(self, server, expected_state='ACTIVE'):
"""Resume a server.""" """Resume a server."""
self.api.post_server_action(server['id'], {'resume': {}}) self.api.post_server_action(server['id'], {'resume': {}})
fake_notifier.wait_for_versioned_notifications('instance.resume.end') self.notifier.wait_for_versioned_notifications('instance.resume.end')
return self._wait_for_state_change(server, expected_state) return self._wait_for_state_change(server, expected_state)
def _shelve_server(self, server, expected_state='SHELVED_OFFLOADED'): def _shelve_server(self, server, expected_state='SHELVED_OFFLOADED'):
@ -914,7 +913,7 @@ class PlacementInstanceHelperMixin(InstanceHelperMixin, PlacementHelperMixin):
# instance.delete.end notification as that is emitted after the # instance.delete.end notification as that is emitted after the
# resources are freed. # resources are freed.
fake_notifier.wait_for_versioned_notifications('instance.delete.end') self.notifier.wait_for_versioned_notifications('instance.delete.end')
for rp_uuid in [ for rp_uuid in [
self._get_provider_uuid_by_host(hostname) self._get_provider_uuid_by_host(hostname)
@ -1115,8 +1114,8 @@ class _IntegratedTestBase(test.TestCase, PlacementInstanceHelperMixin):
self.glance = self.useFixture(nova_fixtures.GlanceFixture(self)) self.glance = self.useFixture(nova_fixtures.GlanceFixture(self))
self.policy = self.useFixture(nova_fixtures.RealPolicyFixture()) self.policy = self.useFixture(nova_fixtures.RealPolicyFixture())
fake_notifier.stub_notifier(self) self.notifier = self.useFixture(
self.addCleanup(fake_notifier.reset) nova_fixtures.NotificationFixture(self))
self._setup_services() self._setup_services()
@ -1186,8 +1185,8 @@ class ProviderUsageBaseTestCase(test.TestCase, PlacementInstanceHelperMixin):
self.placement = self.useFixture(func_fixtures.PlacementFixture()).api self.placement = self.useFixture(func_fixtures.PlacementFixture()).api
self.useFixture(nova_fixtures.AllServicesCurrent()) self.useFixture(nova_fixtures.AllServicesCurrent())
fake_notifier.stub_notifier(self) self.notifier = self.useFixture(
self.addCleanup(fake_notifier.reset) nova_fixtures.NotificationFixture(self))
self.api_fixture = self.useFixture(nova_fixtures.OSAPIFixture( self.api_fixture = self.useFixture(nova_fixtures.OSAPIFixture(
api_version='v2.1')) api_version='v2.1'))

View File

@ -31,7 +31,6 @@ from nova.tests.fixtures import libvirt as fakelibvirt
from nova.tests.functional import fixtures as func_fixtures from nova.tests.functional import fixtures as func_fixtures
from nova.tests.functional import integrated_helpers from nova.tests.functional import integrated_helpers
from nova.tests.unit import fake_network from nova.tests.unit import fake_network
from nova.tests.unit import fake_notifier
from nova.virt.libvirt import config as libvirt_config from nova.virt.libvirt import config as libvirt_config
CONF = conf.CONF CONF = conf.CONF
@ -431,8 +430,8 @@ class _LibvirtEvacuateTest(integrated_helpers.InstanceHelperMixin):
# force_down and evacuate without onSharedStorage # force_down and evacuate without onSharedStorage
self.api.microversion = '2.14' self.api.microversion = '2.14'
fake_notifier.stub_notifier(self) self.notifier = self.useFixture(
self.addCleanup(fake_notifier.reset) nova_fixtures.NotificationFixture(self))
self.useFixture(nova_fixtures.LibvirtFixture()) self.useFixture(nova_fixtures.LibvirtFixture())
@ -523,7 +522,7 @@ class _LibvirtEvacuateTest(integrated_helpers.InstanceHelperMixin):
expected_task_state=None, expected_migration_status='failed') expected_task_state=None, expected_migration_status='failed')
# Wait for the rebuild to start, then complete # Wait for the rebuild to start, then complete
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.rebuild.start') 'instance.rebuild.start')
# Meta-test # Meta-test

View File

@ -27,7 +27,6 @@ from nova.tests import fixtures as nova_fixtures
from nova.tests.fixtures import libvirt as fakelibvirt from nova.tests.fixtures import libvirt as fakelibvirt
from nova.tests.functional.api import client from nova.tests.functional.api import client
from nova.tests.functional.libvirt import base from nova.tests.functional.libvirt import base
from nova.tests.unit import fake_notifier
CONF = cfg.CONF CONF = cfg.CONF
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@ -1252,9 +1251,6 @@ class NUMAServersRebuildTests(NUMAServersTestBase):
self.image_ref_0 = images[0]['id'] self.image_ref_0 = images[0]['id']
self.image_ref_1 = images[1]['id'] self.image_ref_1 = images[1]['id']
fake_notifier.stub_notifier(self)
self.addCleanup(fake_notifier.reset)
def _create_active_server(self, server_args=None): def _create_active_server(self, server_args=None):
basic_server = { basic_server = {
'flavorRef': 1, 'flavorRef': 1,

View File

@ -35,7 +35,6 @@ from nova.tests import fixtures as nova_fixtures
from nova.tests.fixtures import libvirt as fakelibvirt from nova.tests.fixtures import libvirt as fakelibvirt
from nova.tests.functional.api import client from nova.tests.functional.api import client
from nova.tests.functional.libvirt import base from nova.tests.functional.libvirt import base
from nova.tests.unit import fake_notifier
CONF = cfg.CONF CONF = cfg.CONF
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@ -711,14 +710,14 @@ class SRIOVAttachDetachTest(_PCIServersTestBase):
def _detach_port(self, instance_uuid, port_id): def _detach_port(self, instance_uuid, port_id):
self.api.detach_interface(instance_uuid, port_id) self.api.detach_interface(instance_uuid, port_id)
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.interface_detach.end') 'instance.interface_detach.end')
def _attach_port(self, instance_uuid, port_id): def _attach_port(self, instance_uuid, port_id):
self.api.attach_interface( self.api.attach_interface(
instance_uuid, instance_uuid,
{'interfaceAttachment': {'port_id': port_id}}) {'interfaceAttachment': {'port_id': port_id}})
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.interface_attach.end') 'instance.interface_attach.end')
def _test_detach_attach(self, first_port_id, second_port_id): def _test_detach_attach(self, first_port_id, second_port_id):

View File

@ -27,7 +27,6 @@ from nova.tests.functional import integrated_helpers
from nova.tests import json_ref from nova.tests import json_ref
from nova.tests.unit.api.openstack.compute import test_services from nova.tests.unit.api.openstack.compute import test_services
from nova.tests.unit import fake_crypto from nova.tests.unit import fake_crypto
from nova.tests.unit import fake_notifier
CONF = cfg.CONF CONF = cfg.CONF
@ -75,8 +74,8 @@ class NotificationSampleTestBase(test.TestCase,
self.api.microversion = max_version self.api.microversion = max_version
self.admin_api.microversion = max_version self.admin_api.microversion = max_version
fake_notifier.stub_notifier(self) self.notifier = self.useFixture(
self.addCleanup(fake_notifier.reset) nova_fixtures.NotificationFixture(self))
self.useFixture(utils_fixture.TimeFixture(test_services.fake_utcnow())) self.useFixture(utils_fixture.TimeFixture(test_services.fake_utcnow()))
self.useFixture(nova_fixtures.GlanceFixture(self)) self.useFixture(nova_fixtures.GlanceFixture(self))
@ -92,7 +91,7 @@ class NotificationSampleTestBase(test.TestCase,
self.start_service('scheduler') self.start_service('scheduler')
self.compute = self.start_service('compute') self.compute = self.start_service('compute')
# Reset the service create notifications # Reset the service create notifications
fake_notifier.reset() self.notifier.reset()
def _get_notification_sample(self, sample): def _get_notification_sample(self, sample):
sample_dir = os.path.dirname(os.path.abspath(__file__)) sample_dir = os.path.dirname(os.path.abspath(__file__))
@ -136,9 +135,9 @@ class NotificationSampleTestBase(test.TestCase,
notification emitted during the test. notification emitted during the test.
""" """
if not actual: if not actual:
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS), self.assertEqual(1, len(self.notifier.versioned_notifications),
fake_notifier.VERSIONED_NOTIFICATIONS) self.notifier.versioned_notifications)
notification = fake_notifier.VERSIONED_NOTIFICATIONS[0] notification = self.notifier.versioned_notifications[0]
else: else:
notification = actual notification = actual
sample_file = self._get_notification_sample(sample_file_name) sample_file = self._get_notification_sample(sample_file_name)
@ -163,12 +162,12 @@ class NotificationSampleTestBase(test.TestCase,
scheduler_expected_notifications = [ scheduler_expected_notifications = [
'scheduler-select_destinations-start', 'scheduler-select_destinations-start',
'scheduler-select_destinations-end'] 'scheduler-select_destinations-end']
self.assertLessEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertLessEqual(2, len(self.notifier.versioned_notifications))
for notification in scheduler_expected_notifications: for notification in scheduler_expected_notifications:
self._verify_notification( self._verify_notification(
notification, notification,
replacements=replacements, replacements=replacements,
actual=fake_notifier.VERSIONED_NOTIFICATIONS.pop(0)) actual=self.notifier.versioned_notifications.pop(0))
def _boot_a_server(self, expected_status='ACTIVE', extra_params=None, def _boot_a_server(self, expected_status='ACTIVE', extra_params=None,
scheduler_hints=None, additional_extra_specs=None): scheduler_hints=None, additional_extra_specs=None):
@ -191,7 +190,7 @@ class NotificationSampleTestBase(test.TestCase,
self.admin_api.post_extra_spec(flavor_id, extra_specs) self.admin_api.post_extra_spec(flavor_id, extra_specs)
# Ignore the create flavor notification # Ignore the create flavor notification
fake_notifier.reset() self.notifier.reset()
keypair_req = { keypair_req = {
"keypair": { "keypair": {
@ -204,11 +203,11 @@ class NotificationSampleTestBase(test.TestCase,
'keypair-import-start', 'keypair-import-start',
'keypair-import-end' 'keypair-import-end'
] ]
self.assertLessEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertLessEqual(2, len(self.notifier.versioned_notifications))
for notification in keypair_expected_notifications: for notification in keypair_expected_notifications:
self._verify_notification( self._verify_notification(
notification, notification,
actual=fake_notifier.VERSIONED_NOTIFICATIONS.pop(0)) actual=self.notifier.versioned_notifications.pop(0))
server = self._build_server( server = self._build_server(
name='some-server', name='some-server',
@ -252,19 +251,19 @@ class NotificationSampleTestBase(test.TestCase,
def _get_notifications(self, event_type): def _get_notifications(self, event_type):
return [notification for notification return [notification for notification
in fake_notifier.VERSIONED_NOTIFICATIONS in self.notifier.versioned_notifications
if notification['event_type'] == event_type] if notification['event_type'] == event_type]
def _wait_for_notification(self, event_type, timeout=10.0): def _wait_for_notification(self, event_type, timeout=10.0):
# NOTE(mdbooth): wait_for_versioned_notifications raises an exception # NOTE(mdbooth): wait_for_versioned_notifications raises an exception
# if it times out since change I017d1a31. Consider removing this # if it times out since change I017d1a31. Consider removing this
# method. # method.
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
event_type, timeout=timeout) event_type, timeout=timeout)
def _wait_for_notifications(self, event_type, expected_count, def _wait_for_notifications(self, event_type, expected_count,
timeout=10.0): timeout=10.0):
notifications = fake_notifier.wait_for_versioned_notifications( notifications = self.notifier.wait_for_versioned_notifications(
event_type, n_events=expected_count, timeout=timeout) event_type, n_events=expected_count, timeout=timeout)
msg = ''.join('\n%s' % notif for notif in notifications) msg = ''.join('\n%s' % notif for notif in notifications)

View File

@ -11,7 +11,6 @@
# under the License. # under the License.
from nova.tests.functional.notification_sample_tests \ from nova.tests.functional.notification_sample_tests \
import notification_sample_base import notification_sample_base
from nova.tests.unit import fake_notifier
class TestAggregateNotificationSample( class TestAggregateNotificationSample(
@ -28,34 +27,34 @@ class TestAggregateNotificationSample(
"availability_zone": "nova"}} "availability_zone": "nova"}}
aggregate = self.admin_api.post_aggregate(aggregate_req) aggregate = self.admin_api.post_aggregate(aggregate_req)
self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(2, len(self.notifier.versioned_notifications))
self._verify_notification( self._verify_notification(
'aggregate-create-start', 'aggregate-create-start',
replacements={ replacements={
'uuid': aggregate['uuid']}, 'uuid': aggregate['uuid']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[0]) actual=self.notifier.versioned_notifications[0])
self._verify_notification( self._verify_notification(
'aggregate-create-end', 'aggregate-create-end',
replacements={ replacements={
'uuid': aggregate['uuid'], 'uuid': aggregate['uuid'],
'id': aggregate['id']}, 'id': aggregate['id']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[1]) actual=self.notifier.versioned_notifications[1])
self.admin_api.delete_aggregate(aggregate['id']) self.admin_api.delete_aggregate(aggregate['id'])
self.assertEqual(4, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(4, len(self.notifier.versioned_notifications))
self._verify_notification( self._verify_notification(
'aggregate-delete-start', 'aggregate-delete-start',
replacements={ replacements={
'uuid': aggregate['uuid'], 'uuid': aggregate['uuid'],
'id': aggregate['id']}, 'id': aggregate['id']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[2]) actual=self.notifier.versioned_notifications[2])
self._verify_notification( self._verify_notification(
'aggregate-delete-end', 'aggregate-delete-end',
replacements={ replacements={
'uuid': aggregate['uuid'], 'uuid': aggregate['uuid'],
'id': aggregate['id']}, 'id': aggregate['id']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[3]) actual=self.notifier.versioned_notifications[3])
def test_aggregate_add_remove_host(self): def test_aggregate_add_remove_host(self):
aggregate_req = { aggregate_req = {
@ -64,7 +63,7 @@ class TestAggregateNotificationSample(
"availability_zone": "nova"}} "availability_zone": "nova"}}
aggregate = self.admin_api.post_aggregate(aggregate_req) aggregate = self.admin_api.post_aggregate(aggregate_req)
fake_notifier.reset() self.notifier.reset()
add_host_req = { add_host_req = {
"add_host": { "add_host": {
@ -73,19 +72,19 @@ class TestAggregateNotificationSample(
} }
self.admin_api.post_aggregate_action(aggregate['id'], add_host_req) self.admin_api.post_aggregate_action(aggregate['id'], add_host_req)
self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(2, len(self.notifier.versioned_notifications))
self._verify_notification( self._verify_notification(
'aggregate-add_host-start', 'aggregate-add_host-start',
replacements={ replacements={
'uuid': aggregate['uuid'], 'uuid': aggregate['uuid'],
'id': aggregate['id']}, 'id': aggregate['id']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[0]) actual=self.notifier.versioned_notifications[0])
self._verify_notification( self._verify_notification(
'aggregate-add_host-end', 'aggregate-add_host-end',
replacements={ replacements={
'uuid': aggregate['uuid'], 'uuid': aggregate['uuid'],
'id': aggregate['id']}, 'id': aggregate['id']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[1]) actual=self.notifier.versioned_notifications[1])
remove_host_req = { remove_host_req = {
"remove_host": { "remove_host": {
@ -94,19 +93,19 @@ class TestAggregateNotificationSample(
} }
self.admin_api.post_aggregate_action(aggregate['id'], remove_host_req) self.admin_api.post_aggregate_action(aggregate['id'], remove_host_req)
self.assertEqual(4, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(4, len(self.notifier.versioned_notifications))
self._verify_notification( self._verify_notification(
'aggregate-remove_host-start', 'aggregate-remove_host-start',
replacements={ replacements={
'uuid': aggregate['uuid'], 'uuid': aggregate['uuid'],
'id': aggregate['id']}, 'id': aggregate['id']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[2]) actual=self.notifier.versioned_notifications[2])
self._verify_notification( self._verify_notification(
'aggregate-remove_host-end', 'aggregate-remove_host-end',
replacements={ replacements={
'uuid': aggregate['uuid'], 'uuid': aggregate['uuid'],
'id': aggregate['id']}, 'id': aggregate['id']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[3]) actual=self.notifier.versioned_notifications[3])
self.admin_api.delete_aggregate(aggregate['id']) self.admin_api.delete_aggregate(aggregate['id'])
@ -124,22 +123,22 @@ class TestAggregateNotificationSample(
} }
} }
} }
fake_notifier.reset() self.notifier.reset()
self.admin_api.post_aggregate_action(aggregate['id'], set_metadata_req) self.admin_api.post_aggregate_action(aggregate['id'], set_metadata_req)
self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(2, len(self.notifier.versioned_notifications))
self._verify_notification( self._verify_notification(
'aggregate-update_metadata-start', 'aggregate-update_metadata-start',
replacements={ replacements={
'uuid': aggregate['uuid'], 'uuid': aggregate['uuid'],
'id': aggregate['id']}, 'id': aggregate['id']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[0]) actual=self.notifier.versioned_notifications[0])
self._verify_notification( self._verify_notification(
'aggregate-update_metadata-end', 'aggregate-update_metadata-end',
replacements={ replacements={
'uuid': aggregate['uuid'], 'uuid': aggregate['uuid'],
'id': aggregate['id']}, 'id': aggregate['id']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[1]) actual=self.notifier.versioned_notifications[1])
def test_aggregate_updateprops(self): def test_aggregate_updateprops(self):
aggregate_req = { aggregate_req = {
@ -157,19 +156,19 @@ class TestAggregateNotificationSample(
# 1. aggregate-create-end # 1. aggregate-create-end
# 2. aggregate-update_prop-start # 2. aggregate-update_prop-start
# 3. aggregate-update_prop-end # 3. aggregate-update_prop-end
self.assertEqual(4, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(4, len(self.notifier.versioned_notifications))
self._verify_notification( self._verify_notification(
'aggregate-update_prop-start', 'aggregate-update_prop-start',
replacements={ replacements={
'uuid': aggregate['uuid'], 'uuid': aggregate['uuid'],
'id': aggregate['id']}, 'id': aggregate['id']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[2]) actual=self.notifier.versioned_notifications[2])
self._verify_notification( self._verify_notification(
'aggregate-update_prop-end', 'aggregate-update_prop-end',
replacements={ replacements={
'uuid': aggregate['uuid'], 'uuid': aggregate['uuid'],
'id': aggregate['id']}, 'id': aggregate['id']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[3]) actual=self.notifier.versioned_notifications[3])
def test_aggregate_cache_images(self): def test_aggregate_cache_images(self):
aggregate_req = { aggregate_req = {
@ -184,7 +183,7 @@ class TestAggregateNotificationSample(
} }
self.admin_api.post_aggregate_action(aggregate['id'], add_host_req) self.admin_api.post_aggregate_action(aggregate['id'], add_host_req)
fake_notifier.reset() self.notifier.reset()
cache_images_req = { cache_images_req = {
'cache': [ 'cache': [
@ -195,26 +194,26 @@ class TestAggregateNotificationSample(
cache_images_req) cache_images_req)
# Since the operation is asynchronous we have to wait for the end # Since the operation is asynchronous we have to wait for the end
# notification. # notification.
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'aggregate.cache_images.end') 'aggregate.cache_images.end')
self.assertEqual(3, len(fake_notifier.VERSIONED_NOTIFICATIONS), self.assertEqual(3, len(self.notifier.versioned_notifications),
fake_notifier.VERSIONED_NOTIFICATIONS) self.notifier.versioned_notifications)
self._verify_notification( self._verify_notification(
'aggregate-cache_images-start', 'aggregate-cache_images-start',
replacements={ replacements={
'uuid': aggregate['uuid'], 'uuid': aggregate['uuid'],
'id': aggregate['id']}, 'id': aggregate['id']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[0]) actual=self.notifier.versioned_notifications[0])
self._verify_notification( self._verify_notification(
'aggregate-cache_images-progress', 'aggregate-cache_images-progress',
replacements={ replacements={
'uuid': aggregate['uuid'], 'uuid': aggregate['uuid'],
'id': aggregate['id']}, 'id': aggregate['id']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[1]) actual=self.notifier.versioned_notifications[1])
self._verify_notification( self._verify_notification(
'aggregate-cache_images-end', 'aggregate-cache_images-end',
replacements={ replacements={
'uuid': aggregate['uuid'], 'uuid': aggregate['uuid'],
'id': aggregate['id']}, 'id': aggregate['id']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[2]) actual=self.notifier.versioned_notifications[2])

View File

@ -13,7 +13,6 @@
from nova.tests import fixtures from nova.tests import fixtures
from nova.tests.functional.notification_sample_tests \ from nova.tests.functional.notification_sample_tests \
import notification_sample_base import notification_sample_base
from nova.tests.unit import fake_notifier
class TestComputeTaskNotificationSample( class TestComputeTaskNotificationSample(
@ -38,8 +37,8 @@ class TestComputeTaskNotificationSample(
self._wait_for_notification('compute_task.build_instances.error') self._wait_for_notification('compute_task.build_instances.error')
# 0. scheduler.select_destinations.start # 0. scheduler.select_destinations.start
# 1. compute_task.rebuild_server.error # 1. compute_task.rebuild_server.error
self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS), self.assertEqual(2, len(self.notifier.versioned_notifications),
fake_notifier.VERSIONED_NOTIFICATIONS) self.notifier.versioned_notifications)
self._verify_notification( self._verify_notification(
'compute_task-build_instances-error', 'compute_task-build_instances-error',
replacements={ replacements={
@ -52,7 +51,7 @@ class TestComputeTaskNotificationSample(
'reason.module_name': self.ANY, 'reason.module_name': self.ANY,
'reason.traceback': self.ANY 'reason.traceback': self.ANY
}, },
actual=fake_notifier.VERSIONED_NOTIFICATIONS[1]) actual=self.notifier.versioned_notifications[1])
def test_rebuild_fault(self): def test_rebuild_fault(self):
server = self._boot_a_server( server = self._boot_a_server(
@ -65,7 +64,7 @@ class TestComputeTaskNotificationSample(
service_id = self.api.get_service_id('nova-compute') service_id = self.api.get_service_id('nova-compute')
self.admin_api.put_service_force_down(service_id, True) self.admin_api.put_service_force_down(service_id, True)
fake_notifier.reset() self.notifier.reset()
# NOTE(takashin): The rebuild action and the evacuate action shares # NOTE(takashin): The rebuild action and the evacuate action shares
# same code path. So the 'evacuate' action is used for this test. # same code path. So the 'evacuate' action is used for this test.
@ -76,8 +75,8 @@ class TestComputeTaskNotificationSample(
# 0. instance.evacuate # 0. instance.evacuate
# 1. scheduler.select_destinations.start # 1. scheduler.select_destinations.start
# 2. compute_task.rebuild_server.error # 2. compute_task.rebuild_server.error
self.assertEqual(3, len(fake_notifier.VERSIONED_NOTIFICATIONS), self.assertEqual(3, len(self.notifier.versioned_notifications),
fake_notifier.VERSIONED_NOTIFICATIONS) self.notifier.versioned_notifications)
self._verify_notification( self._verify_notification(
'compute_task-rebuild_server-error', 'compute_task-rebuild_server-error',
replacements={ replacements={
@ -90,7 +89,7 @@ class TestComputeTaskNotificationSample(
'reason.module_name': self.ANY, 'reason.module_name': self.ANY,
'reason.traceback': self.ANY 'reason.traceback': self.ANY
}, },
actual=fake_notifier.VERSIONED_NOTIFICATIONS[2]) actual=self.notifier.versioned_notifications[2])
def test_migrate_fault(self): def test_migrate_fault(self):
server = self._boot_a_server( server = self._boot_a_server(
@ -103,14 +102,14 @@ class TestComputeTaskNotificationSample(
service_id = self.api.get_service_id('nova-compute') service_id = self.api.get_service_id('nova-compute')
self.admin_api.put_service(service_id, {'status': 'disabled'}) self.admin_api.put_service(service_id, {'status': 'disabled'})
fake_notifier.reset() self.notifier.reset()
# Note that the operation will return a 202 response but fail with # Note that the operation will return a 202 response but fail with
# NoValidHost asynchronously. # NoValidHost asynchronously.
self.admin_api.post_server_action(server['id'], {'migrate': None}) self.admin_api.post_server_action(server['id'], {'migrate': None})
self._wait_for_notification('compute_task.migrate_server.error') self._wait_for_notification('compute_task.migrate_server.error')
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS), self.assertEqual(1, len(self.notifier.versioned_notifications),
fake_notifier.VERSIONED_NOTIFICATIONS) self.notifier.versioned_notifications)
self._verify_notification( self._verify_notification(
'compute_task-migrate_server-error', 'compute_task-migrate_server-error',
replacements={ replacements={
@ -124,4 +123,4 @@ class TestComputeTaskNotificationSample(
'reason.module_name': self.ANY, 'reason.module_name': self.ANY,
'reason.traceback': self.ANY 'reason.traceback': self.ANY
}, },
actual=fake_notifier.VERSIONED_NOTIFICATIONS[0]) actual=self.notifier.versioned_notifications[0])

View File

@ -12,7 +12,6 @@
from nova.tests.functional.api import client as api_client from nova.tests.functional.api import client as api_client
from nova.tests.functional.notification_sample_tests \ from nova.tests.functional.notification_sample_tests \
import notification_sample_base import notification_sample_base
from nova.tests.unit import fake_notifier
class TestExceptionNotificationSample( class TestExceptionNotificationSample(
@ -33,12 +32,12 @@ class TestExceptionNotificationSample(
self.assertRaises(api_client.OpenStackApiException, self.assertRaises(api_client.OpenStackApiException,
self.admin_api.api_post, 'os-aggregates', post) self.admin_api.api_post, 'os-aggregates', post)
self.assertEqual(4, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(4, len(self.notifier.versioned_notifications))
traceback = fake_notifier.VERSIONED_NOTIFICATIONS[3][ traceback = self.notifier.versioned_notifications[3][
'payload']['nova_object.data']['traceback'] 'payload']['nova_object.data']['traceback']
self.assertIn('AggregateNameExists', traceback) self.assertIn('AggregateNameExists', traceback)
self._verify_notification( self._verify_notification(
'compute-exception', 'compute-exception',
replacements={ replacements={
'traceback': self.ANY}, 'traceback': self.ANY},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[3]) actual=self.notifier.versioned_notifications[3])

View File

@ -12,7 +12,6 @@
from nova.tests.functional.notification_sample_tests \ from nova.tests.functional.notification_sample_tests \
import notification_sample_base import notification_sample_base
from nova.tests.unit import fake_notifier
class TestFlavorNotificationSample( class TestFlavorNotificationSample(
@ -48,7 +47,7 @@ class TestFlavorNotificationSample(
self.admin_api.api_delete( self.admin_api.api_delete(
'flavors/a22d5517-147c-4147-a0d1-e698df5cd4e3') 'flavors/a22d5517-147c-4147-a0d1-e698df5cd4e3')
self._verify_notification( self._verify_notification(
'flavor-delete', actual=fake_notifier.VERSIONED_NOTIFICATIONS[1]) 'flavor-delete', actual=self.notifier.versioned_notifications[1])
def test_flavor_update(self): def test_flavor_update(self):
body = { body = {
@ -84,7 +83,7 @@ class TestFlavorNotificationSample(
body) body)
self._verify_notification( self._verify_notification(
'flavor-update', actual=fake_notifier.VERSIONED_NOTIFICATIONS[2]) 'flavor-update', actual=self.notifier.versioned_notifications[2])
class TestFlavorNotificationSamplev2_55( class TestFlavorNotificationSamplev2_55(
@ -110,11 +109,11 @@ class TestFlavorNotificationSamplev2_55(
flavor = self.admin_api.api_post('flavors', body).body['flavor'] flavor = self.admin_api.api_post('flavors', body).body['flavor']
# Check the notification; should be the same as the sample where there # Check the notification; should be the same as the sample where there
# is no description set. # is no description set.
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self._verify_notification( self._verify_notification(
'flavor-create', 'flavor-create',
replacements={'is_public': False}, replacements={'is_public': False},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[0]) actual=self.notifier.versioned_notifications[0])
# Update and set the flavor description. # Update and set the flavor description.
self.admin_api.api_put( self.admin_api.api_put(
@ -122,10 +121,10 @@ class TestFlavorNotificationSamplev2_55(
{'flavor': {'description': 'test description'}}).body['flavor'] {'flavor': {'description': 'test description'}}).body['flavor']
# Assert the notifications, one for create and one for update. # Assert the notifications, one for create and one for update.
self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(2, len(self.notifier.versioned_notifications))
self._verify_notification( self._verify_notification(
'flavor-update', 'flavor-update',
replacements={'description': 'test description', replacements={'description': 'test description',
'extra_specs': {}, 'extra_specs': {},
'projects': []}, 'projects': []},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[1]) actual=self.notifier.versioned_notifications[1])

View File

@ -11,7 +11,6 @@
# under the License. # under the License.
from nova.tests.functional.notification_sample_tests \ from nova.tests.functional.notification_sample_tests \
import notification_sample_base import notification_sample_base
from nova.tests.unit import fake_notifier
class TestKeypairNotificationSample( class TestKeypairNotificationSample(
@ -26,35 +25,35 @@ class TestKeypairNotificationSample(
}} }}
keypair = self.api.post_keypair(keypair_req) keypair = self.api.post_keypair(keypair_req)
self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(2, len(self.notifier.versioned_notifications))
self._verify_notification( self._verify_notification(
'keypair-create-start', 'keypair-create-start',
replacements={}, replacements={},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[0]) actual=self.notifier.versioned_notifications[0])
self._verify_notification( self._verify_notification(
'keypair-create-end', 'keypair-create-end',
replacements={ replacements={
"fingerprint": keypair['fingerprint'], "fingerprint": keypair['fingerprint'],
"public_key": keypair['public_key'] "public_key": keypair['public_key']
}, },
actual=fake_notifier.VERSIONED_NOTIFICATIONS[1]) actual=self.notifier.versioned_notifications[1])
self.api.delete_keypair(keypair['name']) self.api.delete_keypair(keypair['name'])
self.assertEqual(4, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(4, len(self.notifier.versioned_notifications))
self._verify_notification( self._verify_notification(
'keypair-delete-start', 'keypair-delete-start',
replacements={ replacements={
"fingerprint": keypair['fingerprint'], "fingerprint": keypair['fingerprint'],
"public_key": keypair['public_key'] "public_key": keypair['public_key']
}, },
actual=fake_notifier.VERSIONED_NOTIFICATIONS[2]) actual=self.notifier.versioned_notifications[2])
self._verify_notification( self._verify_notification(
'keypair-delete-end', 'keypair-delete-end',
replacements={ replacements={
"fingerprint": keypair['fingerprint'], "fingerprint": keypair['fingerprint'],
"public_key": keypair['public_key'] "public_key": keypair['public_key']
}, },
actual=fake_notifier.VERSIONED_NOTIFICATIONS[3]) actual=self.notifier.versioned_notifications[3])
def test_keypair_import(self): def test_keypair_import(self):
pub_key = ('ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGg' pub_key = ('ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGg'
@ -71,10 +70,10 @@ class TestKeypairNotificationSample(
self.api.post_keypair(keypair_req) self.api.post_keypair(keypair_req)
self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(2, len(self.notifier.versioned_notifications))
self._verify_notification( self._verify_notification(
'keypair-import-start', 'keypair-import-start',
actual=fake_notifier.VERSIONED_NOTIFICATIONS[0]) actual=self.notifier.versioned_notifications[0])
self._verify_notification( self._verify_notification(
'keypair-import-end', 'keypair-import-end',
actual=fake_notifier.VERSIONED_NOTIFICATIONS[1]) actual=self.notifier.versioned_notifications[1])

View File

@ -21,7 +21,6 @@ from nova.tests import fixtures as nova_fixtures
from nova.tests.fixtures import libvirt as fakelibvirt from nova.tests.fixtures import libvirt as fakelibvirt
from nova.tests.functional.notification_sample_tests \ from nova.tests.functional.notification_sample_tests \
import notification_sample_base import notification_sample_base
from nova.tests.unit import fake_notifier
from nova.virt.libvirt import host from nova.virt.libvirt import host
@ -45,7 +44,7 @@ class TestLibvirtErrorNotificationSample(
self.assertRaises(exception.HypervisorUnavailable, self.assertRaises(exception.HypervisorUnavailable,
self.restart_compute_service, self.compute) self.restart_compute_service, self.compute)
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self._verify_notification( self._verify_notification(
'libvirt-connect-error', 'libvirt-connect-error',
replacements={ replacements={
@ -54,4 +53,4 @@ class TestLibvirtErrorNotificationSample(
'reason.module_name': self.ANY, 'reason.module_name': self.ANY,
'reason.traceback': self.ANY 'reason.traceback': self.ANY
}, },
actual=fake_notifier.VERSIONED_NOTIFICATIONS[0]) actual=self.notifier.versioned_notifications[0])

View File

@ -16,7 +16,6 @@ import nova.conf
from nova import context from nova import context
from nova.tests.functional.notification_sample_tests \ from nova.tests.functional.notification_sample_tests \
import notification_sample_base import notification_sample_base
from nova.tests.unit import fake_notifier
CONF = nova.conf.CONF CONF = nova.conf.CONF
@ -35,8 +34,8 @@ class TestMetricsNotificationSample(
self.compute.manager.update_available_resource( self.compute.manager.update_available_resource(
context.get_admin_context()) context.get_admin_context())
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self._verify_notification( self._verify_notification(
'metrics-update', 'metrics-update',
replacements={'host_ip': CONF.my_ip}, replacements={'host_ip': CONF.my_ip},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[0]) actual=self.notifier.versioned_notifications[0])

View File

@ -12,7 +12,6 @@
from nova.tests import fixtures from nova.tests import fixtures
from nova.tests.functional.notification_sample_tests \ from nova.tests.functional.notification_sample_tests \
import notification_sample_base import notification_sample_base
from nova.tests.unit import fake_notifier
class TestServerGroupNotificationSample( class TestServerGroupNotificationSample(
@ -31,20 +30,20 @@ class TestServerGroupNotificationSample(
} }
group = self.api.post_server_groups(group_req) group = self.api.post_server_groups(group_req)
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self._verify_notification( self._verify_notification(
'server_group-create', 'server_group-create',
replacements={'uuid': group['id']}, replacements={'uuid': group['id']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[0]) actual=self.notifier.versioned_notifications[0])
fake_notifier.reset() self.notifier.reset()
self.api.delete_server_group(group['id']) self.api.delete_server_group(group['id'])
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self._verify_notification( self._verify_notification(
'server_group-delete', 'server_group-delete',
replacements={'uuid': group['id']}, replacements={'uuid': group['id']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[0]) actual=self.notifier.versioned_notifications[0])
def test_server_group_add_member(self): def test_server_group_add_member(self):
group_req = { group_req = {
@ -53,7 +52,7 @@ class TestServerGroupNotificationSample(
"rules": {"max_server_per_host": 3} "rules": {"max_server_per_host": 3}
} }
group = self.api.post_server_groups(group_req) group = self.api.post_server_groups(group_req)
fake_notifier.reset() self.notifier.reset()
server = self._boot_a_server( server = self._boot_a_server(
extra_params={'networks': [{'port': self.neutron.port_1['id']}]}, extra_params={'networks': [{'port': self.neutron.port_1['id']}]},
@ -66,9 +65,9 @@ class TestServerGroupNotificationSample(
# 4: instance.create.end # 4: instance.create.end
# 5: instance.update # 5: instance.update
# (Due to adding server tags in the '_boot_a_server' method.) # (Due to adding server tags in the '_boot_a_server' method.)
self.assertEqual(6, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(6, len(self.notifier.versioned_notifications))
self._verify_notification( self._verify_notification(
'server_group-add_member', 'server_group-add_member',
replacements={'uuid': group['id'], replacements={'uuid': group['id'],
'members': [server['id']]}, 'members': [server['id']]},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[0]) actual=self.notifier.versioned_notifications[0])

View File

@ -20,7 +20,6 @@ from nova.tests import fixtures
from nova.tests.functional.notification_sample_tests \ from nova.tests.functional.notification_sample_tests \
import notification_sample_base import notification_sample_base
from nova.tests.unit.api.openstack.compute import test_services from nova.tests.unit.api.openstack.compute import test_services
from nova.tests.unit import fake_notifier
class TestServiceNotificationBase( class TestServiceNotificationBase(
@ -167,4 +166,4 @@ class TestServiceNotificationSample(TestServiceNotificationBase):
self._verify_notification( self._verify_notification(
'service-delete', 'service-delete',
replacements={'uuid': compute2_service_id}, replacements={'uuid': compute2_service_id},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[1]) actual=self.notifier.versioned_notifications[1])

View File

@ -16,7 +16,6 @@ from nova import context
from nova.tests import fixtures from nova.tests import fixtures
from nova.tests.functional.notification_sample_tests \ from nova.tests.functional.notification_sample_tests \
import notification_sample_base import notification_sample_base
from nova.tests.unit import fake_notifier
class TestVolumeUsageNotificationSample( class TestVolumeUsageNotificationSample(
@ -34,7 +33,7 @@ class TestVolumeUsageNotificationSample(
server = self._boot_a_server( server = self._boot_a_server(
extra_params={'networks': [{'port': self.neutron.port_1['id']}]}) extra_params={'networks': [{'port': self.neutron.port_1['id']}]})
self._attach_volume_to_server(server, self.cinder.SWAP_OLD_VOL) self._attach_volume_to_server(server, self.cinder.SWAP_OLD_VOL)
fake_notifier.reset() self.notifier.reset()
return server return server
@ -47,19 +46,19 @@ class TestVolumeUsageNotificationSample(
# 0. volume_detach-start # 0. volume_detach-start
# 1. volume.usage # 1. volume.usage
# 2. volume_detach-end # 2. volume_detach-end
self.assertEqual(3, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(3, len(self.notifier.versioned_notifications))
self._verify_notification( self._verify_notification(
'volume-usage', 'volume-usage',
replacements={'instance_uuid': server['id']}, replacements={'instance_uuid': server['id']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[1]) actual=self.notifier.versioned_notifications[1])
def test_instance_poll_volume_usage(self): def test_instance_poll_volume_usage(self):
server = self._setup_server_with_volume_attached() server = self._setup_server_with_volume_attached()
self.compute.manager._poll_volume_usage(context.get_admin_context()) self.compute.manager._poll_volume_usage(context.get_admin_context())
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self._verify_notification( self._verify_notification(
'volume-usage', 'volume-usage',
replacements={'instance_uuid': server['id']}, replacements={'instance_uuid': server['id']},
actual=fake_notifier.VERSIONED_NOTIFICATIONS[0]) actual=self.notifier.versioned_notifications[0])

View File

@ -91,8 +91,8 @@ class FailedEvacuateStateTests(test.TestCase,
host=self.hostname, binary='nova-compute')[0]['id'] host=self.hostname, binary='nova-compute')[0]['id']
self.api.put_service(compute_id, {'forced_down': 'true'}) self.api.put_service(compute_id, {'forced_down': 'true'})
fake_notifier.stub_notifier(self) self.notifier = self.useFixture(
fake_notifier.reset() nova_fixtures.NotificationFixture(self))
# Initiate evacuation # Initiate evacuation
self._evacuate_server( self._evacuate_server(

View File

@ -16,7 +16,6 @@ from nova.tests import fixtures as nova_fixtures
from nova.tests.functional import fixtures as func_fixtures from nova.tests.functional import fixtures as func_fixtures
from nova.tests.functional import integrated_helpers from nova.tests.functional import integrated_helpers
from nova.tests.unit import fake_network from nova.tests.unit import fake_network
from nova.tests.unit import fake_notifier
class TestParallelEvacuationWithServerGroup( class TestParallelEvacuationWithServerGroup(
@ -47,8 +46,8 @@ class TestParallelEvacuationWithServerGroup(
# 2.14 is needed for evacuate without onSharedStorage flag # 2.14 is needed for evacuate without onSharedStorage flag
self.api.microversion = '2.14' self.api.microversion = '2.14'
fake_notifier.stub_notifier(self) self.notifier = self.useFixture(
self.addCleanup(fake_notifier.reset) nova_fixtures.NotificationFixture(self))
# the image fake backend needed for image discovery # the image fake backend needed for image discovery
self.useFixture(nova_fixtures.GlanceFixture(self)) self.useFixture(nova_fixtures.GlanceFixture(self))
@ -77,7 +76,7 @@ class TestParallelEvacuationWithServerGroup(
# validation # validation
if instance.host == 'host1': if instance.host == 'host1':
# wait for the other instance rebuild to start # wait for the other instance rebuild to start
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.rebuild.start', n_events=1) 'instance.rebuild.start', n_events=1)
original_rebuild(self_, context, instance, *args, **kwargs) original_rebuild(self_, context, instance, *args, **kwargs)
@ -127,7 +126,7 @@ class TestParallelEvacuationWithServerGroup(
# NOTE(mdbooth): We only get 1 rebuild.start notification here because # NOTE(mdbooth): We only get 1 rebuild.start notification here because
# we validate server group policy (and therefore fail) before emitting # we validate server group policy (and therefore fail) before emitting
# rebuild.start. # rebuild.start.
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.rebuild.start', n_events=1) 'instance.rebuild.start', n_events=1)
server1 = self._wait_for_server_parameter( server1 = self._wait_for_server_parameter(
server1, {'OS-EXT-STS:task_state': None}) server1, {'OS-EXT-STS:task_state': None})

View File

@ -16,7 +16,6 @@ from nova.tests import fixtures as nova_fixtures
from nova.tests.functional import fixtures as func_fixtures from nova.tests.functional import fixtures as func_fixtures
from nova.tests.functional import integrated_helpers from nova.tests.functional import integrated_helpers
from nova.tests.unit import fake_network from nova.tests.unit import fake_network
from nova.tests.unit import fake_notifier
class TestEvacuationWithSourceReturningDuringRebuild( class TestEvacuationWithSourceReturningDuringRebuild(
@ -63,8 +62,6 @@ class TestEvacuationWithSourceReturningDuringRebuild(
self.image_id = self.api.get_images()[0]['id'] self.image_id = self.api.get_images()[0]['id']
self.flavor_id = self.api.get_flavors()[0]['id'] self.flavor_id = self.api.get_flavors()[0]['id']
self.addCleanup(fake_notifier.reset)
# Stub out rebuild with a slower method allowing the src compute to be # Stub out rebuild with a slower method allowing the src compute to be
# restarted once the migration hits pre-migrating after claiming # restarted once the migration hits pre-migrating after claiming
# resources on the dest. # resources on the dest.

View File

@ -20,7 +20,6 @@ from nova import test
from nova.tests import fixtures as nova_fixtures from nova.tests import fixtures as nova_fixtures
from nova.tests.functional import fixtures as func_fixtures from nova.tests.functional import fixtures as func_fixtures
from nova.tests.functional import integrated_helpers from nova.tests.functional import integrated_helpers
from nova.tests.unit import fake_notifier
class RescheduleBuildAvailabilityZoneUpCall( class RescheduleBuildAvailabilityZoneUpCall(
@ -51,8 +50,8 @@ class RescheduleBuildAvailabilityZoneUpCall(
self.start_service('compute', host='host1') self.start_service('compute', host='host1')
self.start_service('compute', host='host2') self.start_service('compute', host='host2')
# Listen for notifications. # Listen for notifications.
fake_notifier.stub_notifier(self) self.notifier = self.useFixture(
self.addCleanup(fake_notifier.reset) nova_fixtures.NotificationFixture(self))
def test_server_create_reschedule_blocked_az_up_call(self): def test_server_create_reschedule_blocked_az_up_call(self):
self.flags(default_availability_zone='us-central') self.flags(default_availability_zone='us-central')
@ -80,7 +79,7 @@ class RescheduleBuildAvailabilityZoneUpCall(
# Because we poisoned AggregateList.get_by_host after hitting the # Because we poisoned AggregateList.get_by_host after hitting the
# compute service we have to wait for the notification that the build # compute service we have to wait for the notification that the build
# is complete and then stop the mock so we can use the API again. # is complete and then stop the mock so we can use the API again.
fake_notifier.wait_for_versioned_notifications('instance.create.end') self.notifier.wait_for_versioned_notifications('instance.create.end')
# Note that we use stopall here because we actually called # Note that we use stopall here because we actually called
# build_and_run_instance twice so we have more than one instance of # build_and_run_instance twice so we have more than one instance of
# the mock that needs to be stopped. # the mock that needs to be stopped.
@ -116,8 +115,8 @@ class RescheduleMigrateAvailabilityZoneUpCall(
self.start_service('compute', host='host2') self.start_service('compute', host='host2')
self.start_service('compute', host='host3') self.start_service('compute', host='host3')
# Listen for notifications. # Listen for notifications.
fake_notifier.stub_notifier(self) self.notifier = self.useFixture(
self.addCleanup(fake_notifier.reset) nova_fixtures.NotificationFixture(self))
def test_migrate_reschedule_blocked_az_up_call(self): def test_migrate_reschedule_blocked_az_up_call(self):
self.flags(default_availability_zone='us-central') self.flags(default_availability_zone='us-central')
@ -153,7 +152,7 @@ class RescheduleMigrateAvailabilityZoneUpCall(
# Because we poisoned AggregateList.get_by_host after hitting the # Because we poisoned AggregateList.get_by_host after hitting the
# compute service we have to wait for the notification that the resize # compute service we have to wait for the notification that the resize
# is complete and then stop the mock so we can use the API again. # is complete and then stop the mock so we can use the API again.
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.resize_finish.end') 'instance.resize_finish.end')
# Note that we use stopall here because we actually called _prep_resize # Note that we use stopall here because we actually called _prep_resize
# twice so we have more than one instance of the mock that needs to be # twice so we have more than one instance of the mock that needs to be

View File

@ -13,7 +13,6 @@
from nova import test from nova import test
from nova.tests import fixtures as nova_fixtures from nova.tests import fixtures as nova_fixtures
from nova.tests.functional import integrated_helpers from nova.tests.functional import integrated_helpers
from nova.tests.unit import fake_notifier
class ShowErrorServerWithTags(test.TestCase, class ShowErrorServerWithTags(test.TestCase,
@ -41,8 +40,6 @@ class ShowErrorServerWithTags(test.TestCase,
self.api.microversion = 'latest' self.api.microversion = 'latest'
self.addCleanup(fake_notifier.reset)
def _create_error_server(self): def _create_error_server(self):
server = self.api.post_server({ server = self.api.post_server({
'server': { 'server': {

View File

@ -14,7 +14,6 @@ from nova import test
from nova.tests import fixtures as nova_fixtures from nova.tests import fixtures as nova_fixtures
from nova.tests.functional import fixtures as func_fixtures from nova.tests.functional import fixtures as func_fixtures
from nova.tests.functional import integrated_helpers from nova.tests.functional import integrated_helpers
from nova.tests.unit import fake_notifier
class RegressionTest1835822( class RegressionTest1835822(
@ -39,8 +38,8 @@ class RegressionTest1835822(
self.image_ref_0 = images[0]['id'] self.image_ref_0 = images[0]['id']
self.image_ref_1 = images[1]['id'] self.image_ref_1 = images[1]['id']
fake_notifier.stub_notifier(self) self.notifier = self.useFixture(
self.addCleanup(fake_notifier.reset) nova_fixtures.NotificationFixture(self))
def _create_active_server(self, server_args=None): def _create_active_server(self, server_args=None):
basic_server = { basic_server = {

View File

@ -15,7 +15,6 @@ import nova.compute
from nova import exception from nova import exception
from nova.tests import fixtures as nova_fixtures from nova.tests import fixtures as nova_fixtures
from nova.tests.functional import integrated_helpers from nova.tests.functional import integrated_helpers
from nova.tests.unit import fake_notifier
class PinnedComputeRpcTests(integrated_helpers.ProviderUsageBaseTestCase): class PinnedComputeRpcTests(integrated_helpers.ProviderUsageBaseTestCase):
@ -28,8 +27,6 @@ class PinnedComputeRpcTests(integrated_helpers.ProviderUsageBaseTestCase):
self.useFixture(nova_fixtures.HostNameWeigherFixture()) self.useFixture(nova_fixtures.HostNameWeigherFixture())
super(PinnedComputeRpcTests, self).setUp() super(PinnedComputeRpcTests, self).setUp()
fake_notifier.stub_notifier(self)
self.addCleanup(fake_notifier.reset)
self.compute1 = self._start_compute(host='host1') self.compute1 = self._start_compute(host='host1')
self.compute2 = self._start_compute(host='host2') self.compute2 = self._start_compute(host='host2')

View File

@ -15,7 +15,6 @@
from nova import context from nova import context
from nova import objects from nova import objects
from nova.tests.functional import integrated_helpers from nova.tests.functional import integrated_helpers
from nova.tests.unit import fake_notifier
class RebuildWithKeypairTestCase(integrated_helpers._IntegratedTestBase): class RebuildWithKeypairTestCase(integrated_helpers._IntegratedTestBase):
@ -59,7 +58,7 @@ class RebuildWithKeypairTestCase(integrated_helpers._IntegratedTestBase):
}, },
} }
self.api.api_post('servers/%s/action' % server['id'], body) self.api.api_post('servers/%s/action' % server['id'], body)
fake_notifier.wait_for_versioned_notifications('instance.rebuild.end') self.notifier.wait_for_versioned_notifications('instance.rebuild.end')
self._wait_for_state_change(server, 'ACTIVE') self._wait_for_state_change(server, 'ACTIVE')
# Check keypairs changed # Check keypairs changed

View File

@ -16,7 +16,6 @@ from nova import test
from nova.tests import fixtures as nova_fixtures from nova.tests import fixtures as nova_fixtures
from nova.tests.functional import fixtures as func_fixtures from nova.tests.functional import fixtures as func_fixtures
from nova.tests.functional import integrated_helpers from nova.tests.functional import integrated_helpers
from nova.tests.unit import fake_notifier
class UnshelveNeutronErrorTest( class UnshelveNeutronErrorTest(
@ -34,8 +33,8 @@ class UnshelveNeutronErrorTest(
self.api = self.useFixture(nova_fixtures.OSAPIFixture( self.api = self.useFixture(nova_fixtures.OSAPIFixture(
api_version='v2.1')).admin_api api_version='v2.1')).admin_api
self.api.microversion = 'latest' self.api.microversion = 'latest'
fake_notifier.stub_notifier(self) self.notifier = self.useFixture(
self.addCleanup(fake_notifier.reset) nova_fixtures.NotificationFixture(self))
self.start_service('conductor') self.start_service('conductor')
self.start_service('scheduler') self.start_service('scheduler')
@ -73,7 +72,7 @@ class UnshelveNeutronErrorTest(
reason='test') reason='test')
req = {'unshelve': None} req = {'unshelve': None}
self.api.post_server_action(server['id'], req) self.api.post_server_action(server['id'], req)
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.unshelve.start') 'instance.unshelve.start')
self._wait_for_server_parameter( self._wait_for_server_parameter(
server, server,

View File

@ -17,7 +17,6 @@ from nova import context as nova_context
from nova import objects from nova import objects
from nova import test from nova import test
from nova.tests.functional import integrated_helpers from nova.tests.functional import integrated_helpers
from nova.tests.unit import fake_notifier
class ColdMigrationDisallowSameHost( class ColdMigrationDisallowSameHost(
@ -34,7 +33,7 @@ class ColdMigrationDisallowSameHost(
self._start_compute('host1') self._start_compute('host1')
def _wait_for_migrate_no_valid_host(self, error='NoValidHost'): def _wait_for_migrate_no_valid_host(self, error='NoValidHost'):
event = fake_notifier.wait_for_versioned_notifications( event = self.notifier.wait_for_versioned_notifications(
'compute_task.migrate_server.error')[0] 'compute_task.migrate_server.error')[0]
self.assertEqual(error, self.assertEqual(error,
event['payload']['nova_object.data']['reason'][ event['payload']['nova_object.data']['reason'][

View File

@ -31,7 +31,6 @@ from nova.scheduler import weights
from nova import test from nova import test
from nova.tests import fixtures as nova_fixtures from nova.tests import fixtures as nova_fixtures
from nova.tests.functional import integrated_helpers from nova.tests.functional import integrated_helpers
from nova.tests.unit import fake_notifier
from nova import utils from nova import utils
CONF = conf.CONF CONF = conf.CONF
@ -421,7 +420,7 @@ class TestMultiCellMigrate(integrated_helpers.ProviderUsageBaseTestCase):
body = {'volumeAttachment': {'volumeId': volume_id}} body = {'volumeAttachment': {'volumeId': volume_id}}
self.api.api_post( self.api.api_post(
'/servers/%s/os-volume_attachments' % server_id, body) '/servers/%s/os-volume_attachments' % server_id, body)
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.volume_attach.end') 'instance.volume_attach.end')
def _detach_volume_from_server(self, server_id, volume_id): def _detach_volume_from_server(self, server_id, volume_id):
@ -430,7 +429,7 @@ class TestMultiCellMigrate(integrated_helpers.ProviderUsageBaseTestCase):
""" """
self.api.api_delete( self.api.api_delete(
'/servers/%s/os-volume_attachments/%s' % (server_id, volume_id)) '/servers/%s/os-volume_attachments/%s' % (server_id, volume_id))
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.volume_detach.end') 'instance.volume_detach.end')
def assert_volume_is_attached(self, server_id, volume_id): def assert_volume_is_attached(self, server_id, volume_id):
@ -453,13 +452,13 @@ class TestMultiCellMigrate(integrated_helpers.ProviderUsageBaseTestCase):
# We should have gotten only two notifications: # We should have gotten only two notifications:
# 1. instance.resize_confirm.start # 1. instance.resize_confirm.start
# 2. instance.resize_confirm.end # 2. instance.resize_confirm.end
self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS), self.assertEqual(2, len(self.notifier.versioned_notifications),
'Unexpected number of versioned notifications for ' 'Unexpected number of versioned notifications for '
'cross-cell resize confirm: %s' % 'cross-cell resize confirm: %s' %
fake_notifier.VERSIONED_NOTIFICATIONS) self.notifier.versioned_notifications)
start = fake_notifier.VERSIONED_NOTIFICATIONS[0]['event_type'] start = self.notifier.versioned_notifications[0]['event_type']
self.assertEqual('instance.resize_confirm.start', start) self.assertEqual('instance.resize_confirm.start', start)
end = fake_notifier.VERSIONED_NOTIFICATIONS[1]['event_type'] end = self.notifier.versioned_notifications[1]['event_type']
self.assertEqual('instance.resize_confirm.end', end) self.assertEqual('instance.resize_confirm.end', end)
def delete_server_and_assert_cleanup(self, server, def delete_server_and_assert_cleanup(self, server,
@ -538,7 +537,7 @@ class TestMultiCellMigrate(integrated_helpers.ProviderUsageBaseTestCase):
self._attach_volume_to_server(server['id'], uuids.fake_volume_id) self._attach_volume_to_server(server['id'], uuids.fake_volume_id)
# Reset the fake notifier so we only check confirmation notifications. # Reset the fake notifier so we only check confirmation notifications.
fake_notifier.reset() self.notifier.reset()
# Confirm the resize and check all the things. The instance and its # Confirm the resize and check all the things. The instance and its
# related records should be gone from the source cell database; the # related records should be gone from the source cell database; the
@ -634,15 +633,15 @@ class TestMultiCellMigrate(integrated_helpers.ProviderUsageBaseTestCase):
# 1. instance.resize_revert.start (from target compute host) # 1. instance.resize_revert.start (from target compute host)
# 2. instance.exists (from target compute host) # 2. instance.exists (from target compute host)
# 3. instance.resize_revert.end (from source compute host) # 3. instance.resize_revert.end (from source compute host)
self.assertEqual(3, len(fake_notifier.VERSIONED_NOTIFICATIONS), self.assertEqual(3, len(self.notifier.versioned_notifications),
'Unexpected number of versioned notifications for ' 'Unexpected number of versioned notifications for '
'cross-cell resize revert: %s' % 'cross-cell resize revert: %s' %
fake_notifier.VERSIONED_NOTIFICATIONS) self.notifier.versioned_notifications)
start = fake_notifier.VERSIONED_NOTIFICATIONS[0]['event_type'] start = self.notifier.versioned_notifications[0]['event_type']
self.assertEqual('instance.resize_revert.start', start) self.assertEqual('instance.resize_revert.start', start)
exists = fake_notifier.VERSIONED_NOTIFICATIONS[1]['event_type'] exists = self.notifier.versioned_notifications[1]['event_type']
self.assertEqual('instance.exists', exists) self.assertEqual('instance.exists', exists)
end = fake_notifier.VERSIONED_NOTIFICATIONS[2]['event_type'] end = self.notifier.versioned_notifications[2]['event_type']
self.assertEqual('instance.resize_revert.end', end) self.assertEqual('instance.resize_revert.end', end)
def assert_resize_revert_actions(self, server, source_host, dest_host): def assert_resize_revert_actions(self, server, source_host, dest_host):
@ -703,7 +702,7 @@ class TestMultiCellMigrate(integrated_helpers.ProviderUsageBaseTestCase):
self._attach_volume_to_server(server['id'], uuids.fake_volume_id) self._attach_volume_to_server(server['id'], uuids.fake_volume_id)
# Reset the fake notifier so we only check revert notifications. # Reset the fake notifier so we only check revert notifications.
fake_notifier.reset() self.notifier.reset()
# Revert the resize. The server should be re-spawned in the source # Revert the resize. The server should be re-spawned in the source
# cell and removed from the target cell. The allocations # cell and removed from the target cell. The allocations
@ -718,7 +717,7 @@ class TestMultiCellMigrate(integrated_helpers.ProviderUsageBaseTestCase):
# instance.resize_revert.end notification because the migration.status # instance.resize_revert.end notification because the migration.status
# is changed to "reverted" *after* the instance status is changed to # is changed to "reverted" *after* the instance status is changed to
# ACTIVE. # ACTIVE.
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.resize_revert.end') 'instance.resize_revert.end')
migrations = self.api.api_get( migrations = self.api.api_get(
'/os-migrations?instance_uuid=%s' % server['id'] '/os-migrations?instance_uuid=%s' % server['id']
@ -799,7 +798,7 @@ class TestMultiCellMigrate(integrated_helpers.ProviderUsageBaseTestCase):
self.api.post_server_action(server['id'], {'revertResize': None}) self.api.post_server_action(server['id'], {'revertResize': None})
server = self._wait_for_state_change(server, 'ACTIVE') server = self._wait_for_state_change(server, 'ACTIVE')
self._wait_for_migration_status(server, ['reverted']) self._wait_for_migration_status(server, ['reverted'])
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.resize_revert.end') 'instance.resize_revert.end')
self.assert_volume_is_detached(server['id'], uuids.fake_volume_id) self.assert_volume_is_detached(server['id'], uuids.fake_volume_id)
# Delete the server and make sure we did not leak anything. # Delete the server and make sure we did not leak anything.
@ -980,7 +979,7 @@ class TestMultiCellMigrate(integrated_helpers.ProviderUsageBaseTestCase):
# _poll_unconfirmed_resizes periodic task and run it on the target # _poll_unconfirmed_resizes periodic task and run it on the target
# compute service. # compute service.
# Reset the fake notifier so we only check confirmation notifications. # Reset the fake notifier so we only check confirmation notifications.
fake_notifier.reset() self.notifier.reset()
self.flags(resize_confirm_window=1) self.flags(resize_confirm_window=1)
# Stub timeutils so the DB API query finds the unconfirmed migration. # Stub timeutils so the DB API query finds the unconfirmed migration.
future = timeutils.utcnow() + datetime.timedelta(hours=1) future = timeutils.utcnow() + datetime.timedelta(hours=1)
@ -1071,7 +1070,7 @@ class TestMultiCellMigrate(integrated_helpers.ProviderUsageBaseTestCase):
self.assertEqual(4, server['OS-EXT-STS:power_state'], self.assertEqual(4, server['OS-EXT-STS:power_state'],
"Unexpected power state after revertResize.") "Unexpected power state after revertResize.")
self._wait_for_migration_status(server, ['reverted']) self._wait_for_migration_status(server, ['reverted'])
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.resize_revert.end') 'instance.resize_revert.end')
# Now try cold-migrating to cell2 to make sure there is no # Now try cold-migrating to cell2 to make sure there is no
@ -1146,7 +1145,7 @@ class TestMultiCellMigrate(integrated_helpers.ProviderUsageBaseTestCase):
# to wait for something which happens after that, which is the # to wait for something which happens after that, which is the
# ComputeTaskManager._cold_migrate method sending the # ComputeTaskManager._cold_migrate method sending the
# compute_task.migrate_server.error event. # compute_task.migrate_server.error event.
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'compute_task.migrate_server.error') 'compute_task.migrate_server.error')
mig_uuid = self.get_migration_uuid_for_instance(server['id']) mig_uuid = self.get_migration_uuid_for_instance(server['id'])
mig_allocs = self._get_allocations_by_server_uuid(mig_uuid) mig_allocs = self._get_allocations_by_server_uuid(mig_uuid)

View File

@ -14,7 +14,6 @@ from nova.compute import instance_actions
from nova.compute import power_state from nova.compute import power_state
from nova.compute import vm_states from nova.compute import vm_states
from nova.tests.functional import integrated_helpers from nova.tests.functional import integrated_helpers
from nova.tests.unit import fake_notifier
class ServerExternalEventsTestV276( class ServerExternalEventsTestV276(
@ -64,9 +63,9 @@ class ServerExternalEventsTestV276(
self.assertIn('compute_power_update', events_by_name) self.assertIn('compute_power_update', events_by_name)
self.assertEqual('Success', detail['events'][0]['result']) self.assertEqual('Success', detail['events'][0]['result'])
# Test if notifications were emitted. # Test if notifications were emitted.
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.power_off.start') 'instance.power_off.start')
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.power_off.end') 'instance.power_off.end')
# Checking POWER_ON # Checking POWER_ON
@ -90,7 +89,7 @@ class ServerExternalEventsTestV276(
self.assertIn('compute_power_update', events_by_name) self.assertIn('compute_power_update', events_by_name)
self.assertEqual('Success', detail['events'][0]['result']) self.assertEqual('Success', detail['events'][0]['result'])
# Test if notifications were emitted. # Test if notifications were emitted.
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.power_on.start') 'instance.power_on.start')
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.power_on.end') 'instance.power_on.end')

View File

@ -49,7 +49,6 @@ from nova.tests.functional.api import client
from nova.tests.functional import integrated_helpers from nova.tests.functional import integrated_helpers
from nova.tests.unit.api.openstack import fakes from nova.tests.unit.api.openstack import fakes
from nova.tests.unit import fake_block_device from nova.tests.unit import fake_block_device
from nova.tests.unit import fake_notifier
from nova.tests.unit import fake_requests from nova.tests.unit import fake_requests
from nova.tests.unit.objects import test_instance_info_cache from nova.tests.unit.objects import test_instance_info_cache
from nova import utils as nova_utils from nova import utils as nova_utils
@ -1629,8 +1628,6 @@ class ServerMovingTests(integrated_helpers.ProviderUsageBaseTestCase):
def setUp(self): def setUp(self):
super(ServerMovingTests, self).setUp() super(ServerMovingTests, self).setUp()
fake_notifier.stub_notifier(self)
self.addCleanup(fake_notifier.reset)
self.compute1 = self._start_compute(host='host1') self.compute1 = self._start_compute(host='host1')
self.compute2 = self._start_compute(host='host2') self.compute2 = self._start_compute(host='host2')
@ -2036,7 +2033,7 @@ class ServerMovingTests(integrated_helpers.ProviderUsageBaseTestCase):
server, expected_state='ERROR', expected_host=source_hostname, server, expected_state='ERROR', expected_host=source_hostname,
expected_migration_status='error') expected_migration_status='error')
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'compute_task.rebuild_server.error') 'compute_task.rebuild_server.error')
self._run_periodics() self._run_periodics()
@ -3999,11 +3996,9 @@ class VolumeBackedServerTest(integrated_helpers.ProviderUsageBaseTestCase):
# Now shelve and unshelve the server to make sure root_gb DISK_GB # Now shelve and unshelve the server to make sure root_gb DISK_GB
# isn't reported for allocations after we unshelve the server. # isn't reported for allocations after we unshelve the server.
fake_notifier.stub_notifier(self)
self.addCleanup(fake_notifier.reset)
self.api.post_server_action(server['id'], {'shelve': None}) self.api.post_server_action(server['id'], {'shelve': None})
self._wait_for_state_change(server, 'SHELVED_OFFLOADED') self._wait_for_state_change(server, 'SHELVED_OFFLOADED')
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.shelve_offload.end') 'instance.shelve_offload.end')
# The server should not have any allocations since it's not currently # The server should not have any allocations since it's not currently
# hosted on any compute service. # hosted on any compute service.
@ -4783,7 +4778,7 @@ class ConsumerGenerationConflictTest(
(migrations[0]['uuid'], server['id']), (migrations[0]['uuid'], server['id']),
self.stdlog.logger.output) self.stdlog.logger.output)
self._delete_server(server) self._delete_server(server)
fake_notifier.wait_for_versioned_notifications('instance.delete.end') self.notifier.wait_for_versioned_notifications('instance.delete.end')
allocations = self._get_allocations_by_server_uuid( allocations = self._get_allocations_by_server_uuid(
migrations[0]['uuid']) migrations[0]['uuid'])
@ -4831,7 +4826,7 @@ class ConsumerGenerationConflictTest(
(migrations[0]['uuid'], server['id']), (migrations[0]['uuid'], server['id']),
self.stdlog.logger.output) self.stdlog.logger.output)
self._delete_server(server) self._delete_server(server)
fake_notifier.wait_for_versioned_notifications('instance.delete.end') self.notifier.wait_for_versioned_notifications('instance.delete.end')
allocations = self._get_allocations_by_server_uuid( allocations = self._get_allocations_by_server_uuid(
migrations[0]['uuid']) migrations[0]['uuid'])
@ -4882,7 +4877,7 @@ class ConsumerGenerationConflictTest(
(migrations[0]['uuid'], server['id']), (migrations[0]['uuid'], server['id']),
self.stdlog.logger.output) self.stdlog.logger.output)
self._delete_server(server) self._delete_server(server)
fake_notifier.wait_for_versioned_notifications('instance.delete.end') self.notifier.wait_for_versioned_notifications('instance.delete.end')
allocations = self._get_allocations_by_server_uuid( allocations = self._get_allocations_by_server_uuid(
migrations[0]['uuid']) migrations[0]['uuid'])
@ -4947,9 +4942,6 @@ class ConsumerGenerationConflictTest(
server = self._boot_and_check_allocations( server = self._boot_and_check_allocations(
self.flavor, source_hostname) self.flavor, source_hostname)
fake_notifier.stub_notifier(self)
self.addCleanup(fake_notifier.reset)
orig_put = adapter.Adapter.put orig_put = adapter.Adapter.put
rsp = fake_requests.FakeResponse( rsp = fake_requests.FakeResponse(
@ -4991,7 +4983,7 @@ class ConsumerGenerationConflictTest(
{'OS-EXT-SRV-ATTR:host': dest_hostname, {'OS-EXT-SRV-ATTR:host': dest_hostname,
'status': 'ERROR'}) 'status': 'ERROR'})
self._wait_for_migration_status(server, ['error']) self._wait_for_migration_status(server, ['error'])
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.live_migration_post.end') 'instance.live_migration_post.end')
# 1 claim on destination, 1 normal delete on dest that fails, # 1 claim on destination, 1 normal delete on dest that fails,
@ -5018,7 +5010,7 @@ class ConsumerGenerationConflictTest(
self.stdlog.logger.output) self.stdlog.logger.output)
self._delete_server(server) self._delete_server(server)
fake_notifier.wait_for_versioned_notifications('instance.delete.end') self.notifier.wait_for_versioned_notifications('instance.delete.end')
self.assertFlavorMatchesAllocation(self.flavor, migration_uuid, self.assertFlavorMatchesAllocation(self.flavor, migration_uuid,
source_rp_uuid) source_rp_uuid)
@ -6462,7 +6454,7 @@ class PortResourceRequestBasedSchedulingTest(
self.api.detach_interface( self.api.detach_interface(
server['id'], self.neutron.port_with_resource_request['id']) server['id'], self.neutron.port_with_resource_request['id'])
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.interface_detach.end') 'instance.interface_detach.end')
updated_port = self.neutron.show_port( updated_port = self.neutron.show_port(
@ -7018,9 +7010,9 @@ class ServerMoveWithPortResourceRequestTest(
self._wait_for_action_fail_completion( self._wait_for_action_fail_completion(
server, instance_actions.MIGRATE, 'compute_prep_resize') server, instance_actions.MIGRATE, 'compute_prep_resize')
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.resize_prep.end') 'instance.resize_prep.end')
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'compute.exception') 'compute.exception')
migration_uuid = self.get_migration_uuid_for_instance(server['id']) migration_uuid = self.get_migration_uuid_for_instance(server['id'])
@ -7275,9 +7267,9 @@ class ServerMoveWithPortResourceRequestTest(
self._wait_for_action_fail_completion( self._wait_for_action_fail_completion(
server, instance_actions.EVACUATE, 'compute_rebuild_instance') server, instance_actions.EVACUATE, 'compute_rebuild_instance')
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.rebuild.error') 'instance.rebuild.error')
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'compute.exception') 'compute.exception')
# and the instance allocates from the source host # and the instance allocates from the source host
@ -7562,9 +7554,9 @@ class ServerMoveWithPortResourceRequestTest(
# Unshelve fails on host2 due to # Unshelve fails on host2 due to
# update_pci_request_spec_with_allocated_interface_name fails so the # update_pci_request_spec_with_allocated_interface_name fails so the
# instance goes back to shelve offloaded state # instance goes back to shelve offloaded state
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.unshelve.start') 'instance.unshelve.start')
error_notification = fake_notifier.wait_for_versioned_notifications( error_notification = self.notifier.wait_for_versioned_notifications(
'compute.exception')[0] 'compute.exception')[0]
self.assertEqual( self.assertEqual(
'UnexpectedResourceProviderNameForPCIRequest', 'UnexpectedResourceProviderNameForPCIRequest',
@ -7610,7 +7602,7 @@ class ServerMoveWithPortResourceRequestTest(
reason='test') reason='test')
req = {'unshelve': None} req = {'unshelve': None}
self.api.post_server_action(server['id'], req) self.api.post_server_action(server['id'], req)
fake_notifier.wait_for_versioned_notifications( self.notifier.wait_for_versioned_notifications(
'instance.unshelve.start') 'instance.unshelve.start')
self._wait_for_server_parameter( self._wait_for_server_parameter(
server, server,
@ -8188,7 +8180,7 @@ class AcceleratorServerOpsTest(AcceleratorServerBase):
{'rebuild': { {'rebuild': {
'imageRef': rebuild_image_ref, 'imageRef': rebuild_image_ref,
'OS-DCF:diskConfig': 'AUTO'}}) 'OS-DCF:diskConfig': 'AUTO'}})
fake_notifier.wait_for_versioned_notifications('instance.rebuild.end') self.notifier.wait_for_versioned_notifications('instance.rebuild.end')
self._wait_for_state_change(self.server, 'ACTIVE') self._wait_for_state_change(self.server, 'ACTIVE')
self._check_allocations_usage(self.server) self._check_allocations_usage(self.server)

View File

@ -149,8 +149,7 @@ class BaseTestCase(test.TestCase):
def setUp(self): def setUp(self):
super(BaseTestCase, self).setUp() super(BaseTestCase, self).setUp()
fake_notifier.stub_notifier(self) self.useFixture(fixtures.NotificationFixture(self))
self.addCleanup(fake_notifier.reset)
self.compute = compute_manager.ComputeManager() self.compute = compute_manager.ComputeManager()
# NOTE(gibi): this is a hack to make the fake virt driver use the nodes # NOTE(gibi): this is a hack to make the fake virt driver use the nodes

View File

@ -8328,8 +8328,7 @@ class ComputeManagerMigrationTestCase(test.NoDBTestCase,
def setUp(self): def setUp(self):
super(ComputeManagerMigrationTestCase, self).setUp() super(ComputeManagerMigrationTestCase, self).setUp()
fake_notifier.stub_notifier(self) self.notifier = self.useFixture(fixtures.NotificationFixture(self))
self.addCleanup(fake_notifier.reset)
self.flags(compute_driver='fake.SameHostColdMigrateDriver') self.flags(compute_driver='fake.SameHostColdMigrateDriver')
self.compute = manager.ComputeManager() self.compute = manager.ComputeManager()
self.context = context.RequestContext(fakes.FAKE_USER_ID, self.context = context.RequestContext(fakes.FAKE_USER_ID,
@ -10997,10 +10996,10 @@ class ComputeManagerMigrationTestCase(test.NoDBTestCase,
# There would really be three notifications but because we mocked out # There would really be three notifications but because we mocked out
# _send_prep_resize_notifications there is just the one error # _send_prep_resize_notifications there is just the one error
# notification from the wrap_exception decorator. # notification from the wrap_exception decorator.
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self.assertEqual( self.assertEqual(
'compute.%s' % fields.NotificationAction.EXCEPTION, 'compute.%s' % fields.NotificationAction.EXCEPTION,
fake_notifier.VERSIONED_NOTIFICATIONS[0]['event_type']) self.notifier.versioned_notifications[0]['event_type'])
@mock.patch('nova.scheduler.client.report.SchedulerReportClient.' @mock.patch('nova.scheduler.client.report.SchedulerReportClient.'
'get_allocs_for_consumer') 'get_allocs_for_consumer')
@ -11046,10 +11045,10 @@ class ComputeManagerMigrationTestCase(test.NoDBTestCase,
# There would really be three notifications but because we mocked out # There would really be three notifications but because we mocked out
# _send_prep_resize_notifications there is just the one error # _send_prep_resize_notifications there is just the one error
# notification from the wrap_exception decorator. # notification from the wrap_exception decorator.
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self.assertEqual( self.assertEqual(
'compute.%s' % fields.NotificationAction.EXCEPTION, 'compute.%s' % fields.NotificationAction.EXCEPTION,
fake_notifier.VERSIONED_NOTIFICATIONS[0]['event_type']) self.notifier.versioned_notifications[0]['event_type'])
def test_snapshot_for_resize(self): def test_snapshot_for_resize(self):
"""Happy path test for _snapshot_for_resize.""" """Happy path test for _snapshot_for_resize."""
@ -11237,10 +11236,10 @@ class ComputeManagerMigrationTestCase(test.NoDBTestCase,
add_fault.assert_called_once_with( add_fault.assert_called_once_with(
self.context, self.instance, wrapped_exc, mock.ANY) self.context, self.instance, wrapped_exc, mock.ANY)
# Assert wrap_exception is called. # Assert wrap_exception is called.
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self.assertEqual( self.assertEqual(
'compute.%s' % fields.NotificationAction.EXCEPTION, 'compute.%s' % fields.NotificationAction.EXCEPTION,
fake_notifier.VERSIONED_NOTIFICATIONS[0]['event_type']) self.notifier.versioned_notifications[0]['event_type'])
# Assert errors_out_migration is called. # Assert errors_out_migration is called.
self.assertEqual('error', self.migration.status) self.assertEqual('error', self.migration.status)
self.migration.save.assert_called_once_with() self.migration.save.assert_called_once_with()
@ -11272,10 +11271,10 @@ class ComputeManagerMigrationTestCase(test.NoDBTestCase,
add_fault.assert_called_once_with( add_fault.assert_called_once_with(
self.context, self.instance, ex, mock.ANY) self.context, self.instance, ex, mock.ANY)
# Assert wrap_exception is called. # Assert wrap_exception is called.
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self.assertEqual( self.assertEqual(
'compute.%s' % fields.NotificationAction.EXCEPTION, 'compute.%s' % fields.NotificationAction.EXCEPTION,
fake_notifier.VERSIONED_NOTIFICATIONS[0]['event_type']) self.notifier.versioned_notifications[0]['event_type'])
# Assert errors_out_migration is called. # Assert errors_out_migration is called.
self.assertEqual('error', self.migration.status) self.assertEqual('error', self.migration.status)
self.migration.save.assert_called_once_with() self.migration.save.assert_called_once_with()
@ -11613,10 +11612,10 @@ class ComputeManagerMigrationTestCase(test.NoDBTestCase,
self.assertEqual('error', self.migration.status) self.assertEqual('error', self.migration.status)
self.migration.save.assert_called_once_with() self.migration.save.assert_called_once_with()
# Assert wrap_exception is called. # Assert wrap_exception is called.
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self.assertEqual( self.assertEqual(
'compute.%s' % fields.NotificationAction.EXCEPTION, 'compute.%s' % fields.NotificationAction.EXCEPTION,
fake_notifier.VERSIONED_NOTIFICATIONS[0]['event_type']) self.notifier.versioned_notifications[0]['event_type'])
@mock.patch('nova.objects.Instance.save') @mock.patch('nova.objects.Instance.save')
@mock.patch('nova.compute.manager.ComputeManager.' @mock.patch('nova.compute.manager.ComputeManager.'
@ -11651,10 +11650,10 @@ class ComputeManagerMigrationTestCase(test.NoDBTestCase,
self.assertEqual('error', self.migration.status) self.assertEqual('error', self.migration.status)
self.migration.save.assert_called_once_with() self.migration.save.assert_called_once_with()
# Assert wrap_exception is called. # Assert wrap_exception is called.
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self.assertEqual( self.assertEqual(
'compute.%s' % fields.NotificationAction.EXCEPTION, 'compute.%s' % fields.NotificationAction.EXCEPTION,
fake_notifier.VERSIONED_NOTIFICATIONS[0]['event_type']) self.notifier.versioned_notifications[0]['event_type'])
@mock.patch('nova.objects.Instance.get_bdms') @mock.patch('nova.objects.Instance.get_bdms')
@mock.patch('nova.compute.manager.ComputeManager.' @mock.patch('nova.compute.manager.ComputeManager.'
@ -11810,10 +11809,10 @@ class ComputeManagerMigrationTestCase(test.NoDBTestCase,
self.assertEqual('error', self.migration.status) self.assertEqual('error', self.migration.status)
self.migration.save.assert_called_once_with() self.migration.save.assert_called_once_with()
# Assert wrap_exception is called. # Assert wrap_exception is called.
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self.assertEqual( self.assertEqual(
'compute.%s' % fields.NotificationAction.EXCEPTION, 'compute.%s' % fields.NotificationAction.EXCEPTION,
fake_notifier.VERSIONED_NOTIFICATIONS[0]['event_type']) self.notifier.versioned_notifications[0]['event_type'])
# clear_events_for_instance should not have been called. # clear_events_for_instance should not have been called.
mock_clear_events.assert_not_called() mock_clear_events.assert_not_called()
@ -11945,10 +11944,10 @@ class ComputeManagerMigrationTestCase(test.NoDBTestCase,
mock_add_fault.assert_called_once_with( mock_add_fault.assert_called_once_with(
self.context, self.instance, error, test.MatchType(tuple)) self.context, self.instance, error, test.MatchType(tuple))
# wrap_exception should have sent an error notification. # wrap_exception should have sent an error notification.
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self.assertEqual( self.assertEqual(
'compute.%s' % fields.NotificationAction.EXCEPTION, 'compute.%s' % fields.NotificationAction.EXCEPTION,
fake_notifier.VERSIONED_NOTIFICATIONS[0]['event_type']) self.notifier.versioned_notifications[0]['event_type'])
# Now run it again but _finish_revert_snapshot_based_resize_at_source # Now run it again but _finish_revert_snapshot_based_resize_at_source
# will pass and _update_scheduler_instance_info will fail but not be # will pass and _update_scheduler_instance_info will fail but not be

View File

@ -43,6 +43,7 @@ from nova.objects import fields
from nova import rpc from nova import rpc
from nova.scheduler.client import report from nova.scheduler.client import report
from nova import test from nova import test
from nova.tests import fixtures
from nova.tests.unit import fake_block_device from nova.tests.unit import fake_block_device
from nova.tests.unit import fake_crypto from nova.tests.unit import fake_crypto
from nova.tests.unit import fake_instance from nova.tests.unit import fake_instance
@ -360,8 +361,7 @@ class UsageInfoTestCase(test.TestCase):
super(UsageInfoTestCase, self).setUp() super(UsageInfoTestCase, self).setUp()
fake_notifier.stub_notifier(self) self.notifier = self.useFixture(fixtures.NotificationFixture(self))
self.addCleanup(fake_notifier.reset)
self.flags(compute_driver='fake.FakeDriver') self.flags(compute_driver='fake.FakeDriver')
self.compute = manager.ComputeManager() self.compute = manager.ComputeManager()
@ -417,8 +417,8 @@ class UsageInfoTestCase(test.TestCase):
compute_utils.notify_usage_exists( compute_utils.notify_usage_exists(
rpc.get_notifier('compute'), self.context, instance, 'fake-host') rpc.get_notifier('compute'), self.context, instance, 'fake-host')
self.assertEqual(len(fake_notifier.VERSIONED_NOTIFICATIONS), 1) self.assertEqual(len(self.notifier.versioned_notifications), 1)
msg = fake_notifier.VERSIONED_NOTIFICATIONS[0] msg = self.notifier.versioned_notifications[0]
self.assertEqual(msg['priority'], 'INFO') self.assertEqual(msg['priority'], 'INFO')
self.assertEqual(msg['event_type'], 'instance.exists') self.assertEqual(msg['event_type'], 'instance.exists')
payload = msg['payload']['nova_object.data'] payload = msg['payload']['nova_object.data']
@ -493,8 +493,8 @@ class UsageInfoTestCase(test.TestCase):
phase='start', phase='start',
bdms=bdms) bdms=bdms)
self.assertEqual(len(fake_notifier.VERSIONED_NOTIFICATIONS), 1) self.assertEqual(len(self.notifier.versioned_notifications), 1)
notification = fake_notifier.VERSIONED_NOTIFICATIONS[0] notification = self.notifier.versioned_notifications[0]
self.assertEqual(notification['priority'], 'INFO') self.assertEqual(notification['priority'], 'INFO')
self.assertEqual(notification['event_type'], 'instance.delete.start') self.assertEqual(notification['event_type'], 'instance.delete.start')
@ -539,8 +539,8 @@ class UsageInfoTestCase(test.TestCase):
host='fake-compute', host='fake-compute',
phase='start') phase='start')
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
notification = fake_notifier.VERSIONED_NOTIFICATIONS[0] notification = self.notifier.versioned_notifications[0]
self.assertEqual('INFO', notification['priority']) self.assertEqual('INFO', notification['priority'])
self.assertEqual('instance.create.start', notification['event_type']) self.assertEqual('instance.create.start', notification['event_type'])
@ -582,8 +582,8 @@ class UsageInfoTestCase(test.TestCase):
host='fake-compute', host='fake-compute',
phase='start') phase='start')
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
notification = fake_notifier.VERSIONED_NOTIFICATIONS[0] notification = self.notifier.versioned_notifications[0]
self.assertEqual('INFO', notification['priority']) self.assertEqual('INFO', notification['priority'])
self.assertEqual('instance.create.start', notification['event_type']) self.assertEqual('instance.create.start', notification['event_type'])
@ -621,8 +621,8 @@ class UsageInfoTestCase(test.TestCase):
host='fake-compute', host='fake-compute',
phase='start') phase='start')
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
notification = fake_notifier.VERSIONED_NOTIFICATIONS[0] notification = self.notifier.versioned_notifications[0]
self.assertEqual('INFO', notification['priority']) self.assertEqual('INFO', notification['priority'])
self.assertEqual('instance.create.start', notification['event_type']) self.assertEqual('instance.create.start', notification['event_type'])
@ -656,8 +656,8 @@ class UsageInfoTestCase(test.TestCase):
fields.NotificationPhase.START, fields.NotificationPhase.START,
uuids.old_volume_id, uuids.new_volume_id) uuids.old_volume_id, uuids.new_volume_id)
self.assertEqual(len(fake_notifier.VERSIONED_NOTIFICATIONS), 1) self.assertEqual(len(self.notifier.versioned_notifications), 1)
notification = fake_notifier.VERSIONED_NOTIFICATIONS[0] notification = self.notifier.versioned_notifications[0]
self.assertEqual('INFO', notification['priority']) self.assertEqual('INFO', notification['priority'])
self.assertEqual('instance.%s.%s' % self.assertEqual('instance.%s.%s' %
@ -697,8 +697,8 @@ class UsageInfoTestCase(test.TestCase):
fields.NotificationPhase.ERROR, fields.NotificationPhase.ERROR,
uuids.old_volume_id, uuids.new_volume_id, ex) uuids.old_volume_id, uuids.new_volume_id, ex)
self.assertEqual(len(fake_notifier.VERSIONED_NOTIFICATIONS), 1) self.assertEqual(len(self.notifier.versioned_notifications), 1)
notification = fake_notifier.VERSIONED_NOTIFICATIONS[0] notification = self.notifier.versioned_notifications[0]
self.assertEqual('ERROR', notification['priority']) self.assertEqual('ERROR', notification['priority'])
self.assertEqual('instance.%s.%s' % self.assertEqual('instance.%s.%s' %
@ -748,8 +748,8 @@ class UsageInfoTestCase(test.TestCase):
uuids.rescue_image_ref, uuids.rescue_image_ref,
phase='start') phase='start')
self.assertEqual(len(fake_notifier.VERSIONED_NOTIFICATIONS), 1) self.assertEqual(len(self.notifier.versioned_notifications), 1)
notification = fake_notifier.VERSIONED_NOTIFICATIONS[0] notification = self.notifier.versioned_notifications[0]
self.assertEqual(notification['priority'], 'INFO') self.assertEqual(notification['priority'], 'INFO')
self.assertEqual(notification['event_type'], 'instance.rescue.start') self.assertEqual(notification['event_type'], 'instance.rescue.start')
@ -781,8 +781,8 @@ class UsageInfoTestCase(test.TestCase):
compute_utils.notify_about_resize_prep_instance( compute_utils.notify_about_resize_prep_instance(
self.context, instance, 'fake-compute', 'start', new_flavor) self.context, instance, 'fake-compute', 'start', new_flavor)
self.assertEqual(len(fake_notifier.VERSIONED_NOTIFICATIONS), 1) self.assertEqual(len(self.notifier.versioned_notifications), 1)
notification = fake_notifier.VERSIONED_NOTIFICATIONS[0] notification = self.notifier.versioned_notifications[0]
self.assertEqual(notification['priority'], 'INFO') self.assertEqual(notification['priority'], 'INFO')
self.assertEqual(notification['event_type'], self.assertEqual(notification['event_type'],
@ -854,8 +854,8 @@ class UsageInfoTestCase(test.TestCase):
compute_utils.notify_about_volume_usage(self.context, vol_usage, compute_utils.notify_about_volume_usage(self.context, vol_usage,
'fake-compute') 'fake-compute')
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
notification = fake_notifier.VERSIONED_NOTIFICATIONS[0] notification = self.notifier.versioned_notifications[0]
self.assertEqual('INFO', notification['priority']) self.assertEqual('INFO', notification['priority'])
self.assertEqual('volume.usage', notification['event_type']) self.assertEqual('volume.usage', notification['event_type'])
@ -1235,8 +1235,7 @@ class ComputeUtilsTestCase(test.NoDBTestCase):
class ServerGroupTestCase(test.TestCase): class ServerGroupTestCase(test.TestCase):
def setUp(self): def setUp(self):
super(ServerGroupTestCase, self).setUp() super(ServerGroupTestCase, self).setUp()
fake_notifier.stub_notifier(self) self.notifier = self.useFixture(fixtures.NotificationFixture(self))
self.addCleanup(fake_notifier.reset)
self.user_id = 'fake' self.user_id = 'fake'
self.project_id = 'fake' self.project_id = 'fake'
self.context = context.RequestContext(self.user_id, self.project_id) self.context = context.RequestContext(self.user_id, self.project_id)
@ -1253,8 +1252,8 @@ class ServerGroupTestCase(test.TestCase):
def test_notify_about_server_group_action(self): def test_notify_about_server_group_action(self):
compute_utils.notify_about_server_group_action(self.context, compute_utils.notify_about_server_group_action(self.context,
self.group, 'create') self.group, 'create')
self.assertEqual(len(fake_notifier.VERSIONED_NOTIFICATIONS), 1) self.assertEqual(len(self.notifier.versioned_notifications), 1)
notification = fake_notifier.VERSIONED_NOTIFICATIONS[0] notification = self.notifier.versioned_notifications[0]
expected = {'priority': 'INFO', expected = {'priority': 'INFO',
'event_type': u'server_group.create', 'event_type': u'server_group.create',
'publisher_id': u'nova-api:fake-mini', 'publisher_id': u'nova-api:fake-mini',
@ -1285,8 +1284,8 @@ class ServerGroupTestCase(test.TestCase):
self.context, uuids.server_group) self.context, uuids.server_group)
mock_get_by_uuid.assert_called_once_with(self.context, mock_get_by_uuid.assert_called_once_with(self.context,
uuids.server_group) uuids.server_group)
self.assertEqual(len(fake_notifier.VERSIONED_NOTIFICATIONS), 1) self.assertEqual(len(self.notifier.versioned_notifications), 1)
notification = fake_notifier.VERSIONED_NOTIFICATIONS[0] notification = self.notifier.versioned_notifications[0]
expected = {'priority': 'INFO', expected = {'priority': 'INFO',
'event_type': u'server_group.add_member', 'event_type': u'server_group.add_member',
'publisher_id': u'nova-api:fake-mini', 'publisher_id': u'nova-api:fake-mini',

View File

@ -38,8 +38,7 @@ class ComputeHostAPITestCase(test.TestCase):
self.host_api = compute.HostAPI() self.host_api = compute.HostAPI()
self.aggregate_api = compute.AggregateAPI() self.aggregate_api = compute.AggregateAPI()
self.ctxt = context.get_admin_context() self.ctxt = context.get_admin_context()
fake_notifier.stub_notifier(self) self.useFixture(nova_fixtures.NotificationFixture(self))
self.addCleanup(fake_notifier.reset)
self.req = fakes.HTTPRequest.blank('') self.req = fakes.HTTPRequest.blank('')
self.controller = services.ServiceController() self.controller = services.ServiceController()
self.useFixture(nova_fixtures.SingleCellSimple()) self.useFixture(nova_fixtures.SingleCellSimple())

View File

@ -39,6 +39,7 @@ from nova.objects import pci_device
from nova.pci import manager as pci_manager from nova.pci import manager as pci_manager
from nova.scheduler.client import report from nova.scheduler.client import report
from nova import test from nova import test
from nova.tests import fixtures
from nova.tests.unit import fake_instance from nova.tests.unit import fake_instance
from nova.tests.unit import fake_notifier from nova.tests.unit import fake_notifier
from nova.tests.unit.objects import test_pci_device as fake_pci_device from nova.tests.unit.objects import test_pci_device as fake_pci_device
@ -3796,8 +3797,7 @@ class ComputeMonitorTestCase(BaseTestCase):
@mock.patch('nova.compute.utils.notify_about_metrics_update') @mock.patch('nova.compute.utils.notify_about_metrics_update')
def test_get_host_metrics(self, mock_notify): def test_get_host_metrics(self, mock_notify):
fake_notifier.stub_notifier(self) self.useFixture(fixtures.NotificationFixture(self))
self.addCleanup(fake_notifier.reset)
class FakeCPUMonitor(monitor_base.MonitorBase): class FakeCPUMonitor(monitor_base.MonitorBase):

View File

@ -138,8 +138,7 @@ class _BaseTestCase(object):
self.project_id = fakes.FAKE_PROJECT_ID self.project_id = fakes.FAKE_PROJECT_ID
self.context = FakeContext(self.user_id, self.project_id) self.context = FakeContext(self.user_id, self.project_id)
fake_notifier.stub_notifier(self) self.useFixture(fixtures.NotificationFixture(self))
self.addCleanup(fake_notifier.reset)
self.stub_out('nova.rpc.RequestContextSerializer.deserialize_context', self.stub_out('nova.rpc.RequestContextSerializer.deserialize_context',
lambda *args, **kwargs: self.context) lambda *args, **kwargs: self.context)

View File

@ -35,7 +35,6 @@ from nova.objects import fields
from nova.objects import virt_device_metadata from nova.objects import virt_device_metadata
from nova import test from nova import test
from nova.tests import fixtures as nova_fixtures from nova.tests import fixtures as nova_fixtures
from nova.tests.unit import fake_notifier
from nova import utils from nova import utils
@ -212,8 +211,7 @@ class _BaseTestCase(test.TestCase):
self.user_id = 'fake-user' self.user_id = 'fake-user'
self.project_id = 'fake-project' self.project_id = 'fake-project'
self.context = context.RequestContext(self.user_id, self.project_id) self.context = context.RequestContext(self.user_id, self.project_id)
fake_notifier.stub_notifier(self) self.useFixture(nova_fixtures.NotificationFixture(self))
self.addCleanup(fake_notifier.reset)
# NOTE(danms): register these here instead of at import time # NOTE(danms): register these here instead of at import time
# so that they're not always present # so that they're not always present

View File

@ -19,6 +19,7 @@ import mock
from nova import context as nova_context from nova import context as nova_context
from nova import exception_wrapper from nova import exception_wrapper
from nova import test from nova import test
from nova.tests import fixtures as nova_fixtures
from nova.tests.unit import fake_notifier from nova.tests.unit import fake_notifier
@ -52,8 +53,8 @@ def good_function(self, context):
class WrapExceptionTestCase(test.NoDBTestCase): class WrapExceptionTestCase(test.NoDBTestCase):
def setUp(self): def setUp(self):
super(WrapExceptionTestCase, self).setUp() super(WrapExceptionTestCase, self).setUp()
fake_notifier.stub_notifier(self) self.notifier = self.useFixture(
self.addCleanup(fake_notifier.reset) nova_fixtures.NotificationFixture(self))
def test_cleanse_dict(self): def test_cleanse_dict(self):
kwargs = {'foo': 1, 'blah_pass': 2, 'zoo_password': 3, '_pass': 4} kwargs = {'foo': 1, 'blah_pass': 2, 'zoo_password': 3, '_pass': 4}
@ -67,7 +68,7 @@ class WrapExceptionTestCase(test.NoDBTestCase):
service='compute', binary='nova-compute') service='compute', binary='nova-compute')
self.assertEqual(99, wrapped(good_function)(1, 2)) self.assertEqual(99, wrapped(good_function)(1, 2))
self.assertEqual(0, len(fake_notifier.NOTIFICATIONS)) self.assertEqual(0, len(fake_notifier.NOTIFICATIONS))
self.assertEqual(0, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(0, len(self.notifier.versioned_notifications))
def test_wrap_exception_unknown_module(self): def test_wrap_exception_unknown_module(self):
ctxt = nova_context.get_admin_context() ctxt = nova_context.get_admin_context()
@ -75,8 +76,8 @@ class WrapExceptionTestCase(test.NoDBTestCase):
service='compute', binary='nova-compute') service='compute', binary='nova-compute')
self.assertRaises( self.assertRaises(
TypeError, wrapped(bad_function_unknown_module), None, ctxt) TypeError, wrapped(bad_function_unknown_module), None, ctxt)
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
notification = fake_notifier.VERSIONED_NOTIFICATIONS[0] notification = self.notifier.versioned_notifications[0]
payload = notification['payload']['nova_object.data'] payload = notification['payload']['nova_object.data']
self.assertEqual('unknown', payload['module_name']) self.assertEqual('unknown', payload['module_name'])
@ -96,8 +97,8 @@ class WrapExceptionTestCase(test.NoDBTestCase):
self.assertIn(key, notification.payload.keys()) self.assertIn(key, notification.payload.keys())
self.assertNotIn('context', notification.payload['args'].keys()) self.assertNotIn('context', notification.payload['args'].keys())
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
notification = fake_notifier.VERSIONED_NOTIFICATIONS[0] notification = self.notifier.versioned_notifications[0]
self.assertEqual('compute.exception', notification['event_type']) self.assertEqual('compute.exception', notification['event_type'])
self.assertEqual('nova-compute:fake-mini', self.assertEqual('nova-compute:fake-mini',
notification['publisher_id']) notification['publisher_id'])

View File

@ -32,6 +32,7 @@ from nova.notifications import base as notifications
from nova import objects from nova import objects
from nova.objects import base as obj_base from nova.objects import base as obj_base
from nova import test from nova import test
from nova.tests import fixtures
from nova.tests.unit import fake_network from nova.tests.unit import fake_network
from nova.tests.unit import fake_notifier from nova.tests.unit import fake_notifier
@ -46,8 +47,7 @@ class NotificationsTestCase(test.TestCase):
self.fixture = self.useFixture(o_fixture.ClearRequestContext()) self.fixture = self.useFixture(o_fixture.ClearRequestContext())
self.net_info = fake_network.fake_get_instance_nw_info(self) self.net_info = fake_network.fake_get_instance_nw_info(self)
fake_notifier.stub_notifier(self) self.notifier = self.useFixture(fixtures.NotificationFixture(self))
self.addCleanup(fake_notifier.reset)
self.flags(host='testhost') self.flags(host='testhost')
self.flags(notify_on_state_change="vm_and_task_state", self.flags(notify_on_state_change="vm_and_task_state",
@ -106,7 +106,7 @@ class NotificationsTestCase(test.TestCase):
notifications.send_update(self.context, old, self.instance) notifications.send_update(self.context, old, self.instance)
self.assertEqual(0, len(fake_notifier.NOTIFICATIONS)) self.assertEqual(0, len(fake_notifier.NOTIFICATIONS))
self.assertEqual(0, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(0, len(self.notifier.versioned_notifications))
def test_task_notif(self): def test_task_notif(self):
@ -127,7 +127,7 @@ class NotificationsTestCase(test.TestCase):
verify_states=True) verify_states=True)
self.assertEqual(0, len(fake_notifier.NOTIFICATIONS)) self.assertEqual(0, len(fake_notifier.NOTIFICATIONS))
self.assertEqual(0, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(0, len(self.notifier.versioned_notifications))
# ok now enable task state notifications and re-try # ok now enable task state notifications and re-try
self.flags(notify_on_state_change="vm_and_task_state", self.flags(notify_on_state_change="vm_and_task_state",
@ -135,11 +135,11 @@ class NotificationsTestCase(test.TestCase):
notifications.send_update(self.context, old, self.instance) notifications.send_update(self.context, old, self.instance)
self.assertEqual(1, len(fake_notifier.NOTIFICATIONS)) self.assertEqual(1, len(fake_notifier.NOTIFICATIONS))
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self.assertEqual( self.assertEqual(
'instance.update', 'instance.update',
fake_notifier.VERSIONED_NOTIFICATIONS[0]['event_type']) self.notifier.versioned_notifications[0]['event_type'])
def test_send_no_notif(self): def test_send_no_notif(self):
@ -154,7 +154,7 @@ class NotificationsTestCase(test.TestCase):
service="compute", host=None, verify_states=True) service="compute", host=None, verify_states=True)
self.assertEqual(0, len(fake_notifier.NOTIFICATIONS)) self.assertEqual(0, len(fake_notifier.NOTIFICATIONS))
self.assertEqual(0, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(0, len(self.notifier.versioned_notifications))
def test_send_on_vm_change(self): def test_send_on_vm_change(self):
old = obj_base.obj_to_primitive(self.instance) old = obj_base.obj_to_primitive(self.instance)
@ -168,13 +168,13 @@ class NotificationsTestCase(test.TestCase):
notif = fake_notifier.NOTIFICATIONS[0] notif = fake_notifier.NOTIFICATIONS[0]
self.assertEqual('compute.testhost', notif.publisher_id) self.assertEqual('compute.testhost', notif.publisher_id)
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self.assertEqual( self.assertEqual(
'nova-compute:testhost', 'nova-compute:testhost',
fake_notifier.VERSIONED_NOTIFICATIONS[0]['publisher_id']) self.notifier.versioned_notifications[0]['publisher_id'])
self.assertEqual( self.assertEqual(
'instance.update', 'instance.update',
fake_notifier.VERSIONED_NOTIFICATIONS[0]['event_type']) self.notifier.versioned_notifications[0]['event_type'])
def test_send_on_task_change(self): def test_send_on_task_change(self):
@ -185,10 +185,10 @@ class NotificationsTestCase(test.TestCase):
notifications.send_update(self.context, old, self.instance) notifications.send_update(self.context, old, self.instance)
self.assertEqual(1, len(fake_notifier.NOTIFICATIONS)) self.assertEqual(1, len(fake_notifier.NOTIFICATIONS))
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self.assertEqual( self.assertEqual(
'instance.update', 'instance.update',
fake_notifier.VERSIONED_NOTIFICATIONS[0]['event_type']) self.notifier.versioned_notifications[0]['event_type'])
def test_no_update_with_states(self): def test_no_update_with_states(self):
@ -196,7 +196,7 @@ class NotificationsTestCase(test.TestCase):
vm_states.BUILDING, vm_states.BUILDING, task_states.SPAWNING, vm_states.BUILDING, vm_states.BUILDING, task_states.SPAWNING,
task_states.SPAWNING, verify_states=True) task_states.SPAWNING, verify_states=True)
self.assertEqual(0, len(fake_notifier.NOTIFICATIONS)) self.assertEqual(0, len(fake_notifier.NOTIFICATIONS))
self.assertEqual(0, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(0, len(self.notifier.versioned_notifications))
def test_vm_update_with_states(self): def test_vm_update_with_states(self):
fake_net_info = fake_network.fake_get_instance_nw_info(self) fake_net_info = fake_network.fake_get_instance_nw_info(self)
@ -211,10 +211,10 @@ class NotificationsTestCase(test.TestCase):
def _verify_notification(self, expected_state=vm_states.ACTIVE, def _verify_notification(self, expected_state=vm_states.ACTIVE,
expected_new_task_state=task_states.SPAWNING): expected_new_task_state=task_states.SPAWNING):
self.assertEqual(1, len(fake_notifier.NOTIFICATIONS)) self.assertEqual(1, len(fake_notifier.NOTIFICATIONS))
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self.assertEqual( self.assertEqual(
'instance.update', 'instance.update',
fake_notifier.VERSIONED_NOTIFICATIONS[0]['event_type']) self.notifier.versioned_notifications[0]['event_type'])
access_ip_v4 = str(self.instance.access_ip_v4) access_ip_v4 = str(self.instance.access_ip_v4)
access_ip_v6 = str(self.instance.access_ip_v6) access_ip_v6 = str(self.instance.access_ip_v6)
display_name = self.instance.display_name display_name = self.instance.display_name
@ -235,7 +235,7 @@ class NotificationsTestCase(test.TestCase):
self.assertEqual("2017-02-02T16:45:00.000000", self.assertEqual("2017-02-02T16:45:00.000000",
payload["audit_period_ending"]) payload["audit_period_ending"])
payload = fake_notifier.VERSIONED_NOTIFICATIONS[0][ payload = self.notifier.versioned_notifications[0][
'payload']['nova_object.data'] 'payload']['nova_object.data']
state_update = payload['state_update']['nova_object.data'] state_update = payload['state_update']['nova_object.data']
self.assertEqual(vm_states.BUILDING, state_update['old_state']) self.assertEqual(vm_states.BUILDING, state_update['old_state'])
@ -284,14 +284,14 @@ class NotificationsTestCase(test.TestCase):
vm_states.BUILDING, vm_states.BUILDING, task_states.SPAWNING, vm_states.BUILDING, vm_states.BUILDING, task_states.SPAWNING,
None) None)
self.assertEqual(1, len(fake_notifier.NOTIFICATIONS)) self.assertEqual(1, len(fake_notifier.NOTIFICATIONS))
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
# service name should default to 'compute' # service name should default to 'compute'
notif = fake_notifier.NOTIFICATIONS[0] notif = fake_notifier.NOTIFICATIONS[0]
self.assertEqual('compute.testhost', notif.publisher_id) self.assertEqual('compute.testhost', notif.publisher_id)
# in the versioned notification it defaults to nova-compute # in the versioned notification it defaults to nova-compute
notif = fake_notifier.VERSIONED_NOTIFICATIONS[0] notif = self.notifier.versioned_notifications[0]
self.assertEqual('nova-compute:testhost', notif['publisher_id']) self.assertEqual('nova-compute:testhost', notif['publisher_id'])
def test_update_with_service_name(self): def test_update_with_service_name(self):
@ -299,13 +299,13 @@ class NotificationsTestCase(test.TestCase):
vm_states.BUILDING, vm_states.BUILDING, task_states.SPAWNING, vm_states.BUILDING, vm_states.BUILDING, task_states.SPAWNING,
None, service="nova-compute") None, service="nova-compute")
self.assertEqual(1, len(fake_notifier.NOTIFICATIONS)) self.assertEqual(1, len(fake_notifier.NOTIFICATIONS))
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
# service name should default to 'compute' # service name should default to 'compute'
notif = fake_notifier.NOTIFICATIONS[0] notif = fake_notifier.NOTIFICATIONS[0]
self.assertEqual('nova-compute.testhost', notif.publisher_id) self.assertEqual('nova-compute.testhost', notif.publisher_id)
notif = fake_notifier.VERSIONED_NOTIFICATIONS[0] notif = self.notifier.versioned_notifications[0]
self.assertEqual('nova-compute:testhost', notif['publisher_id']) self.assertEqual('nova-compute:testhost', notif['publisher_id'])
def test_update_with_host_name(self): def test_update_with_host_name(self):
@ -313,13 +313,13 @@ class NotificationsTestCase(test.TestCase):
vm_states.BUILDING, vm_states.BUILDING, task_states.SPAWNING, vm_states.BUILDING, vm_states.BUILDING, task_states.SPAWNING,
None, host="someotherhost") None, host="someotherhost")
self.assertEqual(1, len(fake_notifier.NOTIFICATIONS)) self.assertEqual(1, len(fake_notifier.NOTIFICATIONS))
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
# service name should default to 'compute' # service name should default to 'compute'
notif = fake_notifier.NOTIFICATIONS[0] notif = fake_notifier.NOTIFICATIONS[0]
self.assertEqual('compute.someotherhost', notif.publisher_id) self.assertEqual('compute.someotherhost', notif.publisher_id)
notif = fake_notifier.VERSIONED_NOTIFICATIONS[0] notif = self.notifier.versioned_notifications[0]
self.assertEqual('nova-compute:someotherhost', notif['publisher_id']) self.assertEqual('nova-compute:someotherhost', notif['publisher_id'])
def test_payload_has_fixed_ip_labels(self): def test_payload_has_fixed_ip_labels(self):
@ -411,14 +411,14 @@ class NotificationsTestCase(test.TestCase):
new_name_inst = self._wrapped_create(params=param) new_name_inst = self._wrapped_create(params=param)
notifications.send_update(self.context, self.instance, new_name_inst) notifications.send_update(self.context, self.instance, new_name_inst)
self.assertEqual(1, len(fake_notifier.NOTIFICATIONS)) self.assertEqual(1, len(fake_notifier.NOTIFICATIONS))
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
old_display_name = self.instance.display_name old_display_name = self.instance.display_name
new_display_name = new_name_inst.display_name new_display_name = new_name_inst.display_name
for payload in [ for payload in [
fake_notifier.NOTIFICATIONS[0].payload, fake_notifier.NOTIFICATIONS[0].payload,
fake_notifier.VERSIONED_NOTIFICATIONS[0][ self.notifier.versioned_notifications[0][
'payload']['nova_object.data']]: 'payload']['nova_object.data']]:
self.assertEqual(payload["old_display_name"], old_display_name) self.assertEqual(payload["old_display_name"], old_display_name)
@ -428,24 +428,24 @@ class NotificationsTestCase(test.TestCase):
objects.TagList.create(self.context, objects.TagList.create(self.context,
self.instance.uuid, [u'tag1', u'tag2']) self.instance.uuid, [u'tag1', u'tag2'])
notifications.send_update(self.context, self.instance, self.instance) notifications.send_update(self.context, self.instance, self.instance)
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self.assertEqual([u'tag1', u'tag2'], self.assertEqual([u'tag1', u'tag2'],
fake_notifier.VERSIONED_NOTIFICATIONS[0] self.notifier.versioned_notifications[0]
['payload']['nova_object.data']['tags']) ['payload']['nova_object.data']['tags'])
def test_send_versioned_action_initiator_update(self): def test_send_versioned_action_initiator_update(self):
notifications.send_update(self.context, self.instance, self.instance) notifications.send_update(self.context, self.instance, self.instance)
action_initiator_user = self.context.user_id action_initiator_user = self.context.user_id
action_initiator_project = self.context.project_id action_initiator_project = self.context.project_id
self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS)) self.assertEqual(1, len(self.notifier.versioned_notifications))
self.assertEqual(action_initiator_user, self.assertEqual(action_initiator_user,
fake_notifier.VERSIONED_NOTIFICATIONS[0] self.notifier.versioned_notifications[0]
['payload']['nova_object.data'] ['payload']['nova_object.data']
['action_initiator_user']) ['action_initiator_user'])
self.assertEqual(action_initiator_project, self.assertEqual(action_initiator_project,
fake_notifier.VERSIONED_NOTIFICATIONS[0] self.notifier.versioned_notifications[0]
['payload']['nova_object.data'] ['payload']['nova_object.data']
['action_initiator_project']) ['action_initiator_project'])