Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(654)

Delta Between Two Patch Sets: cmd/jujud/provisioning_test.go

Issue 6250068: cmd/jujud: strawman provisioning agent (Closed)
Left Patch Set: cmd/jujud: strawman provisioning agent Created 11 years, 10 months ago
Right Patch Set: cmd/jujud: strawman provisioning agent Created 11 years, 9 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « cmd/jujud/provisioning.go ('k') | no next file » | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 package main_test 1 package main
2 2
3 import ( 3 import (
4 . "launchpad.net/gocheck" 4 . "launchpad.net/gocheck"
5 "launchpad.net/gozk/zookeeper" 5 "launchpad.net/gozk/zookeeper"
6 "launchpad.net/juju/go/cmd" 6 "launchpad.net/juju/go/cmd"
7 main "launchpad.net/juju/go/cmd/jujud"
8 "launchpad.net/juju/go/environs/dummy" 7 "launchpad.net/juju/go/environs/dummy"
9 "launchpad.net/juju/go/state" 8 "launchpad.net/juju/go/state"
10 "launchpad.net/juju/go/testing" 9 "launchpad.net/juju/go/testing"
11 ) 10 )
12 11
13 type ProvisioningSuite struct { 12 type ProvisioningSuite struct {
14 zkConn *zookeeper.Conn 13 zkConn *zookeeper.Conn
15 st *state.State 14 st *state.State
16 } 15 }
17 16
18 var _ = Suite(&ProvisioningSuite{}) 17 var _ = Suite(&ProvisioningSuite{})
19 18
20 func (s *ProvisioningSuite) SetUpTest(c *C) { 19 func (s *ProvisioningSuite) SetUpTest(c *C) {
21 zk, session, err := zookeeper.Dial(zkAddr, 15e9) 20 zk, session, err := zookeeper.Dial(zkAddr, 15e9)
22 c.Assert(err, IsNil) 21 c.Assert(err, IsNil)
23 event := <-session 22 event := <-session
24 c.Assert(event.Ok(), Equals, true) 23 c.Assert(event.Ok(), Equals, true)
25 c.Assert(event.Type, Equals, zookeeper.EVENT_SESSION) 24 c.Assert(event.Type, Equals, zookeeper.EVENT_SESSION)
26 c.Assert(event.State, Equals, zookeeper.STATE_CONNECTED) 25 c.Assert(event.State, Equals, zookeeper.STATE_CONNECTED)
27 26
28 s.zkConn = zk 27 s.zkConn = zk
29 info := &state.Info{ 28 info := &state.Info{
30 Addrs: []string{zkAddr}, 29 Addrs: []string{zkAddr},
31 } 30 }
31 testing.ZkRemoveTree(s.zkConn, "/")
32 s.st, err = state.Initialize(info) 32 s.st, err = state.Initialize(info)
33 c.Assert(err, IsNil) 33 c.Assert(err, IsNil)
34 34
35 dummy.Reset() 35 dummy.Reset()
36 }
37
38 func (s *ProvisioningSuite) TearDownTest(c *C) {
39 s.zkConn.Close()
40 }
41
42 func (s *ProvisioningSuite) TestParseSuccess(c *C) {
43 create := func() (cmd.Command, *AgentConf) {
44 a := &ProvisioningAgent{}
45 return a, &a.Conf
46 }
47 CheckAgentCommand(c, create, []string{})
48 }
49
50 func (s *ProvisioningSuite) TestParseUnknown(c *C) {
51 a := &ProvisioningAgent{}
52 err := ParseAgentCommand(a, []string{"nincompoops"})
53 c.Assert(err, ErrorMatches, `unrecognized args: \["nincompoops"\]`)
54 }
55
56 func initProvisioningAgent() (*ProvisioningAgent, error) {
57 args := []string{"--zookeeper-servers", zkAddr}
58 c := &ProvisioningAgent{}
59 return c, initCmd(c, args)
60 }
61
62 func (s *ProvisioningSuite) TestProvisionerStartStop(c *C) {
63 p := NewProvisioner(s.st)
64 c.Assert(p.Stop(), IsNil)
65 }
66
67 func (s *ProvisioningSuite) TestProvisionerEnvironmentChange(c *C) {
68 p := NewProvisioner(s.st)
36 69
37 // seed /environment to point to dummy 70 // seed /environment to point to dummy
38 env, err := s.st.Environment() 71 env, err := s.st.Environment()
39 c.Assert(err, IsNil) 72 c.Assert(err, IsNil)
40 env.Set("type", "dummy") 73 env.Set("type", "dummy")
41 env.Set("zookeeper", false) 74 env.Set("zookeeper", false)
42 env.Set("name", "testing") 75 env.Set("name", "testing")
43 _, err = env.Write() 76 _, err = env.Write()
44 c.Assert(err, IsNil) 77 c.Assert(err, IsNil)
78
79 // twiddle with the environment
80 env, err = s.st.Environment()
81 c.Assert(err, IsNil)
82 env.Set("name", "testing2")
83 _, err = env.Write()
84 c.Assert(err, IsNil)
85 env.Set("name", "testing3")
86 _, err = env.Write()
87 c.Assert(p.Stop(), IsNil)
45 } 88 }
46 89
47 func (s *ProvisioningSuite) TearDownTest(c *C) { 90 func (s *ProvisioningSuite) TestProvisionerStopOnStateClose(c *C) {
48 » testing.ZkRemoveTree(s.zkConn, "/") 91 » p := NewProvisioner(s.st)
49 » s.zkConn.Close() 92
93 » // seed /environment to point to dummy
94 » env, err := s.st.Environment()
95 » c.Assert(err, IsNil)
96 » env.Set("type", "dummy")
97 » env.Set("zookeeper", false)
98 » env.Set("name", "testing")
99 » _, err = env.Write()
100 » c.Assert(err, IsNil)
101
102 » s.st.Close()
103
104 » c.Assert(p.Wait(), ErrorMatches, "watcher.*")
105 » c.Assert(p.Stop(), ErrorMatches, "watcher.*")
106
50 } 107 }
51
52 func (s *ProvisioningSuite) TestParseSuccess(c *C) {
53 create := func() (cmd.Command, *main.AgentConf) {
54 a := &main.ProvisioningAgent{}
55 return a, &a.Conf
56 }
57 CheckAgentCommand(c, create, []string{})
58 }
59
60 func (s *ProvisioningSuite) TestParseUnknown(c *C) {
61 a := &main.ProvisioningAgent{}
62 err := ParseAgentCommand(a, []string{"nincompoops"})
63 c.Assert(err, ErrorMatches, `unrecognized args: \["nincompoops"\]`)
64 }
65
66 func initProvisioningAgent() (*main.ProvisioningAgent, error) {
67 args := []string{"--zookeeper-servers", zkAddr}
68 c := &main.ProvisioningAgent{}
69 return c, initCmd(c, args)
70 }
71
72 func (s *ProvisioningSuite) TestProvisionerStartStop(c *C) {
73 p := main.NewProvisioner(s.st)
74 c.Assert(p.Stop(), IsNil)
75 }
LEFTRIGHT

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b