Merge lp:~axwalk/juju-core/lp1211147-machine-isstateserver into lp:~go-bot/juju-core/trunk

Proposed by Andrew Wilkins
Status: Merged
Approved by: Andrew Wilkins
Approved revision: no longer in the source branch.
Merged at revision: 1664
Proposed branch: lp:~axwalk/juju-core/lp1211147-machine-isstateserver
Merge into: lp:~go-bot/juju-core/trunk
Diff against target: 52 lines (+31/-0)
2 files modified
state/machine.go (+10/-0)
state/machine_test.go (+21/-0)
To merge this branch: bzr merge lp:~axwalk/juju-core/lp1211147-machine-isstateserver
Reviewer Review Type Date Requested Status
Juju Engineering Pending
Review via email: mp+180277@code.launchpad.net

Commit message

Add convenience method Machine.IsStateServer

https://codereview.appspot.com/12745044/

Description of the change

Add convenience method Machine.IsStateServer

https://codereview.appspot.com/12745044/

To post a comment you must log in.
Revision history for this message
Andrew Wilkins (axwalk) wrote :

Reviewers: mp+180277_code.launchpad.net,

Message:
Please take a look.

Description:
Add convenience method Machine.IsStateServer

https://code.launchpad.net/~axwalk/juju-core/lp1211147-machine-isstateserver/+merge/180277

(do not edit description out of merge proposal)

Please review this at https://codereview.appspot.com/12745044/

Affected files:
   A [revision details]
   M state/machine.go
   M state/machine_test.go

Index: [revision details]
=== added file '[revision details]'
--- [revision details] 2012-01-01 00:00:00 +0000
+++ [revision details] 2012-01-01 00:00:00 +0000
@@ -0,0 +1,2 @@
+Old revision: tarmac-20130809021225-6c5p05y8zs5j83o3
+New revision: <email address hidden>

Index: state/machine.go
=== modified file 'state/machine.go'
--- state/machine.go 2013-08-07 18:02:26 +0000
+++ state/machine.go 2013-08-15 02:03:55 +0000
@@ -167,6 +167,16 @@
   return m.doc.Jobs
  }

+// IsStateServer returns true if the machine has a JobManageState job.
+func (m *Machine) IsStateServer() bool {
+ for _, job := range m.doc.Jobs {
+ if job == JobManageState {
+ return true
+ }
+ }
+ return false
+}
+
  // AgentTools returns the tools that the agent is currently running.
  // It returns an error that satisfies IsNotFound if the tools have not yet
been set.
  func (m *Machine) AgentTools() (*tools.Tools, error) {

Index: state/machine_test.go
=== modified file 'state/machine_test.go'
--- state/machine_test.go 2013-08-08 17:56:28 +0000
+++ state/machine_test.go 2013-08-15 02:03:55 +0000
@@ -58,6 +58,27 @@
   c.Assert(ok, Equals, true)
  }

+func (s *MachineSuite) TestMachineIsStateServer(c *C) {
+ tests := []struct {
+ isStateServer bool
+ jobs []state.MachineJob
+ }{
+ {false, []state.MachineJob{state.JobHostUnits}},
+ {false, []state.MachineJob{state.JobHostUnits, state.JobManageEnviron}},
+ {true, []state.MachineJob{state.JobHostUnits, state.JobManageState,
state.JobManageEnviron}},
+ {true, []state.MachineJob{state.JobManageState}},
+ }
+ for _, test := range tests {
+ params := state.AddMachineParams{
+ Series: "series",
+ Jobs: test.jobs,
+ }
+ m, err := s.State.AddMachineWithConstraints(&params)
+ c.Assert(err, IsNil)
+ c.Assert(m.IsStateServer(), Equals, test.isStateServer)
+ }
+}
+
  func (s *MachineSuite) TestLifeJobManageEnviron(c *C) {
   // A JobManageEnviron machine must never advance lifecycle.
   m, err := s.State.AddMachine("series", state.JobManageEnviron)

Revision history for this message
Tim Penhey (thumper) wrote :

On 2013/08/15 02:10:30, axw wrote:
> Please take a look.

LGTM - trivial

https://codereview.appspot.com/12745044/

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'state/machine.go'
2--- state/machine.go 2013-08-07 18:02:26 +0000
3+++ state/machine.go 2013-08-15 02:08:46 +0000
4@@ -167,6 +167,16 @@
5 return m.doc.Jobs
6 }
7
8+// IsStateServer returns true if the machine has a JobManageState job.
9+func (m *Machine) IsStateServer() bool {
10+ for _, job := range m.doc.Jobs {
11+ if job == JobManageState {
12+ return true
13+ }
14+ }
15+ return false
16+}
17+
18 // AgentTools returns the tools that the agent is currently running.
19 // It returns an error that satisfies IsNotFound if the tools have not yet been set.
20 func (m *Machine) AgentTools() (*tools.Tools, error) {
21
22=== modified file 'state/machine_test.go'
23--- state/machine_test.go 2013-08-08 17:56:28 +0000
24+++ state/machine_test.go 2013-08-15 02:08:46 +0000
25@@ -58,6 +58,27 @@
26 c.Assert(ok, Equals, true)
27 }
28
29+func (s *MachineSuite) TestMachineIsStateServer(c *C) {
30+ tests := []struct {
31+ isStateServer bool
32+ jobs []state.MachineJob
33+ }{
34+ {false, []state.MachineJob{state.JobHostUnits}},
35+ {false, []state.MachineJob{state.JobHostUnits, state.JobManageEnviron}},
36+ {true, []state.MachineJob{state.JobHostUnits, state.JobManageState, state.JobManageEnviron}},
37+ {true, []state.MachineJob{state.JobManageState}},
38+ }
39+ for _, test := range tests {
40+ params := state.AddMachineParams{
41+ Series: "series",
42+ Jobs: test.jobs,
43+ }
44+ m, err := s.State.AddMachineWithConstraints(&params)
45+ c.Assert(err, IsNil)
46+ c.Assert(m.IsStateServer(), Equals, test.isStateServer)
47+ }
48+}
49+
50 func (s *MachineSuite) TestLifeJobManageEnviron(c *C) {
51 // A JobManageEnviron machine must never advance lifecycle.
52 m, err := s.State.AddMachine("series", state.JobManageEnviron)

Subscribers

People subscribed via source and target branches

to status/vote changes: