本文整理匯總了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
}