mirror of https://github.com/milvus-io/milvus.git
parent
139741cd29
commit
99614437c5
|
@ -217,7 +217,9 @@ func TestProxy_ResourceGroup(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("describe resource group", func(t *testing.T) {
|
||||
resp, err := node.DescribeResourceGroup(ctx, &milvuspb.DescribeResourceGroupRequest{ResourceGroup: "rg"})
|
||||
resp, err := node.DescribeResourceGroup(ctx, &milvuspb.DescribeResourceGroupRequest{
|
||||
ResourceGroup: "rg",
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, resp.Status.ErrorCode, commonpb.ErrorCode_Success)
|
||||
})
|
||||
|
|
|
@ -463,19 +463,29 @@ func (coord *QueryCoordMock) ListResourceGroups(ctx context.Context, req *milvus
|
|||
}
|
||||
|
||||
func (coord *QueryCoordMock) DescribeResourceGroup(ctx context.Context, req *querypb.DescribeResourceGroupRequest) (*querypb.DescribeResourceGroupResponse, error) {
|
||||
if req.GetResourceGroup() == "rg" {
|
||||
return &querypb.DescribeResourceGroupResponse{
|
||||
Status: &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_Success,
|
||||
Reason: "",
|
||||
},
|
||||
ResourceGroup: &querypb.ResourceGroupInfo{
|
||||
Name: "rg",
|
||||
Capacity: 2,
|
||||
NumAvailableNode: 1,
|
||||
NumOutgoingNode: map[int64]int32{1: 1},
|
||||
NumIncomingNode: map[int64]int32{2: 2},
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
return &querypb.DescribeResourceGroupResponse{
|
||||
Status: &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_Success,
|
||||
ErrorCode: commonpb.ErrorCode_UnexpectedError,
|
||||
Reason: "",
|
||||
},
|
||||
ResourceGroup: &querypb.ResourceGroupInfo{
|
||||
Name: "rg",
|
||||
Capacity: 2,
|
||||
NumAvailableNode: 1,
|
||||
NumOutgoingNode: map[int64]int32{1: 1},
|
||||
NumIncomingNode: map[int64]int32{2: 2},
|
||||
},
|
||||
}, nil
|
||||
|
||||
}
|
||||
|
||||
func NewQueryCoordMock(opts ...QueryCoordMockOption) *QueryCoordMock {
|
||||
|
|
|
@ -2099,7 +2099,10 @@ func (t *DescribeResourceGroupTask) Execute(ctx context.Context) error {
|
|||
resp, err := t.queryCoord.DescribeResourceGroup(ctx, &querypb.DescribeResourceGroupRequest{
|
||||
ResourceGroup: t.ResourceGroup,
|
||||
})
|
||||
rgInfo := resp.GetResourceGroup()
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
getCollectionNameFunc := func(value int32, key int64) string {
|
||||
name, err := globalMetaCache.GetCollectionName(ctx, key)
|
||||
|
@ -2110,22 +2113,30 @@ func (t *DescribeResourceGroupTask) Execute(ctx context.Context) error {
|
|||
return name
|
||||
}
|
||||
|
||||
loadReplicas := lo.MapKeys(rgInfo.NumLoadedReplica, getCollectionNameFunc)
|
||||
outgoingNodes := lo.MapKeys(rgInfo.NumOutgoingNode, getCollectionNameFunc)
|
||||
incomingNodes := lo.MapKeys(rgInfo.NumIncomingNode, getCollectionNameFunc)
|
||||
if resp.Status.ErrorCode == commonpb.ErrorCode_Success {
|
||||
rgInfo := resp.GetResourceGroup()
|
||||
loadReplicas := lo.MapKeys(rgInfo.NumLoadedReplica, getCollectionNameFunc)
|
||||
outgoingNodes := lo.MapKeys(rgInfo.NumOutgoingNode, getCollectionNameFunc)
|
||||
incomingNodes := lo.MapKeys(rgInfo.NumIncomingNode, getCollectionNameFunc)
|
||||
|
||||
t.result = &milvuspb.DescribeResourceGroupResponse{
|
||||
Status: resp.Status,
|
||||
ResourceGroup: &milvuspb.ResourceGroup{
|
||||
Name: rgInfo.GetName(),
|
||||
Capacity: rgInfo.GetCapacity(),
|
||||
NumAvailableNode: rgInfo.NumAvailableNode,
|
||||
NumLoadedReplica: loadReplicas,
|
||||
NumOutgoingNode: outgoingNodes,
|
||||
NumIncomingNode: incomingNodes,
|
||||
},
|
||||
t.result = &milvuspb.DescribeResourceGroupResponse{
|
||||
Status: resp.Status,
|
||||
ResourceGroup: &milvuspb.ResourceGroup{
|
||||
Name: rgInfo.GetName(),
|
||||
Capacity: rgInfo.GetCapacity(),
|
||||
NumAvailableNode: rgInfo.NumAvailableNode,
|
||||
NumLoadedReplica: loadReplicas,
|
||||
NumOutgoingNode: outgoingNodes,
|
||||
NumIncomingNode: incomingNodes,
|
||||
},
|
||||
}
|
||||
} else {
|
||||
t.result = &milvuspb.DescribeResourceGroupResponse{
|
||||
Status: resp.Status,
|
||||
}
|
||||
}
|
||||
return err
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (t *DescribeResourceGroupTask) PostExecute(ctx context.Context) error {
|
||||
|
|
|
@ -2720,3 +2720,35 @@ func TestDescribeResourceGroupTask(t *testing.T) {
|
|||
assert.NotNil(t, outgoingNodeNum["collection1"])
|
||||
assert.NotNil(t, incomingNodeNum["collection2"])
|
||||
}
|
||||
|
||||
func TestDescribeResourceGroupTaskFailed(t *testing.T) {
|
||||
rc := &MockRootCoordClientInterface{}
|
||||
qc := NewQueryCoordMock()
|
||||
qc.Start()
|
||||
defer qc.Stop()
|
||||
ctx := context.Background()
|
||||
mgr := newShardClientMgr()
|
||||
InitMetaCache(ctx, rc, qc, mgr)
|
||||
// make it avoid remote call on rc
|
||||
globalMetaCache.GetCollectionSchema(context.Background(), "collection1")
|
||||
globalMetaCache.GetCollectionSchema(context.Background(), "collection2")
|
||||
|
||||
req := &milvuspb.DescribeResourceGroupRequest{
|
||||
Base: &commonpb.MsgBase{
|
||||
MsgID: 1,
|
||||
Timestamp: 2,
|
||||
TargetID: 3,
|
||||
},
|
||||
ResourceGroup: "rgggg",
|
||||
}
|
||||
|
||||
task := &DescribeResourceGroupTask{
|
||||
DescribeResourceGroupRequest: req,
|
||||
ctx: ctx,
|
||||
queryCoord: qc,
|
||||
}
|
||||
task.PreExecute(ctx)
|
||||
err := task.Execute(ctx)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_UnexpectedError, task.result.Status.ErrorCode)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue