~rogpeppe/juju-core/256-more-status

« back to all changes in this revision

Viewing changes to state/machine_test.go

statecmd: don't use juju.Conn unnecessarily

There's an associated cost when the API uses juju.Conn,
so we want to avoid it when reasonable.
This change moves some operations from juju into
state because they don't require juju.Conn's associated
Environ.

R=fwereade, dimitern
CC=
https://codereview.appspot.com/7945044

Show diffs side-by-side

added added

removed removed

Lines of Context:
80
80
        c.Assert(err, IsNil)
81
81
}
82
82
 
 
83
func (s *MachineSuite) TestDestroyMachines(c *C) {
 
84
        m0 := s.machine
 
85
        m1, err := s.State.AddMachine("series", state.JobManageEnviron)
 
86
        c.Assert(err, IsNil)
 
87
        m2, err := s.State.AddMachine("series", state.JobHostUnits)
 
88
        c.Assert(err, IsNil)
 
89
 
 
90
        sch := s.AddTestingCharm(c, "wordpress")
 
91
        wordpress, err := s.State.AddService("wordpress", sch)
 
92
        c.Assert(err, IsNil)
 
93
        u, err := wordpress.AddUnit()
 
94
        c.Assert(err, IsNil)
 
95
        err = u.AssignToMachine(m0)
 
96
        c.Assert(err, IsNil)
 
97
 
 
98
        err = s.State.DestroyMachines("0", "1", "2")
 
99
        c.Assert(err, ErrorMatches, `some machines were not destroyed: machine 0 has unit "wordpress/0" assigned; machine 1 is required by the environment`)
 
100
        assertLife := func(m *state.Machine, life state.Life) {
 
101
                err := m.Refresh()
 
102
                c.Assert(err, IsNil)
 
103
                c.Assert(m.Life(), Equals, life)
 
104
        }
 
105
        assertLife(m0, state.Alive)
 
106
        assertLife(m1, state.Alive)
 
107
        assertLife(m2, state.Dying)
 
108
 
 
109
        err = u.UnassignFromMachine()
 
110
        c.Assert(err, IsNil)
 
111
        err = s.State.DestroyMachines("0", "1", "2")
 
112
        c.Assert(err, ErrorMatches, `some machines were not destroyed: machine 1 is required by the environment`)
 
113
        assertLife(m0, state.Dying)
 
114
        assertLife(m1, state.Alive)
 
115
        assertLife(m2, state.Dying)
 
116
}
 
117
 
83
118
func (s *MachineSuite) TestMachineSetAgentAlive(c *C) {
84
119
        alive, err := s.machine.AgentAlive()
85
120
        c.Assert(err, IsNil)