func (s *ValidationSuite) TestMissingSecretary(c *gc.C) { manager, err := lease.NewManager(lease.ManagerConfig{ Client: struct{ corelease.Client }{}, Clock: struct{ clock.Clock }{}, }) c.Check(err, gc.ErrorMatches, "nil Secretary not valid") c.Check(err, jc.Satisfies, errors.IsNotValid) c.Check(manager, gc.IsNil) }
func (s *ValidationSuite) TestMissingMaxSleep(c *gc.C) { manager, err := lease.NewManager(lease.ManagerConfig{ Client: NewClient(nil, nil), Secretary: struct{ lease.Secretary }{}, Clock: coretesting.NewClock(time.Now()), }) c.Check(err, gc.ErrorMatches, "non-positive MaxSleep not valid") c.Check(err, jc.Satisfies, errors.IsNotValid) c.Check(manager, gc.IsNil) }
func (s *ValidationSuite) TestMissingClock(c *gc.C) { manager, err := lease.NewManager(lease.ManagerConfig{ Client: struct{ corelease.Client }{}, Secretary: struct{ lease.Secretary }{}, MaxSleep: time.Minute, }) c.Check(err, gc.ErrorMatches, "nil Clock not valid") c.Check(err, jc.Satisfies, errors.IsNotValid) c.Check(manager, gc.IsNil) }
func (wf workersFactory) NewSingularWorker() (workers.LeaseWorker, error) { client, err := wf.st.getSingularLeaseClient() if err != nil { return nil, errors.Trace(err) } manager, err := lease.NewManager(lease.ManagerConfig{ Secretary: singularSecretary{wf.st.ModelUUID()}, Client: client, Clock: wf.clock, MaxSleep: time.Minute, }) if err != nil { return nil, errors.Trace(err) } return manager, nil }
func (wf workersFactory) NewLeadershipWorker() (workers.LeaseWorker, error) { client, err := wf.st.getLeadershipLeaseClient() if err != nil { return nil, errors.Trace(err) } manager, err := lease.NewManager(lease.ManagerConfig{ Secretary: leadershipSecretary{}, Client: client, Clock: wf.clock, MaxSleep: time.Minute, }) if err != nil { return nil, errors.Trace(err) } return manager, nil }
// RunTest sets up a Manager and a Clock and passes them into the supplied // test function. The manager will be cleaned up afterwards. func (fix *Fixture) RunTest(c *gc.C, test func(*lease.Manager, *testing.Clock)) { clock := testing.NewClock(defaultClockStart) client := NewClient(fix.leases, fix.expectCalls) manager, err := lease.NewManager(lease.ManagerConfig{ Clock: clock, Client: client, Secretary: Secretary{}, MaxSleep: defaultMaxSleep, }) c.Assert(err, jc.ErrorIsNil) defer func() { // Dirty tests will probably have stopped the manager anyway, but no // sense leaving them around if things aren't exactly as we expect. manager.Kill() err := manager.Wait() if !fix.expectDirty { c.Check(err, jc.ErrorIsNil) } }() defer client.Wait(c) waitAlarms(c, clock, 1) test(manager, clock) }