in datahub/implement.go [412:444]
func (datahub *DataHub) SplitShard(projectName, topicName, shardId string) (*SplitShardResult, error) {
if !util.CheckProjectName(projectName) {
return nil, NewInvalidParameterErrorWithMessage(projectNameInvalid)
}
if !util.CheckTopicName(topicName) {
return nil, NewInvalidParameterErrorWithMessage(topicNameInvalid)
}
if !util.CheckShardId(shardId) {
return nil, NewInvalidParameterErrorWithMessage(shardIdInvalid)
}
splitKey, err := generateSpliteKey(projectName, topicName, shardId, datahub)
if err != nil {
return nil, err
}
path := fmt.Sprintf(shardsPath, projectName, topicName)
reqPara := &RequestParameter{
Header: map[string]string{httpHeaderContentType: httpJsonContent},
}
ssr := &SplitShardRequest{
Action: "split",
ShardId: shardId,
SplitKey: splitKey,
}
respBody, commonResp, err := datahub.Client.Post(path, ssr, reqPara)
if err != nil {
return nil, err
}
return NewSplitShardResult(respBody, commonResp)
}