LGTM, thanks

On Thu, Jan 24, 2013 at 5:25 PM, Michael Hanselmann <[email protected]>wrote:

> Test stopping an instance, and ensure the configuration file still
> exists after an instance couldn't be stopped.
> ---
>  test/py/ganeti.hypervisor.hv_xen_unittest.py | 43
> ++++++++++++++++++++++++++++
>  1 file changed, 43 insertions(+)
>
> diff --git a/test/py/ganeti.hypervisor.hv_xen_unittest.py b/test/py/
> ganeti.hypervisor.hv_xen_unittest.py
> index 78af86f..f5cd3fb 100755
> --- a/test/py/ganeti.hypervisor.hv_xen_unittest.py
> +++ b/test/py/ganeti.hypervisor.hv_xen_unittest.py
> @@ -483,6 +483,49 @@ class _TestXenHypervisor(object):
>            extra = inst.hvparams[constants.HV_KERNEL_ARGS]
>            self.assertTrue(("extra = '%s'" % extra) in lines)
>
> +  def _StopInstanceCommand(self, instance_name, force, fail, cmd):
> +    if ((force and cmd[:2] == [self.CMD, "destroy"]) or
> +        (not force and cmd[:2] == [self.CMD, "shutdown"])):
> +      self.assertEqual(cmd[2:], [instance_name])
> +      output = ""
> +    else:
> +      self.fail("Unhandled command: %s" % (cmd, ))
> +
> +    if fail:
> +      # Simulate a failing command
> +      return self._FailingCommand(cmd)
> +    else:
> +      return self._SuccessCommand(output, cmd)
> +
> +  def testStopInstance(self):
> +    name = "inst4284.example.com"
> +    cfgfile = utils.PathJoin(self.tmpdir, name)
> +    cfgdata = "config file content\n"
> +
> +    for force in [False, True]:
> +      for fail in [False, True]:
> +        utils.WriteFile(cfgfile, data=cfgdata)
> +
> +        run_cmd = compat.partial(self._StopInstanceCommand, name, force,
> fail)
> +
> +        hv = self._GetHv(run_cmd=run_cmd)
> +
> +        self.assertTrue(os.path.isfile(cfgfile))
> +
> +        if fail:
> +          try:
> +            hv._StopInstance(name, force)
> +          except errors.HypervisorError, err:
> +            self.assertTrue(str(err).startswith("Failed to stop
> instance"))
> +          else:
> +            self.fail("Exception was not raised")
> +          self.assertEqual(utils.ReadFile(cfgfile), cfgdata,
> +                           msg=("Configuration was removed when stopping"
> +                                " instance failed"))
> +        else:
> +          hv._StopInstance(name, force)
> +          self.assertFalse(os.path.exists(cfgfile))
> +
>
>  def _MakeTestClass(cls, cmd):
>    """Makes a class for testing.
> --
> 1.8.1
>
>

-- 


Reply via email to