WorkerChange listener is notified about changes of worker state:
* when worker becomes IDLE;
* when worker's work has been broken by entering FAIL
or MAINTENANCE state.
The ReqsCollection implementing WorkerChange interface reacts by:
* matching new pending request to IDLE worker;
* finishing request execution with FAILED state if worker's job has
been broken.
Change-Id: Icff6a91e3173712243bf6d8ee382d1f1222b4735
Signed-off-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
r.deadlineTimes.setMatcher(r.deadlineMatcher)
r.timeoutTimes.setMatcher(r.timeoutMatcher)
+ if w != nil {
+ w.SetChangeListener(r)
+ }
+
return r
}
ctrl = gomock.NewController(GinkgoT())
wm = NewMockWorkersManager(ctrl)
jm = NewMockJobsManager(ctrl)
+ wm.EXPECT().SetChangeListener(gomock.Any())
R = NewRequestQueue(wm, jm)
})
AfterEach(func() {
jm := NewMockJobsManager(ctrl)
testErr := errors.New("Test Error")
wm.EXPECT().TakeBestMatchingWorker(gomock.Any(), gomock.Any()).Return(WorkerUUID(""), testErr).AnyTimes()
+ wm.EXPECT().SetChangeListener(gomock.Any())
return assert.New(t), NewRequestQueue(wm, jm), ctrl, jm
}
ctrl = gomock.NewController(GinkgoT())
wm = NewMockWorkersManager(ctrl)
jm = NewMockJobsManager(ctrl)
+ wm.EXPECT().SetChangeListener(gomock.Any())
R = NewRequestQueue(wm, jm)
})
AfterEach(func() {