// WatchForEnvironConfigChanges return a NotifyWatcher waiting for the // environment configuration to change. func (e *EnvironWatcher) WatchForEnvironConfigChanges() (watcher.NotifyWatcher, error) { var result params.NotifyWatchResult err := e.caller.Call(e.facadeName, "", "WatchForEnvironConfigChanges", nil, &result) if err != nil { return nil, err } return watcher.NewNotifyWatcher(e.caller, result), nil }
// WatchAPIHostPorts watches the host/port addresses of the API servers. func (a *APIAddresser) WatchAPIHostPorts() (watcher.NotifyWatcher, error) { var result params.NotifyWatchResult err := a.caller.Call(a.facadeName, "", "WatchAPIHostPorts", nil, &result) if err != nil { return nil, err } return watcher.NewNotifyWatcher(a.caller, result), nil }
func (st *State) WatchMachineErrorRetry() (watcher.NotifyWatcher, error) { var result params.NotifyWatchResult err := st.call("WatchMachineErrorRetry", nil, &result) if err != nil { return nil, err } if err := result.Error; err != nil { return nil, result.Error } w := watcher.NewNotifyWatcher(st.caller, result) return w, nil }
func (s *watcherSuite) TestWatchMachine(c *gc.C) { var results params.NotifyWatchResults args := params.Entities{Entities: []params.Entity{{Tag: s.rawMachine.Tag()}}} err := s.stateAPI.Call("Machiner", "", "Watch", args, &results) c.Assert(err, gc.IsNil) c.Assert(results.Results, gc.HasLen, 1) result := results.Results[0] c.Assert(result.Error, gc.IsNil) // params.NotifyWatcher conforms to the state.NotifyWatcher interface w := watcher.NewNotifyWatcher(s.stateAPI, result) wc := statetesting.NewNotifyWatcherC(c, s.State, w) wc.AssertOneChange() statetesting.AssertStop(c, w) wc.AssertClosed() }
func (s *watcherSuite) TestNotifyWatcherStopsWithPendingSend(c *gc.C) { var results params.NotifyWatchResults args := params.Entities{Entities: []params.Entity{{Tag: s.rawMachine.Tag()}}} err := s.stateAPI.Call("Machiner", "", "Watch", args, &results) c.Assert(err, gc.IsNil) c.Assert(results.Results, gc.HasLen, 1) result := results.Results[0] c.Assert(result.Error, gc.IsNil) // params.NotifyWatcher conforms to the state.NotifyWatcher interface w := watcher.NewNotifyWatcher(s.stateAPI, result) wc := statetesting.NewNotifyWatcherC(c, s.State, w) // Now, without reading any changes try stopping the watcher. statetesting.AssertCanStopWhenSending(c, w) wc.AssertClosed() }
// Watch returns a watcher for observing changes to the unit. func (u *Unit) Watch() (watcher.NotifyWatcher, error) { var results params.NotifyWatchResults args := params.Entities{ Entities: []params.Entity{{Tag: u.tag}}, } err := u.st.call("Watch", args, &results) if err != nil { return nil, err } if len(results.Results) != 1 { return nil, fmt.Errorf("expected 1 result, got %d", len(results.Results)) } result := results.Results[0] if result.Error != nil { return nil, result.Error } w := watcher.NewNotifyWatcher(u.st.caller, result) return w, nil }
func (st *State) WatchAPIVersion(agentTag string) (watcher.NotifyWatcher, error) { var results params.NotifyWatchResults args := params.Entities{ Entities: []params.Entity{{Tag: agentTag}}, } err := st.call("WatchAPIVersion", args, &results) if err != nil { // TODO: Not directly tested return nil, err } if len(results.Results) != 1 { // TODO: Not directly tested return nil, fmt.Errorf("expected 1 result, got %d", len(results.Results)) } result := results.Results[0] if result.Error != nil { // TODO: Not directly tested return nil, result.Error } w := watcher.NewNotifyWatcher(st.caller, result) return w, nil }