Ubuntu Pastebin

Paste from wallyworld at Wed, 11 Mar 2015 23:40:49 +0000

Download as text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
func (s *uniterLeadershipSuite) TestSettingsChangeNotifier(c *gc.C) {

	// First, the unit must be elected leader; otherwise merges will be denied.
	leadershipClient := leadership.NewClient(s.clientFacade, s.facadeCaller)
	defer func() { err := leadershipClient.Close(); c.Assert(err, gc.IsNil) }()
	err := leadershipClient.ClaimLeadership(s.serviceId, s.unitId, 10*time.Second)
	c.Assert(err, gc.IsNil)

	client := uniter.NewState(s.facadeCaller.RawAPICaller(), names.NewUnitTag(s.unitId))

	// Listen for changes
	watcher, err := client.LeadershipSettings.WatchLeadershipSettings(s.serviceId)
	c.Assert(err, gc.IsNil)

	defer statetesting.AssertStop(c, watcher)
	wc := statetesting.NewNotifyWatcherC(c, s.BackingState, watcher)

	// Initial event.
//	wc.AssertChange("foo", "bar")
	wc.AssertOneChange()
	wc.AssertNoChange()


	c.Log("Writing changes...")

	err = client.LeadershipSettings.Merge(s.serviceId, map[string]string{"foo": "bar"})
	c.Assert(err, gc.IsNil)


	c.Log("Waiting to see that watcher saw changes...")

	wc.AssertOneChange()

	settings, err := client.LeadershipSettings.Read(s.serviceId)
	c.Assert(err, gc.IsNil)

	c.Check(settings["foo"], gc.Equals, "bar")
Download as text