func (s *ProxyUpdaterSuite) TestNilTagFails(c *gc.C) { var args []apitesting.CheckArgs var calls int apiCaller := apitesting.CheckingAPICallerMultiArgs(c, args, &calls, nil) api, err := proxyupdater.NewAPI(apiCaller, nil) c.Check(api, gc.IsNil) c.Check(err, gc.ErrorMatches, "tag is nil") }
func newAPI(c *gc.C, args []apitesting.CheckArgs) (*int, *proxyupdater.API) { var called int apiCaller := apitesting.CheckingAPICallerMultiArgs(c, args, &called, nil) api, err := proxyupdater.NewAPI(apiCaller, names.NewUnitTag("u/0")) c.Assert(err, gc.IsNil) c.Assert(api, gc.NotNil) c.Assert(called, gc.Equals, 0) return &called, api }
// newWorker is not currently tested; it should eventually replace New as the // package's exposed factory func, and then all tests should pass through it. func newWorker(a agent.Agent, apiCaller base.APICaller) (worker.Worker, error) { agentConfig := a.CurrentConfig() switch tag := agentConfig.Tag().(type) { case names.MachineTag, names.UnitTag: default: return nil, errors.Errorf("unknown agent type: %T", tag) } proxyAPI, err := proxyupdater.NewAPI(apiCaller, agentConfig.Tag()) if err != nil { return nil, err } return NewWorker(Config{ Directory: "/home/ubuntu", RegistryPath: `HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings`, Filename: ".juju-proxy", API: proxyAPI, }) }
// Manifold returns a dependency manifold that runs a proxy updater worker, // using the api connection resource named in the supplied config. func Manifold(config ManifoldConfig) dependency.Manifold { return dependency.Manifold{ Inputs: []string{ config.AgentName, config.APICallerName, }, Start: func(context dependency.Context) (worker.Worker, error) { if config.WorkerFunc == nil { return nil, errors.NotValidf("missing WorkerFunc") } var agent agent.Agent if err := context.Get(config.AgentName, &agent); err != nil { return nil, err } var apiCaller base.APICaller if err := context.Get(config.APICallerName, &apiCaller); err != nil { return nil, err } agentConfig := agent.CurrentConfig() proxyAPI, err := proxyupdater.NewAPI(apiCaller, agentConfig.Tag()) if err != nil { return nil, err } w, err := config.WorkerFunc(Config{ Directory: "/home/ubuntu", RegistryPath: `HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings`, Filename: ".juju-proxy", API: proxyAPI, ExternalUpdate: config.ExternalUpdate, }) if err != nil { return nil, errors.Trace(err) } return w, nil }, } }
func (s *ProxyUpdaterSuite) TestNilAPICallerFails(c *gc.C) { api, err := proxyupdater.NewAPI(nil, names.NewUnitTag("u/0")) c.Check(api, gc.IsNil) c.Check(err, gc.ErrorMatches, "caller is nil") }