package boruta
//go:generate mockgen -destination=mocks/mock_requests.go -package=mocks git.tizen.org/tools/boruta Requests
-//go:generate mockgen -destination=mocks/mock_workers.go -package=mocks git.tizen.org/tools/boruta Workers
+//go:generate mockgen -destination=mocks/mock_workers.go -package=mocks git.tizen.org/tools/boruta Workers,Superviser
import (
"crypto/rsa"
// Code generated by MockGen. DO NOT EDIT.
-// Source: git.tizen.org/tools/boruta (interfaces: Workers)
+// Source: git.tizen.org/tools/boruta (interfaces: Workers,Superviser)
// Package mocks is a generated GoMock package.
package mocks
func (mr *MockWorkersMockRecorder) SetState(arg0, arg1 interface{}) *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetState", reflect.TypeOf((*MockWorkers)(nil).SetState), arg0, arg1)
}
+
+// MockSuperviser is a mock of Superviser interface
+type MockSuperviser struct {
+ ctrl *gomock.Controller
+ recorder *MockSuperviserMockRecorder
+}
+
+// MockSuperviserMockRecorder is the mock recorder for MockSuperviser
+type MockSuperviserMockRecorder struct {
+ mock *MockSuperviser
+}
+
+// NewMockSuperviser creates a new mock instance
+func NewMockSuperviser(ctrl *gomock.Controller) *MockSuperviser {
+ mock := &MockSuperviser{ctrl: ctrl}
+ mock.recorder = &MockSuperviserMockRecorder{mock}
+ return mock
+}
+
+// EXPECT returns an object that allows the caller to indicate expected use
+func (m *MockSuperviser) EXPECT() *MockSuperviserMockRecorder {
+ return m.recorder
+}
+
+// Register mocks base method
+func (m *MockSuperviser) Register(arg0 boruta.Capabilities) error {
+ ret := m.ctrl.Call(m, "Register", arg0)
+ ret0, _ := ret[0].(error)
+ return ret0
+}
+
+// Register indicates an expected call of Register
+func (mr *MockSuperviserMockRecorder) Register(arg0 interface{}) *gomock.Call {
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Register", reflect.TypeOf((*MockSuperviser)(nil).Register), arg0)
+}
+
+// SetFail mocks base method
+func (m *MockSuperviser) SetFail(arg0 boruta.WorkerUUID, arg1 string) error {
+ ret := m.ctrl.Call(m, "SetFail", arg0, arg1)
+ ret0, _ := ret[0].(error)
+ return ret0
+}
+
+// SetFail indicates an expected call of SetFail
+func (mr *MockSuperviserMockRecorder) SetFail(arg0, arg1 interface{}) *gomock.Call {
+ return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetFail", reflect.TypeOf((*MockSuperviser)(nil).SetFail), arg0, arg1)
+}
// API provides HTTP API handlers.
type API struct {
- r *httptreemux.TreeMux
- reqs Requests
+ r *httptreemux.TreeMux
+ reqs Requests
+ workers Workers
}
// jsonMustMarshal tries to marshal responseData to JSON. Panics if error occurs.
// NewAPI takes router and registers HTTP API in it. httptreemux.PanicHandler
// function is set. Also other setting of the router may be modified.
-func NewAPI(router *httptreemux.TreeMux, requestsAPI Requests) (api *API) {
+func NewAPI(router *httptreemux.TreeMux, requestsAPI Requests,
+ workersAPI Workers) (api *API) {
api = new(API)
api.reqs = requestsAPI
+ api.workers = workersAPI
api.r = router
api.r.PanicHandler = panicHandler
routerSetHandler(workers, "/:id", api.getWorkerInfoHandler, http.StatusOK,
http.MethodGet, http.MethodHead)
+ // Workers API - Admin part
+ routerSetHandler(workers, "/:id/setstate", api.setWorkerStateHandler,
+ http.StatusNoContent, http.MethodPost)
+ routerSetHandler(workers, "/:id/setgroups", api.setWorkerGroupsHandler,
+ http.StatusNoContent, http.MethodPost)
+ routerSetHandler(workers, "/:id/deregister", api.workerDeregister,
+ http.StatusNoContent, http.MethodPost)
+
return
}
rq: mocks.NewMockRequests(ctrl),
wm: mocks.NewMockWorkers(ctrl),
}
- return assert.New(t), m, NewAPI(httptreemux.New(), m.rq)
+ return assert.New(t), m, NewAPI(httptreemux.New(), m.rq, m.wm)
}
func (m *allMocks) finish() {
func (api *API) getWorkerInfoHandler(r *http.Request, ps map[string]string) responseData {
return newServerError(ErrNotImplemented, "get worker info")
}
+
+// setWorkerStateHandler parses HTTP workers for setting worker state and calls
+// workers.SetState().
+func (api *API) setWorkerStateHandler(r *http.Request, ps map[string]string) responseData {
+ return newServerError(ErrNotImplemented, "set worker state")
+}
+
+// setWorkerGroupsHandler parses HTTP workers for setting worker groups and calls
+// workers.SetGroups().
+func (api *API) setWorkerGroupsHandler(r *http.Request, ps map[string]string) responseData {
+ return newServerError(ErrNotImplemented, "set worker groups")
+}
+
+// workerDeregister parses HTTP workers for deregistering worker state and calls
+// workers.Deregister().
+func (api *API) workerDeregister(r *http.Request, ps map[string]string) responseData {
+ return newServerError(ErrNotImplemented, "deregister worker")
+}
runTests(assert, api, tests)
}
+
+func TestSetWorkerStateHandler(t *testing.T) {
+ assert, m, api := initTest(t)
+ defer m.finish()
+
+ tests := []requestTest{
+ {
+ name: "worker-set-state",
+ path: "/api/v1/workers/8/setstate",
+ methods: []string{http.MethodPost},
+ json: ``,
+ contentType: contentTypeJSON,
+ status: http.StatusNotImplemented,
+ },
+ }
+
+ runTests(assert, api, tests)
+}
+
+func TestSetWorkerGroupsHandler(t *testing.T) {
+ assert, m, api := initTest(t)
+ defer m.finish()
+
+ tests := []requestTest{
+ {
+ name: "worker-set-groups",
+ path: "/api/v1/workers/8/setgroups",
+ methods: []string{http.MethodPost},
+ json: ``,
+ contentType: contentTypeJSON,
+ status: http.StatusNotImplemented,
+ },
+ }
+
+ runTests(assert, api, tests)
+}
+
+func TestDeregisterWorkerHandler(t *testing.T) {
+ assert, m, api := initTest(t)
+ defer m.finish()
+
+ tests := []requestTest{
+ {
+ name: "worker-deregister",
+ path: "/api/v1/workers/8/deregister",
+ methods: []string{http.MethodPost},
+ json: ``,
+ contentType: contentTypeJSON,
+ status: http.StatusNotImplemented,
+ },
+ }
+
+ runTests(assert, api, tests)
+}
--- /dev/null
+{"error":"not implemented yet: deregister worker"}
\ No newline at end of file
--- /dev/null
+{"error":"not implemented yet: set worker groups"}
\ No newline at end of file
--- /dev/null
+{"error":"not implemented yet: set worker state"}
\ No newline at end of file