~juju-qa/ubuntu/xenial/juju/2.0-rc2

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/state/status_history_test.go

  • Committer: Nicholas Skaggs
  • Date: 2016-09-30 14:39:30 UTC
  • mfrom: (1.8.1)
  • Revision ID: nicholas.skaggs@canonical.com-20160930143930-vwwhrefh6ftckccy
import upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
import (
7
7
        "time"
8
8
 
 
9
        "github.com/juju/testing"
9
10
        jc "github.com/juju/testing/checkers"
10
11
        gc "gopkg.in/check.v1"
11
12
 
22
23
var _ = gc.Suite(&StatusHistorySuite{})
23
24
 
24
25
func (s *StatusHistorySuite) TestPruneStatusHistoryBySize(c *gc.C) {
 
26
        clock := testing.NewClock(time.Now())
 
27
        err := s.State.SetClockForTesting(clock)
 
28
        c.Assert(err, jc.ErrorIsNil)
25
29
        service := s.Factory.MakeApplication(c, nil)
26
30
        unit := s.Factory.MakeUnit(c, &factory.UnitParams{Application: service})
27
 
        primeUnitStatusHistory(c, unit, 20000, 0)
 
31
        state.PrimeUnitStatusHistory(c, clock, unit, status.Active, 20000, 1000, nil)
28
32
 
29
33
        history, err := unit.StatusHistory(status.StatusHistoryFilter{Size: 25000})
30
34
        c.Assert(err, jc.ErrorIsNil)
148
152
        twoDaysAgo := now.Add(-twoDaysBack)
149
153
        threeDaysAgo := now.Add(-threeDaysBack)
150
154
        sInfo := status.StatusInfo{
151
 
                Status:  status.StatusActive,
 
155
                Status:  status.Active,
152
156
                Message: "current status",
153
157
                Since:   &now,
154
158
        }
155
159
        err := unit.SetStatus(sInfo)
156
160
        c.Assert(err, jc.ErrorIsNil)
157
161
        sInfo = status.StatusInfo{
158
 
                Status:  status.StatusActive,
 
162
                Status:  status.Active,
159
163
                Message: "2 days ago",
160
164
                Since:   &twoDaysAgo,
161
165
        }
162
166
        unit.SetStatus(sInfo)
163
167
        sInfo = status.StatusInfo{
164
 
                Status:  status.StatusActive,
 
168
                Status:  status.Active,
165
169
                Message: "3 days ago",
166
170
                Since:   &threeDaysAgo,
167
171
        }
170
174
        c.Assert(err, jc.ErrorIsNil)
171
175
        c.Assert(history, gc.HasLen, 4)
172
176
        c.Assert(history[0].Message, gc.Equals, "current status")
173
 
        c.Assert(history[1].Message, gc.Equals, "Waiting for agent initialization to finish")
 
177
        c.Assert(history[1].Message, gc.Equals, "waiting for machine")
174
178
        c.Assert(history[2].Message, gc.Equals, "2 days ago")
175
179
        c.Assert(history[3].Message, gc.Equals, "3 days ago")
176
180
        now = now.Add(10 * time.Second) // lets add some padding to prevent races here.
181
185
        c.Assert(err, jc.ErrorIsNil)
182
186
        c.Assert(history, gc.HasLen, 2)
183
187
        c.Assert(history[0].Message, gc.Equals, "current status")
184
 
        c.Assert(history[1].Message, gc.Equals, "Waiting for agent initialization to finish")
 
188
        c.Assert(history[1].Message, gc.Equals, "waiting for machine")
185
189
 
186
190
        // logs up to one day back, using date.
187
191
        yesterday := now.Add(-(time.Hour * 24))
189
193
        c.Assert(err, jc.ErrorIsNil)
190
194
        c.Assert(history, gc.HasLen, 2)
191
195
        c.Assert(history[0].Message, gc.Equals, "current status")
192
 
        c.Assert(history[1].Message, gc.Equals, "Waiting for agent initialization to finish")
 
196
        c.Assert(history[1].Message, gc.Equals, "waiting for machine")
193
197
 
194
198
        // Logs up to two days ago, using delta.
195
199
        history, err = unit.StatusHistory(status.StatusHistoryFilter{Delta: &twoDaysBack})
196
200
        c.Assert(err, jc.ErrorIsNil)
197
201
        c.Assert(history, gc.HasLen, 2)
198
202
        c.Assert(history[0].Message, gc.Equals, "current status")
199
 
        c.Assert(history[1].Message, gc.Equals, "Waiting for agent initialization to finish")
 
203
        c.Assert(history[1].Message, gc.Equals, "waiting for machine")
200
204
 
201
205
        // Logs up to two days ago, using date.
202
206
 
204
208
        c.Assert(err, jc.ErrorIsNil)
205
209
        c.Assert(history, gc.HasLen, 2)
206
210
        c.Assert(history[0].Message, gc.Equals, "current status")
207
 
        c.Assert(history[1].Message, gc.Equals, "Waiting for agent initialization to finish")
 
211
        c.Assert(history[1].Message, gc.Equals, "waiting for machine")
208
212
 
209
213
        // Logs up to three days ago, using delta.
210
214
        history, err = unit.StatusHistory(status.StatusHistoryFilter{Delta: &threeDaysBack})
211
215
        c.Assert(err, jc.ErrorIsNil)
212
216
        c.Assert(history, gc.HasLen, 3)
213
217
        c.Assert(history[0].Message, gc.Equals, "current status")
214
 
        c.Assert(history[1].Message, gc.Equals, "Waiting for agent initialization to finish")
 
218
        c.Assert(history[1].Message, gc.Equals, "waiting for machine")
215
219
        c.Assert(history[2].Message, gc.Equals, "2 days ago")
216
220
 
217
221
        // Logs up to three days ago, using date.
219
223
        c.Assert(err, jc.ErrorIsNil)
220
224
        c.Assert(history, gc.HasLen, 3)
221
225
        c.Assert(history[0].Message, gc.Equals, "current status")
222
 
        c.Assert(history[1].Message, gc.Equals, "Waiting for agent initialization to finish")
 
226
        c.Assert(history[1].Message, gc.Equals, "waiting for machine")
223
227
        c.Assert(history[2].Message, gc.Equals, "2 days ago")
224
228
}