// manifoldStart creates a firewaller worker, given a base.APICaller. func manifoldStart(apiCaller base.APICaller) (worker.Worker, error) { api := firewaller.NewState(apiCaller) w, err := NewFirewaller(api) if err != nil { return nil, errors.Trace(err) } return w, nil }
func (s *firewallerSuite) SetUpTest(c *gc.C) { s.JujuConnSuite.SetUpTest(c) // Reset previous machines and units (if any) and create 3 // machines for the tests. The first one is a manager node. s.machines = make([]*state.Machine, 3) s.units = make([]*state.Unit, 3) var err error s.machines[0], err = s.State.AddMachine("quantal", state.JobManageModel, state.JobHostUnits) c.Assert(err, jc.ErrorIsNil) password, err := utils.RandomPassword() c.Assert(err, jc.ErrorIsNil) err = s.machines[0].SetPassword(password) c.Assert(err, jc.ErrorIsNil) err = s.machines[0].SetProvisioned("i-manager", "fake_nonce", nil) c.Assert(err, jc.ErrorIsNil) s.st = s.OpenAPIAsMachine(c, s.machines[0].Tag(), password, "fake_nonce") c.Assert(s.st, gc.NotNil) // Note that the specific machine ids allocated are assumed // to be numerically consecutive from zero. for i := 1; i <= 2; i++ { s.machines[i], err = s.State.AddMachine("quantal", state.JobHostUnits) c.Check(err, jc.ErrorIsNil) } // Create a service and three units for these machines. s.charm = s.AddTestingCharm(c, "wordpress") s.application = s.AddTestingService(c, "wordpress", s.charm) // Add the rest of the units and assign them. for i := 0; i <= 2; i++ { s.units[i], err = s.application.AddUnit() c.Check(err, jc.ErrorIsNil) err = s.units[i].AssignToMachine(s.machines[i]) c.Check(err, jc.ErrorIsNil) } // Create the firewaller API facade. s.firewaller = firewaller.NewState(s.st) c.Assert(s.firewaller, gc.NotNil) }
// Firewaller returns a version of the state that provides functionality // required by the firewaller worker. func (st *State) Firewaller() *firewaller.State { return firewaller.NewState(st) }