22
23
"github.com/juju/juju/network"
23
24
"github.com/juju/juju/state"
24
25
"github.com/juju/juju/state/testing"
26
"github.com/juju/juju/status"
25
27
"github.com/juju/juju/storage/poolmanager"
26
28
"github.com/juju/juju/storage/provider"
27
29
"github.com/juju/juju/storage/provider/registry"
28
30
coretesting "github.com/juju/juju/testing"
29
"github.com/juju/juju/version"
32
33
type MachineSuite struct {
703
704
c.Assert(m.PasswordValid(goodPassword), jc.IsTrue)
706
func (s *MachineSuite) TestSetAgentCompatPassword(c *gc.C) {
707
e, err := s.State.Machine(s.machine.Id())
708
c.Assert(err, jc.ErrorIsNil)
709
testSetAgentCompatPassword(c, e)
712
707
func (s *MachineSuite) TestMachineWaitAgentPresence(c *gc.C) {
713
708
alive, err := s.machine.AgentPresence()
714
709
c.Assert(err, jc.ErrorIsNil)
1175
1170
err := s.machine.SetProvisioned("umbrella/0", "fake_nonce", nil)
1176
1171
c.Assert(err, jc.ErrorIsNil)
1178
err = s.machine.SetInstanceStatus("ALIVE")
1173
err = s.machine.SetInstanceStatus(status.StatusRunning, "alive", map[string]interface{}{})
1179
1174
c.Assert(err, jc.ErrorIsNil)
1181
1176
// Reload machine and check result.
1182
1177
err = s.machine.Refresh()
1183
1178
c.Assert(err, jc.ErrorIsNil)
1184
status, err := s.machine.InstanceStatus()
1179
machineStatus, err := s.machine.InstanceStatus()
1185
1180
c.Assert(err, jc.ErrorIsNil)
1186
c.Assert(status, gc.DeepEquals, "ALIVE")
1189
func (s *MachineSuite) TestNotProvisionedMachineSetInstanceStatus(c *gc.C) {
1190
err := s.machine.SetInstanceStatus("ALIVE")
1191
c.Assert(err, gc.ErrorMatches, ".* not provisioned")
1194
func (s *MachineSuite) TestNotProvisionedMachineInstanceStatus(c *gc.C) {
1195
_, err := s.machine.InstanceStatus()
1196
c.Assert(err, jc.Satisfies, errors.IsNotProvisioned)
1181
c.Assert(machineStatus.Status, gc.DeepEquals, status.StatusRunning)
1182
c.Assert(machineStatus.Message, gc.DeepEquals, "alive")
1199
1185
func (s *MachineSuite) TestMachineRefresh(c *gc.C) {
1431
1417
wc.AssertNoChange()
1433
1419
// Change the unit; no change.
1434
err = mysql0.SetAgentStatus(state.StatusIdle, "", nil)
1420
err = mysql0.SetAgentStatus(status.StatusIdle, "", nil)
1435
1421
c.Assert(err, jc.ErrorIsNil)
1436
1422
wc.AssertNoChange()
1460
1446
wc.AssertNoChange()
1462
1448
// Change the subordinate; no change.
1463
err = logging0.SetAgentStatus(state.StatusIdle, "", nil)
1449
err = logging0.SetAgentStatus(status.StatusIdle, "", nil)
1464
1450
c.Assert(err, jc.ErrorIsNil)
1465
1451
wc.AssertNoChange()
1535
1521
wc.AssertNoChange()
1537
1523
// Change the unit; no change.
1538
err = mysql0.SetAgentStatus(state.StatusIdle, "", nil)
1524
err = mysql0.SetAgentStatus(status.StatusIdle, "", nil)
1539
1525
c.Assert(err, jc.ErrorIsNil)
1540
1526
wc.AssertNoChange()
1565
1551
wc.AssertNoChange()
1567
1553
// Change the subordinate; no change.
1568
err = logging0.SetAgentStatus(state.StatusIdle, "", nil)
1554
err = logging0.SetAgentStatus(status.StatusIdle, "", nil)
1569
1555
c.Assert(err, jc.ErrorIsNil)
1570
1556
wc.AssertNoChange()
2495
2481
c.Assert(err, jc.ErrorIsNil)
2496
2482
statusInfo, err := supportedContainer.Status()
2497
2483
c.Assert(err, jc.ErrorIsNil)
2498
c.Assert(statusInfo.Status, gc.Equals, state.StatusPending)
2484
c.Assert(statusInfo.Status, gc.Equals, status.StatusPending)
2500
2486
// An unsupported (lxc) container will have an error status.
2501
2487
err = container.Refresh()
2502
2488
c.Assert(err, jc.ErrorIsNil)
2503
2489
statusInfo, err = container.Status()
2504
2490
c.Assert(err, jc.ErrorIsNil)
2505
c.Assert(statusInfo.Status, gc.Equals, state.StatusError)
2491
c.Assert(statusInfo.Status, gc.Equals, status.StatusError)
2506
2492
c.Assert(statusInfo.Message, gc.Equals, "unsupported container")
2507
2493
c.Assert(statusInfo.Data, gc.DeepEquals, map[string]interface{}{"type": "lxc"})
2530
2516
c.Assert(err, jc.ErrorIsNil)
2531
2517
statusInfo, err := container.Status()
2532
2518
c.Assert(err, jc.ErrorIsNil)
2533
c.Assert(statusInfo.Status, gc.Equals, state.StatusError)
2519
c.Assert(statusInfo.Status, gc.Equals, status.StatusError)
2534
2520
c.Assert(statusInfo.Message, gc.Equals, "unsupported container")
2535
2521
containerType := state.ContainerTypeFromId(container.Id())
2536
2522
c.Assert(statusInfo.Data, gc.DeepEquals, map[string]interface{}{"type": string(containerType)})