コード例 #1
0
 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')
コード例 #2
0
    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)