func addStorageToContext(ctx *context.HookContext, name string, cons params.StorageConstraints, ) { addOne := map[string]params.StorageConstraints{name: cons} ctx.AddUnitStorage(addOne) }
func (s *HookContextSuite) AssertRelationContext(c *gc.C, ctx *context.HookContext, relId int, remoteUnit string) *context.ContextRelation { actualRemoteUnit, _ := ctx.RemoteUnitName() c.Assert(actualRemoteUnit, gc.Equals, remoteUnit) rel, err := ctx.HookRelation() c.Assert(err, jc.ErrorIsNil) c.Assert(rel.Id(), gc.Equals, relId) return rel.(*context.ContextRelation) }
func (s *HookContextSuite) AssertStorageContext(c *gc.C, ctx *context.HookContext, id string, attachment storage.StorageAttachmentInfo) { fromCache, err := ctx.HookStorage() c.Assert(err, jc.ErrorIsNil) c.Assert(fromCache, gc.NotNil) c.Assert(fromCache.Tag().Id(), gc.Equals, id) c.Assert(fromCache.Kind(), gc.Equals, attachment.Kind) c.Assert(fromCache.Location(), gc.Equals, attachment.Location) }
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 := context.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 := context.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 := context.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 := context.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) }
func (s *HookContextSuite) AssertNotRelationContext(c *gc.C, ctx *context.HookContext) { rel, err := ctx.HookRelation() c.Assert(rel, gc.IsNil) c.Assert(err, gc.ErrorMatches, ".*") }
func (s *HookContextSuite) AssertNotStorageContext(c *gc.C, ctx *context.HookContext) { storageAttachment, err := ctx.HookStorage() c.Assert(storageAttachment, gc.IsNil) c.Assert(err, gc.ErrorMatches, ".*") }
func (s *HookContextSuite) AssertActionContext(c *gc.C, ctx *context.HookContext) { actionData, err := ctx.ActionData() c.Assert(actionData, gc.NotNil) c.Assert(err, jc.ErrorIsNil) }
func (s *HookContextSuite) AssertNotActionContext(c *gc.C, ctx *context.HookContext) { actionData, err := ctx.ActionData() c.Assert(actionData, gc.IsNil) c.Assert(err, gc.ErrorMatches, "not running an action") }
func (s *HookContextSuite) AssertCoreContext(c *gc.C, ctx *context.HookContext) { c.Assert(ctx.UnitName(), gc.Equals, "u/0") c.Assert(context.ContextMachineTag(ctx), jc.DeepEquals, names.NewMachineTag("0")) expect, expectErr := s.unit.PrivateAddress() actual, actualErr := ctx.PrivateAddress() c.Assert(actual, gc.Equals, expect.Value) c.Assert(actualErr, jc.DeepEquals, expectErr) expect, expectErr = s.unit.PublicAddress() actual, actualErr = ctx.PublicAddress() c.Assert(actual, gc.Equals, expect.Value) c.Assert(actualErr, jc.DeepEquals, expectErr) env, err := s.State.Environment() c.Assert(err, jc.ErrorIsNil) name, uuid := context.ContextEnvInfo(ctx) c.Assert(name, gc.Equals, env.Name()) c.Assert(uuid, gc.Equals, env.UUID()) ids, err := ctx.RelationIds() c.Assert(err, jc.ErrorIsNil) c.Assert(ids, gc.HasLen, 2) r, err := ctx.Relation(0) c.Assert(err, jc.ErrorIsNil) c.Assert(r.Name(), gc.Equals, "db") c.Assert(r.FakeId(), gc.Equals, "db:0") r, err = ctx.Relation(1) c.Assert(err, jc.ErrorIsNil) c.Assert(r.Name(), gc.Equals, "db") c.Assert(r.FakeId(), gc.Equals, "db:1") }