Compare commits
2 Commits
369023b81d
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
232a2c9d2e | ||
|
|
5cf860acfb |
20
cmd.proto
20
cmd.proto
@@ -12,6 +12,7 @@ message SaasReq {
|
||||
Read read = 10; // 批量读取
|
||||
Write write = 11; // 批量写入
|
||||
ColumnWrite column_write = 12; // 全量列式写入
|
||||
ResetDs reset_ds = 13; // 清空数据区
|
||||
|
||||
Task task_create = 20; // 任务创建
|
||||
TaskList task_list = 21; // 列出任务
|
||||
@@ -76,15 +77,15 @@ message WriteItem {
|
||||
Bytes write_bytes = 2 [deprecated = true]; // byte区域。!!!弃用,请使用bytes_kv
|
||||
Uint32s write_uint32s = 3 [deprecated = true]; // uint32区域。!!!弃用,请使用uint32s_kv
|
||||
FlagsWithExpire write_flags_with_expire = 4 [deprecated = true]; // 标志位区域。!!!弃用,请使用flags_with_expire_kv
|
||||
map<uint32, uint32> bytes_kv = 5; // 写入byte,key为1-64索引值,value为0-255数值。index/value超限会丢弃
|
||||
map<uint32, uint32> bytes_kv = 5; // 写入uint8,key为1-64索引值,value为0-255数值。index/value超限会丢弃
|
||||
map<uint32, uint32> uint32s_kv = 6; // 写入uint32,key为1-8索引值,value为uint32数值。index超限会丢弃
|
||||
map<uint32, FlagWithExpire> flags_with_expire_kv = 7; // 写入标志位,key为1-4索引值,index超限会丢弃
|
||||
}
|
||||
|
||||
// Bytes 写入byte区域
|
||||
// Bytes 写入uint8区域
|
||||
message Bytes {
|
||||
bytes bytes = 1; // 写入的byte
|
||||
uint64 index_1 = 2; // 写入byte的索引值(0..63)
|
||||
bytes bytes = 1; // 写入的uint8
|
||||
uint64 index_1 = 2; // 写入uint8的索引值(0..63)
|
||||
}
|
||||
|
||||
// Uint32s 写入uint32区域
|
||||
@@ -115,6 +116,11 @@ message ColumnWrite {
|
||||
FlagsWithExpire write_flags_with_expire = 5; // 标志位区域
|
||||
}
|
||||
|
||||
// ResetDs 清空数据区命令
|
||||
message ResetDs {
|
||||
string dataspace_id = 1; // 数据空间ID
|
||||
}
|
||||
|
||||
message Task {
|
||||
string dataspace_id = 1; // 数据空间ID
|
||||
string appid = 2; // 小程序/小游戏/公众号/视频号的appid
|
||||
@@ -283,6 +289,7 @@ message SaasRes {
|
||||
|
||||
ReadRes read_res = 10; // 读取命令返回
|
||||
WriteRes write_res = 11; // 写入命令返回
|
||||
ResetDsRes reset_ds_res = 13; // 清空数据区命令返回
|
||||
|
||||
Task task_create_res = 20; // 创建任务返回状态
|
||||
TaskListRes task_list_res = 21; // 任务列表返回状态
|
||||
@@ -359,6 +366,11 @@ message ValueItem {
|
||||
map<uint32, FlagWithExpire> flags_with_expire_kv = 10; // 标志位区域
|
||||
}
|
||||
|
||||
// ResetDsRes 清空数据区返回
|
||||
message ResetDsRes {
|
||||
string dataspace_id = 1; // 数据空间ID
|
||||
}
|
||||
|
||||
// TaskListRes 任务列表返回
|
||||
message TaskListRes {
|
||||
repeated Task tasks = 1; // 任务列表
|
||||
|
||||
@@ -94,7 +94,7 @@ func RunExpGet(args ...string) error {
|
||||
groupBySlice = strings.Split(*groupBy, ",")
|
||||
for _, group := range groupBySlice {
|
||||
if !validGroupBy[group] {
|
||||
return fmt.Errorf("Group by error. group:", group)
|
||||
return fmt.Errorf("Group by error. group: %v", group)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ Commands:
|
||||
write Write user's 'bytes / uint32s / flags'
|
||||
read Read user's 'bytes / uint32s / flags'
|
||||
columnwrite Write columns for 'deviceid / openid' users
|
||||
resetds Reset data space
|
||||
|
||||
convert Convert data to write format
|
||||
|
||||
|
||||
@@ -27,6 +27,8 @@ func Run(args ...string) error {
|
||||
return RunRead(args...)
|
||||
case "columnwrite":
|
||||
return RunColumnWrite(args...)
|
||||
case "resetds":
|
||||
return RunResetDs(args...)
|
||||
case "convert":
|
||||
return RunConvert(args...)
|
||||
case "verify":
|
||||
|
||||
71
cmd/saastool/resetds.go
Normal file
71
cmd/saastool/resetds.go
Normal file
@@ -0,0 +1,71 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
"google.golang.org/protobuf/encoding/protojson"
|
||||
)
|
||||
|
||||
type resetDsParams struct {
|
||||
ds string
|
||||
saasHttp *saashttp.SaasClient
|
||||
}
|
||||
|
||||
func RunResetDs(args ...string) error {
|
||||
fs := flag.NewFlagSet("resetds", flag.ExitOnError)
|
||||
cfgFile := paramConfig(fs)
|
||||
ds := paramDataSpaceId(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 || len(*ds) == 0 {
|
||||
fs.PrintDefaults()
|
||||
return nil
|
||||
}
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
resetDsParams := resetDsParams{
|
||||
ds: *ds,
|
||||
saasHttp: &saashttp.SaasClient{
|
||||
Client: &http.Client{},
|
||||
ApiUrls: saashttp.InitAPIUrl(&cfg.ApiUrls),
|
||||
Auth: &cfg.Auth,
|
||||
},
|
||||
}
|
||||
|
||||
return doResetDs(resetDsParams)
|
||||
}
|
||||
|
||||
func doResetDs(resetDsParams resetDsParams) error {
|
||||
saasReq := &saasapi.SaasReq{
|
||||
Cmd: &saasapi.SaasReq_ResetDs{
|
||||
ResetDs: &saasapi.ResetDs{
|
||||
DataspaceId: resetDsParams.ds,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
res, err := resetDsParams.saasHttp.ResetDS(saasReq)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
resetRes := res.GetResetDsRes()
|
||||
|
||||
fmt.Printf("ResetDS res: %v\n", protojson.Format(resetRes))
|
||||
return nil
|
||||
}
|
||||
@@ -3,8 +3,7 @@
|
||||
set -e
|
||||
|
||||
docker buildx build --platform linux/amd64 \
|
||||
-t rta-docker.pkg.coding.net/public/docker/saastool:latest \
|
||||
-t rta-docker.pkg.coding.net/public/docker/saastool:2025121617 \
|
||||
-t rta-docker.pkg.coding.net/public/docker/saastool:2026011914 \
|
||||
-o type=registry \
|
||||
-f saastool.Dockerfile \
|
||||
../ ;
|
||||
|
||||
@@ -6,6 +6,7 @@ const (
|
||||
writePath = "/saas/write"
|
||||
readPath = "/saas/read"
|
||||
columnWritePath = "/saas/column_write"
|
||||
resetDSPath = "/saas/resetds"
|
||||
taskCreatePath = "/saas/task/create"
|
||||
taskListPath = "/saas/task/list"
|
||||
taskInfoPath = "/saas/task/info"
|
||||
@@ -45,6 +46,7 @@ type ApiUrls struct {
|
||||
WritePath string
|
||||
ReadPath string
|
||||
ColumnWritePath string
|
||||
ResetDSPath string
|
||||
TaskCreatePath string
|
||||
TaskListPath string
|
||||
TaskInfoPath string
|
||||
@@ -100,6 +102,11 @@ func InitAPIUrl(c *ApiUrls) *ApiUrls {
|
||||
} else {
|
||||
r.ColumnWritePath = columnWritePath
|
||||
}
|
||||
if c.ResetDSPath != "" {
|
||||
r.ResetDSPath = c.ResetDSPath
|
||||
} else {
|
||||
r.ResetDSPath = resetDSPath
|
||||
}
|
||||
if c.TaskCreatePath != "" {
|
||||
r.TaskCreatePath = c.TaskCreatePath
|
||||
} else {
|
||||
|
||||
@@ -53,6 +53,11 @@ func (c *SaasClient) ColumnWrite(saasReq *saasapi.SaasReq) (saasRes *saasapi.Saa
|
||||
return c.post(postUrl, saasReq)
|
||||
}
|
||||
|
||||
func (c *SaasClient) ResetDS(saasReq *saasapi.SaasReq) (saasRes *saasapi.SaasRes, err error) {
|
||||
postUrl := c.makeUrl(c.ApiUrls.BaseUrl, c.ApiUrls.ResetDSPath)
|
||||
return c.post(postUrl, saasReq)
|
||||
}
|
||||
|
||||
func (c *SaasClient) TaskCreate(saasReq *saasapi.SaasReq) (saasRes *saasapi.SaasRes, err error) {
|
||||
postUrl := c.makeUrl(c.ApiUrls.BaseUrl, c.ApiUrls.TaskCreatePath)
|
||||
return c.post(postUrl, saasReq)
|
||||
|
||||
Reference in New Issue
Block a user