mirror of https://github.com/milvus-io/milvus.git
Implement GetIndexStatistics interface (#24589)
Signed-off-by: wayblink <anyang.wang@zilliz.com>pull/24807/head
parent
6511ca78e5
commit
5ef794e8db
3
Makefile
3
Makefile
|
@ -299,6 +299,9 @@ mock-rootcoord:
|
|||
mock-datacoord:
|
||||
mockery --name=DataCoord --dir=$(PWD)/internal/types --output=$(PWD)/internal/mocks --filename=mock_datacoord.go --with-expecter
|
||||
|
||||
mock-indexcoord:
|
||||
mockery --name=IndexCoord --dir=$(PWD)/internal/types --output=$(PWD)/internal/mocks --filename=mock_indexcoord.go --with-expecter
|
||||
|
||||
mock-tnx-kv:
|
||||
mockery --name=TxnKV --dir=$(PWD)/internal/kv --output=$(PWD)/internal/kv/mocks --filename=TxnKV.go --with-expecter
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ func Test_garbageCollector_basic(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
assert.NotNil(t, segRefer)
|
||||
|
||||
indexCoord := mocks.NewMockIndexCoord(t)
|
||||
indexCoord := mocks.NewIndexCoord(t)
|
||||
|
||||
t.Run("normal gc", func(t *testing.T) {
|
||||
gc := newGarbageCollector(meta, newMockHandler(), segRefer, indexCoord, GcOption{
|
||||
|
@ -148,7 +148,7 @@ func Test_garbageCollector_scan(t *testing.T) {
|
|||
},
|
||||
}
|
||||
|
||||
indexCoord := mocks.NewMockIndexCoord(t)
|
||||
indexCoord := mocks.NewIndexCoord(t)
|
||||
gc := newGarbageCollector(meta, newMockHandler(), segRefer, indexCoord, GcOption{
|
||||
cli: cli,
|
||||
enabled: true,
|
||||
|
@ -170,7 +170,7 @@ func Test_garbageCollector_scan(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("missing all but save tolerance", func(t *testing.T) {
|
||||
indexCoord := mocks.NewMockIndexCoord(t)
|
||||
indexCoord := mocks.NewIndexCoord(t)
|
||||
gc := newGarbageCollector(meta, newMockHandler(), segRefer, indexCoord, GcOption{
|
||||
cli: cli,
|
||||
enabled: true,
|
||||
|
@ -196,7 +196,7 @@ func Test_garbageCollector_scan(t *testing.T) {
|
|||
err = meta.AddSegment(segment)
|
||||
require.NoError(t, err)
|
||||
|
||||
indexCoord := mocks.NewMockIndexCoord(t)
|
||||
indexCoord := mocks.NewIndexCoord(t)
|
||||
gc := newGarbageCollector(meta, newMockHandler(), segRefer, indexCoord, GcOption{
|
||||
cli: cli,
|
||||
enabled: true,
|
||||
|
@ -225,7 +225,7 @@ func Test_garbageCollector_scan(t *testing.T) {
|
|||
err = meta.AddSegment(segment)
|
||||
require.NoError(t, err)
|
||||
|
||||
indexCoord := mocks.NewMockIndexCoord(t)
|
||||
indexCoord := mocks.NewIndexCoord(t)
|
||||
gc := newGarbageCollector(meta, newMockHandler(), segRefer, indexCoord, GcOption{
|
||||
cli: cli,
|
||||
enabled: true,
|
||||
|
@ -242,7 +242,7 @@ func Test_garbageCollector_scan(t *testing.T) {
|
|||
gc.close()
|
||||
})
|
||||
t.Run("missing gc all", func(t *testing.T) {
|
||||
indexCoord := mocks.NewMockIndexCoord(t)
|
||||
indexCoord := mocks.NewIndexCoord(t)
|
||||
gc := newGarbageCollector(meta, newMockHandler(), segRefer, indexCoord, GcOption{
|
||||
cli: cli,
|
||||
enabled: true,
|
||||
|
@ -264,7 +264,7 @@ func Test_garbageCollector_scan(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("list object with error", func(t *testing.T) {
|
||||
indexCoord := mocks.NewMockIndexCoord(t)
|
||||
indexCoord := mocks.NewIndexCoord(t)
|
||||
gc := newGarbageCollector(meta, newMockHandler(), segRefer, indexCoord, GcOption{
|
||||
cli: cli,
|
||||
enabled: true,
|
||||
|
|
|
@ -2412,8 +2412,8 @@ func TestGetQueryVChanPositions(t *testing.T) {
|
|||
},
|
||||
},
|
||||
}
|
||||
svr.indexCoord = mocks.NewMockIndexCoord(t)
|
||||
svr.indexCoord.(*mocks.MockIndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(mockResp, nil)
|
||||
svr.indexCoord = mocks.NewIndexCoord(t)
|
||||
svr.indexCoord.(*mocks.IndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(mockResp, nil)
|
||||
|
||||
t.Run("get unexisted channel", func(t *testing.T) {
|
||||
vchan, err := svr.handler.GetQueryVChanPositions(&channel{Name: "chx1", CollectionID: 0}, allPartitionID)
|
||||
|
@ -2462,8 +2462,8 @@ func TestGetQueryVChanPositions(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("filter non indexed segments", func(t *testing.T) {
|
||||
svr.indexCoord = mocks.NewMockIndexCoord(t)
|
||||
svr.indexCoord.(*mocks.MockIndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(
|
||||
svr.indexCoord = mocks.NewIndexCoord(t)
|
||||
svr.indexCoord.(*mocks.IndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(
|
||||
&indexpb.GetIndexInfoResponse{Status: &commonpb.Status{ErrorCode: commonpb.ErrorCode_Success}}, nil)
|
||||
|
||||
vchan, err := svr.handler.GetQueryVChanPositions(&channel{Name: "ch1", CollectionID: 0}, allPartitionID)
|
||||
|
@ -2699,8 +2699,8 @@ func TestGetQueryVChanPositions_Retrieve_unIndexed(t *testing.T) {
|
|||
},
|
||||
},
|
||||
}
|
||||
svr.indexCoord = mocks.NewMockIndexCoord(t)
|
||||
svr.indexCoord.(*mocks.MockIndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(mockResp, nil)
|
||||
svr.indexCoord = mocks.NewIndexCoord(t)
|
||||
svr.indexCoord.(*mocks.IndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(mockResp, nil)
|
||||
assert.Nil(t, err)
|
||||
|
||||
vchan, err := svr.handler.GetQueryVChanPositions(&channel{Name: "ch1", CollectionID: 0}, allPartitionID)
|
||||
|
@ -3046,8 +3046,8 @@ func TestGetRecoveryInfo(t *testing.T) {
|
|||
},
|
||||
},
|
||||
}
|
||||
svr.indexCoord = mocks.NewMockIndexCoord(t)
|
||||
svr.indexCoord.(*mocks.MockIndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(mockResp, nil)
|
||||
svr.indexCoord = mocks.NewIndexCoord(t)
|
||||
svr.indexCoord.(*mocks.IndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(mockResp, nil)
|
||||
|
||||
req := &datapb.GetRecoveryInfoRequest{
|
||||
CollectionID: 0,
|
||||
|
@ -3124,7 +3124,7 @@ func TestGetRecoveryInfo(t *testing.T) {
|
|||
assert.Nil(t, err)
|
||||
err = svr.meta.AddSegment(NewSegmentInfo(seg2))
|
||||
assert.Nil(t, err)
|
||||
svr.indexCoord.(*mocks.MockIndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(nil, nil)
|
||||
svr.indexCoord.(*mocks.IndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(nil, nil)
|
||||
|
||||
req := &datapb.GetRecoveryInfoRequest{
|
||||
CollectionID: 0,
|
||||
|
@ -3213,8 +3213,8 @@ func TestGetRecoveryInfo(t *testing.T) {
|
|||
},
|
||||
},
|
||||
}
|
||||
svr.indexCoord = mocks.NewMockIndexCoord(t)
|
||||
svr.indexCoord.(*mocks.MockIndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(mockResp, nil)
|
||||
svr.indexCoord = mocks.NewIndexCoord(t)
|
||||
svr.indexCoord.(*mocks.IndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(mockResp, nil)
|
||||
err = svr.channelManager.AddNode(0)
|
||||
assert.Nil(t, err)
|
||||
err = svr.channelManager.Watch(&channel{Name: "vchan1", CollectionID: 0})
|
||||
|
@ -3264,7 +3264,7 @@ func TestGetRecoveryInfo(t *testing.T) {
|
|||
assert.Nil(t, err)
|
||||
err = svr.meta.AddSegment(NewSegmentInfo(seg2))
|
||||
assert.Nil(t, err)
|
||||
svr.indexCoord.(*mocks.MockIndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(nil, nil)
|
||||
svr.indexCoord.(*mocks.IndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(nil, nil)
|
||||
|
||||
req := &datapb.GetRecoveryInfoRequest{
|
||||
CollectionID: 0,
|
||||
|
@ -3333,8 +3333,8 @@ func TestGetRecoveryInfo(t *testing.T) {
|
|||
},
|
||||
},
|
||||
}
|
||||
svr.indexCoord = mocks.NewMockIndexCoord(t)
|
||||
svr.indexCoord.(*mocks.MockIndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(mockResp, nil)
|
||||
svr.indexCoord = mocks.NewIndexCoord(t)
|
||||
svr.indexCoord.(*mocks.IndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(mockResp, nil)
|
||||
|
||||
req := &datapb.GetRecoveryInfoRequest{
|
||||
CollectionID: 0,
|
||||
|
@ -4317,7 +4317,7 @@ func newTestServer(t *testing.T, receiveCh chan any, opts ...Option) *Server {
|
|||
opt(svr)
|
||||
}
|
||||
|
||||
indexCoord := mocks.NewMockIndexCoord(t)
|
||||
indexCoord := mocks.NewIndexCoord(t)
|
||||
indexCoord.EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(nil, nil).Maybe()
|
||||
svr.indexCoord = indexCoord
|
||||
|
||||
|
@ -4369,7 +4369,7 @@ func newTestServerWithMeta(t *testing.T, receiveCh chan any, meta *meta, opts ..
|
|||
svr.rootCoordClientCreator = func(ctx context.Context, metaRootPath string, etcdCli *clientv3.Client) (types.RootCoord, error) {
|
||||
return newMockRootCoordService(), nil
|
||||
}
|
||||
indexCoord := mocks.NewMockIndexCoord(t)
|
||||
indexCoord := mocks.NewIndexCoord(t)
|
||||
indexCoord.EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(nil, nil).Maybe()
|
||||
svr.indexCoord = indexCoord
|
||||
|
||||
|
|
|
@ -224,8 +224,8 @@ func TestGetRecoveryInfoV2(t *testing.T) {
|
|||
},
|
||||
},
|
||||
}
|
||||
svr.indexCoord = mocks.NewMockIndexCoord(t)
|
||||
svr.indexCoord.(*mocks.MockIndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(mockResp, nil)
|
||||
svr.indexCoord = mocks.NewIndexCoord(t)
|
||||
svr.indexCoord.(*mocks.IndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(mockResp, nil)
|
||||
|
||||
req := &datapb.GetRecoveryInfoRequestV2{
|
||||
CollectionID: 0,
|
||||
|
@ -302,7 +302,7 @@ func TestGetRecoveryInfoV2(t *testing.T) {
|
|||
assert.Nil(t, err)
|
||||
err = svr.meta.AddSegment(NewSegmentInfo(seg2))
|
||||
assert.Nil(t, err)
|
||||
svr.indexCoord.(*mocks.MockIndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(nil, nil)
|
||||
svr.indexCoord.(*mocks.IndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(nil, nil)
|
||||
|
||||
req := &datapb.GetRecoveryInfoRequestV2{
|
||||
CollectionID: 0,
|
||||
|
@ -391,8 +391,8 @@ func TestGetRecoveryInfoV2(t *testing.T) {
|
|||
},
|
||||
},
|
||||
}
|
||||
svr.indexCoord = mocks.NewMockIndexCoord(t)
|
||||
svr.indexCoord.(*mocks.MockIndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(mockResp, nil)
|
||||
svr.indexCoord = mocks.NewIndexCoord(t)
|
||||
svr.indexCoord.(*mocks.IndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(mockResp, nil)
|
||||
err = svr.channelManager.AddNode(0)
|
||||
assert.Nil(t, err)
|
||||
err = svr.channelManager.Watch(&channel{Name: "vchan1", CollectionID: 0})
|
||||
|
@ -442,7 +442,7 @@ func TestGetRecoveryInfoV2(t *testing.T) {
|
|||
assert.Nil(t, err)
|
||||
err = svr.meta.AddSegment(NewSegmentInfo(seg2))
|
||||
assert.Nil(t, err)
|
||||
svr.indexCoord.(*mocks.MockIndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(nil, nil)
|
||||
svr.indexCoord.(*mocks.IndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(nil, nil)
|
||||
|
||||
req := &datapb.GetRecoveryInfoRequestV2{
|
||||
CollectionID: 0,
|
||||
|
@ -511,8 +511,8 @@ func TestGetRecoveryInfoV2(t *testing.T) {
|
|||
},
|
||||
},
|
||||
}
|
||||
svr.indexCoord = mocks.NewMockIndexCoord(t)
|
||||
svr.indexCoord.(*mocks.MockIndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(mockResp, nil)
|
||||
svr.indexCoord = mocks.NewIndexCoord(t)
|
||||
svr.indexCoord.(*mocks.IndexCoord).EXPECT().GetIndexInfos(mock.Anything, mock.Anything).Return(mockResp, nil)
|
||||
|
||||
req := &datapb.GetRecoveryInfoRequestV2{
|
||||
CollectionID: 0,
|
||||
|
|
|
@ -255,7 +255,7 @@ func Test_NewServer(t *testing.T) {
|
|||
|
||||
t.Run("Run", func(t *testing.T) {
|
||||
server.dataCoord = &MockDataCoord{}
|
||||
indexCoord := mocks.NewMockIndexCoord(t)
|
||||
indexCoord := mocks.NewIndexCoord(t)
|
||||
indexCoord.EXPECT().Init().Return(nil)
|
||||
server.indexCoord = indexCoord
|
||||
|
||||
|
|
|
@ -217,6 +217,20 @@ func (c *Client) DescribeIndex(ctx context.Context, req *indexpb.DescribeIndexRe
|
|||
return ret.(*indexpb.DescribeIndexResponse), err
|
||||
}
|
||||
|
||||
// GetIndexStatistics get the statistics of the index.
|
||||
func (c *Client) GetIndexStatistics(ctx context.Context, req *indexpb.GetIndexStatisticsRequest) (*indexpb.GetIndexStatisticsResponse, error) {
|
||||
ret, err := c.grpcClient.ReCall(ctx, func(client indexpb.IndexCoordClient) (any, error) {
|
||||
if !funcutil.CheckCtxValid(ctx) {
|
||||
return nil, ctx.Err()
|
||||
}
|
||||
return client.GetIndexStatistics(ctx, req)
|
||||
})
|
||||
if err != nil || ret == nil {
|
||||
return nil, err
|
||||
}
|
||||
return ret.(*indexpb.GetIndexStatisticsResponse), err
|
||||
}
|
||||
|
||||
// GetIndexBuildProgress describe the progress of the index.
|
||||
func (c *Client) GetIndexBuildProgress(ctx context.Context, req *indexpb.GetIndexBuildProgressRequest) (*indexpb.GetIndexBuildProgressResponse, error) {
|
||||
ret, err := c.grpcClient.ReCall(ctx, func(client indexpb.IndexCoordClient) (any, error) {
|
||||
|
|
|
@ -157,6 +157,16 @@ func TestIndexCoordClient(t *testing.T) {
|
|||
assert.Equal(t, 1, len(resp.IndexInfos))
|
||||
})
|
||||
|
||||
t.Run("GetIndexStatistics", func(t *testing.T) {
|
||||
req := &indexpb.GetIndexStatisticsRequest{
|
||||
CollectionID: 1,
|
||||
IndexName: "",
|
||||
}
|
||||
resp, err := icc.GetIndexStatistics(ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, 1, len(resp.IndexInfos))
|
||||
})
|
||||
|
||||
t.Run("GetIndexBuildProgress", func(t *testing.T) {
|
||||
req := &indexpb.GetIndexBuildProgressRequest{
|
||||
CollectionID: 1,
|
||||
|
|
|
@ -278,6 +278,11 @@ func (s *Server) DescribeIndex(ctx context.Context, req *indexpb.DescribeIndexRe
|
|||
return s.indexcoord.DescribeIndex(ctx, req)
|
||||
}
|
||||
|
||||
// GetIndexStatistics get the information of index..
|
||||
func (s *Server) GetIndexStatistics(ctx context.Context, req *indexpb.GetIndexStatisticsRequest) (*indexpb.GetIndexStatisticsResponse, error) {
|
||||
return s.indexcoord.GetIndexStatistics(ctx, req)
|
||||
}
|
||||
|
||||
// DropIndex sends the drop index request to IndexCoord.
|
||||
func (s *Server) DropIndex(ctx context.Context, request *indexpb.DropIndexRequest) (*commonpb.Status, error) {
|
||||
return s.indexcoord.DropIndex(ctx, request)
|
||||
|
|
|
@ -343,6 +343,10 @@ func (m *MockIndexCoord) DescribeIndex(ctx context.Context, req *indexpb.Describ
|
|||
return nil, nil
|
||||
}
|
||||
|
||||
func (m *MockIndexCoord) GetIndexStatistics(ctx context.Context, req *indexpb.GetIndexStatisticsRequest) (*indexpb.GetIndexStatisticsResponse, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (m *MockIndexCoord) GetIndexBuildProgress(ctx context.Context, req *indexpb.GetIndexBuildProgressRequest) (*indexpb.GetIndexBuildProgressResponse, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
|
|
@ -602,8 +602,10 @@ func (i *IndexCoord) getIndexIDAndCreateTime(collectionID int64, indexName strin
|
|||
return 0, 0, errors.New("get index id by name failed, there is no index on collection")
|
||||
}
|
||||
|
||||
// completeIndexInfo get the building index row count and index task state
|
||||
func (i *IndexCoord) completeIndexInfo(indexInfo *indexpb.IndexInfo, indexID int64, segIDs []UniqueID) error {
|
||||
// completeIndexInfo get the index row count and index task state
|
||||
// if realTime, calculate current statistics
|
||||
// if not realTime, which means get info of the prior `CreateIndex` action, skip segments created after index's create time
|
||||
func (i *IndexCoord) completeIndexInfo(indexInfo *indexpb.IndexInfo, index *model.Index, segIDs []UniqueID) error {
|
||||
collectionID := indexInfo.CollectionID
|
||||
indexName := indexInfo.IndexName
|
||||
log.Info("IndexCoord completeIndexInfo", zap.Int64("collID", collectionID),
|
||||
|
@ -612,7 +614,7 @@ func (i *IndexCoord) completeIndexInfo(indexInfo *indexpb.IndexInfo, indexID int
|
|||
segSet := typeutil.NewSet(segIDs...)
|
||||
|
||||
//get index status of segSet
|
||||
_, indexStateCnt := i.metaTable.GetIndexStates(indexID, typeutil.MaxTimestamp, func(segIdx *model.SegmentIndex) bool {
|
||||
_, indexStateCnt := i.metaTable.GetIndexStates(index.IndexID, typeutil.MaxTimestamp, func(segIdx *model.SegmentIndex) bool {
|
||||
return segSet.Contain(segIdx.SegmentID)
|
||||
})
|
||||
allCnt := len(segIDs)
|
||||
|
@ -936,7 +938,7 @@ func (i *IndexCoord) DescribeIndex(ctx context.Context, req *indexpb.DescribeInd
|
|||
indexInfo.TotalRows = totalRows
|
||||
indexInfo.IndexedRows = indexedRows
|
||||
indexInfo.PendingIndexRows = pendingIndexRows
|
||||
if err := i.completeIndexInfo(indexInfo, indexID, segmentsToCheck); err != nil {
|
||||
if err := i.completeIndexInfo(indexInfo, index, segmentsToCheck); err != nil {
|
||||
log.Error("IndexCoord describe index fail", zap.Int64("collectionID", req.CollectionID),
|
||||
zap.String("indexName", req.IndexName), zap.Error(err))
|
||||
return &indexpb.DescribeIndexResponse{
|
||||
|
@ -962,6 +964,79 @@ func (i *IndexCoord) DescribeIndex(ctx context.Context, req *indexpb.DescribeInd
|
|||
}, nil
|
||||
}
|
||||
|
||||
// GetIndexStatistics get the statistics of the index. DescribeIndex doesn't contain statistics.
|
||||
func (i *IndexCoord) GetIndexStatistics(ctx context.Context, req *indexpb.GetIndexStatisticsRequest) (*indexpb.GetIndexStatisticsResponse, error) {
|
||||
log.Info("IndexCoord GetIndexStatistics", zap.Int64("collectionID", req.CollectionID), zap.String("indexName", req.GetIndexName()))
|
||||
if !i.isHealthy() {
|
||||
log.Warn(msgIndexCoordIsUnhealthy(i.serverID))
|
||||
ret := &indexpb.GetIndexStatisticsResponse{Status: &commonpb.Status{}}
|
||||
setNotServingStatus(ret.GetStatus(), i.GetStateCode())
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
indexes := i.metaTable.GetIndexesForCollection(req.GetCollectionID(), req.GetIndexName())
|
||||
if len(indexes) == 0 {
|
||||
return &indexpb.GetIndexStatisticsResponse{
|
||||
Status: &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_IndexNotExist,
|
||||
Reason: fmt.Sprint("index doesn't exist, collectionID ", req.CollectionID),
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
ret := &indexpb.GetIndexStatisticsResponse{
|
||||
Status: &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_UnexpectedError,
|
||||
Reason: "",
|
||||
},
|
||||
}
|
||||
|
||||
indexInfos := make([]*indexpb.IndexInfo, 0)
|
||||
for _, index := range indexes {
|
||||
indexInfo := &indexpb.IndexInfo{
|
||||
CollectionID: index.CollectionID,
|
||||
FieldID: index.FieldID,
|
||||
IndexName: index.IndexName,
|
||||
TypeParams: index.TypeParams,
|
||||
IndexParams: index.IndexParams,
|
||||
IsAutoIndex: index.IsAutoIndex,
|
||||
UserIndexParams: index.UserIndexParams,
|
||||
IndexID: index.IndexID,
|
||||
}
|
||||
|
||||
totalRows, indexedRows, pendingIndexRows, segmentsToCheck, err := i.getIndexedStats(ctx, index.CollectionID, index.IndexID, typeutil.MaxTimestamp)
|
||||
if err != nil {
|
||||
ret.Status.ErrorCode = commonpb.ErrorCode_UnexpectedError
|
||||
ret.Status.Reason = err.Error()
|
||||
return ret, nil
|
||||
}
|
||||
indexInfo.TotalRows = totalRows
|
||||
indexInfo.IndexedRows = indexedRows
|
||||
indexInfo.PendingIndexRows = pendingIndexRows
|
||||
if err := i.completeIndexInfo(indexInfo, index, segmentsToCheck); err != nil {
|
||||
log.Error("IndexCoord GetIndexStatistics fail", zap.Int64("collectionID", req.CollectionID), zap.String("indexName", req.IndexName), zap.Error(err))
|
||||
ret.Status.Reason = err.Error()
|
||||
return ret, nil
|
||||
}
|
||||
log.Info("IndexCoord GetIndexStatistics success",
|
||||
zap.Int64("collectionID", req.CollectionID),
|
||||
zap.Int64("indexID", indexInfo.IndexID),
|
||||
zap.Int64("total rows", indexInfo.TotalRows),
|
||||
zap.Int64("indexed rows", indexInfo.IndexedRows),
|
||||
zap.Int64("pending index rows", indexInfo.PendingIndexRows),
|
||||
zap.String("index state", indexInfo.State.String()),
|
||||
zap.Int64s("segments", segmentsToCheck))
|
||||
indexInfos = append(indexInfos, indexInfo)
|
||||
}
|
||||
|
||||
return &indexpb.GetIndexStatisticsResponse{
|
||||
Status: &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_Success,
|
||||
},
|
||||
IndexInfos: indexInfos,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// ShowConfigurations returns the configurations of indexCoord matching req.Pattern
|
||||
func (i *IndexCoord) ShowConfigurations(ctx context.Context, req *internalpb.ShowConfigurationsRequest) (*internalpb.ShowConfigurationsResponse, error) {
|
||||
log.Debug("IndexCoord.ShowConfigurations", zap.String("pattern", req.Pattern))
|
||||
|
|
|
@ -57,6 +57,7 @@ type Mock struct {
|
|||
CallGetSegmentIndexState func(ctx context.Context, req *indexpb.GetSegmentIndexStateRequest) (*indexpb.GetSegmentIndexStateResponse, error)
|
||||
CallGetIndexInfos func(ctx context.Context, req *indexpb.GetIndexInfoRequest) (*indexpb.GetIndexInfoResponse, error)
|
||||
CallDescribeIndex func(ctx context.Context, req *indexpb.DescribeIndexRequest) (*indexpb.DescribeIndexResponse, error)
|
||||
CallGetIndexStatistics func(ctx context.Context, req *indexpb.GetIndexStatisticsRequest) (*indexpb.GetIndexStatisticsResponse, error)
|
||||
CallGetIndexBuildProgress func(ctx context.Context, req *indexpb.GetIndexBuildProgressRequest) (*indexpb.GetIndexBuildProgressResponse, error)
|
||||
CallDropIndex func(ctx context.Context, req *indexpb.DropIndexRequest) (*commonpb.Status, error)
|
||||
CallShowConfigurations func(ctx context.Context, req *internalpb.ShowConfigurationsRequest) (*internalpb.ShowConfigurationsResponse, error)
|
||||
|
@ -129,6 +130,10 @@ func (m *Mock) DescribeIndex(ctx context.Context, req *indexpb.DescribeIndexRequ
|
|||
return m.CallDescribeIndex(ctx, req)
|
||||
}
|
||||
|
||||
func (m *Mock) GetIndexStatistics(ctx context.Context, req *indexpb.GetIndexStatisticsRequest) (*indexpb.GetIndexStatisticsResponse, error) {
|
||||
return m.CallGetIndexStatistics(ctx, req)
|
||||
}
|
||||
|
||||
func (m *Mock) GetIndexBuildProgress(ctx context.Context, req *indexpb.GetIndexBuildProgressRequest) (*indexpb.GetIndexBuildProgressResponse, error) {
|
||||
return m.CallGetIndexBuildProgress(ctx, req)
|
||||
}
|
||||
|
@ -261,6 +266,23 @@ func NewIndexCoordMock() *Mock {
|
|||
},
|
||||
}, nil
|
||||
},
|
||||
CallGetIndexStatistics: func(ctx context.Context, req *indexpb.GetIndexStatisticsRequest) (*indexpb.GetIndexStatisticsResponse, error) {
|
||||
return &indexpb.GetIndexStatisticsResponse{
|
||||
Status: &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_Success,
|
||||
},
|
||||
IndexInfos: []*indexpb.IndexInfo{
|
||||
{
|
||||
CollectionID: 1,
|
||||
FieldID: 0,
|
||||
IndexName: "default",
|
||||
IndexID: 0,
|
||||
TypeParams: nil,
|
||||
IndexParams: nil,
|
||||
},
|
||||
},
|
||||
}, nil
|
||||
},
|
||||
CallGetIndexBuildProgress: func(ctx context.Context, req *indexpb.GetIndexBuildProgressRequest) (*indexpb.GetIndexBuildProgressResponse, error) {
|
||||
return &indexpb.GetIndexBuildProgressResponse{
|
||||
Status: &commonpb.Status{
|
||||
|
|
|
@ -884,6 +884,16 @@ func TestIndexCoord_UnHealthy(t *testing.T) {
|
|||
assert.Equal(t, commonpb.ErrorCode_NotReadyServe, resp.Status.ErrorCode)
|
||||
})
|
||||
|
||||
t.Run("GetIndexStatistics", func(t *testing.T) {
|
||||
req := &indexpb.GetIndexStatisticsRequest{
|
||||
CollectionID: collID,
|
||||
IndexName: indexName,
|
||||
}
|
||||
resp, err := ic.GetIndexStatistics(ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_NotReadyServe, resp.Status.ErrorCode)
|
||||
})
|
||||
|
||||
t.Run("GetIndexBuildProgress", func(t *testing.T) {
|
||||
req := &indexpb.GetIndexBuildProgressRequest{
|
||||
CollectionID: collID,
|
||||
|
@ -1431,3 +1441,212 @@ func TestIndexCoord_GetIndexBuildProgress(t *testing.T) {
|
|||
assert.Equal(t, commonpb.ErrorCode_UnexpectedError, resp.GetStatus().GetErrorCode())
|
||||
})
|
||||
}
|
||||
|
||||
func TestIndexCoord_GetIndexStatistics(t *testing.T) {
|
||||
var (
|
||||
collID = UniqueID(1)
|
||||
partID = UniqueID(2)
|
||||
fieldID = UniqueID(10)
|
||||
indexID = UniqueID(100)
|
||||
segIDBeforeCreateIndex = UniqueID(999)
|
||||
segIDAfterCreateIndex = UniqueID(1001)
|
||||
segIDFlushed = UniqueID(1002)
|
||||
//buildID = UniqueID(10000)
|
||||
indexName = "default_idx"
|
||||
typeParams = []*commonpb.KeyValuePair{
|
||||
{Key: "dim", Value: "128"},
|
||||
}
|
||||
indexParams = []*commonpb.KeyValuePair{
|
||||
{Key: "index_type", Value: "IVF_FLAT"},
|
||||
}
|
||||
indexCreateTS = uint64(1000)
|
||||
ctx = context.Background()
|
||||
)
|
||||
|
||||
ic := &IndexCoord{
|
||||
metaTable: &metaTable{
|
||||
catalog: &indexcoord.Catalog{Txn: NewMockEtcdKV()},
|
||||
collectionIndexes: map[UniqueID]map[UniqueID]*model.Index{
|
||||
collID: {
|
||||
//finished
|
||||
indexID: {
|
||||
TenantID: "",
|
||||
CollectionID: collID,
|
||||
FieldID: fieldID,
|
||||
IndexID: indexID,
|
||||
IndexName: indexName,
|
||||
IsDeleted: false,
|
||||
CreateTime: indexCreateTS,
|
||||
TypeParams: typeParams,
|
||||
IndexParams: indexParams,
|
||||
IsAutoIndex: false,
|
||||
UserIndexParams: nil,
|
||||
},
|
||||
},
|
||||
},
|
||||
segmentIndexes: map[UniqueID]map[UniqueID]*model.SegmentIndex{
|
||||
segIDAfterCreateIndex: { // segment build after index created
|
||||
indexID: &model.SegmentIndex{
|
||||
IndexState: commonpb.IndexState_Finished,
|
||||
SegmentID: segIDAfterCreateIndex,
|
||||
CollectionID: collID,
|
||||
PartitionID: partID,
|
||||
NumRows: 10240,
|
||||
CreateTime: indexCreateTS + 1,
|
||||
},
|
||||
},
|
||||
segIDBeforeCreateIndex: { // segment build before index created
|
||||
indexID: &model.SegmentIndex{
|
||||
IndexState: commonpb.IndexState_Finished,
|
||||
SegmentID: segIDBeforeCreateIndex,
|
||||
CollectionID: collID,
|
||||
PartitionID: partID,
|
||||
NumRows: 10240,
|
||||
CreateTime: indexCreateTS,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
dcm := &DataCoordMock{
|
||||
CallGetFlushedSegment: func(ctx context.Context, req *datapb.GetFlushedSegmentsRequest) (*datapb.GetFlushedSegmentsResponse, error) {
|
||||
return &datapb.GetFlushedSegmentsResponse{
|
||||
Status: &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_Success,
|
||||
},
|
||||
Segments: []int64{segIDBeforeCreateIndex, segIDAfterCreateIndex, segIDFlushed},
|
||||
}, nil
|
||||
},
|
||||
CallAcquireSegmentLock: func(ctx context.Context, req *datapb.AcquireSegmentLockRequest) (*commonpb.Status, error) {
|
||||
return &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_Success,
|
||||
}, nil
|
||||
},
|
||||
CallReleaseSegmentLock: func(ctx context.Context, req *datapb.ReleaseSegmentLockRequest) (*commonpb.Status, error) {
|
||||
return &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_Success,
|
||||
}, nil
|
||||
},
|
||||
CallListSegmentsInfo: func(ctx context.Context, req *datapb.ListSegmentsInfoRequest) (*datapb.ListSegmentsInfoResponse, error) {
|
||||
segmentInfos := make([]*datapb.SegmentInfo, 0)
|
||||
for _, segID := range req.SegmentIDs {
|
||||
segmentInfos = append(segmentInfos, &datapb.SegmentInfo{
|
||||
ID: segID,
|
||||
CollectionID: collID,
|
||||
PartitionID: partID,
|
||||
NumOfRows: 10240,
|
||||
State: commonpb.SegmentState_Flushed,
|
||||
StartPosition: &internalpb.MsgPosition{
|
||||
Timestamp: indexCreateTS,
|
||||
},
|
||||
})
|
||||
}
|
||||
return &datapb.ListSegmentsInfoResponse{
|
||||
Status: &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_Success,
|
||||
},
|
||||
Infos: segmentInfos,
|
||||
}, nil
|
||||
},
|
||||
CallGetRecoveryInfoV2: func(ctx context.Context, req *datapb.GetRecoveryInfoRequestV2) (*datapb.GetRecoveryInfoResponseV2, error) {
|
||||
return &datapb.GetRecoveryInfoResponseV2{
|
||||
Status: &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_Success,
|
||||
},
|
||||
Channels: []*datapb.VchannelInfo{
|
||||
{
|
||||
CollectionID: collID,
|
||||
ChannelName: "",
|
||||
SeekPosition: nil,
|
||||
UnflushedSegments: nil,
|
||||
FlushedSegments: nil,
|
||||
DroppedSegments: nil,
|
||||
UnflushedSegmentIds: nil,
|
||||
FlushedSegmentIds: []UniqueID{segIDBeforeCreateIndex, segIDAfterCreateIndex, segIDFlushed},
|
||||
DroppedSegmentIds: nil,
|
||||
},
|
||||
},
|
||||
Segments: []*datapb.SegmentInfo{
|
||||
{
|
||||
ID: segIDBeforeCreateIndex,
|
||||
CollectionID: collID,
|
||||
PartitionID: partID,
|
||||
NumOfRows: 10240,
|
||||
State: commonpb.SegmentState_Flushed,
|
||||
StartPosition: &internalpb.MsgPosition{
|
||||
Timestamp: indexCreateTS - 100,
|
||||
},
|
||||
},
|
||||
{
|
||||
ID: segIDAfterCreateIndex,
|
||||
CollectionID: collID,
|
||||
PartitionID: partID,
|
||||
NumOfRows: 10240,
|
||||
State: commonpb.SegmentState_Flushed,
|
||||
StartPosition: &internalpb.MsgPosition{
|
||||
Timestamp: indexCreateTS + 100,
|
||||
},
|
||||
},
|
||||
{
|
||||
ID: segIDFlushed,
|
||||
CollectionID: collID,
|
||||
PartitionID: partID,
|
||||
NumOfRows: 10240,
|
||||
State: commonpb.SegmentState_Flushed,
|
||||
StartPosition: &internalpb.MsgPosition{
|
||||
Timestamp: indexCreateTS + 200,
|
||||
},
|
||||
},
|
||||
},
|
||||
}, nil
|
||||
},
|
||||
}
|
||||
err := ic.SetDataCoord(dcm)
|
||||
assert.Nil(t, err)
|
||||
ic.stateCode.Store(commonpb.StateCode_Healthy)
|
||||
|
||||
t.Run("success", func(t *testing.T) {
|
||||
req := &indexpb.GetIndexStatisticsRequest{
|
||||
CollectionID: collID,
|
||||
IndexName: "",
|
||||
}
|
||||
resp, err := ic.GetIndexStatistics(ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_Success, resp.GetStatus().GetErrorCode())
|
||||
assert.Equal(t, int64(10240*3), resp.GetIndexInfos()[0].GetIndexedRows())
|
||||
assert.Equal(t, int64(10240*3), resp.GetIndexInfos()[0].GetTotalRows())
|
||||
})
|
||||
|
||||
t.Run("fail because datacoord method error", func(t *testing.T) {
|
||||
req := &indexpb.GetIndexStatisticsRequest{
|
||||
CollectionID: collID,
|
||||
IndexName: "",
|
||||
}
|
||||
ic.dataCoordClient = &DataCoordMock{
|
||||
CallGetFlushedSegment: func(ctx context.Context, req *datapb.GetFlushedSegmentsRequest) (*datapb.GetFlushedSegmentsResponse, error) {
|
||||
return nil, errors.New("mock error")
|
||||
}}
|
||||
resp, err := ic.GetIndexStatistics(ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_UnexpectedError, resp.GetStatus().GetErrorCode())
|
||||
})
|
||||
|
||||
t.Run("GetIndexStatistics after drop index", func(t *testing.T) {
|
||||
status, err := ic.DropIndex(ctx, &indexpb.DropIndexRequest{
|
||||
CollectionID: collID,
|
||||
PartitionIDs: nil,
|
||||
IndexName: "",
|
||||
DropAll: true,
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_Success, status.GetErrorCode())
|
||||
req := &indexpb.GetIndexStatisticsRequest{
|
||||
CollectionID: collID,
|
||||
IndexName: "",
|
||||
}
|
||||
resp, err := ic.GetIndexStatistics(ctx, req)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_IndexNotExist, resp.GetStatus().GetErrorCode())
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Code generated by mockery v2.21.1. DO NOT EDIT.
|
||||
// Code generated by mockery v2.16.0. DO NOT EDIT.
|
||||
|
||||
package mocks
|
||||
|
||||
|
@ -89,10 +89,6 @@ func (_m *DataCoord) AssignSegmentID(ctx context.Context, req *datapb.AssignSegm
|
|||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *datapb.AssignSegmentIDResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.AssignSegmentIDRequest) (*datapb.AssignSegmentIDResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.AssignSegmentIDRequest) *datapb.AssignSegmentIDResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -101,6 +97,7 @@ func (_m *DataCoord) AssignSegmentID(ctx context.Context, req *datapb.AssignSegm
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.AssignSegmentIDRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -134,20 +131,11 @@ func (_c *DataCoord_AssignSegmentID_Call) Return(_a0 *datapb.AssignSegmentIDResp
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_AssignSegmentID_Call) RunAndReturn(run func(context.Context, *datapb.AssignSegmentIDRequest) (*datapb.AssignSegmentIDResponse, error)) *DataCoord_AssignSegmentID_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// BroadcastAlteredCollection provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) BroadcastAlteredCollection(ctx context.Context, req *datapb.AlterCollectionRequest) (*commonpb.Status, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *commonpb.Status
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.AlterCollectionRequest) (*commonpb.Status, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.AlterCollectionRequest) *commonpb.Status); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -156,6 +144,7 @@ func (_m *DataCoord) BroadcastAlteredCollection(ctx context.Context, req *datapb
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.AlterCollectionRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -189,20 +178,11 @@ func (_c *DataCoord_BroadcastAlteredCollection_Call) Return(_a0 *commonpb.Status
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_BroadcastAlteredCollection_Call) RunAndReturn(run func(context.Context, *datapb.AlterCollectionRequest) (*commonpb.Status, error)) *DataCoord_BroadcastAlteredCollection_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// CheckHealth provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) CheckHealth(ctx context.Context, req *milvuspb.CheckHealthRequest) (*milvuspb.CheckHealthResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *milvuspb.CheckHealthResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.CheckHealthRequest) (*milvuspb.CheckHealthResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.CheckHealthRequest) *milvuspb.CheckHealthResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -211,6 +191,7 @@ func (_m *DataCoord) CheckHealth(ctx context.Context, req *milvuspb.CheckHealthR
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *milvuspb.CheckHealthRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -254,10 +235,6 @@ func (_m *DataCoord) DropVirtualChannel(ctx context.Context, req *datapb.DropVir
|
|||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *datapb.DropVirtualChannelResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.DropVirtualChannelRequest) (*datapb.DropVirtualChannelResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.DropVirtualChannelRequest) *datapb.DropVirtualChannelResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -266,6 +243,7 @@ func (_m *DataCoord) DropVirtualChannel(ctx context.Context, req *datapb.DropVir
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.DropVirtualChannelRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -299,20 +277,11 @@ func (_c *DataCoord_DropVirtualChannel_Call) Return(_a0 *datapb.DropVirtualChann
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_DropVirtualChannel_Call) RunAndReturn(run func(context.Context, *datapb.DropVirtualChannelRequest) (*datapb.DropVirtualChannelResponse, error)) *DataCoord_DropVirtualChannel_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// Flush provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) Flush(ctx context.Context, req *datapb.FlushRequest) (*datapb.FlushResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *datapb.FlushResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.FlushRequest) (*datapb.FlushResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.FlushRequest) *datapb.FlushResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -321,6 +290,7 @@ func (_m *DataCoord) Flush(ctx context.Context, req *datapb.FlushRequest) (*data
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.FlushRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -354,20 +324,11 @@ func (_c *DataCoord_Flush_Call) Return(_a0 *datapb.FlushResponse, _a1 error) *Da
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_Flush_Call) RunAndReturn(run func(context.Context, *datapb.FlushRequest) (*datapb.FlushResponse, error)) *DataCoord_Flush_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GcConfirm provides a mock function with given fields: ctx, request
|
||||
func (_m *DataCoord) GcConfirm(ctx context.Context, request *datapb.GcConfirmRequest) (*datapb.GcConfirmResponse, error) {
|
||||
ret := _m.Called(ctx, request)
|
||||
|
||||
var r0 *datapb.GcConfirmResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GcConfirmRequest) (*datapb.GcConfirmResponse, error)); ok {
|
||||
return rf(ctx, request)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GcConfirmRequest) *datapb.GcConfirmResponse); ok {
|
||||
r0 = rf(ctx, request)
|
||||
} else {
|
||||
|
@ -376,6 +337,7 @@ func (_m *DataCoord) GcConfirm(ctx context.Context, request *datapb.GcConfirmReq
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.GcConfirmRequest) error); ok {
|
||||
r1 = rf(ctx, request)
|
||||
} else {
|
||||
|
@ -409,20 +371,11 @@ func (_c *DataCoord_GcConfirm_Call) Return(_a0 *datapb.GcConfirmResponse, _a1 er
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_GcConfirm_Call) RunAndReturn(run func(context.Context, *datapb.GcConfirmRequest) (*datapb.GcConfirmResponse, error)) *DataCoord_GcConfirm_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetCollectionStatistics provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) GetCollectionStatistics(ctx context.Context, req *datapb.GetCollectionStatisticsRequest) (*datapb.GetCollectionStatisticsResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *datapb.GetCollectionStatisticsResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GetCollectionStatisticsRequest) (*datapb.GetCollectionStatisticsResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GetCollectionStatisticsRequest) *datapb.GetCollectionStatisticsResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -431,6 +384,7 @@ func (_m *DataCoord) GetCollectionStatistics(ctx context.Context, req *datapb.Ge
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.GetCollectionStatisticsRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -464,20 +418,11 @@ func (_c *DataCoord_GetCollectionStatistics_Call) Return(_a0 *datapb.GetCollecti
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_GetCollectionStatistics_Call) RunAndReturn(run func(context.Context, *datapb.GetCollectionStatisticsRequest) (*datapb.GetCollectionStatisticsResponse, error)) *DataCoord_GetCollectionStatistics_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetCompactionState provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) GetCompactionState(ctx context.Context, req *milvuspb.GetCompactionStateRequest) (*milvuspb.GetCompactionStateResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *milvuspb.GetCompactionStateResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.GetCompactionStateRequest) (*milvuspb.GetCompactionStateResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.GetCompactionStateRequest) *milvuspb.GetCompactionStateResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -486,6 +431,7 @@ func (_m *DataCoord) GetCompactionState(ctx context.Context, req *milvuspb.GetCo
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *milvuspb.GetCompactionStateRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -519,20 +465,11 @@ func (_c *DataCoord_GetCompactionState_Call) Return(_a0 *milvuspb.GetCompactionS
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_GetCompactionState_Call) RunAndReturn(run func(context.Context, *milvuspb.GetCompactionStateRequest) (*milvuspb.GetCompactionStateResponse, error)) *DataCoord_GetCompactionState_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetCompactionStateWithPlans provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) GetCompactionStateWithPlans(ctx context.Context, req *milvuspb.GetCompactionPlansRequest) (*milvuspb.GetCompactionPlansResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *milvuspb.GetCompactionPlansResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.GetCompactionPlansRequest) (*milvuspb.GetCompactionPlansResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.GetCompactionPlansRequest) *milvuspb.GetCompactionPlansResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -541,6 +478,7 @@ func (_m *DataCoord) GetCompactionStateWithPlans(ctx context.Context, req *milvu
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *milvuspb.GetCompactionPlansRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -574,20 +512,11 @@ func (_c *DataCoord_GetCompactionStateWithPlans_Call) Return(_a0 *milvuspb.GetCo
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_GetCompactionStateWithPlans_Call) RunAndReturn(run func(context.Context, *milvuspb.GetCompactionPlansRequest) (*milvuspb.GetCompactionPlansResponse, error)) *DataCoord_GetCompactionStateWithPlans_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetComponentStates provides a mock function with given fields: ctx
|
||||
func (_m *DataCoord) GetComponentStates(ctx context.Context) (*milvuspb.ComponentStates, error) {
|
||||
ret := _m.Called(ctx)
|
||||
|
||||
var r0 *milvuspb.ComponentStates
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context) (*milvuspb.ComponentStates, error)); ok {
|
||||
return rf(ctx)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context) *milvuspb.ComponentStates); ok {
|
||||
r0 = rf(ctx)
|
||||
} else {
|
||||
|
@ -596,6 +525,7 @@ func (_m *DataCoord) GetComponentStates(ctx context.Context) (*milvuspb.Componen
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context) error); ok {
|
||||
r1 = rf(ctx)
|
||||
} else {
|
||||
|
@ -628,20 +558,11 @@ func (_c *DataCoord_GetComponentStates_Call) Return(_a0 *milvuspb.ComponentState
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_GetComponentStates_Call) RunAndReturn(run func(context.Context) (*milvuspb.ComponentStates, error)) *DataCoord_GetComponentStates_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetFlushAllState provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) GetFlushAllState(ctx context.Context, req *milvuspb.GetFlushAllStateRequest) (*milvuspb.GetFlushAllStateResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *milvuspb.GetFlushAllStateResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.GetFlushAllStateRequest) (*milvuspb.GetFlushAllStateResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.GetFlushAllStateRequest) *milvuspb.GetFlushAllStateResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -650,6 +571,7 @@ func (_m *DataCoord) GetFlushAllState(ctx context.Context, req *milvuspb.GetFlus
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *milvuspb.GetFlushAllStateRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -683,20 +605,11 @@ func (_c *DataCoord_GetFlushAllState_Call) Return(_a0 *milvuspb.GetFlushAllState
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_GetFlushAllState_Call) RunAndReturn(run func(context.Context, *milvuspb.GetFlushAllStateRequest) (*milvuspb.GetFlushAllStateResponse, error)) *DataCoord_GetFlushAllState_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetFlushState provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) GetFlushState(ctx context.Context, req *milvuspb.GetFlushStateRequest) (*milvuspb.GetFlushStateResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *milvuspb.GetFlushStateResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.GetFlushStateRequest) (*milvuspb.GetFlushStateResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.GetFlushStateRequest) *milvuspb.GetFlushStateResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -705,6 +618,7 @@ func (_m *DataCoord) GetFlushState(ctx context.Context, req *milvuspb.GetFlushSt
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *milvuspb.GetFlushStateRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -738,20 +652,11 @@ func (_c *DataCoord_GetFlushState_Call) Return(_a0 *milvuspb.GetFlushStateRespon
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_GetFlushState_Call) RunAndReturn(run func(context.Context, *milvuspb.GetFlushStateRequest) (*milvuspb.GetFlushStateResponse, error)) *DataCoord_GetFlushState_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetFlushedSegments provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) GetFlushedSegments(ctx context.Context, req *datapb.GetFlushedSegmentsRequest) (*datapb.GetFlushedSegmentsResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *datapb.GetFlushedSegmentsResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GetFlushedSegmentsRequest) (*datapb.GetFlushedSegmentsResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GetFlushedSegmentsRequest) *datapb.GetFlushedSegmentsResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -760,6 +665,7 @@ func (_m *DataCoord) GetFlushedSegments(ctx context.Context, req *datapb.GetFlus
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.GetFlushedSegmentsRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -803,10 +709,6 @@ func (_m *DataCoord) GetInsertBinlogPaths(ctx context.Context, req *datapb.GetIn
|
|||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *datapb.GetInsertBinlogPathsResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GetInsertBinlogPathsRequest) (*datapb.GetInsertBinlogPathsResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GetInsertBinlogPathsRequest) *datapb.GetInsertBinlogPathsResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -815,6 +717,7 @@ func (_m *DataCoord) GetInsertBinlogPaths(ctx context.Context, req *datapb.GetIn
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.GetInsertBinlogPathsRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -848,20 +751,11 @@ func (_c *DataCoord_GetInsertBinlogPaths_Call) Return(_a0 *datapb.GetInsertBinlo
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_GetInsertBinlogPaths_Call) RunAndReturn(run func(context.Context, *datapb.GetInsertBinlogPathsRequest) (*datapb.GetInsertBinlogPathsResponse, error)) *DataCoord_GetInsertBinlogPaths_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetMetrics provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) GetMetrics(ctx context.Context, req *milvuspb.GetMetricsRequest) (*milvuspb.GetMetricsResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *milvuspb.GetMetricsResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.GetMetricsRequest) (*milvuspb.GetMetricsResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.GetMetricsRequest) *milvuspb.GetMetricsResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -870,6 +764,7 @@ func (_m *DataCoord) GetMetrics(ctx context.Context, req *milvuspb.GetMetricsReq
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *milvuspb.GetMetricsRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -903,20 +798,11 @@ func (_c *DataCoord_GetMetrics_Call) Return(_a0 *milvuspb.GetMetricsResponse, _a
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_GetMetrics_Call) RunAndReturn(run func(context.Context, *milvuspb.GetMetricsRequest) (*milvuspb.GetMetricsResponse, error)) *DataCoord_GetMetrics_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetPartitionStatistics provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) GetPartitionStatistics(ctx context.Context, req *datapb.GetPartitionStatisticsRequest) (*datapb.GetPartitionStatisticsResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *datapb.GetPartitionStatisticsResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GetPartitionStatisticsRequest) (*datapb.GetPartitionStatisticsResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GetPartitionStatisticsRequest) *datapb.GetPartitionStatisticsResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -925,6 +811,7 @@ func (_m *DataCoord) GetPartitionStatistics(ctx context.Context, req *datapb.Get
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.GetPartitionStatisticsRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -958,20 +845,11 @@ func (_c *DataCoord_GetPartitionStatistics_Call) Return(_a0 *datapb.GetPartition
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_GetPartitionStatistics_Call) RunAndReturn(run func(context.Context, *datapb.GetPartitionStatisticsRequest) (*datapb.GetPartitionStatisticsResponse, error)) *DataCoord_GetPartitionStatistics_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetRecoveryInfo provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) GetRecoveryInfo(ctx context.Context, req *datapb.GetRecoveryInfoRequest) (*datapb.GetRecoveryInfoResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *datapb.GetRecoveryInfoResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GetRecoveryInfoRequest) (*datapb.GetRecoveryInfoResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GetRecoveryInfoRequest) *datapb.GetRecoveryInfoResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -980,6 +858,7 @@ func (_m *DataCoord) GetRecoveryInfo(ctx context.Context, req *datapb.GetRecover
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.GetRecoveryInfoRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1013,20 +892,11 @@ func (_c *DataCoord_GetRecoveryInfo_Call) Return(_a0 *datapb.GetRecoveryInfoResp
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_GetRecoveryInfo_Call) RunAndReturn(run func(context.Context, *datapb.GetRecoveryInfoRequest) (*datapb.GetRecoveryInfoResponse, error)) *DataCoord_GetRecoveryInfo_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetRecoveryInfoV2 provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) GetRecoveryInfoV2(ctx context.Context, req *datapb.GetRecoveryInfoRequestV2) (*datapb.GetRecoveryInfoResponseV2, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *datapb.GetRecoveryInfoResponseV2
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GetRecoveryInfoRequestV2) (*datapb.GetRecoveryInfoResponseV2, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GetRecoveryInfoRequestV2) *datapb.GetRecoveryInfoResponseV2); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1035,6 +905,7 @@ func (_m *DataCoord) GetRecoveryInfoV2(ctx context.Context, req *datapb.GetRecov
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.GetRecoveryInfoRequestV2) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1078,10 +949,6 @@ func (_m *DataCoord) GetSegmentInfo(ctx context.Context, req *datapb.GetSegmentI
|
|||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *datapb.GetSegmentInfoResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GetSegmentInfoRequest) (*datapb.GetSegmentInfoResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GetSegmentInfoRequest) *datapb.GetSegmentInfoResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1090,6 +957,7 @@ func (_m *DataCoord) GetSegmentInfo(ctx context.Context, req *datapb.GetSegmentI
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.GetSegmentInfoRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1123,20 +991,11 @@ func (_c *DataCoord_GetSegmentInfo_Call) Return(_a0 *datapb.GetSegmentInfoRespon
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_GetSegmentInfo_Call) RunAndReturn(run func(context.Context, *datapb.GetSegmentInfoRequest) (*datapb.GetSegmentInfoResponse, error)) *DataCoord_GetSegmentInfo_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetSegmentInfoChannel provides a mock function with given fields: ctx
|
||||
func (_m *DataCoord) GetSegmentInfoChannel(ctx context.Context) (*milvuspb.StringResponse, error) {
|
||||
ret := _m.Called(ctx)
|
||||
|
||||
var r0 *milvuspb.StringResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context) (*milvuspb.StringResponse, error)); ok {
|
||||
return rf(ctx)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context) *milvuspb.StringResponse); ok {
|
||||
r0 = rf(ctx)
|
||||
} else {
|
||||
|
@ -1145,6 +1004,7 @@ func (_m *DataCoord) GetSegmentInfoChannel(ctx context.Context) (*milvuspb.Strin
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context) error); ok {
|
||||
r1 = rf(ctx)
|
||||
} else {
|
||||
|
@ -1177,20 +1037,11 @@ func (_c *DataCoord_GetSegmentInfoChannel_Call) Return(_a0 *milvuspb.StringRespo
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_GetSegmentInfoChannel_Call) RunAndReturn(run func(context.Context) (*milvuspb.StringResponse, error)) *DataCoord_GetSegmentInfoChannel_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetSegmentStates provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) GetSegmentStates(ctx context.Context, req *datapb.GetSegmentStatesRequest) (*datapb.GetSegmentStatesResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *datapb.GetSegmentStatesResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GetSegmentStatesRequest) (*datapb.GetSegmentStatesResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GetSegmentStatesRequest) *datapb.GetSegmentStatesResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1199,6 +1050,7 @@ func (_m *DataCoord) GetSegmentStates(ctx context.Context, req *datapb.GetSegmen
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.GetSegmentStatesRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1232,20 +1084,11 @@ func (_c *DataCoord_GetSegmentStates_Call) Return(_a0 *datapb.GetSegmentStatesRe
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_GetSegmentStates_Call) RunAndReturn(run func(context.Context, *datapb.GetSegmentStatesRequest) (*datapb.GetSegmentStatesResponse, error)) *DataCoord_GetSegmentStates_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetSegmentsByStates provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) GetSegmentsByStates(ctx context.Context, req *datapb.GetSegmentsByStatesRequest) (*datapb.GetSegmentsByStatesResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *datapb.GetSegmentsByStatesResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GetSegmentsByStatesRequest) (*datapb.GetSegmentsByStatesResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.GetSegmentsByStatesRequest) *datapb.GetSegmentsByStatesResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1254,6 +1097,7 @@ func (_m *DataCoord) GetSegmentsByStates(ctx context.Context, req *datapb.GetSeg
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.GetSegmentsByStatesRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1287,20 +1131,11 @@ func (_c *DataCoord_GetSegmentsByStates_Call) Return(_a0 *datapb.GetSegmentsBySt
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_GetSegmentsByStates_Call) RunAndReturn(run func(context.Context, *datapb.GetSegmentsByStatesRequest) (*datapb.GetSegmentsByStatesResponse, error)) *DataCoord_GetSegmentsByStates_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetStatisticsChannel provides a mock function with given fields: ctx
|
||||
func (_m *DataCoord) GetStatisticsChannel(ctx context.Context) (*milvuspb.StringResponse, error) {
|
||||
ret := _m.Called(ctx)
|
||||
|
||||
var r0 *milvuspb.StringResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context) (*milvuspb.StringResponse, error)); ok {
|
||||
return rf(ctx)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context) *milvuspb.StringResponse); ok {
|
||||
r0 = rf(ctx)
|
||||
} else {
|
||||
|
@ -1309,6 +1144,7 @@ func (_m *DataCoord) GetStatisticsChannel(ctx context.Context) (*milvuspb.String
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context) error); ok {
|
||||
r1 = rf(ctx)
|
||||
} else {
|
||||
|
@ -1341,20 +1177,11 @@ func (_c *DataCoord_GetStatisticsChannel_Call) Return(_a0 *milvuspb.StringRespon
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_GetStatisticsChannel_Call) RunAndReturn(run func(context.Context) (*milvuspb.StringResponse, error)) *DataCoord_GetStatisticsChannel_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetTimeTickChannel provides a mock function with given fields: ctx
|
||||
func (_m *DataCoord) GetTimeTickChannel(ctx context.Context) (*milvuspb.StringResponse, error) {
|
||||
ret := _m.Called(ctx)
|
||||
|
||||
var r0 *milvuspb.StringResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context) (*milvuspb.StringResponse, error)); ok {
|
||||
return rf(ctx)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context) *milvuspb.StringResponse); ok {
|
||||
r0 = rf(ctx)
|
||||
} else {
|
||||
|
@ -1363,6 +1190,7 @@ func (_m *DataCoord) GetTimeTickChannel(ctx context.Context) (*milvuspb.StringRe
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context) error); ok {
|
||||
r1 = rf(ctx)
|
||||
} else {
|
||||
|
@ -1395,20 +1223,11 @@ func (_c *DataCoord_GetTimeTickChannel_Call) Return(_a0 *milvuspb.StringResponse
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_GetTimeTickChannel_Call) RunAndReturn(run func(context.Context) (*milvuspb.StringResponse, error)) *DataCoord_GetTimeTickChannel_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// Import provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) Import(ctx context.Context, req *datapb.ImportTaskRequest) (*datapb.ImportTaskResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *datapb.ImportTaskResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.ImportTaskRequest) (*datapb.ImportTaskResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.ImportTaskRequest) *datapb.ImportTaskResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1417,6 +1236,7 @@ func (_m *DataCoord) Import(ctx context.Context, req *datapb.ImportTaskRequest)
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.ImportTaskRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1450,11 +1270,6 @@ func (_c *DataCoord_Import_Call) Return(_a0 *datapb.ImportTaskResponse, _a1 erro
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_Import_Call) RunAndReturn(run func(context.Context, *datapb.ImportTaskRequest) (*datapb.ImportTaskResponse, error)) *DataCoord_Import_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// Init provides a mock function with given fields:
|
||||
func (_m *DataCoord) Init() error {
|
||||
ret := _m.Called()
|
||||
|
@ -1556,10 +1371,6 @@ func (_m *DataCoord) ManualCompaction(ctx context.Context, req *milvuspb.ManualC
|
|||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *milvuspb.ManualCompactionResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.ManualCompactionRequest) (*milvuspb.ManualCompactionResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *milvuspb.ManualCompactionRequest) *milvuspb.ManualCompactionResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1568,6 +1379,7 @@ func (_m *DataCoord) ManualCompaction(ctx context.Context, req *milvuspb.ManualC
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *milvuspb.ManualCompactionRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1601,20 +1413,11 @@ func (_c *DataCoord_ManualCompaction_Call) Return(_a0 *milvuspb.ManualCompaction
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_ManualCompaction_Call) RunAndReturn(run func(context.Context, *milvuspb.ManualCompactionRequest) (*milvuspb.ManualCompactionResponse, error)) *DataCoord_ManualCompaction_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// MarkSegmentsDropped provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) MarkSegmentsDropped(ctx context.Context, req *datapb.MarkSegmentsDroppedRequest) (*commonpb.Status, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *commonpb.Status
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.MarkSegmentsDroppedRequest) (*commonpb.Status, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.MarkSegmentsDroppedRequest) *commonpb.Status); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1623,6 +1426,7 @@ func (_m *DataCoord) MarkSegmentsDropped(ctx context.Context, req *datapb.MarkSe
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.MarkSegmentsDroppedRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1656,11 +1460,6 @@ func (_c *DataCoord_MarkSegmentsDropped_Call) Return(_a0 *commonpb.Status, _a1 e
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_MarkSegmentsDropped_Call) RunAndReturn(run func(context.Context, *datapb.MarkSegmentsDroppedRequest) (*commonpb.Status, error)) *DataCoord_MarkSegmentsDropped_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// Register provides a mock function with given fields:
|
||||
func (_m *DataCoord) Register() error {
|
||||
ret := _m.Called()
|
||||
|
@ -1762,10 +1561,6 @@ func (_m *DataCoord) SaveBinlogPaths(ctx context.Context, req *datapb.SaveBinlog
|
|||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *commonpb.Status
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.SaveBinlogPathsRequest) (*commonpb.Status, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.SaveBinlogPathsRequest) *commonpb.Status); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1774,6 +1569,7 @@ func (_m *DataCoord) SaveBinlogPaths(ctx context.Context, req *datapb.SaveBinlog
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.SaveBinlogPathsRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1807,20 +1603,11 @@ func (_c *DataCoord_SaveBinlogPaths_Call) Return(_a0 *commonpb.Status, _a1 error
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_SaveBinlogPaths_Call) RunAndReturn(run func(context.Context, *datapb.SaveBinlogPathsRequest) (*commonpb.Status, error)) *DataCoord_SaveBinlogPaths_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// SaveImportSegment provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) SaveImportSegment(ctx context.Context, req *datapb.SaveImportSegmentRequest) (*commonpb.Status, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *commonpb.Status
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.SaveImportSegmentRequest) (*commonpb.Status, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.SaveImportSegmentRequest) *commonpb.Status); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1829,6 +1616,7 @@ func (_m *DataCoord) SaveImportSegment(ctx context.Context, req *datapb.SaveImpo
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.SaveImportSegmentRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1862,20 +1650,11 @@ func (_c *DataCoord_SaveImportSegment_Call) Return(_a0 *commonpb.Status, _a1 err
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_SaveImportSegment_Call) RunAndReturn(run func(context.Context, *datapb.SaveImportSegmentRequest) (*commonpb.Status, error)) *DataCoord_SaveImportSegment_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// SetSegmentState provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) SetSegmentState(ctx context.Context, req *datapb.SetSegmentStateRequest) (*datapb.SetSegmentStateResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *datapb.SetSegmentStateResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.SetSegmentStateRequest) (*datapb.SetSegmentStateResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.SetSegmentStateRequest) *datapb.SetSegmentStateResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1884,6 +1663,7 @@ func (_m *DataCoord) SetSegmentState(ctx context.Context, req *datapb.SetSegment
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.SetSegmentStateRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1917,20 +1697,11 @@ func (_c *DataCoord_SetSegmentState_Call) Return(_a0 *datapb.SetSegmentStateResp
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_SetSegmentState_Call) RunAndReturn(run func(context.Context, *datapb.SetSegmentStateRequest) (*datapb.SetSegmentStateResponse, error)) *DataCoord_SetSegmentState_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// ShowConfigurations provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) ShowConfigurations(ctx context.Context, req *internalpb.ShowConfigurationsRequest) (*internalpb.ShowConfigurationsResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *internalpb.ShowConfigurationsResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.ShowConfigurationsRequest) (*internalpb.ShowConfigurationsResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *internalpb.ShowConfigurationsRequest) *internalpb.ShowConfigurationsResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1939,6 +1710,7 @@ func (_m *DataCoord) ShowConfigurations(ctx context.Context, req *internalpb.Sho
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *internalpb.ShowConfigurationsRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -1972,11 +1744,6 @@ func (_c *DataCoord_ShowConfigurations_Call) Return(_a0 *internalpb.ShowConfigur
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_ShowConfigurations_Call) RunAndReturn(run func(context.Context, *internalpb.ShowConfigurationsRequest) (*internalpb.ShowConfigurationsResponse, error)) *DataCoord_ShowConfigurations_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// Start provides a mock function with given fields:
|
||||
func (_m *DataCoord) Start() error {
|
||||
ret := _m.Called()
|
||||
|
@ -2013,11 +1780,6 @@ func (_c *DataCoord_Start_Call) Return(_a0 error) *DataCoord_Start_Call {
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_Start_Call) RunAndReturn(run func() error) *DataCoord_Start_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// Stop provides a mock function with given fields:
|
||||
func (_m *DataCoord) Stop() error {
|
||||
ret := _m.Called()
|
||||
|
@ -2054,20 +1816,11 @@ func (_c *DataCoord_Stop_Call) Return(_a0 error) *DataCoord_Stop_Call {
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_Stop_Call) RunAndReturn(run func() error) *DataCoord_Stop_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// UnsetIsImportingState provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) UnsetIsImportingState(ctx context.Context, req *datapb.UnsetIsImportingStateRequest) (*commonpb.Status, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *commonpb.Status
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.UnsetIsImportingStateRequest) (*commonpb.Status, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.UnsetIsImportingStateRequest) *commonpb.Status); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -2076,6 +1829,7 @@ func (_m *DataCoord) UnsetIsImportingState(ctx context.Context, req *datapb.Unse
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.UnsetIsImportingStateRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -2109,20 +1863,11 @@ func (_c *DataCoord_UnsetIsImportingState_Call) Return(_a0 *commonpb.Status, _a1
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_UnsetIsImportingState_Call) RunAndReturn(run func(context.Context, *datapb.UnsetIsImportingStateRequest) (*commonpb.Status, error)) *DataCoord_UnsetIsImportingState_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// UpdateChannelCheckpoint provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) UpdateChannelCheckpoint(ctx context.Context, req *datapb.UpdateChannelCheckpointRequest) (*commonpb.Status, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *commonpb.Status
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.UpdateChannelCheckpointRequest) (*commonpb.Status, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.UpdateChannelCheckpointRequest) *commonpb.Status); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -2131,6 +1876,7 @@ func (_m *DataCoord) UpdateChannelCheckpoint(ctx context.Context, req *datapb.Up
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.UpdateChannelCheckpointRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -2164,20 +1910,11 @@ func (_c *DataCoord_UpdateChannelCheckpoint_Call) Return(_a0 *commonpb.Status, _
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_UpdateChannelCheckpoint_Call) RunAndReturn(run func(context.Context, *datapb.UpdateChannelCheckpointRequest) (*commonpb.Status, error)) *DataCoord_UpdateChannelCheckpoint_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// UpdateSegmentStatistics provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) UpdateSegmentStatistics(ctx context.Context, req *datapb.UpdateSegmentStatisticsRequest) (*commonpb.Status, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *commonpb.Status
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.UpdateSegmentStatisticsRequest) (*commonpb.Status, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.UpdateSegmentStatisticsRequest) *commonpb.Status); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -2186,6 +1923,7 @@ func (_m *DataCoord) UpdateSegmentStatistics(ctx context.Context, req *datapb.Up
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.UpdateSegmentStatisticsRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -2219,20 +1957,11 @@ func (_c *DataCoord_UpdateSegmentStatistics_Call) Return(_a0 *commonpb.Status, _
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_UpdateSegmentStatistics_Call) RunAndReturn(run func(context.Context, *datapb.UpdateSegmentStatisticsRequest) (*commonpb.Status, error)) *DataCoord_UpdateSegmentStatistics_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// WatchChannels provides a mock function with given fields: ctx, req
|
||||
func (_m *DataCoord) WatchChannels(ctx context.Context, req *datapb.WatchChannelsRequest) (*datapb.WatchChannelsResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *datapb.WatchChannelsResponse
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.WatchChannelsRequest) (*datapb.WatchChannelsResponse, error)); ok {
|
||||
return rf(ctx, req)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *datapb.WatchChannelsRequest) *datapb.WatchChannelsResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -2241,6 +1970,7 @@ func (_m *DataCoord) WatchChannels(ctx context.Context, req *datapb.WatchChannel
|
|||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *datapb.WatchChannelsRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
|
@ -2274,11 +2004,6 @@ func (_c *DataCoord_WatchChannels_Call) Return(_a0 *datapb.WatchChannelsResponse
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *DataCoord_WatchChannels_Call) RunAndReturn(run func(context.Context, *datapb.WatchChannelsRequest) (*datapb.WatchChannelsResponse, error)) *DataCoord_WatchChannels_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
type mockConstructorTestingTNewDataCoord interface {
|
||||
mock.TestingT
|
||||
Cleanup(func())
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Code generated by mockery v2.14.0. DO NOT EDIT.
|
||||
// Code generated by mockery v2.16.0. DO NOT EDIT.
|
||||
|
||||
package mocks
|
||||
|
||||
|
@ -16,21 +16,21 @@ import (
|
|||
mock "github.com/stretchr/testify/mock"
|
||||
)
|
||||
|
||||
// MockIndexCoord is an autogenerated mock type for the IndexCoord type
|
||||
type MockIndexCoord struct {
|
||||
// IndexCoord is an autogenerated mock type for the IndexCoord type
|
||||
type IndexCoord struct {
|
||||
mock.Mock
|
||||
}
|
||||
|
||||
type MockIndexCoord_Expecter struct {
|
||||
type IndexCoord_Expecter struct {
|
||||
mock *mock.Mock
|
||||
}
|
||||
|
||||
func (_m *MockIndexCoord) EXPECT() *MockIndexCoord_Expecter {
|
||||
return &MockIndexCoord_Expecter{mock: &_m.Mock}
|
||||
func (_m *IndexCoord) EXPECT() *IndexCoord_Expecter {
|
||||
return &IndexCoord_Expecter{mock: &_m.Mock}
|
||||
}
|
||||
|
||||
// CheckHealth provides a mock function with given fields: ctx, req
|
||||
func (_m *MockIndexCoord) CheckHealth(ctx context.Context, req *milvuspb.CheckHealthRequest) (*milvuspb.CheckHealthResponse, error) {
|
||||
func (_m *IndexCoord) CheckHealth(ctx context.Context, req *milvuspb.CheckHealthRequest) (*milvuspb.CheckHealthResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *milvuspb.CheckHealthResponse
|
||||
|
@ -52,32 +52,32 @@ func (_m *MockIndexCoord) CheckHealth(ctx context.Context, req *milvuspb.CheckHe
|
|||
return r0, r1
|
||||
}
|
||||
|
||||
// MockIndexCoord_CheckHealth_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CheckHealth'
|
||||
type MockIndexCoord_CheckHealth_Call struct {
|
||||
// IndexCoord_CheckHealth_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CheckHealth'
|
||||
type IndexCoord_CheckHealth_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// CheckHealth is a helper method to define mock.On call
|
||||
// - ctx context.Context
|
||||
// - req *milvuspb.CheckHealthRequest
|
||||
func (_e *MockIndexCoord_Expecter) CheckHealth(ctx interface{}, req interface{}) *MockIndexCoord_CheckHealth_Call {
|
||||
return &MockIndexCoord_CheckHealth_Call{Call: _e.mock.On("CheckHealth", ctx, req)}
|
||||
func (_e *IndexCoord_Expecter) CheckHealth(ctx interface{}, req interface{}) *IndexCoord_CheckHealth_Call {
|
||||
return &IndexCoord_CheckHealth_Call{Call: _e.mock.On("CheckHealth", ctx, req)}
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_CheckHealth_Call) Run(run func(ctx context.Context, req *milvuspb.CheckHealthRequest)) *MockIndexCoord_CheckHealth_Call {
|
||||
func (_c *IndexCoord_CheckHealth_Call) Run(run func(ctx context.Context, req *milvuspb.CheckHealthRequest)) *IndexCoord_CheckHealth_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run(args[0].(context.Context), args[1].(*milvuspb.CheckHealthRequest))
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_CheckHealth_Call) Return(_a0 *milvuspb.CheckHealthResponse, _a1 error) *MockIndexCoord_CheckHealth_Call {
|
||||
func (_c *IndexCoord_CheckHealth_Call) Return(_a0 *milvuspb.CheckHealthResponse, _a1 error) *IndexCoord_CheckHealth_Call {
|
||||
_c.Call.Return(_a0, _a1)
|
||||
return _c
|
||||
}
|
||||
|
||||
// CreateIndex provides a mock function with given fields: ctx, req
|
||||
func (_m *MockIndexCoord) CreateIndex(ctx context.Context, req *indexpb.CreateIndexRequest) (*commonpb.Status, error) {
|
||||
func (_m *IndexCoord) CreateIndex(ctx context.Context, req *indexpb.CreateIndexRequest) (*commonpb.Status, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *commonpb.Status
|
||||
|
@ -99,32 +99,32 @@ func (_m *MockIndexCoord) CreateIndex(ctx context.Context, req *indexpb.CreateIn
|
|||
return r0, r1
|
||||
}
|
||||
|
||||
// MockIndexCoord_CreateIndex_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateIndex'
|
||||
type MockIndexCoord_CreateIndex_Call struct {
|
||||
// IndexCoord_CreateIndex_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateIndex'
|
||||
type IndexCoord_CreateIndex_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// CreateIndex is a helper method to define mock.On call
|
||||
// - ctx context.Context
|
||||
// - req *indexpb.CreateIndexRequest
|
||||
func (_e *MockIndexCoord_Expecter) CreateIndex(ctx interface{}, req interface{}) *MockIndexCoord_CreateIndex_Call {
|
||||
return &MockIndexCoord_CreateIndex_Call{Call: _e.mock.On("CreateIndex", ctx, req)}
|
||||
func (_e *IndexCoord_Expecter) CreateIndex(ctx interface{}, req interface{}) *IndexCoord_CreateIndex_Call {
|
||||
return &IndexCoord_CreateIndex_Call{Call: _e.mock.On("CreateIndex", ctx, req)}
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_CreateIndex_Call) Run(run func(ctx context.Context, req *indexpb.CreateIndexRequest)) *MockIndexCoord_CreateIndex_Call {
|
||||
func (_c *IndexCoord_CreateIndex_Call) Run(run func(ctx context.Context, req *indexpb.CreateIndexRequest)) *IndexCoord_CreateIndex_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run(args[0].(context.Context), args[1].(*indexpb.CreateIndexRequest))
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_CreateIndex_Call) Return(_a0 *commonpb.Status, _a1 error) *MockIndexCoord_CreateIndex_Call {
|
||||
func (_c *IndexCoord_CreateIndex_Call) Return(_a0 *commonpb.Status, _a1 error) *IndexCoord_CreateIndex_Call {
|
||||
_c.Call.Return(_a0, _a1)
|
||||
return _c
|
||||
}
|
||||
|
||||
// DescribeIndex provides a mock function with given fields: ctx, req
|
||||
func (_m *MockIndexCoord) DescribeIndex(ctx context.Context, req *indexpb.DescribeIndexRequest) (*indexpb.DescribeIndexResponse, error) {
|
||||
func (_m *IndexCoord) DescribeIndex(ctx context.Context, req *indexpb.DescribeIndexRequest) (*indexpb.DescribeIndexResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *indexpb.DescribeIndexResponse
|
||||
|
@ -146,32 +146,32 @@ func (_m *MockIndexCoord) DescribeIndex(ctx context.Context, req *indexpb.Descri
|
|||
return r0, r1
|
||||
}
|
||||
|
||||
// MockIndexCoord_DescribeIndex_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DescribeIndex'
|
||||
type MockIndexCoord_DescribeIndex_Call struct {
|
||||
// IndexCoord_DescribeIndex_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DescribeIndex'
|
||||
type IndexCoord_DescribeIndex_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// DescribeIndex is a helper method to define mock.On call
|
||||
// - ctx context.Context
|
||||
// - req *indexpb.DescribeIndexRequest
|
||||
func (_e *MockIndexCoord_Expecter) DescribeIndex(ctx interface{}, req interface{}) *MockIndexCoord_DescribeIndex_Call {
|
||||
return &MockIndexCoord_DescribeIndex_Call{Call: _e.mock.On("DescribeIndex", ctx, req)}
|
||||
func (_e *IndexCoord_Expecter) DescribeIndex(ctx interface{}, req interface{}) *IndexCoord_DescribeIndex_Call {
|
||||
return &IndexCoord_DescribeIndex_Call{Call: _e.mock.On("DescribeIndex", ctx, req)}
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_DescribeIndex_Call) Run(run func(ctx context.Context, req *indexpb.DescribeIndexRequest)) *MockIndexCoord_DescribeIndex_Call {
|
||||
func (_c *IndexCoord_DescribeIndex_Call) Run(run func(ctx context.Context, req *indexpb.DescribeIndexRequest)) *IndexCoord_DescribeIndex_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run(args[0].(context.Context), args[1].(*indexpb.DescribeIndexRequest))
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_DescribeIndex_Call) Return(_a0 *indexpb.DescribeIndexResponse, _a1 error) *MockIndexCoord_DescribeIndex_Call {
|
||||
func (_c *IndexCoord_DescribeIndex_Call) Return(_a0 *indexpb.DescribeIndexResponse, _a1 error) *IndexCoord_DescribeIndex_Call {
|
||||
_c.Call.Return(_a0, _a1)
|
||||
return _c
|
||||
}
|
||||
|
||||
// DropIndex provides a mock function with given fields: ctx, req
|
||||
func (_m *MockIndexCoord) DropIndex(ctx context.Context, req *indexpb.DropIndexRequest) (*commonpb.Status, error) {
|
||||
func (_m *IndexCoord) DropIndex(ctx context.Context, req *indexpb.DropIndexRequest) (*commonpb.Status, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *commonpb.Status
|
||||
|
@ -193,32 +193,32 @@ func (_m *MockIndexCoord) DropIndex(ctx context.Context, req *indexpb.DropIndexR
|
|||
return r0, r1
|
||||
}
|
||||
|
||||
// MockIndexCoord_DropIndex_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DropIndex'
|
||||
type MockIndexCoord_DropIndex_Call struct {
|
||||
// IndexCoord_DropIndex_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DropIndex'
|
||||
type IndexCoord_DropIndex_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// DropIndex is a helper method to define mock.On call
|
||||
// - ctx context.Context
|
||||
// - req *indexpb.DropIndexRequest
|
||||
func (_e *MockIndexCoord_Expecter) DropIndex(ctx interface{}, req interface{}) *MockIndexCoord_DropIndex_Call {
|
||||
return &MockIndexCoord_DropIndex_Call{Call: _e.mock.On("DropIndex", ctx, req)}
|
||||
func (_e *IndexCoord_Expecter) DropIndex(ctx interface{}, req interface{}) *IndexCoord_DropIndex_Call {
|
||||
return &IndexCoord_DropIndex_Call{Call: _e.mock.On("DropIndex", ctx, req)}
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_DropIndex_Call) Run(run func(ctx context.Context, req *indexpb.DropIndexRequest)) *MockIndexCoord_DropIndex_Call {
|
||||
func (_c *IndexCoord_DropIndex_Call) Run(run func(ctx context.Context, req *indexpb.DropIndexRequest)) *IndexCoord_DropIndex_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run(args[0].(context.Context), args[1].(*indexpb.DropIndexRequest))
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_DropIndex_Call) Return(_a0 *commonpb.Status, _a1 error) *MockIndexCoord_DropIndex_Call {
|
||||
func (_c *IndexCoord_DropIndex_Call) Return(_a0 *commonpb.Status, _a1 error) *IndexCoord_DropIndex_Call {
|
||||
_c.Call.Return(_a0, _a1)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetComponentStates provides a mock function with given fields: ctx
|
||||
func (_m *MockIndexCoord) GetComponentStates(ctx context.Context) (*milvuspb.ComponentStates, error) {
|
||||
func (_m *IndexCoord) GetComponentStates(ctx context.Context) (*milvuspb.ComponentStates, error) {
|
||||
ret := _m.Called(ctx)
|
||||
|
||||
var r0 *milvuspb.ComponentStates
|
||||
|
@ -240,31 +240,31 @@ func (_m *MockIndexCoord) GetComponentStates(ctx context.Context) (*milvuspb.Com
|
|||
return r0, r1
|
||||
}
|
||||
|
||||
// MockIndexCoord_GetComponentStates_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetComponentStates'
|
||||
type MockIndexCoord_GetComponentStates_Call struct {
|
||||
// IndexCoord_GetComponentStates_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetComponentStates'
|
||||
type IndexCoord_GetComponentStates_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// GetComponentStates is a helper method to define mock.On call
|
||||
// - ctx context.Context
|
||||
func (_e *MockIndexCoord_Expecter) GetComponentStates(ctx interface{}) *MockIndexCoord_GetComponentStates_Call {
|
||||
return &MockIndexCoord_GetComponentStates_Call{Call: _e.mock.On("GetComponentStates", ctx)}
|
||||
func (_e *IndexCoord_Expecter) GetComponentStates(ctx interface{}) *IndexCoord_GetComponentStates_Call {
|
||||
return &IndexCoord_GetComponentStates_Call{Call: _e.mock.On("GetComponentStates", ctx)}
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_GetComponentStates_Call) Run(run func(ctx context.Context)) *MockIndexCoord_GetComponentStates_Call {
|
||||
func (_c *IndexCoord_GetComponentStates_Call) Run(run func(ctx context.Context)) *IndexCoord_GetComponentStates_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run(args[0].(context.Context))
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_GetComponentStates_Call) Return(_a0 *milvuspb.ComponentStates, _a1 error) *MockIndexCoord_GetComponentStates_Call {
|
||||
func (_c *IndexCoord_GetComponentStates_Call) Return(_a0 *milvuspb.ComponentStates, _a1 error) *IndexCoord_GetComponentStates_Call {
|
||||
_c.Call.Return(_a0, _a1)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetIndexBuildProgress provides a mock function with given fields: ctx, req
|
||||
func (_m *MockIndexCoord) GetIndexBuildProgress(ctx context.Context, req *indexpb.GetIndexBuildProgressRequest) (*indexpb.GetIndexBuildProgressResponse, error) {
|
||||
func (_m *IndexCoord) GetIndexBuildProgress(ctx context.Context, req *indexpb.GetIndexBuildProgressRequest) (*indexpb.GetIndexBuildProgressResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *indexpb.GetIndexBuildProgressResponse
|
||||
|
@ -286,32 +286,32 @@ func (_m *MockIndexCoord) GetIndexBuildProgress(ctx context.Context, req *indexp
|
|||
return r0, r1
|
||||
}
|
||||
|
||||
// MockIndexCoord_GetIndexBuildProgress_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetIndexBuildProgress'
|
||||
type MockIndexCoord_GetIndexBuildProgress_Call struct {
|
||||
// IndexCoord_GetIndexBuildProgress_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetIndexBuildProgress'
|
||||
type IndexCoord_GetIndexBuildProgress_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// GetIndexBuildProgress is a helper method to define mock.On call
|
||||
// - ctx context.Context
|
||||
// - req *indexpb.GetIndexBuildProgressRequest
|
||||
func (_e *MockIndexCoord_Expecter) GetIndexBuildProgress(ctx interface{}, req interface{}) *MockIndexCoord_GetIndexBuildProgress_Call {
|
||||
return &MockIndexCoord_GetIndexBuildProgress_Call{Call: _e.mock.On("GetIndexBuildProgress", ctx, req)}
|
||||
func (_e *IndexCoord_Expecter) GetIndexBuildProgress(ctx interface{}, req interface{}) *IndexCoord_GetIndexBuildProgress_Call {
|
||||
return &IndexCoord_GetIndexBuildProgress_Call{Call: _e.mock.On("GetIndexBuildProgress", ctx, req)}
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_GetIndexBuildProgress_Call) Run(run func(ctx context.Context, req *indexpb.GetIndexBuildProgressRequest)) *MockIndexCoord_GetIndexBuildProgress_Call {
|
||||
func (_c *IndexCoord_GetIndexBuildProgress_Call) Run(run func(ctx context.Context, req *indexpb.GetIndexBuildProgressRequest)) *IndexCoord_GetIndexBuildProgress_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run(args[0].(context.Context), args[1].(*indexpb.GetIndexBuildProgressRequest))
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_GetIndexBuildProgress_Call) Return(_a0 *indexpb.GetIndexBuildProgressResponse, _a1 error) *MockIndexCoord_GetIndexBuildProgress_Call {
|
||||
func (_c *IndexCoord_GetIndexBuildProgress_Call) Return(_a0 *indexpb.GetIndexBuildProgressResponse, _a1 error) *IndexCoord_GetIndexBuildProgress_Call {
|
||||
_c.Call.Return(_a0, _a1)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetIndexInfos provides a mock function with given fields: ctx, req
|
||||
func (_m *MockIndexCoord) GetIndexInfos(ctx context.Context, req *indexpb.GetIndexInfoRequest) (*indexpb.GetIndexInfoResponse, error) {
|
||||
func (_m *IndexCoord) GetIndexInfos(ctx context.Context, req *indexpb.GetIndexInfoRequest) (*indexpb.GetIndexInfoResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *indexpb.GetIndexInfoResponse
|
||||
|
@ -333,32 +333,32 @@ func (_m *MockIndexCoord) GetIndexInfos(ctx context.Context, req *indexpb.GetInd
|
|||
return r0, r1
|
||||
}
|
||||
|
||||
// MockIndexCoord_GetIndexInfos_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetIndexInfos'
|
||||
type MockIndexCoord_GetIndexInfos_Call struct {
|
||||
// IndexCoord_GetIndexInfos_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetIndexInfos'
|
||||
type IndexCoord_GetIndexInfos_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// GetIndexInfos is a helper method to define mock.On call
|
||||
// - ctx context.Context
|
||||
// - req *indexpb.GetIndexInfoRequest
|
||||
func (_e *MockIndexCoord_Expecter) GetIndexInfos(ctx interface{}, req interface{}) *MockIndexCoord_GetIndexInfos_Call {
|
||||
return &MockIndexCoord_GetIndexInfos_Call{Call: _e.mock.On("GetIndexInfos", ctx, req)}
|
||||
func (_e *IndexCoord_Expecter) GetIndexInfos(ctx interface{}, req interface{}) *IndexCoord_GetIndexInfos_Call {
|
||||
return &IndexCoord_GetIndexInfos_Call{Call: _e.mock.On("GetIndexInfos", ctx, req)}
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_GetIndexInfos_Call) Run(run func(ctx context.Context, req *indexpb.GetIndexInfoRequest)) *MockIndexCoord_GetIndexInfos_Call {
|
||||
func (_c *IndexCoord_GetIndexInfos_Call) Run(run func(ctx context.Context, req *indexpb.GetIndexInfoRequest)) *IndexCoord_GetIndexInfos_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run(args[0].(context.Context), args[1].(*indexpb.GetIndexInfoRequest))
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_GetIndexInfos_Call) Return(_a0 *indexpb.GetIndexInfoResponse, _a1 error) *MockIndexCoord_GetIndexInfos_Call {
|
||||
func (_c *IndexCoord_GetIndexInfos_Call) Return(_a0 *indexpb.GetIndexInfoResponse, _a1 error) *IndexCoord_GetIndexInfos_Call {
|
||||
_c.Call.Return(_a0, _a1)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetIndexState provides a mock function with given fields: ctx, req
|
||||
func (_m *MockIndexCoord) GetIndexState(ctx context.Context, req *indexpb.GetIndexStateRequest) (*indexpb.GetIndexStateResponse, error) {
|
||||
func (_m *IndexCoord) GetIndexState(ctx context.Context, req *indexpb.GetIndexStateRequest) (*indexpb.GetIndexStateResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *indexpb.GetIndexStateResponse
|
||||
|
@ -380,32 +380,79 @@ func (_m *MockIndexCoord) GetIndexState(ctx context.Context, req *indexpb.GetInd
|
|||
return r0, r1
|
||||
}
|
||||
|
||||
// MockIndexCoord_GetIndexState_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetIndexState'
|
||||
type MockIndexCoord_GetIndexState_Call struct {
|
||||
// IndexCoord_GetIndexState_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetIndexState'
|
||||
type IndexCoord_GetIndexState_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// GetIndexState is a helper method to define mock.On call
|
||||
// - ctx context.Context
|
||||
// - req *indexpb.GetIndexStateRequest
|
||||
func (_e *MockIndexCoord_Expecter) GetIndexState(ctx interface{}, req interface{}) *MockIndexCoord_GetIndexState_Call {
|
||||
return &MockIndexCoord_GetIndexState_Call{Call: _e.mock.On("GetIndexState", ctx, req)}
|
||||
func (_e *IndexCoord_Expecter) GetIndexState(ctx interface{}, req interface{}) *IndexCoord_GetIndexState_Call {
|
||||
return &IndexCoord_GetIndexState_Call{Call: _e.mock.On("GetIndexState", ctx, req)}
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_GetIndexState_Call) Run(run func(ctx context.Context, req *indexpb.GetIndexStateRequest)) *MockIndexCoord_GetIndexState_Call {
|
||||
func (_c *IndexCoord_GetIndexState_Call) Run(run func(ctx context.Context, req *indexpb.GetIndexStateRequest)) *IndexCoord_GetIndexState_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run(args[0].(context.Context), args[1].(*indexpb.GetIndexStateRequest))
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_GetIndexState_Call) Return(_a0 *indexpb.GetIndexStateResponse, _a1 error) *MockIndexCoord_GetIndexState_Call {
|
||||
func (_c *IndexCoord_GetIndexState_Call) Return(_a0 *indexpb.GetIndexStateResponse, _a1 error) *IndexCoord_GetIndexState_Call {
|
||||
_c.Call.Return(_a0, _a1)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetIndexStatistics provides a mock function with given fields: ctx, req
|
||||
func (_m *IndexCoord) GetIndexStatistics(ctx context.Context, req *indexpb.GetIndexStatisticsRequest) (*indexpb.GetIndexStatisticsResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *indexpb.GetIndexStatisticsResponse
|
||||
if rf, ok := ret.Get(0).(func(context.Context, *indexpb.GetIndexStatisticsRequest) *indexpb.GetIndexStatisticsResponse); ok {
|
||||
r0 = rf(ctx, req)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(*indexpb.GetIndexStatisticsResponse)
|
||||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, *indexpb.GetIndexStatisticsRequest) error); ok {
|
||||
r1 = rf(ctx, req)
|
||||
} else {
|
||||
r1 = ret.Error(1)
|
||||
}
|
||||
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// IndexCoord_GetIndexStatistics_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetIndexStatistics'
|
||||
type IndexCoord_GetIndexStatistics_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// GetIndexStatistics is a helper method to define mock.On call
|
||||
// - ctx context.Context
|
||||
// - req *indexpb.GetIndexStatisticsRequest
|
||||
func (_e *IndexCoord_Expecter) GetIndexStatistics(ctx interface{}, req interface{}) *IndexCoord_GetIndexStatistics_Call {
|
||||
return &IndexCoord_GetIndexStatistics_Call{Call: _e.mock.On("GetIndexStatistics", ctx, req)}
|
||||
}
|
||||
|
||||
func (_c *IndexCoord_GetIndexStatistics_Call) Run(run func(ctx context.Context, req *indexpb.GetIndexStatisticsRequest)) *IndexCoord_GetIndexStatistics_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run(args[0].(context.Context), args[1].(*indexpb.GetIndexStatisticsRequest))
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *IndexCoord_GetIndexStatistics_Call) Return(_a0 *indexpb.GetIndexStatisticsResponse, _a1 error) *IndexCoord_GetIndexStatistics_Call {
|
||||
_c.Call.Return(_a0, _a1)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetMetrics provides a mock function with given fields: ctx, req
|
||||
func (_m *MockIndexCoord) GetMetrics(ctx context.Context, req *milvuspb.GetMetricsRequest) (*milvuspb.GetMetricsResponse, error) {
|
||||
func (_m *IndexCoord) GetMetrics(ctx context.Context, req *milvuspb.GetMetricsRequest) (*milvuspb.GetMetricsResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *milvuspb.GetMetricsResponse
|
||||
|
@ -427,32 +474,32 @@ func (_m *MockIndexCoord) GetMetrics(ctx context.Context, req *milvuspb.GetMetri
|
|||
return r0, r1
|
||||
}
|
||||
|
||||
// MockIndexCoord_GetMetrics_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetMetrics'
|
||||
type MockIndexCoord_GetMetrics_Call struct {
|
||||
// IndexCoord_GetMetrics_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetMetrics'
|
||||
type IndexCoord_GetMetrics_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// GetMetrics is a helper method to define mock.On call
|
||||
// - ctx context.Context
|
||||
// - req *milvuspb.GetMetricsRequest
|
||||
func (_e *MockIndexCoord_Expecter) GetMetrics(ctx interface{}, req interface{}) *MockIndexCoord_GetMetrics_Call {
|
||||
return &MockIndexCoord_GetMetrics_Call{Call: _e.mock.On("GetMetrics", ctx, req)}
|
||||
func (_e *IndexCoord_Expecter) GetMetrics(ctx interface{}, req interface{}) *IndexCoord_GetMetrics_Call {
|
||||
return &IndexCoord_GetMetrics_Call{Call: _e.mock.On("GetMetrics", ctx, req)}
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_GetMetrics_Call) Run(run func(ctx context.Context, req *milvuspb.GetMetricsRequest)) *MockIndexCoord_GetMetrics_Call {
|
||||
func (_c *IndexCoord_GetMetrics_Call) Run(run func(ctx context.Context, req *milvuspb.GetMetricsRequest)) *IndexCoord_GetMetrics_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run(args[0].(context.Context), args[1].(*milvuspb.GetMetricsRequest))
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_GetMetrics_Call) Return(_a0 *milvuspb.GetMetricsResponse, _a1 error) *MockIndexCoord_GetMetrics_Call {
|
||||
func (_c *IndexCoord_GetMetrics_Call) Return(_a0 *milvuspb.GetMetricsResponse, _a1 error) *IndexCoord_GetMetrics_Call {
|
||||
_c.Call.Return(_a0, _a1)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetSegmentIndexState provides a mock function with given fields: ctx, req
|
||||
func (_m *MockIndexCoord) GetSegmentIndexState(ctx context.Context, req *indexpb.GetSegmentIndexStateRequest) (*indexpb.GetSegmentIndexStateResponse, error) {
|
||||
func (_m *IndexCoord) GetSegmentIndexState(ctx context.Context, req *indexpb.GetSegmentIndexStateRequest) (*indexpb.GetSegmentIndexStateResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *indexpb.GetSegmentIndexStateResponse
|
||||
|
@ -474,32 +521,32 @@ func (_m *MockIndexCoord) GetSegmentIndexState(ctx context.Context, req *indexpb
|
|||
return r0, r1
|
||||
}
|
||||
|
||||
// MockIndexCoord_GetSegmentIndexState_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetSegmentIndexState'
|
||||
type MockIndexCoord_GetSegmentIndexState_Call struct {
|
||||
// IndexCoord_GetSegmentIndexState_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetSegmentIndexState'
|
||||
type IndexCoord_GetSegmentIndexState_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// GetSegmentIndexState is a helper method to define mock.On call
|
||||
// - ctx context.Context
|
||||
// - req *indexpb.GetSegmentIndexStateRequest
|
||||
func (_e *MockIndexCoord_Expecter) GetSegmentIndexState(ctx interface{}, req interface{}) *MockIndexCoord_GetSegmentIndexState_Call {
|
||||
return &MockIndexCoord_GetSegmentIndexState_Call{Call: _e.mock.On("GetSegmentIndexState", ctx, req)}
|
||||
func (_e *IndexCoord_Expecter) GetSegmentIndexState(ctx interface{}, req interface{}) *IndexCoord_GetSegmentIndexState_Call {
|
||||
return &IndexCoord_GetSegmentIndexState_Call{Call: _e.mock.On("GetSegmentIndexState", ctx, req)}
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_GetSegmentIndexState_Call) Run(run func(ctx context.Context, req *indexpb.GetSegmentIndexStateRequest)) *MockIndexCoord_GetSegmentIndexState_Call {
|
||||
func (_c *IndexCoord_GetSegmentIndexState_Call) Run(run func(ctx context.Context, req *indexpb.GetSegmentIndexStateRequest)) *IndexCoord_GetSegmentIndexState_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run(args[0].(context.Context), args[1].(*indexpb.GetSegmentIndexStateRequest))
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_GetSegmentIndexState_Call) Return(_a0 *indexpb.GetSegmentIndexStateResponse, _a1 error) *MockIndexCoord_GetSegmentIndexState_Call {
|
||||
func (_c *IndexCoord_GetSegmentIndexState_Call) Return(_a0 *indexpb.GetSegmentIndexStateResponse, _a1 error) *IndexCoord_GetSegmentIndexState_Call {
|
||||
_c.Call.Return(_a0, _a1)
|
||||
return _c
|
||||
}
|
||||
|
||||
// GetStatisticsChannel provides a mock function with given fields: ctx
|
||||
func (_m *MockIndexCoord) GetStatisticsChannel(ctx context.Context) (*milvuspb.StringResponse, error) {
|
||||
func (_m *IndexCoord) GetStatisticsChannel(ctx context.Context) (*milvuspb.StringResponse, error) {
|
||||
ret := _m.Called(ctx)
|
||||
|
||||
var r0 *milvuspb.StringResponse
|
||||
|
@ -521,31 +568,31 @@ func (_m *MockIndexCoord) GetStatisticsChannel(ctx context.Context) (*milvuspb.S
|
|||
return r0, r1
|
||||
}
|
||||
|
||||
// MockIndexCoord_GetStatisticsChannel_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetStatisticsChannel'
|
||||
type MockIndexCoord_GetStatisticsChannel_Call struct {
|
||||
// IndexCoord_GetStatisticsChannel_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetStatisticsChannel'
|
||||
type IndexCoord_GetStatisticsChannel_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// GetStatisticsChannel is a helper method to define mock.On call
|
||||
// - ctx context.Context
|
||||
func (_e *MockIndexCoord_Expecter) GetStatisticsChannel(ctx interface{}) *MockIndexCoord_GetStatisticsChannel_Call {
|
||||
return &MockIndexCoord_GetStatisticsChannel_Call{Call: _e.mock.On("GetStatisticsChannel", ctx)}
|
||||
func (_e *IndexCoord_Expecter) GetStatisticsChannel(ctx interface{}) *IndexCoord_GetStatisticsChannel_Call {
|
||||
return &IndexCoord_GetStatisticsChannel_Call{Call: _e.mock.On("GetStatisticsChannel", ctx)}
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_GetStatisticsChannel_Call) Run(run func(ctx context.Context)) *MockIndexCoord_GetStatisticsChannel_Call {
|
||||
func (_c *IndexCoord_GetStatisticsChannel_Call) Run(run func(ctx context.Context)) *IndexCoord_GetStatisticsChannel_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run(args[0].(context.Context))
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_GetStatisticsChannel_Call) Return(_a0 *milvuspb.StringResponse, _a1 error) *MockIndexCoord_GetStatisticsChannel_Call {
|
||||
func (_c *IndexCoord_GetStatisticsChannel_Call) Return(_a0 *milvuspb.StringResponse, _a1 error) *IndexCoord_GetStatisticsChannel_Call {
|
||||
_c.Call.Return(_a0, _a1)
|
||||
return _c
|
||||
}
|
||||
|
||||
// Init provides a mock function with given fields:
|
||||
func (_m *MockIndexCoord) Init() error {
|
||||
func (_m *IndexCoord) Init() error {
|
||||
ret := _m.Called()
|
||||
|
||||
var r0 error
|
||||
|
@ -558,30 +605,30 @@ func (_m *MockIndexCoord) Init() error {
|
|||
return r0
|
||||
}
|
||||
|
||||
// MockIndexCoord_Init_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Init'
|
||||
type MockIndexCoord_Init_Call struct {
|
||||
// IndexCoord_Init_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Init'
|
||||
type IndexCoord_Init_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// Init is a helper method to define mock.On call
|
||||
func (_e *MockIndexCoord_Expecter) Init() *MockIndexCoord_Init_Call {
|
||||
return &MockIndexCoord_Init_Call{Call: _e.mock.On("Init")}
|
||||
func (_e *IndexCoord_Expecter) Init() *IndexCoord_Init_Call {
|
||||
return &IndexCoord_Init_Call{Call: _e.mock.On("Init")}
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_Init_Call) Run(run func()) *MockIndexCoord_Init_Call {
|
||||
func (_c *IndexCoord_Init_Call) Run(run func()) *IndexCoord_Init_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run()
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_Init_Call) Return(_a0 error) *MockIndexCoord_Init_Call {
|
||||
func (_c *IndexCoord_Init_Call) Return(_a0 error) *IndexCoord_Init_Call {
|
||||
_c.Call.Return(_a0)
|
||||
return _c
|
||||
}
|
||||
|
||||
// Register provides a mock function with given fields:
|
||||
func (_m *MockIndexCoord) Register() error {
|
||||
func (_m *IndexCoord) Register() error {
|
||||
ret := _m.Called()
|
||||
|
||||
var r0 error
|
||||
|
@ -594,30 +641,30 @@ func (_m *MockIndexCoord) Register() error {
|
|||
return r0
|
||||
}
|
||||
|
||||
// MockIndexCoord_Register_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Register'
|
||||
type MockIndexCoord_Register_Call struct {
|
||||
// IndexCoord_Register_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Register'
|
||||
type IndexCoord_Register_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// Register is a helper method to define mock.On call
|
||||
func (_e *MockIndexCoord_Expecter) Register() *MockIndexCoord_Register_Call {
|
||||
return &MockIndexCoord_Register_Call{Call: _e.mock.On("Register")}
|
||||
func (_e *IndexCoord_Expecter) Register() *IndexCoord_Register_Call {
|
||||
return &IndexCoord_Register_Call{Call: _e.mock.On("Register")}
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_Register_Call) Run(run func()) *MockIndexCoord_Register_Call {
|
||||
func (_c *IndexCoord_Register_Call) Run(run func()) *IndexCoord_Register_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run()
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_Register_Call) Return(_a0 error) *MockIndexCoord_Register_Call {
|
||||
func (_c *IndexCoord_Register_Call) Return(_a0 error) *IndexCoord_Register_Call {
|
||||
_c.Call.Return(_a0)
|
||||
return _c
|
||||
}
|
||||
|
||||
// ShowConfigurations provides a mock function with given fields: ctx, req
|
||||
func (_m *MockIndexCoord) ShowConfigurations(ctx context.Context, req *internalpb.ShowConfigurationsRequest) (*internalpb.ShowConfigurationsResponse, error) {
|
||||
func (_m *IndexCoord) ShowConfigurations(ctx context.Context, req *internalpb.ShowConfigurationsRequest) (*internalpb.ShowConfigurationsResponse, error) {
|
||||
ret := _m.Called(ctx, req)
|
||||
|
||||
var r0 *internalpb.ShowConfigurationsResponse
|
||||
|
@ -639,32 +686,32 @@ func (_m *MockIndexCoord) ShowConfigurations(ctx context.Context, req *internalp
|
|||
return r0, r1
|
||||
}
|
||||
|
||||
// MockIndexCoord_ShowConfigurations_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ShowConfigurations'
|
||||
type MockIndexCoord_ShowConfigurations_Call struct {
|
||||
// IndexCoord_ShowConfigurations_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ShowConfigurations'
|
||||
type IndexCoord_ShowConfigurations_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// ShowConfigurations is a helper method to define mock.On call
|
||||
// - ctx context.Context
|
||||
// - req *internalpb.ShowConfigurationsRequest
|
||||
func (_e *MockIndexCoord_Expecter) ShowConfigurations(ctx interface{}, req interface{}) *MockIndexCoord_ShowConfigurations_Call {
|
||||
return &MockIndexCoord_ShowConfigurations_Call{Call: _e.mock.On("ShowConfigurations", ctx, req)}
|
||||
func (_e *IndexCoord_Expecter) ShowConfigurations(ctx interface{}, req interface{}) *IndexCoord_ShowConfigurations_Call {
|
||||
return &IndexCoord_ShowConfigurations_Call{Call: _e.mock.On("ShowConfigurations", ctx, req)}
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_ShowConfigurations_Call) Run(run func(ctx context.Context, req *internalpb.ShowConfigurationsRequest)) *MockIndexCoord_ShowConfigurations_Call {
|
||||
func (_c *IndexCoord_ShowConfigurations_Call) Run(run func(ctx context.Context, req *internalpb.ShowConfigurationsRequest)) *IndexCoord_ShowConfigurations_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run(args[0].(context.Context), args[1].(*internalpb.ShowConfigurationsRequest))
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_ShowConfigurations_Call) Return(_a0 *internalpb.ShowConfigurationsResponse, _a1 error) *MockIndexCoord_ShowConfigurations_Call {
|
||||
func (_c *IndexCoord_ShowConfigurations_Call) Return(_a0 *internalpb.ShowConfigurationsResponse, _a1 error) *IndexCoord_ShowConfigurations_Call {
|
||||
_c.Call.Return(_a0, _a1)
|
||||
return _c
|
||||
}
|
||||
|
||||
// Start provides a mock function with given fields:
|
||||
func (_m *MockIndexCoord) Start() error {
|
||||
func (_m *IndexCoord) Start() error {
|
||||
ret := _m.Called()
|
||||
|
||||
var r0 error
|
||||
|
@ -677,30 +724,30 @@ func (_m *MockIndexCoord) Start() error {
|
|||
return r0
|
||||
}
|
||||
|
||||
// MockIndexCoord_Start_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Start'
|
||||
type MockIndexCoord_Start_Call struct {
|
||||
// IndexCoord_Start_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Start'
|
||||
type IndexCoord_Start_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// Start is a helper method to define mock.On call
|
||||
func (_e *MockIndexCoord_Expecter) Start() *MockIndexCoord_Start_Call {
|
||||
return &MockIndexCoord_Start_Call{Call: _e.mock.On("Start")}
|
||||
func (_e *IndexCoord_Expecter) Start() *IndexCoord_Start_Call {
|
||||
return &IndexCoord_Start_Call{Call: _e.mock.On("Start")}
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_Start_Call) Run(run func()) *MockIndexCoord_Start_Call {
|
||||
func (_c *IndexCoord_Start_Call) Run(run func()) *IndexCoord_Start_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run()
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_Start_Call) Return(_a0 error) *MockIndexCoord_Start_Call {
|
||||
func (_c *IndexCoord_Start_Call) Return(_a0 error) *IndexCoord_Start_Call {
|
||||
_c.Call.Return(_a0)
|
||||
return _c
|
||||
}
|
||||
|
||||
// Stop provides a mock function with given fields:
|
||||
func (_m *MockIndexCoord) Stop() error {
|
||||
func (_m *IndexCoord) Stop() error {
|
||||
ret := _m.Called()
|
||||
|
||||
var r0 error
|
||||
|
@ -713,36 +760,36 @@ func (_m *MockIndexCoord) Stop() error {
|
|||
return r0
|
||||
}
|
||||
|
||||
// MockIndexCoord_Stop_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Stop'
|
||||
type MockIndexCoord_Stop_Call struct {
|
||||
// IndexCoord_Stop_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Stop'
|
||||
type IndexCoord_Stop_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// Stop is a helper method to define mock.On call
|
||||
func (_e *MockIndexCoord_Expecter) Stop() *MockIndexCoord_Stop_Call {
|
||||
return &MockIndexCoord_Stop_Call{Call: _e.mock.On("Stop")}
|
||||
func (_e *IndexCoord_Expecter) Stop() *IndexCoord_Stop_Call {
|
||||
return &IndexCoord_Stop_Call{Call: _e.mock.On("Stop")}
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_Stop_Call) Run(run func()) *MockIndexCoord_Stop_Call {
|
||||
func (_c *IndexCoord_Stop_Call) Run(run func()) *IndexCoord_Stop_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run()
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockIndexCoord_Stop_Call) Return(_a0 error) *MockIndexCoord_Stop_Call {
|
||||
func (_c *IndexCoord_Stop_Call) Return(_a0 error) *IndexCoord_Stop_Call {
|
||||
_c.Call.Return(_a0)
|
||||
return _c
|
||||
}
|
||||
|
||||
type mockConstructorTestingTNewMockIndexCoord interface {
|
||||
type mockConstructorTestingTNewIndexCoord interface {
|
||||
mock.TestingT
|
||||
Cleanup(func())
|
||||
}
|
||||
|
||||
// NewMockIndexCoord creates a new instance of MockIndexCoord. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
|
||||
func NewMockIndexCoord(t mockConstructorTestingTNewMockIndexCoord) *MockIndexCoord {
|
||||
mock := &MockIndexCoord{}
|
||||
// NewIndexCoord creates a new instance of IndexCoord. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
|
||||
func NewIndexCoord(t mockConstructorTestingTNewIndexCoord) *IndexCoord {
|
||||
mock := &IndexCoord{}
|
||||
mock.Mock.Test(t)
|
||||
|
||||
t.Cleanup(func() { mock.AssertExpectations(t) })
|
||||
|
|
|
@ -19,6 +19,7 @@ service IndexCoord {
|
|||
rpc GetIndexInfos(GetIndexInfoRequest) returns (GetIndexInfoResponse){}
|
||||
rpc DropIndex(DropIndexRequest) returns (common.Status) {}
|
||||
rpc DescribeIndex(DescribeIndexRequest) returns (DescribeIndexResponse) {}
|
||||
rpc GetIndexStatistics(GetIndexStatisticsRequest) returns (GetIndexStatisticsResponse) {}
|
||||
// Deprecated: use DescribeIndex instead
|
||||
rpc GetIndexBuildProgress(GetIndexBuildProgressRequest) returns (GetIndexBuildProgressResponse) {}
|
||||
|
||||
|
@ -267,3 +268,13 @@ message GetJobStatsResponse {
|
|||
repeated JobInfo job_infos = 6;
|
||||
bool enable_disk = 7;
|
||||
}
|
||||
|
||||
message GetIndexStatisticsRequest {
|
||||
int64 collectionID = 1;
|
||||
string index_name = 2;
|
||||
}
|
||||
|
||||
message GetIndexStatisticsResponse {
|
||||
common.Status status = 1;
|
||||
repeated IndexInfo index_infos = 2;
|
||||
}
|
||||
|
|
|
@ -2018,6 +2018,100 @@ func (m *GetJobStatsResponse) GetEnableDisk() bool {
|
|||
return false
|
||||
}
|
||||
|
||||
type GetIndexStatisticsRequest struct {
|
||||
CollectionID int64 `protobuf:"varint,1,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
|
||||
IndexName string `protobuf:"bytes,2,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *GetIndexStatisticsRequest) Reset() { *m = GetIndexStatisticsRequest{} }
|
||||
func (m *GetIndexStatisticsRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetIndexStatisticsRequest) ProtoMessage() {}
|
||||
func (*GetIndexStatisticsRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_f9e019eb3fda53c2, []int{29}
|
||||
}
|
||||
|
||||
func (m *GetIndexStatisticsRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetIndexStatisticsRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *GetIndexStatisticsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_GetIndexStatisticsRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *GetIndexStatisticsRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetIndexStatisticsRequest.Merge(m, src)
|
||||
}
|
||||
func (m *GetIndexStatisticsRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_GetIndexStatisticsRequest.Size(m)
|
||||
}
|
||||
func (m *GetIndexStatisticsRequest) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_GetIndexStatisticsRequest.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_GetIndexStatisticsRequest proto.InternalMessageInfo
|
||||
|
||||
func (m *GetIndexStatisticsRequest) GetCollectionID() int64 {
|
||||
if m != nil {
|
||||
return m.CollectionID
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *GetIndexStatisticsRequest) GetIndexName() string {
|
||||
if m != nil {
|
||||
return m.IndexName
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type GetIndexStatisticsResponse struct {
|
||||
Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
|
||||
IndexInfos []*IndexInfo `protobuf:"bytes,2,rep,name=index_infos,json=indexInfos,proto3" json:"index_infos,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *GetIndexStatisticsResponse) Reset() { *m = GetIndexStatisticsResponse{} }
|
||||
func (m *GetIndexStatisticsResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetIndexStatisticsResponse) ProtoMessage() {}
|
||||
func (*GetIndexStatisticsResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_f9e019eb3fda53c2, []int{30}
|
||||
}
|
||||
|
||||
func (m *GetIndexStatisticsResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetIndexStatisticsResponse.Unmarshal(m, b)
|
||||
}
|
||||
func (m *GetIndexStatisticsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_GetIndexStatisticsResponse.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *GetIndexStatisticsResponse) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetIndexStatisticsResponse.Merge(m, src)
|
||||
}
|
||||
func (m *GetIndexStatisticsResponse) XXX_Size() int {
|
||||
return xxx_messageInfo_GetIndexStatisticsResponse.Size(m)
|
||||
}
|
||||
func (m *GetIndexStatisticsResponse) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_GetIndexStatisticsResponse.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_GetIndexStatisticsResponse proto.InternalMessageInfo
|
||||
|
||||
func (m *GetIndexStatisticsResponse) GetStatus() *commonpb.Status {
|
||||
if m != nil {
|
||||
return m.Status
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *GetIndexStatisticsResponse) GetIndexInfos() []*IndexInfo {
|
||||
if m != nil {
|
||||
return m.IndexInfos
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterType((*IndexInfo)(nil), "milvus.proto.index.IndexInfo")
|
||||
proto.RegisterType((*FieldIndex)(nil), "milvus.proto.index.FieldIndex")
|
||||
|
@ -2049,152 +2143,157 @@ func init() {
|
|||
proto.RegisterType((*JobInfo)(nil), "milvus.proto.index.JobInfo")
|
||||
proto.RegisterType((*GetJobStatsRequest)(nil), "milvus.proto.index.GetJobStatsRequest")
|
||||
proto.RegisterType((*GetJobStatsResponse)(nil), "milvus.proto.index.GetJobStatsResponse")
|
||||
proto.RegisterType((*GetIndexStatisticsRequest)(nil), "milvus.proto.index.GetIndexStatisticsRequest")
|
||||
proto.RegisterType((*GetIndexStatisticsResponse)(nil), "milvus.proto.index.GetIndexStatisticsResponse")
|
||||
}
|
||||
|
||||
func init() { proto.RegisterFile("index_coord.proto", fileDescriptor_f9e019eb3fda53c2) }
|
||||
|
||||
var fileDescriptor_f9e019eb3fda53c2 = []byte{
|
||||
// 2236 bytes of a gzipped FileDescriptorProto
|
||||
// 2274 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x8f, 0x1b, 0x49,
|
||||
0x15, 0x4f, 0xbb, 0x3d, 0x33, 0xee, 0xd7, 0xf6, 0x7c, 0xd4, 0x66, 0xc1, 0x71, 0x12, 0x32, 0xe9,
|
||||
0x6c, 0x92, 0x01, 0xb1, 0x93, 0x30, 0xcb, 0xa2, 0x05, 0x01, 0xd2, 0x64, 0xbc, 0x49, 0x9c, 0x6c,
|
||||
0xa2, 0xa1, 0x1d, 0xad, 0xc4, 0x0a, 0xc9, 0xb4, 0xdd, 0xe5, 0x99, 0xda, 0x69, 0x77, 0x39, 0x5d,
|
||||
0xd5, 0x49, 0x26, 0x48, 0x88, 0xcb, 0x1e, 0x58, 0x21, 0x21, 0x21, 0x24, 0xfe, 0x01, 0x4e, 0xcb,
|
||||
0x7f, 0xc0, 0x85, 0x0b, 0x47, 0x2e, 0x70, 0xe7, 0xc2, 0x3f, 0xc1, 0x15, 0xd5, 0x47, 0xb7, 0xbb,
|
||||
0xdb, 0xed, 0xb1, 0xe7, 0x83, 0x0b, 0xdc, 0x5c, 0xaf, 0x5f, 0x7d, 0xbd, 0xf7, 0x7b, 0xef, 0xf7,
|
||||
0x5e, 0x19, 0x36, 0x48, 0xe8, 0xe3, 0x37, 0xbd, 0x01, 0xa5, 0x91, 0xbf, 0x3d, 0x8e, 0x28, 0xa7,
|
||||
0x08, 0x8d, 0x48, 0xf0, 0x2a, 0x66, 0x6a, 0xb4, 0x2d, 0xbf, 0xb7, 0xea, 0x03, 0x3a, 0x1a, 0xd1,
|
||||
0x50, 0xc9, 0x5a, 0x75, 0x36, 0x38, 0xc4, 0x23, 0x4f, 0x8f, 0x56, 0x49, 0xc8, 0x71, 0x14, 0x7a,
|
||||
0x41, 0xf2, 0x35, 0x3b, 0xdf, 0xf9, 0x67, 0x15, 0xac, 0x8e, 0x58, 0xa3, 0x13, 0x0e, 0x29, 0x72,
|
||||
0xa0, 0x3e, 0xa0, 0x41, 0x80, 0x07, 0x9c, 0xd0, 0xb0, 0xd3, 0x6e, 0x1a, 0x9b, 0xc6, 0x96, 0xe9,
|
||||
0xe6, 0x64, 0xa8, 0x09, 0x2b, 0x43, 0x82, 0x03, 0xbf, 0xd3, 0x6e, 0x56, 0xe4, 0xe7, 0x64, 0x88,
|
||||
0xae, 0x03, 0xa8, 0xe3, 0x86, 0xde, 0x08, 0x37, 0xcd, 0x4d, 0x63, 0xcb, 0x72, 0x2d, 0x29, 0x79,
|
||||
0xee, 0x8d, 0xb0, 0x98, 0x28, 0x07, 0x9d, 0x76, 0xb3, 0xaa, 0x26, 0xea, 0x21, 0x7a, 0x00, 0x36,
|
||||
0x3f, 0x1e, 0xe3, 0xde, 0xd8, 0x8b, 0xbc, 0x11, 0x6b, 0x2e, 0x6d, 0x9a, 0x5b, 0xf6, 0xce, 0xcd,
|
||||
0xed, 0xdc, 0x45, 0xf5, 0x0d, 0x9f, 0xe2, 0xe3, 0x4f, 0xbd, 0x20, 0xc6, 0xfb, 0x1e, 0x89, 0x5c,
|
||||
0x10, 0xb3, 0xf6, 0xe5, 0x24, 0xd4, 0x86, 0xba, 0xda, 0x5c, 0x2f, 0xb2, 0xbc, 0xe8, 0x22, 0xb6,
|
||||
0x9c, 0xa6, 0x57, 0xb9, 0xa9, 0x57, 0xc1, 0x7e, 0x2f, 0xa2, 0xaf, 0x59, 0x73, 0x45, 0x1e, 0xd4,
|
||||
0xd6, 0x32, 0x97, 0xbe, 0x66, 0xe2, 0x96, 0x9c, 0x72, 0x2f, 0x50, 0x0a, 0x35, 0xa9, 0x60, 0x49,
|
||||
0x89, 0xfc, 0xfc, 0x21, 0x2c, 0x31, 0xee, 0x71, 0xdc, 0xb4, 0x36, 0x8d, 0xad, 0xd5, 0x9d, 0x1b,
|
||||
0xa5, 0x07, 0x90, 0x16, 0xef, 0x0a, 0x35, 0x57, 0x69, 0xa3, 0x0f, 0xe1, 0xeb, 0xea, 0xf8, 0x72,
|
||||
0xd8, 0x1b, 0x7a, 0x24, 0xe8, 0x45, 0xd8, 0x63, 0x34, 0x6c, 0x82, 0x34, 0xe4, 0x65, 0x92, 0xce,
|
||||
0x79, 0xe8, 0x91, 0xc0, 0x95, 0xdf, 0x90, 0x03, 0x0d, 0xc2, 0x7a, 0x5e, 0xcc, 0x69, 0x4f, 0x7e,
|
||||
0x6f, 0xda, 0x9b, 0xc6, 0x56, 0xcd, 0xb5, 0x09, 0xdb, 0x8d, 0x39, 0x95, 0xdb, 0xa0, 0x67, 0xb0,
|
||||
0x11, 0x33, 0x1c, 0xf5, 0x72, 0xe6, 0xa9, 0x2f, 0x6a, 0x9e, 0x35, 0x31, 0xb7, 0x93, 0x31, 0xd1,
|
||||
0xb7, 0x01, 0x8d, 0x71, 0xe8, 0x93, 0xf0, 0x40, 0xaf, 0x28, 0xed, 0xd0, 0x90, 0x76, 0x58, 0xd7,
|
||||
0x5f, 0xa4, 0xbe, 0x30, 0x87, 0xf3, 0x85, 0x01, 0xf0, 0x50, 0xe2, 0x43, 0x9e, 0xe5, 0x87, 0x09,
|
||||
0x44, 0x48, 0x38, 0xa4, 0x12, 0x5e, 0xf6, 0xce, 0xf5, 0xed, 0x69, 0x44, 0x6f, 0xa7, 0x98, 0xd4,
|
||||
0x08, 0x92, 0xf0, 0x6c, 0xc2, 0x8a, 0x8f, 0x03, 0xcc, 0xb1, 0x2f, 0xa1, 0x57, 0x73, 0x93, 0x21,
|
||||
0xba, 0x01, 0xf6, 0x20, 0xc2, 0xc2, 0x72, 0x9c, 0x68, 0xec, 0x55, 0x5d, 0x50, 0xa2, 0x17, 0x64,
|
||||
0x84, 0x9d, 0x2f, 0xaa, 0x50, 0xef, 0xe2, 0x83, 0x11, 0x0e, 0xb9, 0x3a, 0xc9, 0x22, 0x50, 0xdf,
|
||||
0x04, 0x7b, 0xec, 0x45, 0x9c, 0x68, 0x15, 0x05, 0xf7, 0xac, 0x08, 0x5d, 0x03, 0x8b, 0xe9, 0x55,
|
||||
0xdb, 0x72, 0x57, 0xd3, 0x9d, 0x08, 0xd0, 0x15, 0xa8, 0x85, 0xf1, 0x48, 0x19, 0x48, 0x43, 0x3e,
|
||||
0x8c, 0x47, 0x12, 0x26, 0x99, 0x60, 0x58, 0xca, 0x07, 0x43, 0x13, 0x56, 0xfa, 0x31, 0x91, 0xf1,
|
||||
0xb5, 0xac, 0xbe, 0xe8, 0x21, 0xfa, 0x1a, 0x2c, 0x87, 0xd4, 0xc7, 0x9d, 0xb6, 0x86, 0xa5, 0x1e,
|
||||
0xa1, 0x5b, 0xd0, 0x50, 0x46, 0x7d, 0x85, 0x23, 0x46, 0x68, 0xa8, 0x41, 0xa9, 0x90, 0xfc, 0xa9,
|
||||
0x92, 0x9d, 0x15, 0x97, 0x37, 0xc0, 0x9e, 0xc6, 0x22, 0x0c, 0x27, 0x08, 0xbc, 0x03, 0x6b, 0x6a,
|
||||
0xf3, 0x21, 0x09, 0x70, 0xef, 0x08, 0x1f, 0xb3, 0xa6, 0xbd, 0x69, 0x6e, 0x59, 0xae, 0x3a, 0xd3,
|
||||
0x43, 0x12, 0xe0, 0xa7, 0xf8, 0x98, 0x65, 0x7d, 0x57, 0x3f, 0xd1, 0x77, 0x8d, 0xa2, 0xef, 0xd0,
|
||||
0x6d, 0x58, 0x65, 0x38, 0x22, 0x5e, 0x40, 0xde, 0xe2, 0x1e, 0x23, 0x6f, 0x71, 0x73, 0x55, 0xea,
|
||||
0x34, 0x52, 0x69, 0x97, 0xbc, 0xc5, 0xc2, 0x0c, 0xaf, 0x23, 0xc2, 0x71, 0xef, 0xd0, 0x0b, 0x7d,
|
||||
0x3a, 0x1c, 0x36, 0xd7, 0xe4, 0x3e, 0x75, 0x29, 0x7c, 0xac, 0x64, 0xce, 0x1f, 0x0c, 0x78, 0xc7,
|
||||
0xc5, 0x07, 0x84, 0x71, 0x1c, 0x3d, 0xa7, 0x3e, 0x76, 0xf1, 0xcb, 0x18, 0x33, 0x8e, 0xee, 0x43,
|
||||
0xb5, 0xef, 0x31, 0xac, 0x21, 0x79, 0xad, 0xd4, 0x3a, 0xcf, 0xd8, 0xc1, 0x03, 0x8f, 0x61, 0x57,
|
||||
0x6a, 0xa2, 0xef, 0xc1, 0x8a, 0xe7, 0xfb, 0x11, 0x66, 0x4c, 0x02, 0x63, 0xd6, 0xa4, 0x5d, 0xa5,
|
||||
0xe3, 0x26, 0xca, 0x19, 0x2f, 0x9a, 0x59, 0x2f, 0x3a, 0xbf, 0x35, 0xe0, 0x72, 0xfe, 0x64, 0x6c,
|
||||
0x4c, 0x43, 0x86, 0xd1, 0x07, 0xb0, 0x2c, 0x7c, 0x11, 0x33, 0x7d, 0xb8, 0xab, 0xa5, 0xfb, 0x74,
|
||||
0xa5, 0x8a, 0xab, 0x55, 0x45, 0x4a, 0x25, 0x21, 0xe1, 0x49, 0xb8, 0xab, 0x13, 0xde, 0x2c, 0x46,
|
||||
0x9a, 0x26, 0x86, 0x4e, 0x48, 0xb8, 0x8a, 0x6e, 0x17, 0x48, 0xfa, 0xdb, 0xf9, 0x29, 0x5c, 0x7e,
|
||||
0x84, 0x79, 0x06, 0x13, 0xda, 0x56, 0x8b, 0x84, 0x4e, 0x9e, 0x0b, 0x2a, 0x05, 0x2e, 0x70, 0xfe,
|
||||
0x68, 0xc0, 0xbb, 0x85, 0xb5, 0xcf, 0x73, 0xdb, 0x14, 0xdc, 0x95, 0xf3, 0x80, 0xdb, 0x2c, 0x82,
|
||||
0xdb, 0xf9, 0x95, 0x01, 0x57, 0x1f, 0x61, 0x9e, 0x4d, 0x1c, 0x17, 0x6c, 0x09, 0xf4, 0x0d, 0x80,
|
||||
0x34, 0x61, 0xb0, 0xa6, 0xb9, 0x69, 0x6e, 0x99, 0x6e, 0x46, 0xe2, 0xfc, 0xda, 0x80, 0x8d, 0xa9,
|
||||
0xfd, 0xf3, 0x79, 0xc7, 0x28, 0xe6, 0x9d, 0xff, 0x96, 0x39, 0x7e, 0x67, 0xc0, 0xb5, 0x72, 0x73,
|
||||
0x9c, 0xc7, 0x79, 0x3f, 0x52, 0x93, 0xb0, 0x40, 0xa9, 0x20, 0xa5, 0xdb, 0x65, 0x7c, 0x30, 0xbd,
|
||||
0xa7, 0x9e, 0xe4, 0xfc, 0xdd, 0x04, 0xb4, 0x27, 0x93, 0x85, 0x62, 0x9d, 0x53, 0xb8, 0xe6, 0xcc,
|
||||
0xa5, 0x4c, 0xa1, 0x60, 0xa9, 0x5e, 0x44, 0xc1, 0xb2, 0x74, 0xa6, 0x82, 0xe5, 0x1a, 0x58, 0x22,
|
||||
0x6b, 0x32, 0xee, 0x8d, 0xc6, 0x92, 0x2f, 0xaa, 0xee, 0x44, 0x30, 0x5d, 0x1e, 0xac, 0x2c, 0x58,
|
||||
0x1e, 0xd4, 0xce, 0x5c, 0x1e, 0xec, 0x41, 0x43, 0x1a, 0xb1, 0xed, 0x71, 0xef, 0xc5, 0xf1, 0x38,
|
||||
0xe1, 0x9b, 0x02, 0xc9, 0xeb, 0x0a, 0x35, 0x51, 0x72, 0xf3, 0x73, 0x9c, 0x37, 0xf0, 0x4e, 0x92,
|
||||
0x1d, 0x64, 0x0d, 0x70, 0x0a, 0x9f, 0xe6, 0xe3, 0xa9, 0x52, 0x8c, 0xa7, 0x39, 0x9e, 0x75, 0xfe,
|
||||
0x5d, 0x81, 0x8d, 0x4e, 0x42, 0x5c, 0xfb, 0x1e, 0x3f, 0x94, 0x85, 0xc7, 0xc9, 0xe1, 0x36, 0x1b,
|
||||
0x46, 0x19, 0x96, 0x37, 0x67, 0xb2, 0x7c, 0x35, 0xcf, 0xf2, 0xf9, 0x03, 0x2e, 0x15, 0xa1, 0x77,
|
||||
0x31, 0x75, 0xee, 0x16, 0xac, 0x67, 0x58, 0x7b, 0xec, 0xf1, 0x43, 0x51, 0xeb, 0x0a, 0xda, 0x5e,
|
||||
0x25, 0xd9, 0xdb, 0x33, 0x74, 0x17, 0xd6, 0x52, 0x9a, 0xf5, 0x15, 0xfb, 0xd6, 0x24, 0xcc, 0x26,
|
||||
0x9c, 0xec, 0x27, 0xf4, 0x9b, 0xaf, 0x42, 0xac, 0x92, 0x2a, 0x24, 0x5b, 0x11, 0x41, 0xae, 0x22,
|
||||
0x72, 0xfe, 0x6c, 0x80, 0x9d, 0x46, 0xf9, 0x82, 0xbd, 0x48, 0xce, 0x2f, 0x95, 0xa2, 0x5f, 0x6e,
|
||||
0x42, 0x1d, 0x87, 0x5e, 0x3f, 0xc0, 0x1a, 0xfc, 0xa6, 0x02, 0xbf, 0x92, 0x29, 0xf0, 0x3f, 0x04,
|
||||
0x7b, 0x52, 0x8f, 0x26, 0x81, 0x7c, 0x7b, 0x66, 0x41, 0x9a, 0x05, 0x85, 0x0b, 0x69, 0x61, 0xca,
|
||||
0x9c, 0x2f, 0x2b, 0x13, 0xae, 0x54, 0x88, 0x3d, 0x4f, 0x46, 0xfc, 0x19, 0xd4, 0xf5, 0x2d, 0x54,
|
||||
0x9d, 0xac, 0xf2, 0xe2, 0xf7, 0xcb, 0x8e, 0x55, 0xb6, 0xe9, 0x76, 0xc6, 0x8c, 0x1f, 0x87, 0x3c,
|
||||
0x3a, 0x76, 0x6d, 0x36, 0x91, 0xb4, 0x7a, 0xb0, 0x5e, 0x54, 0x40, 0xeb, 0x60, 0x1e, 0xe1, 0x63,
|
||||
0x6d, 0x63, 0xf1, 0x53, 0x70, 0xc8, 0x2b, 0x81, 0x1d, 0x5d, 0x3a, 0xdc, 0x38, 0x31, 0x29, 0x0f,
|
||||
0xa9, 0xab, 0xb4, 0x7f, 0x50, 0xf9, 0xc8, 0x70, 0x7e, 0x6f, 0xc0, 0x7a, 0x3b, 0xa2, 0xe3, 0x53,
|
||||
0xe7, 0x63, 0x07, 0xea, 0x99, 0xe2, 0x3a, 0x89, 0xde, 0x9c, 0x6c, 0x5e, 0x66, 0xbe, 0x02, 0x35,
|
||||
0x3f, 0xa2, 0xe3, 0x9e, 0x17, 0x04, 0x32, 0xb0, 0x44, 0x9d, 0x19, 0xd1, 0xf1, 0x6e, 0x10, 0x88,
|
||||
0x72, 0xa6, 0x8d, 0xd9, 0x20, 0x22, 0xfd, 0xd3, 0x33, 0xc5, 0x9c, 0x72, 0xe6, 0x37, 0x06, 0xbc,
|
||||
0x5b, 0x58, 0xfb, 0x3c, 0xfe, 0xff, 0x71, 0x1e, 0x95, 0xca, 0xfd, 0x73, 0xda, 0xa4, 0x2c, 0x1a,
|
||||
0x3d, 0x49, 0xd3, 0xf2, 0xdb, 0x03, 0x91, 0x55, 0xf6, 0x23, 0x7a, 0x20, 0x8b, 0xd0, 0x8b, 0xbb,
|
||||
0xf1, 0x5f, 0x0d, 0xb8, 0x3e, 0x63, 0x8f, 0xf3, 0xdc, 0xbc, 0xd8, 0x7f, 0x57, 0xe6, 0xf5, 0xdf,
|
||||
0x66, 0xb1, 0xff, 0x2e, 0x6f, 0x4f, 0xab, 0x33, 0xda, 0xd3, 0x3f, 0x55, 0xa0, 0xd1, 0xe5, 0x34,
|
||||
0xf2, 0x0e, 0xf0, 0x1e, 0x0d, 0x87, 0xe4, 0x40, 0x24, 0xe6, 0xa4, 0xac, 0x37, 0xe4, 0xa5, 0xd3,
|
||||
0xc2, 0xfd, 0x26, 0xd4, 0xbd, 0xc1, 0x00, 0x33, 0x26, 0xba, 0x1c, 0x9d, 0x6f, 0x2c, 0xd7, 0x56,
|
||||
0xb2, 0xa7, 0x42, 0x84, 0xbe, 0x05, 0x1b, 0x0c, 0x0f, 0x22, 0xcc, 0x7b, 0x13, 0x4d, 0x8d, 0xd1,
|
||||
0x35, 0xf5, 0x61, 0x37, 0xd1, 0x16, 0x7d, 0x40, 0xcc, 0x70, 0xb7, 0xfb, 0x89, 0xc6, 0xa9, 0x1e,
|
||||
0x89, 0x2a, 0xac, 0x1f, 0x0f, 0x8e, 0x30, 0xcf, 0x12, 0x00, 0x28, 0x91, 0x84, 0xf8, 0x55, 0xb0,
|
||||
0x22, 0x4a, 0xb9, 0xcc, 0xda, 0x92, 0xf2, 0x2d, 0xb7, 0x26, 0x04, 0x22, 0x31, 0xe9, 0x55, 0x3b,
|
||||
0xbb, 0xcf, 0x34, 0xd5, 0xeb, 0x91, 0x68, 0x65, 0x3b, 0xbb, 0xcf, 0x3e, 0x0e, 0xfd, 0x31, 0x25,
|
||||
0x21, 0x97, 0x29, 0xdc, 0x72, 0xb3, 0x22, 0x71, 0x3d, 0xa6, 0x2c, 0xd1, 0xe3, 0x09, 0x6f, 0x5b,
|
||||
0xae, 0xad, 0x65, 0x92, 0x96, 0xff, 0x65, 0xc2, 0xba, 0x2a, 0xb5, 0x9e, 0xd0, 0x7e, 0x02, 0xa6,
|
||||
0x6b, 0x60, 0x0d, 0x82, 0x58, 0x74, 0x2d, 0x1a, 0x49, 0x96, 0x3b, 0x11, 0x08, 0x8b, 0x64, 0x89,
|
||||
0x26, 0xc2, 0x43, 0xf2, 0x46, 0x5b, 0x6e, 0x6d, 0xc2, 0x34, 0x52, 0x9c, 0xe5, 0x44, 0x73, 0x8a,
|
||||
0x13, 0x7d, 0x8f, 0x7b, 0x9a, 0xa8, 0xaa, 0x92, 0xa8, 0x2c, 0x21, 0x51, 0x1c, 0x35, 0x45, 0x3d,
|
||||
0x4b, 0x25, 0xd4, 0x93, 0xe1, 0xe2, 0xe5, 0x3c, 0x17, 0xe7, 0xa1, 0xbe, 0x52, 0x4c, 0x29, 0x8f,
|
||||
0x61, 0x35, 0x31, 0xcc, 0x40, 0x62, 0x44, 0x5a, 0xaf, 0xa4, 0x9b, 0x92, 0x29, 0x31, 0x0b, 0x26,
|
||||
0xb7, 0xc1, 0x72, 0xd8, 0x2a, 0x72, 0xb7, 0x75, 0x26, 0xee, 0x2e, 0x14, 0x9f, 0x70, 0x96, 0xe2,
|
||||
0x33, 0xcb, 0xc3, 0x76, 0x9e, 0x87, 0x3f, 0x81, 0xf5, 0x9f, 0xc4, 0x38, 0x3a, 0x7e, 0x42, 0xfb,
|
||||
0x6c, 0x31, 0x1f, 0xb7, 0xa0, 0xa6, 0x1d, 0x95, 0xa4, 0xec, 0x74, 0xec, 0xfc, 0xc3, 0x80, 0x86,
|
||||
0x0c, 0xb7, 0x17, 0x1e, 0x3b, 0x4a, 0x1e, 0x71, 0x12, 0x2f, 0x1b, 0x79, 0x2f, 0x9f, 0xb1, 0x6d,
|
||||
0x29, 0x79, 0x81, 0x30, 0xcb, 0x5e, 0x20, 0x4a, 0x2a, 0x99, 0x6a, 0x69, 0x25, 0x53, 0xe8, 0x83,
|
||||
0x96, 0xa6, 0xfa, 0xa0, 0xaf, 0x0c, 0xd8, 0xc8, 0xd8, 0xe8, 0x3c, 0x09, 0x2f, 0x67, 0xd9, 0x4a,
|
||||
0xd1, 0xb2, 0x0f, 0xf2, 0x44, 0x60, 0x96, 0xb9, 0x3a, 0x43, 0x04, 0x89, 0x8d, 0x73, 0x64, 0xf0,
|
||||
0x14, 0xd6, 0x04, 0x19, 0x5f, 0x8c, 0x3b, 0xff, 0x66, 0xc0, 0xca, 0x13, 0xda, 0x97, 0x8e, 0xcc,
|
||||
0x62, 0xc8, 0xc8, 0xbf, 0x6e, 0xad, 0x83, 0xe9, 0x93, 0x91, 0xce, 0xde, 0xe2, 0xa7, 0x88, 0x31,
|
||||
0xc6, 0xbd, 0x88, 0x4f, 0xde, 0xe7, 0x44, 0xa9, 0x26, 0x24, 0xf2, 0x89, 0xe7, 0x0a, 0xd4, 0x70,
|
||||
0xe8, 0xab, 0x8f, 0xba, 0x1e, 0xc6, 0xa1, 0x2f, 0x3f, 0x5d, 0x4c, 0x9f, 0x74, 0x19, 0x96, 0xc6,
|
||||
0x74, 0xf2, 0xa6, 0xa6, 0x06, 0xce, 0x65, 0x40, 0x8f, 0x30, 0x7f, 0x42, 0xfb, 0xc2, 0x2b, 0x89,
|
||||
0x79, 0x9c, 0xbf, 0x54, 0x64, 0xfb, 0x31, 0x11, 0x9f, 0xc7, 0xc1, 0x0e, 0x34, 0x14, 0x5d, 0x7d,
|
||||
0x4e, 0xfb, 0xbd, 0x30, 0x4e, 0x8c, 0x62, 0x4b, 0xe1, 0x13, 0xda, 0x7f, 0x1e, 0x8f, 0xd0, 0xfb,
|
||||
0xf0, 0x0e, 0x09, 0x7b, 0x63, 0xcd, 0xa0, 0xa9, 0xa6, 0xb2, 0xd2, 0x3a, 0x09, 0x13, 0x6e, 0xd5,
|
||||
0xea, 0x77, 0x60, 0x0d, 0x87, 0x2f, 0x63, 0x1c, 0xe3, 0x54, 0x55, 0xd9, 0xac, 0xa1, 0xc5, 0x5a,
|
||||
0x4f, 0x30, 0xa5, 0xc7, 0x8e, 0x7a, 0x2c, 0xa0, 0x9c, 0xe9, 0x9c, 0x68, 0x09, 0x49, 0x57, 0x08,
|
||||
0xd0, 0x47, 0x60, 0x89, 0xe9, 0x0a, 0x5a, 0xaa, 0x8d, 0xb8, 0x5a, 0x06, 0x2d, 0xed, 0x6f, 0xb7,
|
||||
0xf6, 0xb9, 0xfa, 0xc1, 0x44, 0x80, 0xe8, 0xc2, 0xda, 0x27, 0xec, 0x48, 0x33, 0x0d, 0x28, 0x51,
|
||||
0x9b, 0xb0, 0xa3, 0x9d, 0x2f, 0x01, 0x40, 0x22, 0x72, 0x8f, 0xd2, 0xc8, 0x47, 0x81, 0x34, 0xf3,
|
||||
0x1e, 0x1d, 0x8d, 0x69, 0x88, 0x43, 0x2e, 0xa3, 0x97, 0xa1, 0xed, 0xfc, 0x66, 0x7a, 0x30, 0xad,
|
||||
0xa8, 0xdd, 0xd2, 0x7a, 0xaf, 0x54, 0xbf, 0xa0, 0xec, 0x5c, 0x42, 0x2f, 0x65, 0x29, 0x2e, 0x86,
|
||||
0x84, 0x71, 0x32, 0x60, 0x7b, 0x87, 0x5e, 0x18, 0xe2, 0x00, 0xed, 0xcc, 0x78, 0xfd, 0x2a, 0x53,
|
||||
0x4e, 0xf6, 0xbc, 0x55, 0xba, 0x67, 0x97, 0x47, 0x24, 0x3c, 0x48, 0x70, 0xe1, 0x5c, 0x42, 0x2f,
|
||||
0xc0, 0xce, 0x3c, 0x41, 0xa0, 0x3b, 0x65, 0x66, 0x9c, 0x7e, 0xa3, 0x68, 0x9d, 0x04, 0x20, 0xe7,
|
||||
0x12, 0x1a, 0x42, 0x23, 0xf7, 0x46, 0x86, 0xb6, 0x4e, 0xea, 0x00, 0xb2, 0x0f, 0x53, 0xad, 0x6f,
|
||||
0x2e, 0xa0, 0x99, 0x9e, 0xfe, 0x17, 0xca, 0x60, 0x53, 0x8f, 0x4c, 0xf7, 0x66, 0x2c, 0x32, 0xeb,
|
||||
0x39, 0xac, 0x75, 0x7f, 0xf1, 0x09, 0xe9, 0xe6, 0xfe, 0xe4, 0x92, 0x0a, 0x5c, 0x77, 0xe7, 0xb7,
|
||||
0x39, 0x6a, 0xb7, 0xad, 0x45, 0xfb, 0x21, 0xe7, 0x12, 0xda, 0x07, 0x2b, 0xed, 0x48, 0xd0, 0x7b,
|
||||
0x65, 0x13, 0x8b, 0x0d, 0xcb, 0x02, 0xce, 0xc9, 0x55, 0xfc, 0xe5, 0xce, 0x29, 0x6b, 0x38, 0xca,
|
||||
0x9d, 0x53, 0xda, 0x3e, 0x38, 0x97, 0xd0, 0x2f, 0x27, 0x0f, 0xa5, 0xb9, 0x3a, 0x1b, 0xdd, 0x3f,
|
||||
0xe9, 0xfa, 0x65, 0x65, 0x7f, 0xeb, 0x3b, 0xa7, 0x98, 0x91, 0x01, 0x07, 0xea, 0x1e, 0xd2, 0xd7,
|
||||
0xaa, 0x82, 0x89, 0x23, 0x4f, 0xb4, 0x07, 0x25, 0x9b, 0xeb, 0x58, 0x9a, 0x56, 0x9d, 0xb9, 0xf9,
|
||||
0x09, 0x33, 0xd2, 0xcd, 0x7b, 0x00, 0x8f, 0x30, 0x7f, 0x86, 0x79, 0x44, 0x06, 0xac, 0x18, 0x56,
|
||||
0x93, 0x84, 0xa1, 0x15, 0x92, 0xad, 0xee, 0xce, 0xd5, 0x4b, 0x37, 0xe8, 0x83, 0xbd, 0x77, 0x88,
|
||||
0x07, 0x47, 0x8f, 0xb1, 0x17, 0xf0, 0x43, 0x54, 0x3e, 0x33, 0xa3, 0x31, 0x03, 0x7b, 0x65, 0x8a,
|
||||
0xc9, 0x1e, 0x3b, 0x5f, 0x2d, 0xeb, 0xbf, 0x58, 0x9f, 0x53, 0x1f, 0xff, 0xef, 0xe7, 0xc2, 0x7d,
|
||||
0xb0, 0xd2, 0x1e, 0xa1, 0x3c, 0xd4, 0x8a, 0x2d, 0xc4, 0xbc, 0x50, 0xfb, 0x0c, 0xac, 0xb4, 0xda,
|
||||
0x2a, 0x5f, 0xb1, 0x58, 0xb0, 0xb6, 0x6e, 0xcf, 0xd1, 0x4a, 0x4f, 0xfb, 0x1c, 0x6a, 0x49, 0x75,
|
||||
0x84, 0x6e, 0xcd, 0xca, 0x0b, 0xd9, 0x95, 0xe7, 0x9c, 0xf5, 0xe7, 0x60, 0x67, 0x4a, 0x87, 0x72,
|
||||
0x26, 0x98, 0x2e, 0x39, 0x5a, 0x77, 0xe7, 0xea, 0xfd, 0x7f, 0x04, 0xe4, 0x83, 0xef, 0x7e, 0xb6,
|
||||
0x73, 0x40, 0xf8, 0x61, 0xdc, 0x17, 0x96, 0xbd, 0xa7, 0x34, 0xdf, 0x27, 0x54, 0xff, 0xba, 0x97,
|
||||
0x9c, 0xf2, 0x9e, 0x5c, 0xe9, 0x9e, 0xb4, 0xd3, 0xb8, 0xdf, 0x5f, 0x96, 0xc3, 0x0f, 0xfe, 0x13,
|
||||
0x00, 0x00, 0xff, 0xff, 0x84, 0x29, 0xf6, 0x35, 0x2f, 0x21, 0x00, 0x00,
|
||||
0x15, 0x4f, 0xbb, 0x3d, 0x33, 0xee, 0xd7, 0xf6, 0x7c, 0x54, 0xb2, 0xe0, 0x38, 0x09, 0x99, 0x74,
|
||||
0x36, 0xc9, 0x80, 0xc8, 0x24, 0xcc, 0xb2, 0x68, 0x41, 0x80, 0x34, 0x99, 0xd9, 0x24, 0x4e, 0x36,
|
||||
0xd1, 0xd0, 0x8e, 0x56, 0x62, 0x85, 0x30, 0x6d, 0x77, 0x79, 0xa6, 0x76, 0xda, 0x5d, 0x4e, 0x57,
|
||||
0x75, 0x92, 0x09, 0x12, 0x82, 0xc3, 0x1e, 0x40, 0x48, 0x08, 0x84, 0xc4, 0x3f, 0xc0, 0x69, 0xf9,
|
||||
0x0f, 0xb8, 0x70, 0xe1, 0xc8, 0x05, 0xee, 0x5c, 0xf8, 0x27, 0xb8, 0xa2, 0xfa, 0xe8, 0x76, 0x77,
|
||||
0xbb, 0x3d, 0xf6, 0x7c, 0x20, 0x24, 0xf6, 0xe6, 0x7a, 0xf5, 0xea, 0xa3, 0xdf, 0xfb, 0xbd, 0xf7,
|
||||
0x7b, 0xaf, 0x0c, 0x6b, 0x24, 0xf4, 0xf1, 0x9b, 0x6e, 0x9f, 0xd2, 0xc8, 0xdf, 0x1c, 0x45, 0x94,
|
||||
0x53, 0x84, 0x86, 0x24, 0x78, 0x15, 0x33, 0x35, 0xda, 0x94, 0xf3, 0xad, 0x7a, 0x9f, 0x0e, 0x87,
|
||||
0x34, 0x54, 0xb2, 0x56, 0x9d, 0xf5, 0x0f, 0xf0, 0xd0, 0xd3, 0xa3, 0x65, 0x12, 0x72, 0x1c, 0x85,
|
||||
0x5e, 0x90, 0xcc, 0x66, 0xd7, 0x3b, 0xff, 0xac, 0x82, 0xd5, 0x16, 0x7b, 0xb4, 0xc3, 0x01, 0x45,
|
||||
0x0e, 0xd4, 0xfb, 0x34, 0x08, 0x70, 0x9f, 0x13, 0x1a, 0xb6, 0x77, 0x9b, 0xc6, 0xba, 0xb1, 0x61,
|
||||
0xba, 0x39, 0x19, 0x6a, 0xc2, 0xd2, 0x80, 0xe0, 0xc0, 0x6f, 0xef, 0x36, 0x2b, 0x72, 0x3a, 0x19,
|
||||
0xa2, 0x6b, 0x00, 0xea, 0xba, 0xa1, 0x37, 0xc4, 0x4d, 0x73, 0xdd, 0xd8, 0xb0, 0x5c, 0x4b, 0x4a,
|
||||
0x9e, 0x7b, 0x43, 0x2c, 0x16, 0xca, 0x41, 0x7b, 0xb7, 0x59, 0x55, 0x0b, 0xf5, 0x10, 0x3d, 0x00,
|
||||
0x9b, 0x1f, 0x8d, 0x70, 0x77, 0xe4, 0x45, 0xde, 0x90, 0x35, 0x17, 0xd6, 0xcd, 0x0d, 0x7b, 0xeb,
|
||||
0xc6, 0x66, 0xee, 0x43, 0xf5, 0x17, 0x3e, 0xc5, 0x47, 0x1f, 0x7b, 0x41, 0x8c, 0xf7, 0x3c, 0x12,
|
||||
0xb9, 0x20, 0x56, 0xed, 0xc9, 0x45, 0x68, 0x17, 0xea, 0xea, 0x70, 0xbd, 0xc9, 0xe2, 0xbc, 0x9b,
|
||||
0xd8, 0x72, 0x99, 0xde, 0xe5, 0x86, 0xde, 0x05, 0xfb, 0xdd, 0x88, 0xbe, 0x66, 0xcd, 0x25, 0x79,
|
||||
0x51, 0x5b, 0xcb, 0x5c, 0xfa, 0x9a, 0x89, 0xaf, 0xe4, 0x94, 0x7b, 0x81, 0x52, 0xa8, 0x49, 0x05,
|
||||
0x4b, 0x4a, 0xe4, 0xf4, 0xfb, 0xb0, 0xc0, 0xb8, 0xc7, 0x71, 0xd3, 0x5a, 0x37, 0x36, 0x96, 0xb7,
|
||||
0xae, 0x97, 0x5e, 0x40, 0x5a, 0xbc, 0x23, 0xd4, 0x5c, 0xa5, 0x8d, 0xde, 0x87, 0x2f, 0xab, 0xeb,
|
||||
0xcb, 0x61, 0x77, 0xe0, 0x91, 0xa0, 0x1b, 0x61, 0x8f, 0xd1, 0xb0, 0x09, 0xd2, 0x90, 0x97, 0x48,
|
||||
0xba, 0xe6, 0xa1, 0x47, 0x02, 0x57, 0xce, 0x21, 0x07, 0x1a, 0x84, 0x75, 0xbd, 0x98, 0xd3, 0xae,
|
||||
0x9c, 0x6f, 0xda, 0xeb, 0xc6, 0x46, 0xcd, 0xb5, 0x09, 0xdb, 0x8e, 0x39, 0x95, 0xc7, 0xa0, 0x67,
|
||||
0xb0, 0x16, 0x33, 0x1c, 0x75, 0x73, 0xe6, 0xa9, 0xcf, 0x6b, 0x9e, 0x15, 0xb1, 0xb6, 0x9d, 0x31,
|
||||
0xd1, 0xd7, 0x01, 0x8d, 0x70, 0xe8, 0x93, 0x70, 0x5f, 0xef, 0x28, 0xed, 0xd0, 0x90, 0x76, 0x58,
|
||||
0xd5, 0x33, 0x52, 0x5f, 0x98, 0xc3, 0xf9, 0xcc, 0x00, 0x78, 0x28, 0xf1, 0x21, 0xef, 0xf2, 0xdd,
|
||||
0x04, 0x22, 0x24, 0x1c, 0x50, 0x09, 0x2f, 0x7b, 0xeb, 0xda, 0xe6, 0x24, 0xa2, 0x37, 0x53, 0x4c,
|
||||
0x6a, 0x04, 0x49, 0x78, 0x36, 0x61, 0xc9, 0xc7, 0x01, 0xe6, 0xd8, 0x97, 0xd0, 0xab, 0xb9, 0xc9,
|
||||
0x10, 0x5d, 0x07, 0xbb, 0x1f, 0x61, 0x61, 0x39, 0x4e, 0x34, 0xf6, 0xaa, 0x2e, 0x28, 0xd1, 0x0b,
|
||||
0x32, 0xc4, 0xce, 0x67, 0x55, 0xa8, 0x77, 0xf0, 0xfe, 0x10, 0x87, 0x5c, 0xdd, 0x64, 0x1e, 0xa8,
|
||||
0xaf, 0x83, 0x3d, 0xf2, 0x22, 0x4e, 0xb4, 0x8a, 0x82, 0x7b, 0x56, 0x84, 0xae, 0x82, 0xc5, 0xf4,
|
||||
0xae, 0xbb, 0xf2, 0x54, 0xd3, 0x1d, 0x0b, 0xd0, 0x65, 0xa8, 0x85, 0xf1, 0x50, 0x19, 0x48, 0x43,
|
||||
0x3e, 0x8c, 0x87, 0x12, 0x26, 0x99, 0x60, 0x58, 0xc8, 0x07, 0x43, 0x13, 0x96, 0x7a, 0x31, 0x91,
|
||||
0xf1, 0xb5, 0xa8, 0x66, 0xf4, 0x10, 0x7d, 0x09, 0x16, 0x43, 0xea, 0xe3, 0xf6, 0xae, 0x86, 0xa5,
|
||||
0x1e, 0xa1, 0x9b, 0xd0, 0x50, 0x46, 0x7d, 0x85, 0x23, 0x46, 0x68, 0xa8, 0x41, 0xa9, 0x90, 0xfc,
|
||||
0xb1, 0x92, 0x9d, 0x16, 0x97, 0xd7, 0xc1, 0x9e, 0xc4, 0x22, 0x0c, 0xc6, 0x08, 0xbc, 0x0d, 0x2b,
|
||||
0xea, 0xf0, 0x01, 0x09, 0x70, 0xf7, 0x10, 0x1f, 0xb1, 0xa6, 0xbd, 0x6e, 0x6e, 0x58, 0xae, 0xba,
|
||||
0xd3, 0x43, 0x12, 0xe0, 0xa7, 0xf8, 0x88, 0x65, 0x7d, 0x57, 0x3f, 0xd6, 0x77, 0x8d, 0xa2, 0xef,
|
||||
0xd0, 0x2d, 0x58, 0x66, 0x38, 0x22, 0x5e, 0x40, 0xde, 0xe2, 0x2e, 0x23, 0x6f, 0x71, 0x73, 0x59,
|
||||
0xea, 0x34, 0x52, 0x69, 0x87, 0xbc, 0xc5, 0xc2, 0x0c, 0xaf, 0x23, 0xc2, 0x71, 0xf7, 0xc0, 0x0b,
|
||||
0x7d, 0x3a, 0x18, 0x34, 0x57, 0xe4, 0x39, 0x75, 0x29, 0x7c, 0xac, 0x64, 0xce, 0x1f, 0x0c, 0xb8,
|
||||
0xe8, 0xe2, 0x7d, 0xc2, 0x38, 0x8e, 0x9e, 0x53, 0x1f, 0xbb, 0xf8, 0x65, 0x8c, 0x19, 0x47, 0xf7,
|
||||
0xa1, 0xda, 0xf3, 0x18, 0xd6, 0x90, 0xbc, 0x5a, 0x6a, 0x9d, 0x67, 0x6c, 0xff, 0x81, 0xc7, 0xb0,
|
||||
0x2b, 0x35, 0xd1, 0xb7, 0x60, 0xc9, 0xf3, 0xfd, 0x08, 0x33, 0x26, 0x81, 0x31, 0x6d, 0xd1, 0xb6,
|
||||
0xd2, 0x71, 0x13, 0xe5, 0x8c, 0x17, 0xcd, 0xac, 0x17, 0x9d, 0xdf, 0x18, 0x70, 0x29, 0x7f, 0x33,
|
||||
0x36, 0xa2, 0x21, 0xc3, 0xe8, 0x3d, 0x58, 0x14, 0xbe, 0x88, 0x99, 0xbe, 0xdc, 0x95, 0xd2, 0x73,
|
||||
0x3a, 0x52, 0xc5, 0xd5, 0xaa, 0x22, 0xa5, 0x92, 0x90, 0xf0, 0x24, 0xdc, 0xd5, 0x0d, 0x6f, 0x14,
|
||||
0x23, 0x4d, 0x13, 0x43, 0x3b, 0x24, 0x5c, 0x45, 0xb7, 0x0b, 0x24, 0xfd, 0xed, 0xfc, 0x10, 0x2e,
|
||||
0x3d, 0xc2, 0x3c, 0x83, 0x09, 0x6d, 0xab, 0x79, 0x42, 0x27, 0xcf, 0x05, 0x95, 0x02, 0x17, 0x38,
|
||||
0x7f, 0x34, 0xe0, 0x9d, 0xc2, 0xde, 0x67, 0xf9, 0xda, 0x14, 0xdc, 0x95, 0xb3, 0x80, 0xdb, 0x2c,
|
||||
0x82, 0xdb, 0xf9, 0xb9, 0x01, 0x57, 0x1e, 0x61, 0x9e, 0x4d, 0x1c, 0xe7, 0x6c, 0x09, 0xf4, 0x15,
|
||||
0x80, 0x34, 0x61, 0xb0, 0xa6, 0xb9, 0x6e, 0x6e, 0x98, 0x6e, 0x46, 0xe2, 0xfc, 0xd2, 0x80, 0xb5,
|
||||
0x89, 0xf3, 0xf3, 0x79, 0xc7, 0x28, 0xe6, 0x9d, 0xff, 0x96, 0x39, 0x7e, 0x67, 0xc0, 0xd5, 0x72,
|
||||
0x73, 0x9c, 0xc5, 0x79, 0xdf, 0x53, 0x8b, 0xb0, 0x40, 0xa9, 0x20, 0xa5, 0x5b, 0x65, 0x7c, 0x30,
|
||||
0x79, 0xa6, 0x5e, 0xe4, 0xfc, 0xdd, 0x04, 0xb4, 0x23, 0x93, 0x85, 0x62, 0x9d, 0x13, 0xb8, 0xe6,
|
||||
0xd4, 0xa5, 0x4c, 0xa1, 0x60, 0xa9, 0x9e, 0x47, 0xc1, 0xb2, 0x70, 0xaa, 0x82, 0xe5, 0x2a, 0x58,
|
||||
0x22, 0x6b, 0x32, 0xee, 0x0d, 0x47, 0x92, 0x2f, 0xaa, 0xee, 0x58, 0x30, 0x59, 0x1e, 0x2c, 0xcd,
|
||||
0x59, 0x1e, 0xd4, 0x4e, 0x5d, 0x1e, 0xec, 0x40, 0x43, 0x1a, 0x71, 0xd7, 0xe3, 0xde, 0x8b, 0xa3,
|
||||
0x51, 0xc2, 0x37, 0x05, 0x92, 0xd7, 0x15, 0x6a, 0xa2, 0xe4, 0xe6, 0xd7, 0x38, 0x6f, 0xe0, 0x62,
|
||||
0x92, 0x1d, 0x64, 0x0d, 0x70, 0x02, 0x9f, 0xe6, 0xe3, 0xa9, 0x52, 0x8c, 0xa7, 0x19, 0x9e, 0x75,
|
||||
0xfe, 0x5d, 0x81, 0xb5, 0x76, 0x42, 0x5c, 0x7b, 0x1e, 0x3f, 0x90, 0x85, 0xc7, 0xf1, 0xe1, 0x36,
|
||||
0x1d, 0x46, 0x19, 0x96, 0x37, 0xa7, 0xb2, 0x7c, 0x35, 0xcf, 0xf2, 0xf9, 0x0b, 0x2e, 0x14, 0xa1,
|
||||
0x77, 0x3e, 0x75, 0xee, 0x06, 0xac, 0x66, 0x58, 0x7b, 0xe4, 0xf1, 0x03, 0x51, 0xeb, 0x0a, 0xda,
|
||||
0x5e, 0x26, 0xd9, 0xaf, 0x67, 0xe8, 0x0e, 0xac, 0xa4, 0x34, 0xeb, 0x2b, 0xf6, 0xad, 0x49, 0x98,
|
||||
0x8d, 0x39, 0xd9, 0x4f, 0xe8, 0x37, 0x5f, 0x85, 0x58, 0x25, 0x55, 0x48, 0xb6, 0x22, 0x82, 0x5c,
|
||||
0x45, 0xe4, 0xfc, 0xd9, 0x00, 0x3b, 0x8d, 0xf2, 0x39, 0x7b, 0x91, 0x9c, 0x5f, 0x2a, 0x45, 0xbf,
|
||||
0xdc, 0x80, 0x3a, 0x0e, 0xbd, 0x5e, 0x80, 0x35, 0xf8, 0x4d, 0x05, 0x7e, 0x25, 0x53, 0xe0, 0x7f,
|
||||
0x08, 0xf6, 0xb8, 0x1e, 0x4d, 0x02, 0xf9, 0xd6, 0xd4, 0x82, 0x34, 0x0b, 0x0a, 0x17, 0xd2, 0xc2,
|
||||
0x94, 0x39, 0xbf, 0xaa, 0x8c, 0xb9, 0x52, 0x21, 0xf6, 0x2c, 0x19, 0xf1, 0x47, 0x50, 0xd7, 0x5f,
|
||||
0xa1, 0xea, 0x64, 0x95, 0x17, 0xbf, 0x5d, 0x76, 0xad, 0xb2, 0x43, 0x37, 0x33, 0x66, 0xfc, 0x30,
|
||||
0xe4, 0xd1, 0x91, 0x6b, 0xb3, 0xb1, 0xa4, 0xd5, 0x85, 0xd5, 0xa2, 0x02, 0x5a, 0x05, 0xf3, 0x10,
|
||||
0x1f, 0x69, 0x1b, 0x8b, 0x9f, 0x82, 0x43, 0x5e, 0x09, 0xec, 0xe8, 0xd2, 0xe1, 0xfa, 0xb1, 0x49,
|
||||
0x79, 0x40, 0x5d, 0xa5, 0xfd, 0x9d, 0xca, 0x07, 0x86, 0xf3, 0x7b, 0x03, 0x56, 0x77, 0x23, 0x3a,
|
||||
0x3a, 0x71, 0x3e, 0x76, 0xa0, 0x9e, 0x29, 0xae, 0x93, 0xe8, 0xcd, 0xc9, 0x66, 0x65, 0xe6, 0xcb,
|
||||
0x50, 0xf3, 0x23, 0x3a, 0xea, 0x7a, 0x41, 0x20, 0x03, 0x4b, 0xd4, 0x99, 0x11, 0x1d, 0x6d, 0x07,
|
||||
0x81, 0x28, 0x67, 0x76, 0x31, 0xeb, 0x47, 0xa4, 0x77, 0x72, 0xa6, 0x98, 0x51, 0xce, 0xfc, 0xda,
|
||||
0x80, 0x77, 0x0a, 0x7b, 0x9f, 0xc5, 0xff, 0xdf, 0xcf, 0xa3, 0x52, 0xb9, 0x7f, 0x46, 0x9b, 0x94,
|
||||
0x45, 0xa3, 0x27, 0x69, 0x5a, 0xce, 0x3d, 0x10, 0x59, 0x65, 0x2f, 0xa2, 0xfb, 0xb2, 0x08, 0x3d,
|
||||
0xbf, 0x2f, 0xfe, 0xab, 0x01, 0xd7, 0xa6, 0x9c, 0x71, 0x96, 0x2f, 0x2f, 0xf6, 0xdf, 0x95, 0x59,
|
||||
0xfd, 0xb7, 0x59, 0xec, 0xbf, 0xcb, 0xdb, 0xd3, 0xea, 0x94, 0xf6, 0xf4, 0x4f, 0x15, 0x68, 0x74,
|
||||
0x38, 0x8d, 0xbc, 0x7d, 0xbc, 0x43, 0xc3, 0x01, 0xd9, 0x17, 0x89, 0x39, 0x29, 0xeb, 0x0d, 0xf9,
|
||||
0xd1, 0x69, 0xe1, 0x7e, 0x03, 0xea, 0x5e, 0xbf, 0x8f, 0x19, 0x13, 0x5d, 0x8e, 0xce, 0x37, 0x96,
|
||||
0x6b, 0x2b, 0xd9, 0x53, 0x21, 0x42, 0x5f, 0x83, 0x35, 0x86, 0xfb, 0x11, 0xe6, 0xdd, 0xb1, 0xa6,
|
||||
0xc6, 0xe8, 0x8a, 0x9a, 0xd8, 0x4e, 0xb4, 0x45, 0x1f, 0x10, 0x33, 0xdc, 0xe9, 0x7c, 0xa4, 0x71,
|
||||
0xaa, 0x47, 0xa2, 0x0a, 0xeb, 0xc5, 0xfd, 0x43, 0xcc, 0xb3, 0x04, 0x00, 0x4a, 0x24, 0x21, 0x7e,
|
||||
0x05, 0xac, 0x88, 0x52, 0x2e, 0xb3, 0xb6, 0xa4, 0x7c, 0xcb, 0xad, 0x09, 0x81, 0x48, 0x4c, 0x7a,
|
||||
0xd7, 0xf6, 0xf6, 0x33, 0x4d, 0xf5, 0x7a, 0x24, 0x5a, 0xd9, 0xf6, 0xf6, 0xb3, 0x0f, 0x43, 0x7f,
|
||||
0x44, 0x49, 0xc8, 0x65, 0x0a, 0xb7, 0xdc, 0xac, 0x48, 0x7c, 0x1e, 0x53, 0x96, 0xe8, 0xf2, 0x84,
|
||||
0xb7, 0x2d, 0xd7, 0xd6, 0x32, 0x49, 0xcb, 0xff, 0x32, 0x61, 0x55, 0x95, 0x5a, 0x4f, 0x68, 0x2f,
|
||||
0x01, 0xd3, 0x55, 0xb0, 0xfa, 0x41, 0x2c, 0xba, 0x16, 0x8d, 0x24, 0xcb, 0x1d, 0x0b, 0x84, 0x45,
|
||||
0xb2, 0x44, 0x13, 0xe1, 0x01, 0x79, 0xa3, 0x2d, 0xb7, 0x32, 0x66, 0x1a, 0x29, 0xce, 0x72, 0xa2,
|
||||
0x39, 0xc1, 0x89, 0xbe, 0xc7, 0x3d, 0x4d, 0x54, 0x55, 0x49, 0x54, 0x96, 0x90, 0x28, 0x8e, 0x9a,
|
||||
0xa0, 0x9e, 0x85, 0x12, 0xea, 0xc9, 0x70, 0xf1, 0x62, 0x9e, 0x8b, 0xf3, 0x50, 0x5f, 0x2a, 0xa6,
|
||||
0x94, 0xc7, 0xb0, 0x9c, 0x18, 0xa6, 0x2f, 0x31, 0x22, 0xad, 0x57, 0xd2, 0x4d, 0xc9, 0x94, 0x98,
|
||||
0x05, 0x93, 0xdb, 0x60, 0x39, 0x6c, 0x15, 0xb9, 0xdb, 0x3a, 0x15, 0x77, 0x17, 0x8a, 0x4f, 0x38,
|
||||
0x4d, 0xf1, 0x99, 0xe5, 0x61, 0x3b, 0xcf, 0xc3, 0x1f, 0xc1, 0xea, 0x0f, 0x62, 0x1c, 0x1d, 0x3d,
|
||||
0xa1, 0x3d, 0x36, 0x9f, 0x8f, 0x5b, 0x50, 0xd3, 0x8e, 0x4a, 0x52, 0x76, 0x3a, 0x76, 0xfe, 0x61,
|
||||
0x40, 0x43, 0x86, 0xdb, 0x0b, 0x8f, 0x1d, 0x26, 0x8f, 0x38, 0x89, 0x97, 0x8d, 0xbc, 0x97, 0x4f,
|
||||
0xd9, 0xb6, 0x94, 0xbc, 0x40, 0x98, 0x65, 0x2f, 0x10, 0x25, 0x95, 0x4c, 0xb5, 0xb4, 0x92, 0x29,
|
||||
0xf4, 0x41, 0x0b, 0x13, 0x7d, 0xd0, 0xe7, 0x06, 0xac, 0x65, 0x6c, 0x74, 0x96, 0x84, 0x97, 0xb3,
|
||||
0x6c, 0xa5, 0x68, 0xd9, 0x07, 0x79, 0x22, 0x30, 0xcb, 0x5c, 0x9d, 0x21, 0x82, 0xc4, 0xc6, 0x39,
|
||||
0x32, 0x78, 0x0a, 0x2b, 0x82, 0x8c, 0xcf, 0xc7, 0x9d, 0x7f, 0x33, 0x60, 0xe9, 0x09, 0xed, 0x49,
|
||||
0x47, 0x66, 0x31, 0x64, 0xe4, 0x5f, 0xb7, 0x56, 0xc1, 0xf4, 0xc9, 0x50, 0x67, 0x6f, 0xf1, 0x53,
|
||||
0xc4, 0x18, 0xe3, 0x5e, 0xc4, 0xc7, 0xef, 0x73, 0xa2, 0x54, 0x13, 0x12, 0xf9, 0xc4, 0x73, 0x19,
|
||||
0x6a, 0x38, 0xf4, 0xd5, 0xa4, 0xae, 0x87, 0x71, 0xe8, 0xcb, 0xa9, 0xf3, 0xe9, 0x93, 0x2e, 0xc1,
|
||||
0xc2, 0x88, 0x8e, 0xdf, 0xd4, 0xd4, 0xc0, 0xb9, 0x04, 0xe8, 0x11, 0xe6, 0x4f, 0x68, 0x4f, 0x78,
|
||||
0x25, 0x31, 0x8f, 0xf3, 0x97, 0x8a, 0x6c, 0x3f, 0xc6, 0xe2, 0xb3, 0x38, 0xd8, 0x81, 0x86, 0xa2,
|
||||
0xab, 0x4f, 0x69, 0xaf, 0x1b, 0xc6, 0x89, 0x51, 0x6c, 0x29, 0x7c, 0x42, 0x7b, 0xcf, 0xe3, 0x21,
|
||||
0xba, 0x0b, 0x17, 0x49, 0xd8, 0x1d, 0x69, 0x06, 0x4d, 0x35, 0x95, 0x95, 0x56, 0x49, 0x98, 0x70,
|
||||
0xab, 0x56, 0xbf, 0x0d, 0x2b, 0x38, 0x7c, 0x19, 0xe3, 0x18, 0xa7, 0xaa, 0xca, 0x66, 0x0d, 0x2d,
|
||||
0xd6, 0x7a, 0x82, 0x29, 0x3d, 0x76, 0xd8, 0x65, 0x01, 0xe5, 0x4c, 0xe7, 0x44, 0x4b, 0x48, 0x3a,
|
||||
0x42, 0x80, 0x3e, 0x00, 0x4b, 0x2c, 0x57, 0xd0, 0x52, 0x6d, 0xc4, 0x95, 0x32, 0x68, 0x69, 0x7f,
|
||||
0xbb, 0xb5, 0x4f, 0xd5, 0x0f, 0x26, 0x02, 0x44, 0x17, 0xd6, 0x3e, 0x61, 0x87, 0x9a, 0x69, 0x40,
|
||||
0x89, 0x76, 0x09, 0x3b, 0x74, 0x7e, 0x0c, 0x97, 0xb3, 0xaf, 0x3b, 0x84, 0x71, 0xd2, 0x3f, 0xcf,
|
||||
0xea, 0xe3, 0xb7, 0x06, 0xb4, 0xca, 0x0e, 0xf8, 0x1f, 0x16, 0x5d, 0x5b, 0xbf, 0xb0, 0x01, 0xe4,
|
||||
0xcc, 0x0e, 0xa5, 0x91, 0x8f, 0x02, 0x09, 0xad, 0x1d, 0x3a, 0x1c, 0xd1, 0x10, 0x87, 0x5c, 0x66,
|
||||
0x2c, 0x86, 0x36, 0xf3, 0xfb, 0xe9, 0xc1, 0xa4, 0xa2, 0xb6, 0x55, 0xeb, 0xdd, 0x52, 0xfd, 0x82,
|
||||
0xb2, 0x73, 0x01, 0xbd, 0x94, 0xed, 0xc7, 0xd8, 0x14, 0x3b, 0x07, 0x5e, 0x18, 0xe2, 0x00, 0x6d,
|
||||
0x4d, 0x79, 0xf1, 0x2b, 0x53, 0x4e, 0xce, 0xbc, 0x59, 0x7a, 0x66, 0x87, 0x47, 0x24, 0xdc, 0x4f,
|
||||
0x4c, 0xec, 0x5c, 0x40, 0x2f, 0xc0, 0xce, 0x3c, 0xbb, 0xa0, 0xdb, 0x65, 0x96, 0x9a, 0x7c, 0x97,
|
||||
0x69, 0x1d, 0xe7, 0x0b, 0xe7, 0x02, 0x1a, 0x40, 0x23, 0xf7, 0x2e, 0x88, 0x36, 0x8e, 0xeb, 0x7a,
|
||||
0xb2, 0x8f, 0x71, 0xad, 0xaf, 0xce, 0xa1, 0x99, 0xde, 0xfe, 0xa7, 0xca, 0x60, 0x13, 0x0f, 0x6b,
|
||||
0xf7, 0xa6, 0x6c, 0x32, 0xed, 0x09, 0xb0, 0x75, 0x7f, 0xfe, 0x05, 0xe9, 0xe1, 0xfe, 0xf8, 0x23,
|
||||
0x55, 0x40, 0xdd, 0x99, 0xdd, 0xda, 0xa9, 0xd3, 0x36, 0xe6, 0xed, 0x01, 0x9d, 0x0b, 0x68, 0x0f,
|
||||
0xac, 0xb4, 0x0b, 0x43, 0xef, 0x96, 0x2d, 0x2c, 0x36, 0x69, 0x73, 0x38, 0x27, 0xd7, 0xe5, 0x94,
|
||||
0x3b, 0xa7, 0xac, 0xc9, 0x2a, 0x77, 0x4e, 0x69, 0xcb, 0xe4, 0x5c, 0x40, 0xb1, 0x8c, 0x9d, 0x42,
|
||||
0x74, 0xa3, 0xbb, 0xb3, 0xfc, 0x9b, 0x4b, 0x33, 0xad, 0xcd, 0x79, 0xd5, 0xd3, 0x63, 0x7f, 0x36,
|
||||
0x7e, 0x93, 0xce, 0xb5, 0x34, 0xe8, 0xfe, 0x71, 0x5b, 0x95, 0x75, 0x58, 0xad, 0x6f, 0x9c, 0x60,
|
||||
0x45, 0x06, 0x93, 0xa8, 0x73, 0x40, 0x5f, 0xab, 0x62, 0x31, 0x8e, 0x3c, 0x91, 0x0b, 0x4b, 0x0e,
|
||||
0xd7, 0x21, 0x3c, 0xa9, 0x3a, 0xf5, 0xf0, 0x63, 0x56, 0xa4, 0x87, 0x77, 0x01, 0x1e, 0x61, 0xfe,
|
||||
0x0c, 0xf3, 0x48, 0xd8, 0xfa, 0xf6, 0xb4, 0x3c, 0xa5, 0x15, 0x92, 0xa3, 0xee, 0xcc, 0xd4, 0x4b,
|
||||
0x0f, 0xe8, 0x81, 0xbd, 0x73, 0x80, 0xfb, 0x87, 0x8f, 0xb1, 0x17, 0xf0, 0x03, 0x54, 0xbe, 0x32,
|
||||
0xa3, 0x31, 0x05, 0xf2, 0x65, 0x8a, 0xc9, 0x19, 0x5b, 0x9f, 0x2f, 0xea, 0x7f, 0xb3, 0x9f, 0x53,
|
||||
0x1f, 0xff, 0xff, 0xa7, 0xe0, 0x3d, 0xb0, 0xd2, 0x76, 0xac, 0x3c, 0xc2, 0x8b, 0xdd, 0xda, 0xac,
|
||||
0x08, 0xff, 0x04, 0xac, 0xb4, 0xb0, 0x2d, 0xdf, 0xb1, 0xd8, 0x1b, 0xb4, 0x6e, 0xcd, 0xd0, 0x4a,
|
||||
0x6f, 0xfb, 0x1c, 0x6a, 0x49, 0x21, 0x8a, 0x6e, 0x4e, 0x4b, 0x47, 0xd9, 0x9d, 0x67, 0xdc, 0xf5,
|
||||
0x27, 0x60, 0x67, 0xaa, 0xb4, 0x72, 0x02, 0x9a, 0xac, 0xee, 0x5a, 0x77, 0x66, 0xea, 0x7d, 0x31,
|
||||
0x02, 0xf2, 0xc1, 0x37, 0x3f, 0xd9, 0xda, 0x27, 0xfc, 0x20, 0xee, 0x09, 0xcb, 0xde, 0x53, 0x9a,
|
||||
0x77, 0x09, 0xd5, 0xbf, 0xee, 0x25, 0xb7, 0xbc, 0x27, 0x77, 0xba, 0x27, 0xed, 0x34, 0xea, 0xf5,
|
||||
0x16, 0xe5, 0xf0, 0xbd, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0xc3, 0xaf, 0xe3, 0xca, 0x9a, 0x22,
|
||||
0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
|
@ -2218,6 +2317,7 @@ type IndexCoordClient interface {
|
|||
GetIndexInfos(ctx context.Context, in *GetIndexInfoRequest, opts ...grpc.CallOption) (*GetIndexInfoResponse, error)
|
||||
DropIndex(ctx context.Context, in *DropIndexRequest, opts ...grpc.CallOption) (*commonpb.Status, error)
|
||||
DescribeIndex(ctx context.Context, in *DescribeIndexRequest, opts ...grpc.CallOption) (*DescribeIndexResponse, error)
|
||||
GetIndexStatistics(ctx context.Context, in *GetIndexStatisticsRequest, opts ...grpc.CallOption) (*GetIndexStatisticsResponse, error)
|
||||
// Deprecated: use DescribeIndex instead
|
||||
GetIndexBuildProgress(ctx context.Context, in *GetIndexBuildProgressRequest, opts ...grpc.CallOption) (*GetIndexBuildProgressResponse, error)
|
||||
ShowConfigurations(ctx context.Context, in *internalpb.ShowConfigurationsRequest, opts ...grpc.CallOption) (*internalpb.ShowConfigurationsResponse, error)
|
||||
|
@ -2306,6 +2406,15 @@ func (c *indexCoordClient) DescribeIndex(ctx context.Context, in *DescribeIndexR
|
|||
return out, nil
|
||||
}
|
||||
|
||||
func (c *indexCoordClient) GetIndexStatistics(ctx context.Context, in *GetIndexStatisticsRequest, opts ...grpc.CallOption) (*GetIndexStatisticsResponse, error) {
|
||||
out := new(GetIndexStatisticsResponse)
|
||||
err := c.cc.Invoke(ctx, "/milvus.proto.index.IndexCoord/GetIndexStatistics", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *indexCoordClient) GetIndexBuildProgress(ctx context.Context, in *GetIndexBuildProgressRequest, opts ...grpc.CallOption) (*GetIndexBuildProgressResponse, error) {
|
||||
out := new(GetIndexBuildProgressResponse)
|
||||
err := c.cc.Invoke(ctx, "/milvus.proto.index.IndexCoord/GetIndexBuildProgress", in, out, opts...)
|
||||
|
@ -2353,6 +2462,7 @@ type IndexCoordServer interface {
|
|||
GetIndexInfos(context.Context, *GetIndexInfoRequest) (*GetIndexInfoResponse, error)
|
||||
DropIndex(context.Context, *DropIndexRequest) (*commonpb.Status, error)
|
||||
DescribeIndex(context.Context, *DescribeIndexRequest) (*DescribeIndexResponse, error)
|
||||
GetIndexStatistics(context.Context, *GetIndexStatisticsRequest) (*GetIndexStatisticsResponse, error)
|
||||
// Deprecated: use DescribeIndex instead
|
||||
GetIndexBuildProgress(context.Context, *GetIndexBuildProgressRequest) (*GetIndexBuildProgressResponse, error)
|
||||
ShowConfigurations(context.Context, *internalpb.ShowConfigurationsRequest) (*internalpb.ShowConfigurationsResponse, error)
|
||||
|
@ -2389,6 +2499,9 @@ func (*UnimplementedIndexCoordServer) DropIndex(ctx context.Context, req *DropIn
|
|||
func (*UnimplementedIndexCoordServer) DescribeIndex(ctx context.Context, req *DescribeIndexRequest) (*DescribeIndexResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method DescribeIndex not implemented")
|
||||
}
|
||||
func (*UnimplementedIndexCoordServer) GetIndexStatistics(ctx context.Context, req *GetIndexStatisticsRequest) (*GetIndexStatisticsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetIndexStatistics not implemented")
|
||||
}
|
||||
func (*UnimplementedIndexCoordServer) GetIndexBuildProgress(ctx context.Context, req *GetIndexBuildProgressRequest) (*GetIndexBuildProgressResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetIndexBuildProgress not implemented")
|
||||
}
|
||||
|
@ -2550,6 +2663,24 @@ func _IndexCoord_DescribeIndex_Handler(srv interface{}, ctx context.Context, dec
|
|||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _IndexCoord_GetIndexStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(GetIndexStatisticsRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(IndexCoordServer).GetIndexStatistics(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/milvus.proto.index.IndexCoord/GetIndexStatistics",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(IndexCoordServer).GetIndexStatistics(ctx, req.(*GetIndexStatisticsRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _IndexCoord_GetIndexBuildProgress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(GetIndexBuildProgressRequest)
|
||||
if err := dec(in); err != nil {
|
||||
|
@ -2658,6 +2789,10 @@ var _IndexCoord_serviceDesc = grpc.ServiceDesc{
|
|||
MethodName: "DescribeIndex",
|
||||
Handler: _IndexCoord_DescribeIndex_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "GetIndexStatistics",
|
||||
Handler: _IndexCoord_GetIndexStatistics_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "GetIndexBuildProgress",
|
||||
Handler: _IndexCoord_GetIndexBuildProgress_Handler,
|
||||
|
|
|
@ -2352,12 +2352,84 @@ func (node *Proxy) DescribeIndex(ctx context.Context, request *milvuspb.Describe
|
|||
|
||||
// GetIndexStatistics get the information of index.
|
||||
func (node *Proxy) GetIndexStatistics(ctx context.Context, request *milvuspb.GetIndexStatisticsRequest) (*milvuspb.GetIndexStatisticsResponse, error) {
|
||||
// bank implement
|
||||
return &milvuspb.GetIndexStatisticsResponse{
|
||||
Status: &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_Success,
|
||||
},
|
||||
}, nil
|
||||
if !node.checkHealthy() {
|
||||
return &milvuspb.GetIndexStatisticsResponse{
|
||||
Status: unhealthyStatus(),
|
||||
}, nil
|
||||
}
|
||||
|
||||
sp, ctx := trace.StartSpanFromContextWithOperationName(ctx, "Proxy-GetIndexStatistics")
|
||||
defer sp.Finish()
|
||||
traceID, _, _ := trace.InfoFromSpan(sp)
|
||||
|
||||
dit := &getIndexStatisticsTask{
|
||||
ctx: ctx,
|
||||
Condition: NewTaskCondition(ctx),
|
||||
GetIndexStatisticsRequest: request,
|
||||
indexCoord: node.indexCoord,
|
||||
}
|
||||
|
||||
method := "GetIndexStatistics"
|
||||
// avoid data race
|
||||
tr := timerecord.NewTimeRecorder(method)
|
||||
metrics.ProxyFunctionCall.WithLabelValues(strconv.FormatInt(Params.ProxyCfg.GetNodeID(), 10), method,
|
||||
metrics.TotalLabel).Inc()
|
||||
|
||||
log.Info(
|
||||
rpcReceived(method),
|
||||
zap.String("traceID", traceID),
|
||||
zap.String("role", typeutil.ProxyRole),
|
||||
zap.String("db", request.DbName),
|
||||
zap.String("collection", request.CollectionName))
|
||||
|
||||
log.Debug(rpcReceived(method))
|
||||
|
||||
if err := node.sched.ddQueue.Enqueue(dit); err != nil {
|
||||
log.Warn(
|
||||
rpcFailedToEnqueue(method),
|
||||
zap.Error(err))
|
||||
|
||||
metrics.ProxyFunctionCall.WithLabelValues(strconv.FormatInt(Params.ProxyCfg.GetNodeID(), 10), method,
|
||||
metrics.AbandonLabel).Inc()
|
||||
|
||||
return &milvuspb.GetIndexStatisticsResponse{
|
||||
Status: &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_UnexpectedError,
|
||||
Reason: err.Error(),
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
log.Debug(
|
||||
rpcEnqueued(method),
|
||||
zap.Uint64("BeginTs", dit.BeginTs()),
|
||||
zap.Uint64("EndTs", dit.EndTs()))
|
||||
|
||||
if err := dit.WaitToFinish(); err != nil {
|
||||
log.Warn(rpcFailedToWaitToFinish(method), zap.Error(err), zap.Uint64("BeginTs", dit.BeginTs()), zap.Uint64("EndTs", dit.EndTs()))
|
||||
errCode := commonpb.ErrorCode_UnexpectedError
|
||||
if dit.result != nil {
|
||||
errCode = dit.result.Status.GetErrorCode()
|
||||
}
|
||||
metrics.ProxyFunctionCall.WithLabelValues(strconv.FormatInt(Params.ProxyCfg.GetNodeID(), 10), method, metrics.FailLabel).Inc()
|
||||
return &milvuspb.GetIndexStatisticsResponse{
|
||||
Status: &commonpb.Status{
|
||||
ErrorCode: errCode,
|
||||
Reason: err.Error(),
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
log.Debug(
|
||||
rpcDone(method),
|
||||
zap.Uint64("BeginTs", dit.BeginTs()),
|
||||
zap.Uint64("EndTs", dit.EndTs()))
|
||||
|
||||
metrics.ProxyFunctionCall.WithLabelValues(strconv.FormatInt(Params.ProxyCfg.GetNodeID(), 10), method,
|
||||
metrics.SuccessLabel).Inc()
|
||||
metrics.ProxyReqLatency.WithLabelValues(strconv.FormatInt(Params.ProxyCfg.GetNodeID(), 10), method).Observe(float64(tr.ElapseSpan().Milliseconds()))
|
||||
|
||||
return dit.result, nil
|
||||
}
|
||||
|
||||
// DropIndex drop the index of collection.
|
||||
|
|
|
@ -175,6 +175,16 @@ func (coord *IndexCoordMock) DescribeIndex(ctx context.Context, req *indexpb.Des
|
|||
}, nil
|
||||
}
|
||||
|
||||
// GetIndexStatistics get the statistics of the index.
|
||||
func (coord *IndexCoordMock) GetIndexStatistics(ctx context.Context, req *indexpb.GetIndexStatisticsRequest) (*indexpb.GetIndexStatisticsResponse, error) {
|
||||
return &indexpb.GetIndexStatisticsResponse{
|
||||
Status: &commonpb.Status{
|
||||
ErrorCode: commonpb.ErrorCode_Success,
|
||||
},
|
||||
IndexInfos: nil,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// GetIndexBuildProgress get the index building progress by num rows.
|
||||
func (coord *IndexCoordMock) GetIndexBuildProgress(ctx context.Context, req *indexpb.GetIndexBuildProgressRequest) (*indexpb.GetIndexBuildProgressResponse, error) {
|
||||
return &indexpb.GetIndexBuildProgressResponse{
|
||||
|
@ -249,12 +259,14 @@ func NewIndexCoordMock() *IndexCoordMock {
|
|||
|
||||
type GetIndexStateFunc func(ctx context.Context, request *indexpb.GetIndexStateRequest) (*indexpb.GetIndexStateResponse, error)
|
||||
type DescribeIndexFunc func(ctx context.Context, request *indexpb.DescribeIndexRequest) (*indexpb.DescribeIndexResponse, error)
|
||||
type GetIndexStatisticsFunc func(ctx context.Context, request *indexpb.GetIndexStatisticsRequest) (*indexpb.GetIndexStatisticsResponse, error)
|
||||
type DropIndexFunc func(ctx context.Context, request *indexpb.DropIndexRequest) (*commonpb.Status, error)
|
||||
|
||||
type mockIndexCoord struct {
|
||||
types.IndexCoord
|
||||
GetIndexStateFunc
|
||||
DescribeIndexFunc
|
||||
GetIndexStatisticsFunc
|
||||
DropIndexFunc
|
||||
}
|
||||
|
||||
|
@ -276,6 +288,16 @@ func (m *mockIndexCoord) DescribeIndex(ctx context.Context, request *indexpb.Des
|
|||
return nil, errors.New("mock")
|
||||
}
|
||||
|
||||
// GetIndexStatistics get the statistics of the index.
|
||||
func (m *mockIndexCoord) GetIndexStatistics(ctx context.Context, request *indexpb.GetIndexStatisticsRequest) (*indexpb.GetIndexStatisticsResponse, error) {
|
||||
if m.GetIndexStatisticsFunc != nil {
|
||||
log.Warn("GetIndexStatistics not nil")
|
||||
return m.GetIndexStatisticsFunc(ctx, request)
|
||||
}
|
||||
log.Warn("DescribeIndexFunc nil")
|
||||
return nil, errors.New("mock")
|
||||
}
|
||||
|
||||
func (m *mockIndexCoord) DropIndex(ctx context.Context, request *indexpb.DropIndexRequest) (*commonpb.Status, error) {
|
||||
if m.DropIndexFunc != nil {
|
||||
log.Warn("DropIndexFunc not nil")
|
||||
|
|
|
@ -1199,6 +1199,20 @@ func TestProxy(t *testing.T) {
|
|||
indexName = resp.IndexDescriptions[0].IndexName
|
||||
})
|
||||
|
||||
wg.Add(1)
|
||||
t.Run("get index statistics", func(t *testing.T) {
|
||||
defer wg.Done()
|
||||
resp, err := proxy.GetIndexStatistics(ctx, &milvuspb.GetIndexStatisticsRequest{
|
||||
Base: nil,
|
||||
DbName: dbName,
|
||||
CollectionName: collectionName,
|
||||
IndexName: "",
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode)
|
||||
indexName = resp.IndexDescriptions[0].IndexName
|
||||
})
|
||||
|
||||
wg.Add(1)
|
||||
t.Run("get index build progress", func(t *testing.T) {
|
||||
defer wg.Done()
|
||||
|
@ -2423,6 +2437,14 @@ func TestProxy(t *testing.T) {
|
|||
assert.NotEqual(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode)
|
||||
})
|
||||
|
||||
wg.Add(1)
|
||||
t.Run("GetIndexStatistics fail, unhealthy", func(t *testing.T) {
|
||||
defer wg.Done()
|
||||
resp, err := proxy.GetIndexStatistics(ctx, &milvuspb.GetIndexStatisticsRequest{})
|
||||
assert.NoError(t, err)
|
||||
assert.NotEqual(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode)
|
||||
})
|
||||
|
||||
wg.Add(1)
|
||||
t.Run("DropIndex fail, unhealthy", func(t *testing.T) {
|
||||
defer wg.Done()
|
||||
|
@ -2764,6 +2786,14 @@ func TestProxy(t *testing.T) {
|
|||
assert.NotEqual(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode)
|
||||
})
|
||||
|
||||
wg.Add(1)
|
||||
t.Run("GetIndexStatistics fail, dd queue full", func(t *testing.T) {
|
||||
defer wg.Done()
|
||||
resp, err := proxy.GetIndexStatistics(ctx, &milvuspb.GetIndexStatisticsRequest{})
|
||||
assert.NoError(t, err)
|
||||
assert.NotEqual(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode)
|
||||
})
|
||||
|
||||
wg.Add(1)
|
||||
t.Run("DropIndex fail, dd queue full", func(t *testing.T) {
|
||||
defer wg.Done()
|
||||
|
@ -3027,6 +3057,14 @@ func TestProxy(t *testing.T) {
|
|||
assert.NotEqual(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode)
|
||||
})
|
||||
|
||||
wg.Add(1)
|
||||
t.Run("GetIndexStatistics fail, timeout", func(t *testing.T) {
|
||||
defer wg.Done()
|
||||
resp, err := proxy.GetIndexStatistics(shortCtx, &milvuspb.GetIndexStatisticsRequest{})
|
||||
assert.NoError(t, err)
|
||||
assert.NotEqual(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode)
|
||||
})
|
||||
|
||||
wg.Add(1)
|
||||
t.Run("DropIndex fail, timeout", func(t *testing.T) {
|
||||
defer wg.Done()
|
||||
|
@ -4030,21 +4068,3 @@ func TestProxy_GetLoadState(t *testing.T) {
|
|||
assert.Equal(t, commonpb.ErrorCode_InsufficientMemoryToLoad, progressResp.Status.ErrorCode)
|
||||
})
|
||||
}
|
||||
|
||||
func TestProxy_GetIndexStatistics(t *testing.T) {
|
||||
factory := dependency.NewDefaultFactory(true)
|
||||
ctx := context.Background()
|
||||
proxy, err := NewProxy(ctx, factory)
|
||||
assert.NoError(t, err)
|
||||
assert.NotNil(t, proxy)
|
||||
t.Run("TestProxy_GetIndexStatistics", func(t *testing.T) {
|
||||
resp, err := proxy.GetIndexStatistics(ctx, &milvuspb.GetIndexStatisticsRequest{
|
||||
Base: nil,
|
||||
DbName: "",
|
||||
CollectionName: "hello_milvus",
|
||||
IndexName: "",
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, commonpb.ErrorCode_Success, resp.Status.ErrorCode)
|
||||
})
|
||||
}
|
||||
|
|
|
@ -523,6 +523,122 @@ func (dit *describeIndexTask) PostExecute(ctx context.Context) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
type getIndexStatisticsTask struct {
|
||||
Condition
|
||||
*milvuspb.GetIndexStatisticsRequest
|
||||
ctx context.Context
|
||||
indexCoord types.IndexCoord
|
||||
result *milvuspb.GetIndexStatisticsResponse
|
||||
|
||||
nodeID int64
|
||||
collectionID UniqueID
|
||||
}
|
||||
|
||||
func (git *getIndexStatisticsTask) TraceCtx() context.Context {
|
||||
return git.ctx
|
||||
}
|
||||
|
||||
func (git *getIndexStatisticsTask) ID() UniqueID {
|
||||
return git.Base.MsgID
|
||||
}
|
||||
|
||||
func (git *getIndexStatisticsTask) SetID(uid UniqueID) {
|
||||
git.Base.MsgID = uid
|
||||
}
|
||||
|
||||
func (git *getIndexStatisticsTask) Name() string {
|
||||
return DescribeIndexTaskName
|
||||
}
|
||||
|
||||
func (git *getIndexStatisticsTask) Type() commonpb.MsgType {
|
||||
return git.Base.MsgType
|
||||
}
|
||||
|
||||
func (git *getIndexStatisticsTask) BeginTs() Timestamp {
|
||||
return git.Base.Timestamp
|
||||
}
|
||||
|
||||
func (git *getIndexStatisticsTask) EndTs() Timestamp {
|
||||
return git.Base.Timestamp
|
||||
}
|
||||
|
||||
func (git *getIndexStatisticsTask) SetTs(ts Timestamp) {
|
||||
git.Base.Timestamp = ts
|
||||
}
|
||||
|
||||
func (git *getIndexStatisticsTask) OnEnqueue() error {
|
||||
git.Base = commonpbutil.NewMsgBase()
|
||||
return nil
|
||||
}
|
||||
|
||||
func (git *getIndexStatisticsTask) PreExecute(ctx context.Context) error {
|
||||
git.Base.MsgType = commonpb.MsgType_GetIndexStatistics
|
||||
git.Base.SourceID = git.nodeID
|
||||
|
||||
if err := validateCollectionName(git.CollectionName); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
collID, err := globalMetaCache.GetCollectionID(ctx, git.GetDbName(), git.GetCollectionName())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
git.collectionID = collID
|
||||
return nil
|
||||
}
|
||||
|
||||
func (git *getIndexStatisticsTask) Execute(ctx context.Context) error {
|
||||
schema, err := globalMetaCache.GetCollectionSchema(ctx, git.GetDbName(), git.GetCollectionName())
|
||||
if err != nil {
|
||||
log.Error("failed to get collection schema", zap.Error(err))
|
||||
return fmt.Errorf("failed to get collection schema: %s", err)
|
||||
}
|
||||
schemaHelper, err := typeutil.CreateSchemaHelper(schema)
|
||||
if err != nil {
|
||||
log.Error("failed to parse collection schema", zap.Error(err))
|
||||
return fmt.Errorf("failed to parse collection schema: %s", err)
|
||||
}
|
||||
|
||||
resp, err := git.indexCoord.GetIndexStatistics(ctx, &indexpb.GetIndexStatisticsRequest{
|
||||
CollectionID: git.collectionID, IndexName: git.IndexName})
|
||||
if err != nil || resp == nil {
|
||||
log.Error("failed in call indexcoord GetIndexStatistics", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
git.result = &milvuspb.GetIndexStatisticsResponse{}
|
||||
git.result.Status = resp.GetStatus()
|
||||
if git.result.Status.ErrorCode != commonpb.ErrorCode_Success {
|
||||
return errors.New(git.result.Status.Reason)
|
||||
}
|
||||
for _, indexInfo := range resp.IndexInfos {
|
||||
field, err := schemaHelper.GetFieldFromID(indexInfo.FieldID)
|
||||
if err != nil {
|
||||
log.Error("failed to get collection field", zap.Error(err))
|
||||
return fmt.Errorf("failed to get collection field: %d", indexInfo.FieldID)
|
||||
}
|
||||
params := indexInfo.GetUserIndexParams()
|
||||
if params == nil {
|
||||
params = indexInfo.GetIndexParams()
|
||||
}
|
||||
desc := &milvuspb.IndexDescription{
|
||||
IndexName: indexInfo.GetIndexName(),
|
||||
IndexID: indexInfo.GetIndexID(),
|
||||
FieldName: field.Name,
|
||||
Params: params,
|
||||
IndexedRows: indexInfo.GetIndexedRows(),
|
||||
TotalRows: indexInfo.GetTotalRows(),
|
||||
State: indexInfo.GetState(),
|
||||
IndexStateFailReason: indexInfo.GetIndexStateFailReason(),
|
||||
}
|
||||
git.result.IndexDescriptions = append(git.result.IndexDescriptions, desc)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (git *getIndexStatisticsTask) PostExecute(ctx context.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
type dropIndexTask struct {
|
||||
Condition
|
||||
ctx context.Context
|
||||
|
|
|
@ -600,3 +600,64 @@ func Test_parseIndexParams_AutoIndex(t *testing.T) {
|
|||
assert.Error(t, err)
|
||||
})
|
||||
}
|
||||
|
||||
func TestGetIndexStatisticsTask(t *testing.T) {
|
||||
collectionName := "collection1"
|
||||
collectionID := UniqueID(1)
|
||||
//fieldName := newTestSchema().Fields[0].Name
|
||||
indexName := "_default"
|
||||
Params.InitOnce()
|
||||
ic := newMockIndexCoord()
|
||||
ctx := context.Background()
|
||||
|
||||
git := getIndexStatisticsTask{
|
||||
ctx: ctx,
|
||||
GetIndexStatisticsRequest: &milvuspb.GetIndexStatisticsRequest{
|
||||
Base: &commonpb.MsgBase{
|
||||
MsgType: commonpb.MsgType_GetIndexStatistics,
|
||||
},
|
||||
CollectionName: collectionName,
|
||||
IndexName: indexName,
|
||||
},
|
||||
indexCoord: ic,
|
||||
result: nil,
|
||||
collectionID: collectionID,
|
||||
}
|
||||
|
||||
t.Run("pre execute get collection id fail", func(t *testing.T) {
|
||||
mockCache := NewMockCache(t)
|
||||
mockCache.On("GetCollectionID",
|
||||
mock.Anything, // context.Context
|
||||
mock.AnythingOfType("string"),
|
||||
mock.AnythingOfType("string"),
|
||||
).Return(collectionID, errors.New("mock error"))
|
||||
globalMetaCache = mockCache
|
||||
|
||||
err := git.PreExecute(ctx)
|
||||
assert.Error(t, err)
|
||||
})
|
||||
|
||||
t.Run("execute GetCollectionSchema fail", func(t *testing.T) {
|
||||
mockCache := NewMockCache(t)
|
||||
mockCache.On("GetCollectionSchema",
|
||||
mock.Anything, // context.Context
|
||||
mock.AnythingOfType("string"),
|
||||
mock.AnythingOfType("string"),
|
||||
).Return(newTestSchema(), errors.New("mock error"))
|
||||
globalMetaCache = mockCache
|
||||
err := git.Execute(ctx)
|
||||
assert.Error(t, err)
|
||||
})
|
||||
|
||||
t.Run("execute indexcoord GetIndexStatistics fail", func(t *testing.T) {
|
||||
mockCache := NewMockCache(t)
|
||||
mockCache.On("GetCollectionSchema",
|
||||
mock.Anything, // context.Context
|
||||
mock.AnythingOfType("string"),
|
||||
mock.AnythingOfType("string"),
|
||||
).Return(newTestSchema(), nil)
|
||||
globalMetaCache = mockCache
|
||||
err := git.Execute(ctx)
|
||||
assert.Error(t, err)
|
||||
})
|
||||
}
|
||||
|
|
|
@ -429,6 +429,9 @@ type IndexCoord interface {
|
|||
// DescribeIndex describe the index info of the collection.
|
||||
DescribeIndex(ctx context.Context, req *indexpb.DescribeIndexRequest) (*indexpb.DescribeIndexResponse, error)
|
||||
|
||||
// GetIndexStatistics get the statistics of the index.
|
||||
GetIndexStatistics(ctx context.Context, req *indexpb.GetIndexStatisticsRequest) (*indexpb.GetIndexStatisticsResponse, error)
|
||||
|
||||
// GetIndexBuildProgress get the index building progress by num rows.
|
||||
// Deprecated: use DescribeIndex instead
|
||||
GetIndexBuildProgress(ctx context.Context, req *indexpb.GetIndexBuildProgressRequest) (*indexpb.GetIndexBuildProgressResponse, error)
|
||||
|
|
Loading…
Reference in New Issue