本文整理汇总了Golang中github.com/juju/juju/state/api/watcher.NewNotifyWatcher函数的典型用法代码示例。如果您正苦于以下问题:Golang NewNotifyWatcher函数的具体用法?Golang NewNotifyWatcher怎么用?Golang NewNotifyWatcher使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewNotifyWatcher函数的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: WatchAPIHostPorts
// 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
}
示例2: WatchForEnvironConfigChanges
// 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
}
示例3: TestWatchMachine
func (s *watcherSuite) TestWatchMachine(c *gc.C) {
var results params.NotifyWatchResults
args := params.Entities{Entities: []params.Entity{{Tag: s.rawMachine.Tag().String()}}}
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()
}
示例4: TestNotifyWatcherStopsWithPendingSend
func (s *watcherSuite) TestNotifyWatcherStopsWithPendingSend(c *gc.C) {
var results params.NotifyWatchResults
args := params.Entities{Entities: []params.Entity{{Tag: s.rawMachine.Tag().String()}}}
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()
}
示例5: Watch
// Watch starts a NotifyWatcher for the entity with the specified tag.
func Watch(caller base.Caller, facadeName string, tag names.Tag) (watcher.NotifyWatcher, error) {
var results params.NotifyWatchResults
args := params.Entities{
Entities: []params.Entity{{Tag: tag.String()}},
}
err := caller.Call(facadeName, "", "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
}
return watcher.NewNotifyWatcher(caller, result), nil
}
示例6: Watch
// Watch returns a watcher for observing changes to a service.
func (s *Service) Watch() (watcher.NotifyWatcher, error) {
var results params.NotifyWatchResults
args := params.Entities{
Entities: []params.Entity{{Tag: s.tag}},
}
err := s.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(s.st.caller, result)
return w, nil
}
示例7: WatchInterfaces
// WatchInterfaces returns a NotifyWatcher that notifies of changes to network
// interfaces on the machine.
func (st *State) WatchInterfaces(machineTag string) (watcher.NotifyWatcher, error) {
args := params.Entities{
Entities: []params.Entity{{Tag: machineTag}},
}
var results params.NotifyWatchResults
err := st.call("WatchInterfaces", args, &results)
if err != nil {
// TODO: Not directly tested
return nil, err
}
if len(results.Results) != 1 {
// TODO: Not directly tested
err = fmt.Errorf("expected one result, got %d", len(results.Results))
return nil, err
}
result := results.Results[0]
if result.Error != nil {
return nil, result.Error
}
w := watcher.NewNotifyWatcher(st.caller, result)
return w, nil
}
示例8: WatchAPIVersion
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
}