本文整理汇总了Golang中github.com/juju/juju/watcher/watchertest.NewNotifyWatcherC函数的典型用法代码示例。如果您正苦于以下问题:Golang NewNotifyWatcherC函数的具体用法?Golang NewNotifyWatcherC怎么用?Golang NewNotifyWatcherC使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewNotifyWatcherC函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestWatchForEnvironConfigChanges
func (s *EnvironWatcherTests) TestWatchForEnvironConfigChanges(c *gc.C) {
envConfig, err := s.state.EnvironConfig()
c.Assert(err, jc.ErrorIsNil)
w, err := s.facade.WatchForEnvironConfigChanges()
c.Assert(err, jc.ErrorIsNil)
wc := watchertest.NewNotifyWatcherC(c, w, s.state.StartSync)
defer wc.AssertStops()
// Initial event.
wc.AssertOneChange()
// Change the environment configuration by updating an existing attribute, check it's detected.
newAttrs := map[string]interface{}{"logging-config": "juju=ERROR"}
err = s.state.UpdateEnvironConfig(newAttrs, nil, nil)
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
// Change the environment configuration by adding a new attribute, check it's detected.
newAttrs = map[string]interface{}{"foo": "bar"}
err = s.state.UpdateEnvironConfig(newAttrs, nil, nil)
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
// Change the environment configuration by removing an attribute, check it's detected.
err = s.state.UpdateEnvironConfig(map[string]interface{}{}, []string{"foo"}, nil)
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
// Change it back to the original config.
oldAttrs := map[string]interface{}{"logging-config": envConfig.AllAttrs()["logging-config"]}
err = s.state.UpdateEnvironConfig(oldAttrs, nil, nil)
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
}
示例2: TestWatchAPIVersion
func (s *machineUpgraderSuite) TestWatchAPIVersion(c *gc.C) {
w, err := s.st.WatchAPIVersion(s.rawMachine.Tag().String())
c.Assert(err, jc.ErrorIsNil)
wc := watchertest.NewNotifyWatcherC(c, w, s.BackingState.StartSync)
defer wc.AssertStops()
// Initial event
wc.AssertOneChange()
// One change noticing the new version
vers := version.MustParse("10.20.34")
err = statetesting.SetAgentVersion(s.BackingState, vers)
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
// Setting the version to the same value doesn't trigger a change
err = statetesting.SetAgentVersion(s.BackingState, vers)
c.Assert(err, jc.ErrorIsNil)
wc.AssertNoChange()
// Another change noticing another new version
vers = version.MustParse("10.20.35")
err = statetesting.SetAgentVersion(s.BackingState, vers)
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
}
示例3: TestWatchMeterStatus
func (s *meterStatusIntegrationSuite) TestWatchMeterStatus(c *gc.C) {
w, err := s.status.WatchMeterStatus()
c.Assert(err, jc.ErrorIsNil)
wc := watchertest.NewNotifyWatcherC(c, w, s.BackingState.StartSync)
defer wc.AssertStops()
wc.AssertOneChange()
err = s.unit.SetMeterStatus("GREEN", "ok")
c.Assert(err, jc.ErrorIsNil)
err = s.unit.SetMeterStatus("AMBER", "ok")
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
// Non-change is not reported.
err = s.unit.SetMeterStatus("AMBER", "ok")
c.Assert(err, jc.ErrorIsNil)
wc.AssertNoChange()
mm, err := s.State.MetricsManager()
c.Assert(err, jc.ErrorIsNil)
err = mm.SetLastSuccessfulSend(time.Now())
c.Assert(err, jc.ErrorIsNil)
for i := 0; i < 3; i++ {
err := mm.IncrementConsecutiveErrors()
c.Assert(err, jc.ErrorIsNil)
}
status := mm.MeterStatus()
c.Assert(status.Code, gc.Equals, state.MeterAmber) // Confirm meter status has changed
wc.AssertOneChange()
}
示例4: TestWatchAddresses
func (s *unitSuite) TestWatchAddresses(c *gc.C) {
w, err := s.apiUnit.WatchAddresses()
c.Assert(err, jc.ErrorIsNil)
wc := watchertest.NewNotifyWatcherC(c, w, s.BackingState.StartSync)
defer wc.AssertStops()
// Initial event.
wc.AssertOneChange()
// Update config a couple of times, check a single event.
err = s.wordpressMachine.SetProviderAddresses(network.NewAddress("0.1.2.3"))
c.Assert(err, jc.ErrorIsNil)
err = s.wordpressMachine.SetProviderAddresses(network.NewAddress("0.1.2.4"))
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
// Non-change is not reported.
err = s.wordpressMachine.SetProviderAddresses(network.NewAddress("0.1.2.4"))
c.Assert(err, jc.ErrorIsNil)
wc.AssertNoChange()
// Change is reported for machine addresses.
err = s.wordpressMachine.SetMachineAddresses(network.NewAddress("0.1.2.5"))
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
// Set machine addresses to empty is reported.
err = s.wordpressMachine.SetMachineAddresses()
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
}
示例5: TestWatchConfigSettings
func (s *unitSuite) TestWatchConfigSettings(c *gc.C) {
// Make sure WatchConfigSettings returns an error when
// no charm URL is set, as its state counterpart does.
w, err := s.apiUnit.WatchConfigSettings()
c.Assert(err, gc.ErrorMatches, "unit charm not set")
// Now set the charm and try again.
err = s.apiUnit.SetCharmURL(s.wordpressCharm.URL())
c.Assert(err, jc.ErrorIsNil)
w, err = s.apiUnit.WatchConfigSettings()
wc := watchertest.NewNotifyWatcherC(c, w, s.BackingState.StartSync)
defer wc.AssertStops()
// Initial event.
wc.AssertOneChange()
// Update config a couple of times, check a single event.
err = s.wordpressService.UpdateConfigSettings(charm.Settings{
"blog-title": "superhero paparazzi",
})
c.Assert(err, jc.ErrorIsNil)
err = s.wordpressService.UpdateConfigSettings(charm.Settings{
"blog-title": "sauceror central",
})
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
// Non-change is not reported.
err = s.wordpressService.UpdateConfigSettings(charm.Settings{
"blog-title": "sauceror central",
})
c.Assert(err, jc.ErrorIsNil)
wc.AssertNoChange()
}
示例6: TestWatchModelResources
func (s *undertakerSuite) TestWatchModelResources(c *gc.C) {
undertakerClient, otherSt := s.hostedAPI(c)
defer otherSt.Close()
w, err := undertakerClient.WatchModelResources()
c.Assert(err, jc.ErrorIsNil)
defer w.Kill()
wc := watchertest.NewNotifyWatcherC(c, w, nil)
wc.AssertOneChange()
wc.AssertStops()
}
示例7: 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.APICall("Machiner", s.stateAPI.BestFacadeVersion("Machiner"), "", "Watch", args, &results)
c.Assert(err, jc.ErrorIsNil)
c.Assert(results.Results, gc.HasLen, 1)
result := results.Results[0]
c.Assert(result.Error, gc.IsNil)
// params.NotifyWatcher conforms to the watcher.NotifyWatcher interface
w := watcher.NewNotifyWatcher(s.stateAPI, result)
wc := watchertest.NewNotifyWatcherC(c, w, s.BackingState.StartSync)
wc.AssertStops()
}
示例8: TestWatchAuthorisedKeys
func (s *keyupdaterSuite) TestWatchAuthorisedKeys(c *gc.C) {
watcher, err := s.keyupdater.WatchAuthorisedKeys(s.rawMachine.Tag().(names.MachineTag))
c.Assert(err, jc.ErrorIsNil)
wc := watchertest.NewNotifyWatcherC(c, watcher, s.BackingState.StartSync)
defer wc.AssertStops()
// Initial event
wc.AssertOneChange()
s.setAuthorisedKeys(c, "key1\nkey2")
// One change noticing the new version
wc.AssertOneChange()
// Setting the version to the same value doesn't trigger a change
s.setAuthorisedKeys(c, "key1\nkey2")
wc.AssertNoChange()
s.setAuthorisedKeys(c, "key1\nkey2\nkey3")
wc.AssertOneChange()
}
示例9: TestWatchAPIVersion
func (s *unitUpgraderSuite) TestWatchAPIVersion(c *gc.C) {
w, err := s.st.WatchAPIVersion(s.rawUnit.Tag().String())
c.Assert(err, jc.ErrorIsNil)
wc := watchertest.NewNotifyWatcherC(c, w, s.BackingState.StartSync)
defer wc.AssertStops()
// Initial event
wc.AssertOneChange()
vers := version.MustParseBinary("10.20.34-quantal-amd64")
err = s.rawMachine.SetAgentVersion(vers)
c.Assert(err, jc.ErrorIsNil)
// One change noticing the new version
wc.AssertOneChange()
vers = version.MustParseBinary("10.20.35-quantal-amd64")
err = s.rawMachine.SetAgentVersion(vers)
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
}
示例10: TestWatchLoggingConfig
func (s *loggerSuite) TestWatchLoggingConfig(c *gc.C) {
watcher, err := s.logger.WatchLoggingConfig(s.rawMachine.Tag())
c.Assert(err, jc.ErrorIsNil)
wc := watchertest.NewNotifyWatcherC(c, watcher, s.BackingState.StartSync)
defer wc.AssertStops()
// Initial event
wc.AssertOneChange()
loggingConfig := "<root>=WARN;juju.log.test=DEBUG"
s.setLoggingConfig(c, loggingConfig)
// One change noticing the new version
wc.AssertOneChange()
// Setting the version to the same value doesn't trigger a change
s.setLoggingConfig(c, loggingConfig)
wc.AssertNoChange()
loggingConfig = loggingConfig + ";wibble=DEBUG"
s.setLoggingConfig(c, loggingConfig)
wc.AssertOneChange()
}
示例11: TestWatch
func (s *serviceSuite) TestWatch(c *gc.C) {
c.Assert(s.apiService.Life(), gc.Equals, params.Alive)
w, err := s.apiService.Watch()
c.Assert(err, jc.ErrorIsNil)
wc := watchertest.NewNotifyWatcherC(c, w, s.BackingState.StartSync)
defer wc.AssertStops()
// Initial event.
wc.AssertOneChange()
// Change something and check it's detected.
err = s.wordpressService.SetExposed()
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
// Destroy the service and check it's detected.
err = s.wordpressService.Destroy()
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
}
示例12: TestWatch
func (s *unitSuite) TestWatch(c *gc.C) {
c.Assert(s.apiUnit.Life(), gc.Equals, params.Alive)
w, err := s.apiUnit.Watch()
c.Assert(err, jc.ErrorIsNil)
wc := watchertest.NewNotifyWatcherC(c, w, s.BackingState.StartSync)
defer wc.AssertStops()
// Initial event.
wc.AssertOneChange()
// Change something other than the lifecycle and make sure it's
// not detected.
err = s.apiUnit.SetAgentStatus(status.Idle, "not really", nil)
c.Assert(err, jc.ErrorIsNil)
wc.AssertNoChange()
// Make the unit dead and check it's detected.
err = s.apiUnit.EnsureDead()
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
}
示例13: TestWatchAPIHostPorts
func (s *APIAddresserTests) TestWatchAPIHostPorts(c *gc.C) {
expectServerAddrs := [][]network.HostPort{
network.NewHostPorts(1234, "0.1.2.3"),
}
err := s.state.SetAPIHostPorts(expectServerAddrs)
c.Assert(err, jc.ErrorIsNil)
w, err := s.facade.WatchAPIHostPorts()
c.Assert(err, jc.ErrorIsNil)
wc := watchertest.NewNotifyWatcherC(c, w, s.state.StartSync)
defer wc.AssertStops()
// Initial event.
wc.AssertOneChange()
// Change the state addresses and check that we get a notification
expectServerAddrs[0][0].Value = "0.1.99.99"
err = s.state.SetAPIHostPorts(expectServerAddrs)
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
}
示例14: TestWatch
func (s *machinerSuite) TestWatch(c *gc.C) {
machine, err := s.machiner.Machine(names.NewMachineTag("1"))
c.Assert(err, jc.ErrorIsNil)
c.Assert(machine.Life(), gc.Equals, params.Alive)
w, err := machine.Watch()
c.Assert(err, jc.ErrorIsNil)
wc := watchertest.NewNotifyWatcherC(c, w, s.BackingState.StartSync)
defer wc.AssertStops()
// Initial event.
wc.AssertOneChange()
// Change something other than the lifecycle and make sure it's
// not detected.
err = machine.SetStatus(status.Started, "not really", nil)
c.Assert(err, jc.ErrorIsNil)
wc.AssertNoChange()
// Make the machine dead and check it's detected.
err = machine.EnsureDead()
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
}
示例15: TestWatchInterfaces
func (s *networkerSuite) TestWatchInterfaces(c *gc.C) {
// Read dynamically generated document Ids.
ifaces, err := s.machine.NetworkInterfaces()
c.Assert(err, jc.ErrorIsNil)
c.Assert(ifaces, gc.HasLen, 5)
// Start network interface watcher.
w, err := s.networker.WatchInterfaces(names.NewMachineTag("0"))
wc := watchertest.NewNotifyWatcherC(c, w, s.BackingState.StartSync)
defer wc.AssertStops()
wc.AssertOneChange()
// Disable the first interface.
err = ifaces[0].Disable()
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
// Disable the first interface again, should not report.
err = ifaces[0].Disable()
c.Assert(err, jc.ErrorIsNil)
wc.AssertNoChange()
// Enable the first interface.
err = ifaces[0].Enable()
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
// Enable the first interface again, should not report.
err = ifaces[0].Enable()
c.Assert(err, jc.ErrorIsNil)
wc.AssertNoChange()
// Remove the network interface.
err = ifaces[0].Remove()
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
// Add the new interface.
_, err = s.machine.AddNetworkInterface(state.NetworkInterfaceInfo{
MACAddress: "aa:bb:cc:dd:ee:f3",
InterfaceName: "eth3",
NetworkName: "net2",
})
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
// Add the new interface on the container, should not report.
_, err = s.container.AddNetworkInterface(state.NetworkInterfaceInfo{
MACAddress: "aa:bb:cc:dd:ee:e3",
InterfaceName: "eth3",
NetworkName: "net2",
})
c.Assert(err, jc.ErrorIsNil)
wc.AssertNoChange()
// Read dynamically generated document Ids.
containerIfaces, err := s.container.NetworkInterfaces()
c.Assert(err, jc.ErrorIsNil)
c.Assert(containerIfaces, gc.HasLen, 4)
// Disable the first interface on the second machine, should not report.
err = containerIfaces[0].Disable()
c.Assert(err, jc.ErrorIsNil)
wc.AssertNoChange()
// Remove the network interface on the second machine, should not report.
err = containerIfaces[0].Remove()
c.Assert(err, jc.ErrorIsNil)
wc.AssertNoChange()
}