本文整理汇总了Golang中github.com/juju/juju/state.SetTestHooks函数的典型用法代码示例。如果您正苦于以下问题:Golang SetTestHooks函数的具体用法?Golang SetTestHooks怎么用?Golang SetTestHooks使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了SetTestHooks函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestRemoveUnitMachineRetryOrCond
func (s *UnitSuite) TestRemoveUnitMachineRetryOrCond(c *gc.C) {
host, err := s.State.AddMachine("quantal", state.JobHostUnits)
c.Assert(err, jc.ErrorIsNil)
target, err := s.service.AddUnit()
c.Assert(err, jc.ErrorIsNil)
c.Assert(target.AssignToMachine(host), gc.IsNil)
// This unit will be colocated in the transaction hook to cause a retry.
colocated, err := s.service.AddUnit()
c.Assert(err, jc.ErrorIsNil)
c.Assert(host.SetHasVote(true), gc.IsNil)
defer state.SetTestHooks(c, s.State, jujutxn.TestHook{
Before: func() {
hostHandle, err := s.State.Machine(host.Id())
c.Assert(err, jc.ErrorIsNil)
// Original assertion preventing host removal is no longer valid
c.Assert(hostHandle.SetHasVote(false), gc.IsNil)
// But now the host gets a colocated unit, a different condition preventing removal
c.Assert(colocated.AssignToMachine(hostHandle), gc.IsNil)
},
}).Check()
c.Assert(target.Destroy(), gc.IsNil)
assertLife(c, host, state.Alive)
}
开发者ID:imoapps,项目名称:juju,代码行数:29,代码来源:unit_test.go
示例2: TestRemoveUnitMachineRetryContainer
func (s *UnitSuite) TestRemoveUnitMachineRetryContainer(c *gc.C) {
host, err := s.State.AddMachine("quantal", state.JobHostUnits)
c.Assert(err, jc.ErrorIsNil)
target, err := s.service.AddUnit()
c.Assert(err, jc.ErrorIsNil)
c.Assert(target.AssignToMachine(host), gc.IsNil)
defer state.SetTestHooks(c, s.State, jujutxn.TestHook{
Before: func() {
machine, err := s.State.AddMachineInsideMachine(state.MachineTemplate{
Series: "quantal",
Jobs: []state.MachineJob{state.JobHostUnits},
}, host.Id(), instance.LXC)
c.Assert(err, jc.ErrorIsNil)
assertLife(c, machine, state.Alive)
// test-setup verification for the disqualifying machine.
hostHandle, err := s.State.Machine(host.Id())
c.Assert(err, jc.ErrorIsNil)
containers, err := hostHandle.Containers()
c.Assert(err, jc.ErrorIsNil)
c.Assert(containers, gc.HasLen, 1)
},
}).Check()
c.Assert(target.Destroy(), gc.IsNil)
assertLife(c, host, state.Alive)
}
开发者ID:imoapps,项目名称:juju,代码行数:27,代码来源:unit_test.go
示例3: TestAssignUnitToNewMachineBecomesHost
func (s *AssignSuite) TestAssignUnitToNewMachineBecomesHost(c *gc.C) {
_, err := s.State.AddMachine("quantal", state.JobManageModel) // bootstrap machine
c.Assert(err, jc.ErrorIsNil)
// Set up constraints to specify we want to install into a container.
econs := constraints.MustParse("container=lxc")
err = s.State.SetModelConstraints(econs)
c.Assert(err, jc.ErrorIsNil)
// Create a unit and a clean machine.
unit, err := s.wordpress.AddUnit()
c.Assert(err, jc.ErrorIsNil)
machine, err := s.State.AddMachine("quantal", state.JobHostUnits)
c.Assert(err, jc.ErrorIsNil)
addContainer := txn.TestHook{
Before: func() {
_, err := s.State.AddMachineInsideMachine(state.MachineTemplate{
Series: "quantal",
Jobs: []state.MachineJob{state.JobHostUnits},
}, machine.Id(), instance.LXC)
c.Assert(err, jc.ErrorIsNil)
},
}
defer state.SetTestHooks(c, s.State, addContainer).Check()
err = unit.AssignToNewMachineOrContainer()
c.Assert(err, jc.ErrorIsNil)
mid, err := unit.AssignedMachineId()
c.Assert(err, jc.ErrorIsNil)
c.Assert(mid, gc.Equals, "2/lxc/0")
}
开发者ID:makyo,项目名称:juju,代码行数:33,代码来源:assign_test.go
示例4: TestAssignUnitToNewMachineBecomesDirty
func (s *AssignSuite) TestAssignUnitToNewMachineBecomesDirty(c *gc.C) {
_, err := s.State.AddMachine("quantal", state.JobManageModel) // bootstrap machine
c.Assert(err, jc.ErrorIsNil)
// Set up constraints to specify we want to install into a container.
econs := constraints.MustParse("container=lxc")
err = s.State.SetModelConstraints(econs)
c.Assert(err, jc.ErrorIsNil)
// Create some units and a clean machine.
unit, err := s.wordpress.AddUnit()
c.Assert(err, jc.ErrorIsNil)
anotherUnit, err := s.wordpress.AddUnit()
c.Assert(err, jc.ErrorIsNil)
machine, err := s.State.AddMachine("quantal", state.JobHostUnits)
c.Assert(err, jc.ErrorIsNil)
makeDirty := txn.TestHook{
Before: func() { c.Assert(unit.AssignToMachine(machine), gc.IsNil) },
}
defer state.SetTestHooks(c, s.State, makeDirty).Check()
err = anotherUnit.AssignToNewMachineOrContainer()
c.Assert(err, jc.ErrorIsNil)
mid, err := unit.AssignedMachineId()
c.Assert(err, jc.ErrorIsNil)
c.Assert(mid, gc.Equals, "1")
mid, err = anotherUnit.AssignedMachineId()
c.Assert(err, jc.ErrorIsNil)
c.Assert(mid, gc.Equals, "2/lxc/0")
}
开发者ID:makyo,项目名称:juju,代码行数:32,代码来源:assign_test.go
示例5: TestSetLinkLayerDevicesWithTooMuchStateChurn
func (s *linkLayerDevicesStateSuite) TestSetLinkLayerDevicesWithTooMuchStateChurn(c *gc.C) {
childArgs, churnHook := s.prepareSetLinkLayerDevicesWithStateChurn(c)
defer state.SetTestHooks(c, s.State, churnHook, churnHook, churnHook).Check()
s.assertAllLinkLayerDevicesOnMachineMatchCount(c, s.machine, 1) // parent only
err := s.machine.SetLinkLayerDevices(childArgs)
c.Assert(errors.Cause(err), gc.Equals, jujutxn.ErrExcessiveContention)
s.assertAllLinkLayerDevicesOnMachineMatchCount(c, s.machine, 1) // only the parent remains
}
开发者ID:makyo,项目名称:juju,代码行数:9,代码来源:linklayerdevices_test.go
示例6: TestSetLinkLayerDevicesWithModerateStateChurn
func (s *linkLayerDevicesStateSuite) TestSetLinkLayerDevicesWithModerateStateChurn(c *gc.C) {
childArgs, churnHook := s.prepareSetLinkLayerDevicesWithStateChurn(c)
defer state.SetTestHooks(c, s.State, churnHook, churnHook).Check()
s.assertAllLinkLayerDevicesOnMachineMatchCount(c, s.machine, 1) // parent only
err := s.machine.SetLinkLayerDevices(childArgs)
c.Assert(err, jc.ErrorIsNil)
s.assertAllLinkLayerDevicesOnMachineMatchCount(c, s.machine, 2) // both parent and child remain
}
开发者ID:makyo,项目名称:juju,代码行数:9,代码来源:linklayerdevices_test.go
示例7: TestAddActionFailsOnDeadUnitInTransaction
func (s *ActionSuite) TestAddActionFailsOnDeadUnitInTransaction(c *gc.C) {
unit, err := s.State.Unit(s.unit.Name())
c.Assert(err, jc.ErrorIsNil)
preventUnitDestroyRemove(c, unit)
killUnit := txn.TestHook{
Before: func() {
c.Assert(unit.Destroy(), gc.IsNil)
c.Assert(unit.EnsureDead(), gc.IsNil)
},
}
defer state.SetTestHooks(c, s.State, killUnit).Check()
_, err = unit.AddAction("snapshot", map[string]interface{}{})
c.Assert(err, gc.Equals, state.ErrDead)
}
开发者ID:makyo,项目名称:juju,代码行数:16,代码来源:action_test.go
示例8: TestUpdateRaceExhaustion
func (s *RestoreInfoSuite) TestUpdateRaceExhaustion(c *gc.C) {
s.setupPending(c)
perturb := jujutxn.TestHook{
Before: func() {
s.checkSetStatus(c, state.RestoreFailed)
},
After: func() {
s.checkSetStatus(c, state.RestorePending)
},
}
defer state.SetTestHooks(
c, s.State,
perturb,
perturb,
perturb,
).Check()
err := s.info.SetStatus(state.RestoreInProgress)
c.Check(err, gc.ErrorMatches, "setting status \"RESTORING\": state changing too quickly; try again soon")
}
开发者ID:bac,项目名称:juju,代码行数:19,代码来源:restore_test.go
示例9: TestRemoveUnitMachineThrashed
func (s *UnitSuite) TestRemoveUnitMachineThrashed(c *gc.C) {
host, err := s.State.AddMachine("quantal", state.JobHostUnits)
c.Assert(err, jc.ErrorIsNil)
target, err := s.service.AddUnit()
c.Assert(err, jc.ErrorIsNil)
c.Assert(target.AssignToMachine(host), gc.IsNil)
flip := jujutxn.TestHook{
Before: func() {
s.setMachineVote(c, host.Id(), true)
},
}
flop := jujutxn.TestHook{
Before: func() {
s.setMachineVote(c, host.Id(), false)
},
}
// You'll need to adjust the flip-flops to match the number of transaction
// retries.
defer state.SetTestHooks(c, s.State, flip, flop, flip).Check()
c.Assert(target.Destroy(), gc.ErrorMatches, "state changing too quickly; try again soon")
}
开发者ID:imoapps,项目名称:juju,代码行数:22,代码来源:unit_test.go
示例10: TestSetCharmURLRetriesWithDifferentURL
func (s *UnitSuite) TestSetCharmURLRetriesWithDifferentURL(c *gc.C) {
sch := s.AddConfigCharm(c, "wordpress", emptyConfig, 2)
defer state.SetTestHooks(c, s.State,
jujutxn.TestHook{
Before: func() {
// Set a different charm to force a retry: first on
// the service, so the settings are created, then on
// the unit.
err := s.service.SetCharm(sch, false, false)
c.Assert(err, jc.ErrorIsNil)
err = s.unit.SetCharmURL(sch.URL())
c.Assert(err, jc.ErrorIsNil)
},
After: func() {
// Set back the same charm on the service, so the
// settings refcount is correct..
err := s.service.SetCharm(s.charm, false, false)
c.Assert(err, jc.ErrorIsNil)
},
},
jujutxn.TestHook{
Before: nil, // Ensure there will be a retry.
After: func() {
// Verify it worked after the second attempt.
err := s.unit.Refresh()
c.Assert(err, jc.ErrorIsNil)
currentURL, hasURL := s.unit.CharmURL()
c.Assert(currentURL, jc.DeepEquals, s.charm.URL())
c.Assert(hasURL, jc.IsTrue)
},
},
).Check()
err := s.unit.SetCharmURL(s.charm.URL())
c.Assert(err, jc.ErrorIsNil)
}
开发者ID:imoapps,项目名称:juju,代码行数:37,代码来源:unit_test.go
注:本文中的github.com/juju/juju/state.SetTestHooks函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论