50
51
func (s *FilesystemStatusSuite) checkInitialStatus(c *gc.C) {
51
52
statusInfo, err := s.filesystem.Status()
52
53
c.Check(err, jc.ErrorIsNil)
53
c.Check(statusInfo.Status, gc.Equals, state.StatusPending)
54
c.Check(statusInfo.Status, gc.Equals, status.StatusPending)
54
55
c.Check(statusInfo.Message, gc.Equals, "")
55
56
c.Check(statusInfo.Data, gc.HasLen, 0)
56
57
c.Check(statusInfo.Since, gc.NotNil)
59
60
func (s *FilesystemStatusSuite) TestSetErrorStatusWithoutInfo(c *gc.C) {
60
err := s.filesystem.SetStatus(state.StatusError, "", nil)
61
err := s.filesystem.SetStatus(status.StatusError, "", nil)
61
62
c.Check(err, gc.ErrorMatches, `cannot set status "error" without info`)
63
64
s.checkInitialStatus(c)
66
67
func (s *FilesystemStatusSuite) TestSetUnknownStatus(c *gc.C) {
67
err := s.filesystem.SetStatus(state.Status("vliegkat"), "orville", nil)
68
err := s.filesystem.SetStatus(status.Status("vliegkat"), "orville", nil)
68
69
c.Assert(err, gc.ErrorMatches, `cannot set invalid status "vliegkat"`)
70
71
s.checkInitialStatus(c)
73
74
func (s *FilesystemStatusSuite) TestSetOverwritesData(c *gc.C) {
74
err := s.filesystem.SetStatus(state.StatusAttaching, "blah", map[string]interface{}{
75
err := s.filesystem.SetStatus(status.StatusAttaching, "blah", map[string]interface{}{
77
78
c.Check(err, jc.ErrorIsNil)
86
87
func (s *FilesystemStatusSuite) checkGetSetStatus(c *gc.C) {
87
err := s.filesystem.SetStatus(state.StatusAttaching, "blah", map[string]interface{}{
88
err := s.filesystem.SetStatus(status.StatusAttaching, "blah", map[string]interface{}{
88
89
"$foo.bar.baz": map[string]interface{}{
97
98
statusInfo, err := filesystem.Status()
98
99
c.Check(err, jc.ErrorIsNil)
99
c.Check(statusInfo.Status, gc.Equals, state.StatusAttaching)
100
c.Check(statusInfo.Status, gc.Equals, status.StatusAttaching)
100
101
c.Check(statusInfo.Message, gc.Equals, "blah")
101
102
c.Check(statusInfo.Data, jc.DeepEquals, map[string]interface{}{
102
103
"$foo.bar.baz": map[string]interface{}{
134
135
func (s *FilesystemStatusSuite) TestGetSetStatusGone(c *gc.C) {
135
136
s.obliterateFilesystem(c, s.filesystem.FilesystemTag())
137
err := s.filesystem.SetStatus(state.StatusAttaching, "not really", nil)
138
err := s.filesystem.SetStatus(status.StatusAttaching, "not really", nil)
138
139
c.Check(err, gc.ErrorMatches, `cannot set status: filesystem not found`)
140
141
statusInfo, err := s.filesystem.Status()
141
142
c.Check(err, gc.ErrorMatches, `cannot get status: filesystem not found`)
142
c.Check(statusInfo, gc.DeepEquals, state.StatusInfo{})
143
c.Check(statusInfo, gc.DeepEquals, status.StatusInfo{})
145
146
func (s *FilesystemStatusSuite) TestSetStatusPendingUnprovisioned(c *gc.C) {
146
err := s.filesystem.SetStatus(state.StatusPending, "still", nil)
147
err := s.filesystem.SetStatus(status.StatusPending, "still", nil)
147
148
c.Check(err, jc.ErrorIsNil)
152
153
FilesystemId: "fs-id",
154
155
c.Assert(err, jc.ErrorIsNil)
155
err = s.filesystem.SetStatus(state.StatusPending, "", nil)
156
err = s.filesystem.SetStatus(status.StatusPending, "", nil)
156
157
c.Check(err, gc.ErrorMatches, `cannot set status "pending"`)