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

Unified Diff: cmd/jujud/provisioning_test.go

Issue 6250068: cmd/jujud: strawman provisioning agent (Closed)
Patch Set: cmd/jujud: strawman provisioning agent Created 11 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cmd/jujud/provisioning.go ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cmd/jujud/provisioning_test.go
=== modified file 'cmd/jujud/provisioning_test.go'
--- cmd/jujud/provisioning_test.go 2012-05-30 02:13:48 +0000
+++ cmd/jujud/provisioning_test.go 2012-06-05 07:57:23 +0000
@@ -2,13 +2,43 @@
import (
. "launchpad.net/gocheck"
+ "launchpad.net/gozk/zookeeper"
"launchpad.net/juju/go/cmd"
+ "launchpad.net/juju/go/environs/dummy"
+ "launchpad.net/juju/go/state"
+ "launchpad.net/juju/go/testing"
)
-type ProvisioningSuite struct{}
+type ProvisioningSuite struct {
+ zkConn *zookeeper.Conn
+ st *state.State
+}
var _ = Suite(&ProvisioningSuite{})
+func (s *ProvisioningSuite) SetUpTest(c *C) {
+ zk, session, err := zookeeper.Dial(zkAddr, 15e9)
+ c.Assert(err, IsNil)
+ event := <-session
+ c.Assert(event.Ok(), Equals, true)
+ c.Assert(event.Type, Equals, zookeeper.EVENT_SESSION)
+ c.Assert(event.State, Equals, zookeeper.STATE_CONNECTED)
+
+ s.zkConn = zk
+ info := &state.Info{
+ Addrs: []string{zkAddr},
+ }
+ testing.ZkRemoveTree(s.zkConn, "/")
+ s.st, err = state.Initialize(info)
+ c.Assert(err, IsNil)
+
+ dummy.Reset()
+}
+
+func (s *ProvisioningSuite) TearDownTest(c *C) {
+ s.zkConn.Close()
+}
+
func (s *ProvisioningSuite) TestParseSuccess(c *C) {
create := func() (cmd.Command, *AgentConf) {
a := &ProvisioningAgent{}
@@ -22,3 +52,56 @@
err := ParseAgentCommand(a, []string{"nincompoops"})
c.Assert(err, ErrorMatches, `unrecognized args: \["nincompoops"\]`)
}
+
+func initProvisioningAgent() (*ProvisioningAgent, error) {
+ args := []string{"--zookeeper-servers", zkAddr}
+ c := &ProvisioningAgent{}
+ return c, initCmd(c, args)
+}
+
+func (s *ProvisioningSuite) TestProvisionerStartStop(c *C) {
+ p := NewProvisioner(s.st)
+ c.Assert(p.Stop(), IsNil)
+}
+
+func (s *ProvisioningSuite) TestProvisionerEnvironmentChange(c *C) {
+ p := NewProvisioner(s.st)
+
+ // seed /environment to point to dummy
+ env, err := s.st.Environment()
+ c.Assert(err, IsNil)
+ env.Set("type", "dummy")
+ env.Set("zookeeper", false)
+ env.Set("name", "testing")
+ _, err = env.Write()
+ c.Assert(err, IsNil)
+
+ // twiddle with the environment
+ env, err = s.st.Environment()
+ c.Assert(err, IsNil)
+ env.Set("name", "testing2")
+ _, err = env.Write()
+ c.Assert(err, IsNil)
+ env.Set("name", "testing3")
+ _, err = env.Write()
+ c.Assert(p.Stop(), IsNil)
+}
+
+func (s *ProvisioningSuite) TestProvisionerStopOnStateClose(c *C) {
+ p := NewProvisioner(s.st)
+
+ // seed /environment to point to dummy
+ env, err := s.st.Environment()
+ c.Assert(err, IsNil)
+ env.Set("type", "dummy")
+ env.Set("zookeeper", false)
+ env.Set("name", "testing")
+ _, err = env.Write()
+ c.Assert(err, IsNil)
+
+ s.st.Close()
+
+ c.Assert(p.Wait(), ErrorMatches, "watcher.*")
+ c.Assert(p.Stop(), ErrorMatches, "watcher.*")
+
+}
« no previous file with comments | « cmd/jujud/provisioning.go ('k') | no next file » | no next file with comments »

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