func addStorageToContext(ctx *runner.HookContext, name string, cons params.StorageConstraints, ) { addOne := map[string]params.StorageConstraints{name: cons} ctx.AddUnitStorage(addOne) }
func assertStorageAddInContext(c *gc.C, ctx runner.HookContext, expected map[string][]params.StorageConstraints, ) { obtained := ctx.StorageAddConstraints() c.Assert(len(obtained), gc.Equals, len(expected)) for k, v := range obtained { c.Assert(v, jc.SameContents, expected[k]) } }
func (s *InterfaceSuite) TestRequestRebootNowNoProcess(c *gc.C) { // A normal hook run or a juju-run command will record the *os.Process // object of the running command, in HookContext. When requesting a // reboot with the --now flag, the process is killed and only // then will we set the reboot priority. This test basically simulates // the case when the process calling juju-reboot is not recorded. ctx := runner.HookContext{} err := ctx.RequestReboot(jujuc.RebootNow) c.Assert(err, gc.ErrorMatches, "no process to kill") priority := ctx.GetRebootPriority() c.Assert(priority, gc.Equals, jujuc.RebootNow) }
// TestNonActionCallsToActionMethodsFail does exactly what its name says: // it simply makes sure that Action-related calls to HookContexts with a nil // actionData member error out correctly. func (s *InterfaceSuite) TestNonActionCallsToActionMethodsFail(c *gc.C) { ctx := runner.HookContext{} _, err := ctx.ActionParams() c.Check(err, gc.ErrorMatches, "not running an action") err = ctx.SetActionFailed() c.Check(err, gc.ErrorMatches, "not running an action") err = ctx.SetActionMessage("foo") c.Check(err, gc.ErrorMatches, "not running an action") err = ctx.UpdateActionResults([]string{"1", "2", "3"}, "value") c.Check(err, gc.ErrorMatches, "not running an action") }
func (s *InterfaceSuite) TestRequestRebootNow(c *gc.C) { ctx := runner.HookContext{} p := s.startProcess(c) ctx.SetProcess(p) go func() { _, err := p.Wait() c.Assert(err, jc.ErrorIsNil) }() err := ctx.RequestReboot(jujuc.RebootNow) c.Assert(err, jc.ErrorIsNil) priority := ctx.GetRebootPriority() c.Assert(priority, gc.Equals, jujuc.RebootNow) }
func (s *InterfaceSuite) TestRequestRebootAfterHook(c *gc.C) { if runtime.GOOS == "windows" { c.Skip("bug 1403084: Cannot send sigterm on windows") } ctx := runner.HookContext{} p := s.startProcess(c) ctx.SetProcess(p) err := ctx.RequestReboot(jujuc.RebootAfterHook) c.Assert(err, jc.ErrorIsNil) err = p.Signal(syscall.SIGTERM) c.Assert(err, jc.ErrorIsNil) _, err = p.Wait() c.Assert(err, jc.ErrorIsNil) priority := ctx.GetRebootPriority() c.Assert(priority, gc.Equals, jujuc.RebootAfterHook) }