767
767
func (s *MachineSuite) TestGetSetStatusWhileAlive(c *C) {
768
failError := func() { s.machine.SetStatus(params.MachineError, "") }
768
failError := func() { s.machine.SetStatus(params.StatusError, "") }
769
769
c.Assert(failError, PanicMatches, "machine error status with no info")
770
failPending := func() { s.machine.SetStatus(params.MachinePending, "") }
770
failPending := func() { s.machine.SetStatus(params.StatusPending, "") }
771
771
c.Assert(failPending, PanicMatches, "machine status cannot be set to pending")
773
773
status, info, err := s.machine.Status()
774
774
c.Assert(err, IsNil)
775
c.Assert(status, Equals, params.MachinePending)
776
c.Assert(info, Equals, "")
778
err = s.machine.SetStatus(params.MachineStarted, "")
780
status, info, err = s.machine.Status()
782
c.Assert(status, Equals, params.MachineStarted)
783
c.Assert(info, Equals, "")
785
err = s.machine.SetStatus(params.MachineError, "provisioning failed")
787
status, info, err = s.machine.Status()
789
c.Assert(status, Equals, params.MachineError)
775
c.Assert(status, Equals, params.StatusPending)
776
c.Assert(info, Equals, "")
778
err = s.machine.SetStatus(params.StatusStarted, "")
780
status, info, err = s.machine.Status()
782
c.Assert(status, Equals, params.StatusStarted)
783
c.Assert(info, Equals, "")
785
err = s.machine.SetStatus(params.StatusError, "provisioning failed")
787
status, info, err = s.machine.Status()
789
c.Assert(status, Equals, params.StatusError)
790
790
c.Assert(info, Equals, "provisioning failed")
794
794
// When Dying set/get should work.
795
795
err := s.machine.Destroy()
796
796
c.Assert(err, IsNil)
797
err = s.machine.SetStatus(params.MachineStopped, "")
797
err = s.machine.SetStatus(params.StatusStopped, "")
798
798
c.Assert(err, IsNil)
799
799
status, info, err := s.machine.Status()
800
800
c.Assert(err, IsNil)
801
c.Assert(status, Equals, params.MachineStopped)
801
c.Assert(status, Equals, params.StatusStopped)
802
802
c.Assert(info, Equals, "")
804
804
// When Dead set should fail, but get will work.
805
805
err = s.machine.EnsureDead()
806
806
c.Assert(err, IsNil)
807
err = s.machine.SetStatus(params.MachineStarted, "not really")
807
err = s.machine.SetStatus(params.StatusStarted, "not really")
808
808
c.Assert(err, ErrorMatches, `cannot set status of machine "0": not found or not alive`)
809
809
status, info, err = s.machine.Status()
810
810
c.Assert(err, IsNil)
811
c.Assert(status, Equals, params.MachineStopped)
811
c.Assert(status, Equals, params.StatusStopped)
812
812
c.Assert(info, Equals, "")
814
814
err = s.machine.Remove()
815
815
c.Assert(err, IsNil)
816
err = s.machine.SetStatus(params.MachineStarted, "not really")
816
err = s.machine.SetStatus(params.StatusStarted, "not really")
817
817
c.Assert(err, ErrorMatches, `cannot set status of machine "0": not found or not alive`)
818
818
_, _, err = s.machine.Status()
819
819
c.Assert(err, ErrorMatches, "status not found")