func()

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)

}