Skip to content

Commit fe0744a

Browse files
committed
fix lambda tests
1 parent f0a18ac commit fe0744a

File tree

5 files changed

+68
-64
lines changed

5 files changed

+68
-64
lines changed

cluster/calcium/lambda_test.go

+44-40
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
enginemocks "github.com/projecteru2/core/engine/mocks"
1212
enginetypes "github.com/projecteru2/core/engine/types"
1313
lockmocks "github.com/projecteru2/core/lock/mocks"
14+
"github.com/projecteru2/core/resources"
1415
resourcemocks "github.com/projecteru2/core/resources/mocks"
1516
storemocks "github.com/projecteru2/core/store/mocks"
1617
"github.com/projecteru2/core/strategy"
@@ -24,8 +25,13 @@ import (
2425
func TestRunAndWaitFailedThenWALCommitted(t *testing.T) {
2526
assert := assert.New(t)
2627
c, _ := newCreateWorkloadCluster(t)
27-
rmgr := c.rmgr.(*resourcemocks.Manager)
28+
29+
rmgr := &resourcemocks.Manager{}
2830
rmgr.On("GetNodeResourceInfo", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil, nil, nil, nil)
31+
rmgr.On("GetNodesDeployCapacity", mock.Anything, mock.Anything, mock.Anything).Return(
32+
nil, 0, types.ErrNoETCD,
33+
)
34+
c.rmgr = rmgr
2935

3036
mwal := c.wal.(*walmocks.WAL)
3137
defer mwal.AssertNotCalled(t, "Log")
@@ -61,9 +67,8 @@ func TestLambdaWithWorkloadIDReturned(t *testing.T) {
6167
assert := assert.New(t)
6268
c, nodes := newLambdaCluster(t)
6369
engine := nodes[0].Engine.(*enginemocks.API)
64-
65-
workload := &types.Workload{ID: "workloadfortonictest", Engine: engine}
6670
store := c.store.(*storemocks.Store)
71+
workload := &types.Workload{ID: "workloadfortonictest", Engine: engine}
6772
store.On("GetWorkload", mock.Anything, mock.Anything).Return(workload, nil)
6873
store.On("GetWorkloads", mock.Anything, mock.Anything).Return([]*types.Workload{workload}, nil)
6974

@@ -183,43 +188,44 @@ func TestLambdaWithError(t *testing.T) {
183188

184189
func newLambdaCluster(t *testing.T) (*Calcium, []*types.Node) {
185190
c, nodes := newCreateWorkloadCluster(t)
186-
187-
store := c.store.(*storemocks.Store)
188-
// plugin := c.resource.GetPlugins()[0].(*resourcemocks.Plugin)
189-
190191
node1, node2 := nodes[0], nodes[1]
191192

192-
// plugin.On("GetNodeResourceInfo", mock.Anything, mock.Anything, mock.Anything).Return(&resources.GetNodeResourceInfoResponse{
193-
// ResourceInfo: &resources.NodeResourceInfo{},
194-
// }, nil)
195-
// plugin.On("GetDeployArgs", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(&resources.GetDeployArgsResponse{
196-
// EngineArgs: []types.EngineArgs{},
197-
// ResourceArgs: []types.WorkloadResourceArgs{},
198-
// }, nil)
199-
// plugin.On("SetNodeResourceUsage", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(&resources.SetNodeResourceUsageResponse{
200-
// Before: types.NodeResourceArgs{},
201-
// After: types.NodeResourceArgs{},
202-
// }, nil)
203-
// plugin.On("GetNodesDeployCapacity", mock.Anything, mock.Anything, mock.Anything).Return(&resources.GetNodesDeployCapacityResponse{
204-
// Nodes: map[string]*resources.NodeCapacityInfo{
205-
// node1.Name: {
206-
// NodeName: node1.Name,
207-
// Capacity: 10,
208-
// Usage: 0.5,
209-
// Rate: 0.05,
210-
// Weight: 100,
211-
// },
212-
// node2.Name: {
213-
// NodeName: node2.Name,
214-
// Capacity: 10,
215-
// Usage: 0.5,
216-
// Rate: 0.05,
217-
// Weight: 100,
218-
// },
219-
// },
220-
// Total: 20,
221-
// }, nil)
222-
193+
store := c.store.(*storemocks.Store)
194+
rmgr := c.rmgr.(*resourcemocks.Manager)
195+
rmgr.On("GetNodeResourceInfo", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(
196+
map[string]types.NodeResourceArgs{},
197+
map[string]types.NodeResourceArgs{},
198+
[]string{},
199+
nil,
200+
)
201+
rmgr.On("GetNodesDeployCapacity", mock.Anything, mock.Anything, mock.Anything).Return(
202+
map[string]*resources.NodeCapacityInfo{
203+
node1.Name: {
204+
NodeName: node1.Name,
205+
Capacity: 10,
206+
Usage: 0.5,
207+
Rate: 0.05,
208+
Weight: 100,
209+
},
210+
node2.Name: {
211+
NodeName: node2.Name,
212+
Capacity: 10,
213+
Usage: 0.5,
214+
Rate: 0.05,
215+
Weight: 100,
216+
},
217+
},
218+
20, nil,
219+
)
220+
rmgr.On("Alloc", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(
221+
[]types.EngineArgs{{}, {}},
222+
[]map[string]types.WorkloadResourceArgs{
223+
{node1.Name: {}},
224+
{node2.Name: {}},
225+
},
226+
nil,
227+
)
228+
store.On("GetDeployStatus", mock.Anything, mock.Anything, mock.Anything).Return(map[string]int{}, nil)
223229
store.On("CreateProcessing", mock.Anything, mock.Anything, mock.Anything).Return(nil)
224230
store.On("UpdateProcessing", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil)
225231
store.On("DeleteProcessing", mock.Anything, mock.Anything, mock.Anything).Return(nil)
@@ -254,8 +260,6 @@ func newLambdaCluster(t *testing.T) (*Calcium, []*types.Node) {
254260
strategy.Plans[strategy.Auto] = old
255261
}()
256262

257-
//store.On("UpdateNodes", mock.Anything, mock.Anything, mock.Anything).Return(nil)
258-
//store.On("UpdateNodes", mock.Anything, mock.Anything).Return(nil)
259263
store.On("GetNode",
260264
mock.AnythingOfType("*context.timerCtx"),
261265
mock.AnythingOfType("string"),

discovery/helium/helium.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const interval = 15 * time.Second
1818
// Helium .
1919
type Helium struct {
2020
sync.Once
21-
stor store.Store
21+
store store.Store
2222
subs hashmap.HashMap
2323
interval time.Duration
2424
}
@@ -30,8 +30,8 @@ type entry struct {
3030
}
3131

3232
// New .
33-
func New(config types.GRPCConfig, stor store.Store) *Helium {
34-
h := &Helium{interval: config.ServiceDiscoveryPushInterval, stor: stor, subs: hashmap.HashMap{}}
33+
func New(config types.GRPCConfig, store store.Store) *Helium {
34+
h := &Helium{interval: config.ServiceDiscoveryPushInterval, store: store, subs: hashmap.HashMap{}}
3535
if h.interval < time.Second {
3636
h.interval = interval
3737
}
@@ -72,7 +72,7 @@ func (h *Helium) Unsubscribe(id uuid.UUID) {
7272
}
7373

7474
func (h *Helium) start(ctx context.Context) {
75-
ch, err := h.stor.ServiceStatusStream(ctx)
75+
ch, err := h.store.ServiceStatusStream(ctx)
7676
if err != nil {
7777
log.Errorf(nil, "[WatchServiceStatus] failed to start watch: %v", err) //nolint
7878
return

wal/hydro.go

+10-10
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,21 @@ const (
1818
// Hydro is the simplest wal implementation.
1919
type Hydro struct {
2020
hashmap.HashMap
21-
stor kv.KV
21+
store kv.KV
2222
}
2323

2424
// NewHydro initailizes a new Hydro instance.
2525
func NewHydro(path string, timeout time.Duration) (*Hydro, error) {
26-
stor := kv.NewLithium()
27-
if err := stor.Open(path, fileMode, timeout); err != nil {
26+
store := kv.NewLithium()
27+
if err := store.Open(path, fileMode, timeout); err != nil {
2828
return nil, err
2929
}
30-
return &Hydro{HashMap: hashmap.HashMap{}, stor: stor}, nil
30+
return &Hydro{HashMap: hashmap.HashMap{}, store: store}, nil
3131
}
3232

3333
// Close disconnects the kvdb.
3434
func (h *Hydro) Close() error {
35-
return h.stor.Close()
35+
return h.store.Close()
3636
}
3737

3838
// Register registers a new event handler.
@@ -42,7 +42,7 @@ func (h *Hydro) Register(handler EventHandler) {
4242

4343
// Recover starts a disaster recovery, which will replay all the events.
4444
func (h *Hydro) Recover(ctx context.Context) {
45-
ch, _ := h.stor.Scan([]byte(eventPrefix))
45+
ch, _ := h.store.Scan([]byte(eventPrefix))
4646

4747
events := []HydroEvent{}
4848
for scanEntry := range ch {
@@ -81,7 +81,7 @@ func (h *Hydro) Log(eventyp string, item interface{}) (Commit, error) {
8181
}
8282

8383
var id uint64
84-
if id, err = h.stor.NextSequence(); err != nil {
84+
if id, err = h.store.NextSequence(); err != nil {
8585
return nil, err
8686
}
8787

@@ -90,12 +90,12 @@ func (h *Hydro) Log(eventyp string, item interface{}) (Commit, error) {
9090
return nil, coretypes.ErrBadWALEvent
9191
}
9292

93-
if err = h.stor.Put(event.Key(), bs); err != nil {
93+
if err = h.store.Put(event.Key(), bs); err != nil {
9494
return nil, err
9595
}
9696

9797
return func() error {
98-
return h.stor.Delete(event.Key())
98+
return h.store.Delete(event.Key())
9999
}, nil
100100
}
101101

@@ -106,7 +106,7 @@ func (h *Hydro) recover(ctx context.Context, handler EventHandler, event HydroEv
106106
}
107107

108108
delete := func() error {
109-
return h.stor.Delete(event.Key())
109+
return h.store.Delete(event.Key())
110110
}
111111

112112
switch handle, err := handler.Check(ctx, item); {

wal/hydro_test.go

+9-9
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func TestLogFailedAsEncodeError(t *testing.T) {
2626
handler.encode = func(interface{}) ([]byte, error) { return nil, fmt.Errorf("encode error") }
2727

2828
hydro, _ := NewHydro(path.Join(t.TempDir(), "1"), time.Second)
29-
hydro.stor = kv.NewMockedKV()
29+
hydro.store = kv.NewMockedKV()
3030
hydro.Register(handler)
3131

3232
commit, err := hydro.Log(eventype, struct{}{})
@@ -44,7 +44,7 @@ func TestLogWithCommitEvent(t *testing.T) {
4444
handler := newTestEventHandler(eventype, &checked, &handled, &encoded, &decoded)
4545

4646
hydro, _ := NewHydro(path.Join(t.TempDir(), "1"), time.Second)
47-
hydro.stor = kv.NewMockedKV()
47+
hydro.store = kv.NewMockedKV()
4848
hydro.Register(handler)
4949

5050
commit, err := hydro.Log(eventype, struct{}{})
@@ -64,7 +64,7 @@ func TestRecoverFailedAsNoSuchHandler(t *testing.T) {
6464
handler := newTestEventHandler(eventype, &checked, &handled, &encoded, &decoded)
6565

6666
hydro, _ := NewHydro(path.Join(t.TempDir(), "1"), time.Second)
67-
hydro.stor = kv.NewMockedKV()
67+
hydro.store = kv.NewMockedKV()
6868
hydro.Register(handler)
6969

7070
commit, err := hydro.Log(eventype, struct{}{})
@@ -90,7 +90,7 @@ func TestRecoverFailedAsCheckError(t *testing.T) {
9090
}
9191

9292
hydro, _ := NewHydro(path.Join(t.TempDir(), "1"), time.Second)
93-
hydro.stor = kv.NewMockedKV()
93+
hydro.store = kv.NewMockedKV()
9494
hydro.Register(handler)
9595

9696
commit, err := hydro.Log(eventype, struct{}{})
@@ -137,7 +137,7 @@ func TestRecoverFailedAsDecodeLogError(t *testing.T) {
137137
}
138138

139139
hydro, _ := NewHydro(path.Join(t.TempDir(), "1"), time.Second)
140-
hydro.stor = kv.NewMockedKV()
140+
hydro.store = kv.NewMockedKV()
141141
hydro.Register(handler)
142142

143143
commit, err := hydro.Log(eventype, struct{}{})
@@ -163,7 +163,7 @@ func TestHydroRecoverDiscardNoNeedEvent(t *testing.T) {
163163
handler.check = check
164164

165165
hydro, _ := NewHydro(path.Join(t.TempDir(), "1"), time.Second)
166-
hydro.stor = kv.NewMockedKV()
166+
hydro.store = kv.NewMockedKV()
167167
hydro.Register(handler)
168168

169169
commit, err := hydro.Log(eventype, struct{}{})
@@ -183,7 +183,7 @@ func TestHydroRecover(t *testing.T) {
183183
handler := newTestEventHandler(eventype, &checked, &handled, &encoded, &decoded)
184184

185185
hydro, _ := NewHydro(path.Join(t.TempDir(), "1"), time.Second)
186-
hydro.stor = kv.NewMockedKV()
186+
hydro.store = kv.NewMockedKV()
187187
hydro.Register(handler)
188188

189189
commit, err := hydro.Log(eventype, struct{}{})
@@ -197,7 +197,7 @@ func TestHydroRecover(t *testing.T) {
197197
assert.True(t, handled)
198198

199199
// The handled events should be removed.
200-
ch, _ := hydro.stor.Scan([]byte(eventPrefix))
200+
ch, _ := hydro.store.Scan([]byte(eventPrefix))
201201
for range ch {
202202
assert.Fail(t, "the events should be deleted")
203203
}
@@ -234,7 +234,7 @@ func TestHydroRecoverWithRealLithium(t *testing.T) {
234234

235235
hydro.Recover(context.TODO())
236236

237-
ch, _ := hydro.stor.Scan([]byte(eventPrefix))
237+
ch, _ := hydro.store.Scan([]byte(eventPrefix))
238238
for range ch {
239239
assert.FailNow(t, "expects no data")
240240
}

wal/wal_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ func TestRecover(t *testing.T) {
4848
hydro, ok := wal.(*Hydro)
4949
assert.True(t, ok)
5050
assert.NotNil(t, hydro)
51-
hydro.stor = kv.NewMockedKV()
51+
hydro.store = kv.NewMockedKV()
5252

5353
eventype := "create"
5454

0 commit comments

Comments
 (0)