def fake_validate_instance_group_policy(_self, *args, **kwargs): self.attempts += 1 if self.failed_host is None: # Set the failed_host value to the ComputeManager.host value. self.failed_host = _self.host raise exception.RescheduledException(instance_uuid='fake', reason='Policy violated')
def test_rescheduled_exception(self): self.mox.StubOutWithMock(self.compute, '_build_and_run_instance') self.mox.StubOutWithMock(self.compute, '_set_instance_error_state') self.mox.StubOutWithMock(self.compute.compute_task_api, 'build_instances') self.mox.StubOutWithMock(self.compute.conductor_api, 'action_event_start') self.mox.StubOutWithMock(self.compute.conductor_api, 'action_event_finish') self.compute._build_and_run_instance( self.context, self.instance, self.image, self.injected_files, self.admin_pass, self.node, self.limits).AndRaise( exception.RescheduledException( reason='', instance_uuid=self.instance['uuid'])) self.compute.compute_task_api.build_instances( self.context, [self.instance], self.image, [], self.admin_pass, self.injected_files, None, None, None) self.compute.conductor_api.action_event_start(self.context, mox.IgnoreArg()) self.compute.conductor_api.action_event_finish(self.context, mox.IgnoreArg()) self.mox.ReplayAll() self.compute.build_and_run_instance(self.context, self.instance, self.image, request_spec={}, filter_properties=[], injected_files=self.injected_files, admin_password=self.admin_pass, node=self.node, limits=self.limits)