Skip to content

Commit 3ee4fce

Browse files
committed
make resource great again
1 parent b293c9f commit 3ee4fce

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+156
-154
lines changed

Makefile

+4-4
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ mock: deps
3939
mockery --dir store/etcdv3/meta --output store/etcdv3/meta/mocks --all
4040
mockery --dir vendor/go.etcd.io/etcd/client/v3 --output store/etcdv3/meta/mocks --name Txn
4141
mockery --dir rpc/gen/ --output rpc/mocks --name CoreRPC_RunAndWaitServer
42-
mockery --dir resource3 --output resource3/mocks --name Manager
43-
mockery --dir resource3/plugins --output resource3/plugins/mocks --name Plugin
42+
mockery --dir resource --output resource/mocks --name Manager
43+
mockery --dir resource/plugins --output resource/plugins/mocks --name Plugin
4444

4545
.ONESHELL:
4646

@@ -61,8 +61,8 @@ unit-test:
6161
./lock/etcdlock/... \
6262
./auth/simple/... \
6363
./discovery/helium... \
64-
./resource3/plugins/cpumem/. \
65-
./resource3/plugins/cpumem/schedule/. \
64+
./resource/plugins/cpumem/. \
65+
./resource/plugins/cpumem/schedule/. \
6666
./wal/. \
6767
./wal/kv/. \
6868
./store/redis/... \

cluster/calcium/build.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ func (c *Calcium) getMostIdleNode(ctx context.Context, nodes []*types.Node) (*ty
8383
nodeMap[node.Name] = node
8484
}
8585

86-
mostIdleNode, err := c.rmgr2.GetMostIdleNode(ctx, nodenames)
86+
mostIdleNode, err := c.rmgr.GetMostIdleNode(ctx, nodenames)
8787
if err != nil {
8888
return nil, err
8989
}

cluster/calcium/build_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"testing"
99

1010
enginemocks "github.com/projecteru2/core/engine/mocks"
11-
resourcemocks "github.com/projecteru2/core/resource3/mocks"
11+
resourcemocks "github.com/projecteru2/core/resource/mocks"
1212
storemocks "github.com/projecteru2/core/store/mocks"
1313
"github.com/projecteru2/core/types"
1414
"github.com/stretchr/testify/assert"
@@ -81,7 +81,7 @@ func TestBuild(t *testing.T) {
8181
}
8282
store.On("GetNodesByPod", mock.Anything, mock.Anything).Return([]*types.Node{node}, nil)
8383
// failed by plugin error
84-
rmgr := c.rmgr2.(*resourcemocks.Manager)
84+
rmgr := c.rmgr.(*resourcemocks.Manager)
8585
rmgr.On("GetNodeResourceInfo", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil, nil, nil, nil)
8686
rmgr.On("GetMostIdleNode", mock.Anything, mock.Anything).Return("", types.ErrInvaildCount).Once()
8787
ch, err = c.BuildImage(ctx, opts)

cluster/calcium/calcium.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import (
1010
"github.com/projecteru2/core/discovery"
1111
"github.com/projecteru2/core/discovery/helium"
1212
"github.com/projecteru2/core/log"
13-
"github.com/projecteru2/core/resource3"
14-
"github.com/projecteru2/core/resource3/cobalt"
13+
"github.com/projecteru2/core/resource"
14+
"github.com/projecteru2/core/resource/cobalt"
1515
"github.com/projecteru2/core/source"
1616
"github.com/projecteru2/core/source/github"
1717
"github.com/projecteru2/core/source/gitlab"
@@ -25,7 +25,7 @@ import (
2525
type Calcium struct {
2626
config types.Config
2727
store store.Store
28-
rmgr2 resource3.Manager
28+
rmgr resource.Manager
2929
source source.Source
3030
watcher discovery.Service
3131
wal wal.WAL
@@ -63,12 +63,12 @@ func New(ctx context.Context, config types.Config, t *testing.T) (*Calcium, erro
6363
watcher := helium.New(ctx, config.GRPCConfig, store)
6464

6565
// set resource plugin manager
66-
rmgr2, err := cobalt.New(config)
66+
rmgr, err := cobalt.New(config)
6767
if err != nil {
6868
logger.Error(ctx, err)
6969
return nil, err
7070
}
71-
if err := rmgr2.LoadPlugins(ctx); err != nil {
71+
if err := rmgr.LoadPlugins(ctx, t); err != nil {
7272
logger.Error(ctx, err)
7373
return nil, err
7474
}
@@ -79,7 +79,7 @@ func New(ctx context.Context, config types.Config, t *testing.T) (*Calcium, erro
7979
return nil, err
8080
}
8181

82-
cal := &Calcium{store: store, config: config, source: scm, watcher: watcher, rmgr2: rmgr2, pool: pool}
82+
cal := &Calcium{store: store, config: config, source: scm, watcher: watcher, rmgr: rmgr, pool: pool}
8383

8484
cal.wal, err = enableWAL(config, cal, store)
8585
if err != nil {

cluster/calcium/calcium_test.go

+7-6
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"github.com/stretchr/testify/assert"
1111
"github.com/stretchr/testify/mock"
1212

13-
resourcemocks "github.com/projecteru2/core/resource3/mocks"
13+
resourcemocks "github.com/projecteru2/core/resource/mocks"
1414
sourcemocks "github.com/projecteru2/core/source/mocks"
1515
storemocks "github.com/projecteru2/core/store/mocks"
1616
"github.com/projecteru2/core/types"
@@ -44,14 +44,15 @@ func NewTestCluster() *Calcium {
4444
HAKeepaliveInterval: 16 * time.Second,
4545
ProbeTarget: "8.8.8.8:80",
4646
}
47+
mwal := &walmocks.WAL{}
48+
commit := wal.Commit(func() error { return nil })
49+
mwal.On("Log", mock.Anything, mock.Anything).Return(commit, nil)
50+
4751
c.store = &storemocks.Store{}
4852
c.source = &sourcemocks.Source{}
49-
c.wal = &walmocks.WAL{}
50-
c.rmgr2 = &resourcemocks.Manager{}
53+
c.rmgr = &resourcemocks.Manager{}
54+
c.wal = mwal
5155

52-
mwal := c.wal.(*walmocks.WAL)
53-
commit := wal.Commit(func() error { return nil })
54-
mwal.On("Log", mock.Anything, mock.Anything).Return(commit, nil)
5556
return c
5657
}
5758

cluster/calcium/capacity.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"golang.org/x/exp/maps"
1111

1212
"github.com/cockroachdb/errors"
13-
plugintypes "github.com/projecteru2/core/resource3/plugins/types"
13+
plugintypes "github.com/projecteru2/core/resource/plugins/types"
1414
)
1515

1616
// CalculateCapacity calculates capacity
@@ -39,7 +39,7 @@ func (c *Calcium) CalculateCapacity(ctx context.Context, opts *types.DeployOptio
3939
}
4040

4141
var infos map[string]*plugintypes.NodeDeployCapacity
42-
infos, msg.Total, err = c.rmgr2.GetNodesDeployCapacity(ctx, nodenames, opts.Resources)
42+
infos, msg.Total, err = c.rmgr.GetNodesDeployCapacity(ctx, nodenames, opts.Resources)
4343
if err != nil {
4444
logger.Error(ctx, err, "failed to get nodes capacity")
4545
return err

cluster/calcium/capacity_test.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import (
66

77
enginemocks "github.com/projecteru2/core/engine/mocks"
88
lockmocks "github.com/projecteru2/core/lock/mocks"
9-
resourcemocks "github.com/projecteru2/core/resource3/mocks"
10-
plugintypes "github.com/projecteru2/core/resource3/plugins/types"
9+
resourcemocks "github.com/projecteru2/core/resource/mocks"
10+
plugintypes "github.com/projecteru2/core/resource/plugins/types"
1111
storemocks "github.com/projecteru2/core/store/mocks"
1212
"github.com/projecteru2/core/strategy"
1313
"github.com/projecteru2/core/types"
@@ -49,8 +49,10 @@ func TestCalculateCapacity(t *testing.T) {
4949
}
5050

5151
// failed by call plugin
52-
rmgr := c.rmgr2.(*resourcemocks.Manager)
53-
rmgr.On("GetNodesDeployCapacity", mock.Anything, mock.Anything, mock.Anything).Return(nil, 0, types.ErrMockError).Once()
52+
rmgr := c.rmgr.(*resourcemocks.Manager)
53+
rmgr.On("GetNodesDeployCapacity", mock.Anything, mock.Anything, mock.Anything).Return(
54+
nil, 0, types.ErrMockError,
55+
).Once()
5456
_, err := c.CalculateCapacity(ctx, opts)
5557
assert.Error(t, err)
5658

cluster/calcium/create.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ func (c *Calcium) doCreateWorkloads(ctx context.Context, opts *types.DeployOptio
122122
processingCommits = make(map[string]wal.Commit)
123123
for nodename, deploy := range deployMap {
124124
nodes = append(nodes, nodeMap[nodename])
125-
if engineParamsMap[nodename], workloadResourcesMap[nodename], err = c.rmgr2.Alloc(ctx, nodename, deploy, opts.Resources); err != nil {
125+
if engineParamsMap[nodename], workloadResourcesMap[nodename], err = c.rmgr.Alloc(ctx, nodename, deploy, opts.Resources); err != nil {
126126
return err
127127
}
128128

@@ -154,7 +154,7 @@ func (c *Calcium) doCreateWorkloads(ctx context.Context, opts *types.DeployOptio
154154
rollbackResources := utils.Map(rollbackIndices, func(idx int) *types.Resources {
155155
return workloadResourcesMap[nodename][idx]
156156
})
157-
return c.rmgr2.RollbackAlloc(ctx, nodename, rollbackResources)
157+
return c.rmgr.RollbackAlloc(ctx, nodename, rollbackResources)
158158
}); e != nil {
159159
logger.Error(ctx, e)
160160
err = e

cluster/calcium/create_test.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ 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-
resourcemocks "github.com/projecteru2/core/resource3/mocks"
15-
plugintypes "github.com/projecteru2/core/resource3/plugins/types"
14+
resourcemocks "github.com/projecteru2/core/resource/mocks"
15+
plugintypes "github.com/projecteru2/core/resource/plugins/types"
1616
storemocks "github.com/projecteru2/core/store/mocks"
1717
"github.com/projecteru2/core/strategy"
1818
"github.com/projecteru2/core/types"
@@ -77,7 +77,7 @@ func TestCreateWorkloadTxn(t *testing.T) {
7777
}
7878

7979
store := c.store.(*storemocks.Store)
80-
rmgr := c.rmgr2.(*resourcemocks.Manager)
80+
rmgr := c.rmgr.(*resourcemocks.Manager)
8181
mwal := &walmocks.WAL{}
8282
c.wal = mwal
8383
var walCommitted bool
@@ -89,7 +89,9 @@ func TestCreateWorkloadTxn(t *testing.T) {
8989
node1, node2 := nodes[0], nodes[1]
9090

9191
// doAllocResource fails: GetNodesDeployCapacity
92-
rmgr.On("GetNodesDeployCapacity", mock.Anything, mock.Anything, mock.Anything).Return(nil, 0, types.ErrMockError).Once()
92+
rmgr.On("GetNodesDeployCapacity", mock.Anything, mock.Anything, mock.Anything).Return(
93+
nil, 0, types.ErrMockError,
94+
).Once()
9395
ch, err := c.CreateWorkload(ctx, opts)
9496
assert.Nil(t, err)
9597
cnt := 0

cluster/calcium/dissociate.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"context"
55

66
"github.com/projecteru2/core/log"
7-
"github.com/projecteru2/core/resource3/plugins"
7+
"github.com/projecteru2/core/resource/plugins"
88
"github.com/projecteru2/core/types"
99
"github.com/projecteru2/core/utils"
1010
)
@@ -32,7 +32,7 @@ func (c *Calcium) DissociateWorkload(ctx context.Context, IDs []string) (chan *t
3232
ctx,
3333
// if
3434
func(ctx context.Context) (err error) {
35-
_, _, err = c.rmgr2.SetNodeResourceUsage(ctx, node.Name, nil, nil, []*types.Resources{workload.Resources}, true, plugins.Decr)
35+
_, _, err = c.rmgr.SetNodeResourceUsage(ctx, node.Name, nil, nil, []*types.Resources{workload.Resources}, true, plugins.Decr)
3636
return err
3737
},
3838
// then
@@ -44,7 +44,7 @@ func (c *Calcium) DissociateWorkload(ctx context.Context, IDs []string) (chan *t
4444
if failedByCond {
4545
return nil
4646
}
47-
_, _, err = c.rmgr2.SetNodeResourceUsage(ctx, node.Name, nil, nil, []*types.Resources{workload.Resources}, true, plugins.Incr)
47+
_, _, err = c.rmgr.SetNodeResourceUsage(ctx, node.Name, nil, nil, []*types.Resources{workload.Resources}, true, plugins.Incr)
4848
return err
4949
},
5050
c.config.GlobalTimeout,

cluster/calcium/dissociate_test.go

+5-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"time"
77

88
lockmocks "github.com/projecteru2/core/lock/mocks"
9-
resourcemocks "github.com/projecteru2/core/resource3/mocks"
9+
resourcemocks "github.com/projecteru2/core/resource/mocks"
1010
storemocks "github.com/projecteru2/core/store/mocks"
1111
"github.com/projecteru2/core/types"
1212

@@ -18,7 +18,7 @@ func TestDissociateWorkload(t *testing.T) {
1818
c := NewTestCluster()
1919
ctx := context.Background()
2020
store := c.store.(*storemocks.Store)
21-
rmgr := c.rmgr2.(*resourcemocks.Manager)
21+
rmgr := c.rmgr.(*resourcemocks.Manager)
2222

2323
lock := &lockmocks.DistributedLock{}
2424
lock.On("Lock", mock.Anything).Return(ctx, nil)
@@ -39,7 +39,9 @@ func TestDissociateWorkload(t *testing.T) {
3939
}
4040

4141
store.On("GetWorkloads", mock.Anything, mock.Anything).Return([]*types.Workload{c1}, nil)
42-
rmgr.On("GetNodeResourceInfo", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil, nil, nil, nil)
42+
rmgr.On("GetNodeResourceInfo", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(
43+
nil, nil, nil, nil,
44+
)
4345
// failed by lock
4446
store.On("GetNode", mock.Anything, "node1").Return(node1, nil)
4547
store.On("CreateLock", mock.Anything, mock.Anything).Return(nil, types.ErrMockError).Once()

cluster/calcium/lambda_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import (
1010
enginemocks "github.com/projecteru2/core/engine/mocks"
1111
enginetypes "github.com/projecteru2/core/engine/types"
1212
lockmocks "github.com/projecteru2/core/lock/mocks"
13-
resourcemocks "github.com/projecteru2/core/resource3/mocks"
14-
plugintypes "github.com/projecteru2/core/resource3/plugins/types"
13+
resourcemocks "github.com/projecteru2/core/resource/mocks"
14+
plugintypes "github.com/projecteru2/core/resource/plugins/types"
1515
storemocks "github.com/projecteru2/core/store/mocks"
1616
"github.com/projecteru2/core/strategy"
1717
"github.com/projecteru2/core/types"
@@ -30,7 +30,7 @@ func TestRunAndWaitFailedThenWALCommitted(t *testing.T) {
3030
rmgr.On("GetNodesDeployCapacity", mock.Anything, mock.Anything, mock.Anything).Return(
3131
nil, 0, types.ErrMockError,
3232
)
33-
c.rmgr2 = rmgr
33+
c.rmgr = rmgr
3434

3535
mwal := c.wal.(*walmocks.WAL)
3636
defer mwal.AssertNotCalled(t, "Log")
@@ -193,7 +193,7 @@ func newLambdaCluster(t *testing.T) (*Calcium, []*types.Node) {
193193
node1, node2 := nodes[0], nodes[1]
194194

195195
store := c.store.(*storemocks.Store)
196-
rmgr := c.rmgr2.(*resourcemocks.Manager)
196+
rmgr := c.rmgr.(*resourcemocks.Manager)
197197
rmgr.On("GetNodeResourceInfo", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(
198198
&types.Resources{},
199199
&types.Resources{},

cluster/calcium/lock_test.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
enginemocks "github.com/projecteru2/core/engine/mocks"
88
"github.com/projecteru2/core/lock"
99
lockmocks "github.com/projecteru2/core/lock/mocks"
10-
resourcemocks "github.com/projecteru2/core/resource3/mocks"
10+
resourcemocks "github.com/projecteru2/core/resource/mocks"
1111
storemocks "github.com/projecteru2/core/store/mocks"
1212
"github.com/projecteru2/core/types"
1313

@@ -118,7 +118,7 @@ func TestWithNodesPodLocked(t *testing.T) {
118118
c := NewTestCluster()
119119
ctx := context.Background()
120120
store := c.store.(*storemocks.Store)
121-
rmgr := c.rmgr2.(*resourcemocks.Manager)
121+
rmgr := c.rmgr.(*resourcemocks.Manager)
122122
rmgr.On("GetNodeResourceInfo", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil, nil, nil, nil)
123123

124124
node1 := &types.Node{
@@ -176,7 +176,7 @@ func TestWithNodePodLocked(t *testing.T) {
176176
c := NewTestCluster()
177177
ctx := context.Background()
178178
store := c.store.(*storemocks.Store)
179-
rmgr := c.rmgr2.(*resourcemocks.Manager)
179+
rmgr := c.rmgr.(*resourcemocks.Manager)
180180
rmgr.On("GetNodeResourceInfo", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil, nil, nil, nil)
181181

182182
node1 := &types.Node{
@@ -211,7 +211,7 @@ func TestWithNodesOperationLocked(t *testing.T) {
211211
c := NewTestCluster()
212212
ctx := context.Background()
213213
store := c.store.(*storemocks.Store)
214-
rmgr := c.rmgr2.(*resourcemocks.Manager)
214+
rmgr := c.rmgr.(*resourcemocks.Manager)
215215
rmgr.On("GetNodeResourceInfo", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil, nil, nil, nil)
216216

217217
node1 := &types.Node{
@@ -268,7 +268,7 @@ func TestWithNodeOperationLocked(t *testing.T) {
268268
c := NewTestCluster()
269269
ctx := context.Background()
270270
store := c.store.(*storemocks.Store)
271-
rmgr := c.rmgr2.(*resourcemocks.Manager)
271+
rmgr := c.rmgr.(*resourcemocks.Manager)
272272
rmgr.On("GetNodeResourceInfo", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil, nil, nil, nil)
273273

274274
node1 := &types.Node{

cluster/calcium/metrics.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313
// InitMetrics .
1414
func (c *Calcium) InitMetrics(ctx context.Context) {
1515
logger := log.WithFunc("calcium.InitMetrics")
16-
metricsDescriptions, err := c.rmgr2.GetMetricsDescription(ctx)
16+
metricsDescriptions, err := c.rmgr.GetMetricsDescription(ctx)
1717
if err != nil {
1818
logger.Error(ctx, err, "failed to get metrics description")
1919
return
@@ -26,7 +26,7 @@ func (c *Calcium) InitMetrics(ctx context.Context) {
2626
}
2727

2828
func (c *Calcium) doSendNodeMetrics(ctx context.Context, node *types.Node) {
29-
nodeMetrics, err := c.rmgr2.GetNodeMetrics(ctx, node)
29+
nodeMetrics, err := c.rmgr.GetNodeMetrics(ctx, node)
3030
if err != nil {
3131
log.WithFunc("calcium.doSendNodeMetrics").Errorf(ctx, err, "convert node %s resource info to metrics failed", node.Name)
3232
return

cluster/calcium/network_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66

77
enginemocks "github.com/projecteru2/core/engine/mocks"
88
enginetypes "github.com/projecteru2/core/engine/types"
9-
resourcemocks "github.com/projecteru2/core/resource3/mocks"
9+
resourcemocks "github.com/projecteru2/core/resource/mocks"
1010
storemocks "github.com/projecteru2/core/store/mocks"
1111
"github.com/projecteru2/core/types"
1212

@@ -41,7 +41,7 @@ func TestListNetworks(t *testing.T) {
4141
Available: true,
4242
Engine: engine,
4343
}
44-
rmgr := c.rmgr2.(*resourcemocks.Manager)
44+
rmgr := c.rmgr.(*resourcemocks.Manager)
4545
rmgr.On("GetNodeResourceInfo", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil, nil, nil, nil)
4646
store.On("GetNodesByPod", mock.AnythingOfType("*context.emptyCtx"), mock.Anything, mock.Anything, mock.Anything).Return([]*types.Node{node}, nil)
4747
ns, err := c.ListNetworks(ctx, "", "xx")

0 commit comments

Comments
 (0)