def setUp(self, mock_rpc): super(NotificationAPITestCase, self).setUp() self.notification_api = ha_api.NotificationAPI() self.req = fakes.HTTPRequest.blank('/v1/notifications', use_admin_context=True) self.context = self.req.environ['masakari.context'] self.failover_segment = fakes_data.create_fake_failover_segment( name="segment1", id=1, description="something", service_type="COMPUTE", recovery_method="auto", uuid=uuidsentinel.fake_segment) self.host = fakes_data.create_fake_host( name="host_1", id=1, reserved=False, on_maintenance=False, type="fake", control_attributes="fake-control_attributes", uuid=uuidsentinel.fake_host_1) self.notification = fakes_data.create_fake_notification( type="VM", id=1, payload={ 'event': 'STOPPED', 'host_status': 'NORMAL', 'cluster_status': 'ONLINE' }, source_host_uuid=uuidsentinel.fake_host, generated_time=NOW, status="running", notification_uuid=uuidsentinel.fake_notification) self.exception_duplicate = exception.DuplicateNotification( host='host_1', type='COMPUTE_HOST')
def test_process_notification_reserved_host_failure( self, mock_notification_save, mock_host_failure, mock_get_all, mock_host_update, mock_host_save, mock_host_obj): fake_host = fakes.create_fake_host(reserved=True) fake_host.failover_segment = fakes.create_fake_failover_segment( recovery_method='reserved_host') reserved_host_list = [fake_host] mock_get_all.return_value = reserved_host_list mock_host_obj.return_value = fake_host notification = self._get_compute_host_type_notification() mock_host_failure.side_effect = self._fake_notification_workflow() self.engine.process_notification(self.context, notification=notification) update_data_by_host_failure = { 'on_maintenance': True, 'reserved': False, } mock_host_update.assert_called_once_with(update_data_by_host_failure) self.assertEqual("finished", notification.status) mock_host_failure.assert_called_once_with( self.context, fake_host.name, fake_host.failover_segment.recovery_method, notification.notification_uuid, reserved_host_list=reserved_host_list)
def test_process_notification_type_compute_host_event_stopped( self, mock_notification_save, mock_host_failure, mock_get_all, mock_host_update, mock_host_save, mock_host_obj, mock_notification_get): notification = self._get_compute_host_type_notification() mock_notification_get.return_value = notification mock_host_failure.side_effect = self._fake_notification_workflow() fake_host = fakes.create_fake_host() mock_get_all.return_value = None fake_host.failover_segment = fakes.create_fake_failover_segment() mock_host_obj.return_value = fake_host self.engine.process_notification(self.context, notification=notification) update_data_by_host_failure = { 'on_maintenance': True, } mock_host_update.assert_called_once_with(update_data_by_host_failure) self.assertEqual("finished", notification.status) mock_host_failure.assert_called_once_with( self.context, fake_host.name, fake_host.failover_segment.recovery_method, notification.notification_uuid, reserved_host_list=None)
def test_process_notification_reserved_host_failure( self, mock_notification_save, mock_host_failure, mock_get_all, mock_host_update, mock_host_save, mock_host_obj): fake_host = fakes.create_fake_host(reserved=True) fake_host.failover_segment = fakes.create_fake_failover_segment( recovery_method='reserved_host') reserved_host_list = [fake_host] mock_get_all.return_value = reserved_host_list mock_host_obj.return_value = fake_host notification = self._get_compute_host_type_notification() mock_host_failure.side_effect = self._fake_notification_workflow() self.engine.process_notification(self.context, notification=notification) update_data_by_host_failure = { 'on_maintenance': True, 'reserved': False, } mock_host_update.assert_called_once_with(update_data_by_host_failure) self.assertEqual("finished", notification.status) mock_host_failure.assert_called_once_with( self.context, fake_host.name, fake_host.failover_segment.recovery_method, notification.notification_uuid, reserved_host_list=reserved_host_list)
def setUp(self): super(FailoverSegmentAPITestCase, self).setUp() self.segment_api = ha_api.FailoverSegmentAPI() self.req = fakes.HTTPRequest.blank('/v1/segments', use_admin_context=True) self.context = self.req.environ['masakari.context'] self.failover_segment = fakes_data.create_fake_failover_segment( name="segment1", id=1, description="something", service_type="COMPUTE", recovery_method="auto", uuid=uuidsentinel.fake_segment )
def setUp(self): super(FailoverSegmentAPITestCase, self).setUp() self.segment_api = ha_api.FailoverSegmentAPI() self.req = fakes.HTTPRequest.blank('/v1/segments', use_admin_context=True) self.context = self.req.environ['masakari.context'] self.failover_segment = fakes_data.create_fake_failover_segment( name="segment1", id=1, description="something", service_type="COMPUTE", recovery_method="auto", uuid=uuidsentinel.fake_segment)
def _host_create_attributes2(self): failover_segment = fakes_data.create_fake_failover_segment( name="fake_segment", id=123, description="fakefake", service_type="COMPUTE", recovery_method="auto", uuid=uuidsentinel.fake_segment) host_obj = self._host_create_attributes() host_obj.failover_segment_id = failover_segment.uuid return host_obj
def test_get_all(self, mock_get_all): fake_failover_segment = fakes_data.create_fake_failover_segment( name="segment2", id=2, description="something", service_type="COMPUTE", recovery_method="auto", uuid=uuidsentinel.fake_segment_2 ) fake_failover_segment_list = [self.failover_segment, fake_failover_segment] mock_get_all.return_value = fake_failover_segment_list result = self.segment_api.get_all(self.context, filters=None, sort_keys=None, sort_dirs=None, limit=None, marker=None) for i in range(len(result)): self._assert_segment_data(fake_failover_segment_list[i], _make_segment_obj(result[i]))
def test_process_notification_type_compute_host_recovery_exception( self, mock_notification_save, mock_host_failure, mock_get_all, mock_host_update, mock_host_save, mock_host_obj): notification = self._get_compute_host_type_notification() fake_host = fakes.create_fake_host() mock_get_all.return_value = None fake_host.failover_segment = fakes.create_fake_failover_segment() mock_host_obj.return_value = fake_host mock_host_failure.side_effect = self._fake_notification_workflow( exc=exception.HostRecoveryFailureException) self.engine.process_notification(self.context, notification=notification) update_data_by_host_failure = { 'on_maintenance': True, } mock_host_update.assert_called_once_with(update_data_by_host_failure) self.assertEqual("error", notification.status)
def test_process_notification_type_compute_host_recovery_exception( self, mock_notification_save, mock_host_failure, mock_get_all, mock_host_update, mock_host_save, mock_host_obj): notification = self._get_compute_host_type_notification() fake_host = fakes.create_fake_host() mock_get_all.return_value = None fake_host.failover_segment = fakes.create_fake_failover_segment() mock_host_obj.return_value = fake_host mock_host_failure.side_effect = self._fake_notification_workflow( exc=exception.HostRecoveryFailureException) self.engine.process_notification(self.context, notification=notification) update_data_by_host_failure = { 'on_maintenance': True, } mock_host_update.assert_called_once_with(update_data_by_host_failure) self.assertEqual("error", notification.status)
def setUp(self): super(HostAPITestCase, self).setUp() self.host_api = ha_api.HostAPI() self.req = fakes.HTTPRequest.blank( '/v1/segments/%s/hosts' % uuidsentinel.fake_segment, use_admin_context=True) self.context = self.req.environ['masakari.context'] self.failover_segment = fakes_data.create_fake_failover_segment( name="segment1", id=1, description="something", service_type="COMPUTE", recovery_method="auto", uuid=uuidsentinel.fake_segment ) self.host = fakes_data.create_fake_host( name="host_1", id=1, reserved=False, on_maintenance=False, type="fake", control_attributes="fake-control_attributes", uuid=uuidsentinel.fake_host_1, failover_segment_id=uuidsentinel.fake_segment1 )
def _host_create_attributes(self): failover_segment = fakes_data.create_fake_failover_segment( name="fake_segment", id=123, description="fakefake", service_type="COMPUTE", recovery_method="auto", uuid=uuidsentinel.fake_segment) host_obj = host.Host(context=self.context) host_obj.name = 'foo-host' host_obj.failover_segment = failover_segment host_obj.type = 'fake-type' host_obj.reserved = False host_obj.on_maintenance = False host_obj.control_attributes = 'fake_attributes' host_obj.uuid = uuidsentinel.fake_host return host_obj
def test_process_notification_host_failure_without_reserved_hosts( self, mock_notification_save, mock_get_all, mock_host_update, mock_host_save, mock_host_obj): reserved_host_list = [] mock_get_all.return_value = reserved_host_list fake_host = fakes.create_fake_host() fake_host.failover_segment = fakes.create_fake_failover_segment( recovery_method='reserved_host') mock_host_obj.return_value = fake_host notification = self._get_compute_host_type_notification() self.engine.process_notification(self.context, notification=notification) update_data_by_host_failure = { 'on_maintenance': True, } mock_host_update.assert_called_once_with(update_data_by_host_failure) self.assertEqual("error", notification.status)
def test_process_notification_host_failure_without_reserved_hosts( self, mock_notification_save, mock_get_all, mock_host_update, mock_host_save, mock_host_obj): reserved_host_list = [] mock_get_all.return_value = reserved_host_list fake_host = fakes.create_fake_host() fake_host.failover_segment = fakes.create_fake_failover_segment( recovery_method='reserved_host') mock_host_obj.return_value = fake_host notification = self._get_compute_host_type_notification() self.engine.process_notification(self.context, notification=notification) update_data_by_host_failure = { 'on_maintenance': True, } mock_host_update.assert_called_once_with(update_data_by_host_failure) self.assertEqual("error", notification.status)
def test_get_all(self, mock_get_all): fake_failover_segment = fakes_data.create_fake_failover_segment( name="segment2", id=2, description="something", service_type="COMPUTE", recovery_method="auto", uuid=uuidsentinel.fake_segment_2) fake_failover_segment_list = [ self.failover_segment, fake_failover_segment ] mock_get_all.return_value = fake_failover_segment_list result = self.segment_api.get_all(self.context, filters=None, sort_keys=None, sort_dirs=None, limit=None, marker=None) for i in range(len(result)): self._assert_segment_data(fake_failover_segment_list[i], _make_segment_obj(result[i]))
def setUp(self): super(HostTestCase, self).setUp() self._set_up() self.failover_segment = fakes_data.create_fake_failover_segment( name="segment1", id=1, description="failover_segment for compute", service_type="COMPUTE", recovery_method="auto", uuid=uuidsentinel.fake_segment ) self.host = fakes_data.create_fake_host( name="host_1", id=1, reserved=False, on_maintenance=False, type="fake", control_attributes="fake-control_attributes", uuid=uuidsentinel.fake_host_1, failover_segment=self.failover_segment ) self.host_2 = fakes_data.create_fake_host( name="host_2", id=2, reserved=False, on_maintenance=False, type="fake", control_attributes="fake-control_attributes", uuid=uuidsentinel.fake_host_2, failover_segment=self.failover_segment ) self.host_list = [self.host, self.host_2] self.host_list_obj = _make_hosts_list(self.host_list)
def setUp(self): super(HostAPITestCase, self).setUp() self.host_api = ha_api.HostAPI() self.req = fakes.HTTPRequest.blank('/v1/segments/%s/hosts' % uuidsentinel.fake_segment, use_admin_context=True) self.context = self.req.environ['masakari.context'] self.failover_segment = fakes_data.create_fake_failover_segment( name="segment1", id=1, description="something", service_type="COMPUTE", recovery_method="auto", uuid=uuidsentinel.fake_segment) self.host = fakes_data.create_fake_host( name="host_1", id=1, reserved=False, on_maintenance=False, type="fake", control_attributes="fake-control_attributes", uuid=uuidsentinel.fake_host_1, failover_segment_id=uuidsentinel.fake_segment1)