11
11
"launchpad.net/juju-core/constraints"
12
12
"launchpad.net/juju-core/environs/config"
13
13
"launchpad.net/juju-core/errors"
14
"launchpad.net/juju-core/instance"
14
15
"launchpad.net/juju-core/state"
15
16
"launchpad.net/juju-core/state/api/params"
16
17
"launchpad.net/juju-core/testing"
309
310
func (s *StateSuite) TestInjectMachineErrors(c *C) {
310
_, err := s.State.InjectMachine("", emptyCons, state.InstanceId("i-minvalid"), state.JobHostUnits)
311
_, err := s.State.InjectMachine("", emptyCons, instance.Id("i-minvalid"), state.JobHostUnits)
311
312
c.Assert(err, ErrorMatches, "cannot add a new machine: no series specified")
312
_, err = s.State.InjectMachine("series", emptyCons, state.InstanceId(""), state.JobHostUnits)
313
_, err = s.State.InjectMachine("series", emptyCons, instance.Id(""), state.JobHostUnits)
313
314
c.Assert(err, ErrorMatches, "cannot inject a machine without an instance id")
314
_, err = s.State.InjectMachine("series", emptyCons, state.InstanceId("i-mlazy"))
315
_, err = s.State.InjectMachine("series", emptyCons, instance.Id("i-mlazy"))
315
316
c.Assert(err, ErrorMatches, "cannot add a new machine: no jobs specified")
318
319
func (s *StateSuite) TestInjectMachine(c *C) {
319
320
cons := constraints.MustParse("mem=4G")
320
m, err := s.State.InjectMachine("series", cons, state.InstanceId("i-mindustrious"), state.JobHostUnits, state.JobManageEnviron)
321
m, err := s.State.InjectMachine("series", cons, instance.Id("i-mindustrious"), state.JobHostUnits, state.JobManageEnviron)
321
322
c.Assert(err, IsNil)
322
323
c.Assert(m.Jobs(), DeepEquals, []state.MachineJob{state.JobHostUnits, state.JobManageEnviron})
323
324
instanceId, ok := m.InstanceId()
324
325
c.Assert(ok, Equals, true)
325
c.Assert(instanceId, Equals, state.InstanceId("i-mindustrious"))
326
c.Assert(instanceId, Equals, instance.Id("i-mindustrious"))
326
327
mcons, err := m.Constraints()
327
328
c.Assert(err, IsNil)
328
329
c.Assert(cons, DeepEquals, mcons)
334
335
func (s *StateSuite) TestAddContainerToInjectedMachine(c *C) {
335
336
oneJob := []state.MachineJob{state.JobHostUnits}
336
m0, err := s.State.InjectMachine("series", emptyCons, state.InstanceId("i-mindustrious"), state.JobHostUnits, state.JobManageEnviron)
337
m0, err := s.State.InjectMachine("series", emptyCons, instance.Id("i-mindustrious"), state.JobHostUnits, state.JobManageEnviron)
337
338
c.Assert(err, IsNil)
339
340
// Add first container.
397
398
for i := 0; i < numInserts; i++ {
398
399
m, err := s.State.AddMachine("series", state.JobHostUnits)
399
400
c.Assert(err, IsNil)
400
err = m.SetProvisioned(state.InstanceId(fmt.Sprintf("foo-%d", i)), "fake_nonce")
401
err = m.SetProvisioned(instance.Id(fmt.Sprintf("foo-%d", i)), "fake_nonce")
401
402
c.Assert(err, IsNil)
402
403
err = m.SetAgentTools(newTools("7.8.9-foo-bar", "http://arble.tgz"))
403
404
c.Assert(err, IsNil)
820
821
s.assertChange(c, w, "0")
822
823
// Change the machine: not reported.
823
err = machine.SetProvisioned(state.InstanceId("i-blah"), "fake-nonce")
824
err = machine.SetProvisioned(instance.Id("i-blah"), "fake-nonce")
824
825
c.Assert(err, IsNil)
825
826
s.assertNoChange(c, w)