Compare commits
4 Commits
970d9db8da
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
232a2c9d2e | ||
|
|
5cf860acfb | ||
|
|
369023b81d | ||
|
|
5e102ea8e7 |
40
cmd.proto
40
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; // 列出任务
|
||||
@@ -26,11 +27,11 @@ message SaasReq {
|
||||
BindSet bind_set = 61; // 设置绑定
|
||||
BindDelete bind_delete = 62; // 解除绑定
|
||||
|
||||
GrantList grant_list = 70; // 列出数据授权
|
||||
Grant grant_add = 71; // 增加数据授权
|
||||
Grant grant_delete = 72; // 删除数据授权
|
||||
GrantList grant_list = 70; // 列出数据授权
|
||||
Grant grant_add = 71; // 增加数据授权
|
||||
Grant grant_delete = 72; // 删除数据授权
|
||||
|
||||
ScriptRun script_run = 90; // 运行脚本
|
||||
ScriptDebug script_debug = 90; // 调试脚本
|
||||
ScriptCreate script_create = 91; // 脚本创建
|
||||
ScriptList script_list = 92; // 列出脚本
|
||||
ScriptDelete script_delete = 93; // 删除脚本
|
||||
@@ -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
|
||||
@@ -208,8 +214,8 @@ message Grant {
|
||||
}
|
||||
|
||||
|
||||
// ScriptRun 运行脚本
|
||||
message ScriptRun {
|
||||
// ScriptDebug 调试脚本
|
||||
message ScriptDebug {
|
||||
string lua_script = 1; // 要调试的lua脚本
|
||||
string server_did = 2; // 将从服务端读取该DID下的数据
|
||||
string appid = 3; // 小程序/小游戏/公众号/视频号的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; // 任务列表返回状态
|
||||
@@ -301,7 +308,7 @@ message SaasRes {
|
||||
Grant grant_add_res = 71; // 增加数据授权返回状态
|
||||
Grant grant_delete_res = 72; // 删除数据授权返回状态
|
||||
|
||||
ScriptRunRes script_run_res = 90; // 运行脚本返回
|
||||
ScriptDebugRes script_debug_res = 90; // 调试脚本返回
|
||||
ScriptCreateRes script_create_res = 91; // 创建脚本返回
|
||||
ScriptListRes script_list_res = 92; // 列出脚本返回
|
||||
ScriptDeleteRes script_delete_res = 93; // 删除脚本返回
|
||||
@@ -320,6 +327,8 @@ message DataSpace {
|
||||
repeated string did = 1; // 设备ID区
|
||||
repeated string wuid = 2; // OpenID区
|
||||
repeated string geo = 7; // GEO区
|
||||
repeated string geoip = 8; // GEOIP区
|
||||
repeated string geofac = 9; // GEOFAC区(经常活动城市)
|
||||
}
|
||||
|
||||
// InfoRes 账号信息返回
|
||||
@@ -357,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; // 任务列表
|
||||
@@ -436,8 +450,8 @@ message GrantListRes {
|
||||
repeated Grant to = 2; // 向外授权列表
|
||||
}
|
||||
|
||||
// ScriptRunRes 运行脚本返回
|
||||
message ScriptRunRes {
|
||||
// ScriptDebugRes 调试脚本返回
|
||||
message ScriptDebugRes {
|
||||
string print_output = 1; // print输出
|
||||
string error_output = 2; // 错误信息
|
||||
string targets_output = 3; // 策略输出
|
||||
|
||||
@@ -2,7 +2,6 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -20,10 +19,7 @@ func RunBind(args ...string) error {
|
||||
case "delete":
|
||||
return RunBindDelete(args...)
|
||||
default:
|
||||
err := fmt.Errorf(`unknown command "%s"`+"\n"+`Run 'saastool bind help' for usage`, name)
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
|
||||
return err
|
||||
return fmt.Errorf(`Unknown command "%s"`+"\n"+`Run 'saastool bind help' for usage`, name)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
@@ -26,8 +25,7 @@ func RunBindDelete(args ...string) error {
|
||||
ids := paramIDs(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
// 切割字符串
|
||||
@@ -45,16 +43,14 @@ func RunBindDelete(args ...string) error {
|
||||
for _, v := range idsSlice {
|
||||
n, err := strconv.ParseInt(v, 10, 64)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "id parse error", "value", v, "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Id parse error. value: %v. %w", v, err)
|
||||
}
|
||||
numIds = append(numIds, n)
|
||||
}
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
bindDeleteParams := bindDeleteParams{
|
||||
@@ -87,15 +83,12 @@ func doBindDeleteAccount(p bindDeleteParams) error {
|
||||
}
|
||||
|
||||
res, err := p.saasHttp.BindDelete(saasReq)
|
||||
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Bind Delete error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "Bind Delete failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
bindRes := res.GetBindDeleteRes()
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
@@ -26,8 +25,7 @@ func RunBindSetAccount(args ...string) error {
|
||||
accounts := paramAccounts(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
// 切割字符串
|
||||
@@ -45,16 +43,14 @@ func RunBindSetAccount(args ...string) error {
|
||||
for _, v := range idsSlice {
|
||||
n, err := strconv.ParseInt(v, 10, 64)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "account parse error", "value", v, "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Account parse error. value: %v. %w", v, err)
|
||||
}
|
||||
numAccounts = append(numAccounts, n)
|
||||
}
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
bindSetAccountParams := bindSetAccountParams{
|
||||
@@ -89,15 +85,12 @@ func doBindSetAccount(p bindSetAccountParams) error {
|
||||
}
|
||||
|
||||
res, err := p.saasHttp.BindSet(saasReq)
|
||||
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Bind Set error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "Bind Set failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
fmt.Printf("bind res: %v\n", protojson.Format(res.GetBindSetRes()))
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
@@ -28,8 +27,7 @@ func RunBindSetAd(args ...string) error {
|
||||
ads := paramAds(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
// 切割字符串
|
||||
@@ -47,16 +45,14 @@ func RunBindSetAd(args ...string) error {
|
||||
for _, v := range idsSlice {
|
||||
n, err := strconv.ParseInt(v, 10, 64)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "account parse error", "value", v, "err", err)
|
||||
return err
|
||||
return fmt.Errorf("AD parse error. value: %v. %w", v, err)
|
||||
}
|
||||
numAds = append(numAds, n)
|
||||
}
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
bindSetAdParams := bindSetAdParams{
|
||||
@@ -92,15 +88,12 @@ func doBindSetAd(p bindSetAdParams) error {
|
||||
}
|
||||
|
||||
res, err := p.saasHttp.BindSet(saasReq)
|
||||
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Bind Set error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "Bind Set failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
fmt.Printf("bind res: %v\n", protojson.Format(res.GetBindSetRes()))
|
||||
|
||||
@@ -38,8 +38,7 @@ func RunConvert(args ...string) error {
|
||||
destPath := paramDestPath(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 || *mapCfgFile == "" || len(*sourcePath) == 0 || len(*destPath) == 0 {
|
||||
@@ -49,8 +48,7 @@ func RunConvert(args ...string) error {
|
||||
|
||||
mapCfg, err := LoadMapFile(*mapCfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadMapFile error: %w", err)
|
||||
}
|
||||
|
||||
convertParams := convertParams{
|
||||
|
||||
@@ -58,9 +58,7 @@ func RunDaemon(args ...string) error {
|
||||
case "dev":
|
||||
apiurls.BaseUrl = "http://localhost:8080"
|
||||
default:
|
||||
err = fmt.Errorf("SRTA_ENV is not demo or prd")
|
||||
slog.Error("Env", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("SRTA_ENV is not demo or prd")
|
||||
}
|
||||
|
||||
mux := http.NewServeMux()
|
||||
@@ -227,9 +225,9 @@ func (d *Daemon) parsePublicParams(r *http.Request) (*daemonPublicParams, error)
|
||||
|
||||
params.ds = strings.ToLower(strings.TrimSpace(q.Get("ds")))
|
||||
switch params.ds {
|
||||
case "did", "wuid", "geo":
|
||||
case "did", "wuid", "geo", "geoip", "geofac":
|
||||
default:
|
||||
return nil, fmt.Errorf("ds must use did/wuid/geo. current is %v", params.ds)
|
||||
return nil, fmt.Errorf("ds must use did/wuid/geo/geoip/geofac. current is %v", params.ds)
|
||||
}
|
||||
|
||||
params.appid = strings.TrimSpace(q.Get("appid"))
|
||||
|
||||
@@ -2,7 +2,6 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -20,10 +19,7 @@ func RunExp(args ...string) error {
|
||||
case "grant":
|
||||
return RunExpGrant(args...)
|
||||
default:
|
||||
err := fmt.Errorf(`unknown command "%s"`+"\n"+`Run 'saastool exp help' for usage`, name)
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
|
||||
return err
|
||||
return fmt.Errorf(`Unknown command "%s"`+"\n"+`Run 'saastool exp help' for usage`, name)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
"slices"
|
||||
"strconv"
|
||||
"strings"
|
||||
@@ -39,8 +38,7 @@ func RunExpGet(args ...string) error {
|
||||
extFields := paramExtFields(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 {
|
||||
@@ -54,28 +52,24 @@ func RunExpGet(args ...string) error {
|
||||
for _, id := range expIDsSlice {
|
||||
idNum, err := strconv.ParseUint(id, 10, 32)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "expid parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Expid parse error. value: %v. %w", id, err)
|
||||
}
|
||||
|
||||
if idNum == 0 || idNum > 10 {
|
||||
fmt.Fprintln(os.Stderr, "expid range error")
|
||||
return nil
|
||||
return fmt.Errorf("Expid range error.")
|
||||
}
|
||||
bucketIDsNumSlice = append(bucketIDsNumSlice, uint32(idNum))
|
||||
}
|
||||
}
|
||||
|
||||
if *beginDay < 20250101 || *beginDay > 21001231 || *endDay < 20250101 || *endDay > 21001231 {
|
||||
fmt.Fprintln(os.Stderr, "begin/end day error")
|
||||
fs.PrintDefaults()
|
||||
return nil
|
||||
return fmt.Errorf("Begin/End day error.")
|
||||
}
|
||||
|
||||
if *target == "" {
|
||||
fmt.Fprintln(os.Stderr, "target error")
|
||||
fs.PrintDefaults()
|
||||
return nil
|
||||
return fmt.Errorf("Target error.")
|
||||
}
|
||||
|
||||
uidNumSlice := []uint64{}
|
||||
@@ -84,13 +78,11 @@ func RunExpGet(args ...string) error {
|
||||
for _, id := range uidSlice {
|
||||
idNum, err := strconv.ParseUint(id, 10, 64)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "advertiser id parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Advertiser id parse error. value: %v. %w", id, err)
|
||||
}
|
||||
|
||||
if idNum == 0 {
|
||||
fmt.Fprintln(os.Stderr, "advertiser id error")
|
||||
return nil
|
||||
return fmt.Errorf("Advertiser id error.")
|
||||
}
|
||||
uidNumSlice = append(uidNumSlice, idNum)
|
||||
}
|
||||
@@ -102,8 +94,7 @@ func RunExpGet(args ...string) error {
|
||||
groupBySlice = strings.Split(*groupBy, ",")
|
||||
for _, group := range groupBySlice {
|
||||
if !validGroupBy[group] {
|
||||
fmt.Fprintln(os.Stderr, "group by error", "group", group)
|
||||
return nil
|
||||
return fmt.Errorf("Group by error. group: %v", group)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -112,15 +103,13 @@ func RunExpGet(args ...string) error {
|
||||
if *extFields != "" {
|
||||
extFieldsSlice = strings.Split(*extFields, ",")
|
||||
if slices.Contains(extFieldsSlice, "") {
|
||||
fmt.Fprintln(os.Stderr, "ext field error")
|
||||
return nil
|
||||
return fmt.Errorf("Ext field error.")
|
||||
}
|
||||
}
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
getExpParams := getExpParams{
|
||||
@@ -164,15 +153,12 @@ func doExpGet(getExpParams getExpParams) error {
|
||||
}
|
||||
|
||||
res, err := getExpParams.saasHttp.ExpGet(saasReq)
|
||||
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit GetExp error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "get exp failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
getExpRes := res.GetExpGetRes()
|
||||
|
||||
@@ -2,7 +2,6 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -20,9 +19,7 @@ func RunExpGrant(args ...string) error {
|
||||
case "delete":
|
||||
return RunExpGrantDelete(args...)
|
||||
default:
|
||||
err := fmt.Errorf(`unknown command "%s"`+"\n"+`Run 'saastool exp grant help' for usage`, name)
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
return err
|
||||
return fmt.Errorf(`Unknown command "%s"`+"\n"+`Run 'saastool exp grant help' for usage`, name)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
@@ -22,8 +21,7 @@ func RunExpGrantAdd(args ...string) error {
|
||||
srtaAccountId := paramSrtaAccountId(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 {
|
||||
@@ -32,15 +30,13 @@ func RunExpGrantAdd(args ...string) error {
|
||||
}
|
||||
|
||||
if *srtaAccountId == 0 {
|
||||
fmt.Fprintln(os.Stderr, "Error: sRTA account ID is required")
|
||||
fs.PrintDefaults()
|
||||
return fmt.Errorf("sRTA account ID is required")
|
||||
}
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
expGrantAddParams := expGrantAddParams{
|
||||
@@ -66,13 +62,11 @@ func doExpGrantAdd(params expGrantAddParams) error {
|
||||
|
||||
res, err := params.saasHttp.ExpGrantAdd(saasReq)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Exp Grant Add error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "Exp grant add failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
expGrantRes := res.GetExpGrantAddRes()
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
@@ -22,8 +21,7 @@ func RunExpGrantDelete(args ...string) error {
|
||||
srtaAccountId := paramSrtaAccountId(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 {
|
||||
@@ -32,15 +30,13 @@ func RunExpGrantDelete(args ...string) error {
|
||||
}
|
||||
|
||||
if *srtaAccountId == 0 {
|
||||
fmt.Fprintln(os.Stderr, "Error: sRTA account ID is required")
|
||||
fs.PrintDefaults()
|
||||
return fmt.Errorf("sRTA account ID is required")
|
||||
}
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
expGrantDeleteParams := expGrantDeleteParams{
|
||||
@@ -66,13 +62,11 @@ func doExpGrantDelete(params expGrantDeleteParams) error {
|
||||
|
||||
res, err := params.saasHttp.ExpGrantDelete(saasReq)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Exp Grant Delete error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "Exp grant delete failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
expGrantRes := res.GetExpGrantDeleteRes()
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
@@ -20,8 +19,7 @@ func RunExpGrantList(args ...string) error {
|
||||
cfgFile := paramConfig(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 {
|
||||
@@ -31,8 +29,7 @@ func RunExpGrantList(args ...string) error {
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
expGrantListParams := expGrantListParams{
|
||||
@@ -55,13 +52,11 @@ func doExpGrantList(params expGrantListParams) error {
|
||||
|
||||
res, err := params.saasHttp.ExpGrantList(saasReq)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Exp Grant List error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "Exp grant list failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
expGrantRes := res.GetExpGrantListRes()
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
@@ -20,8 +19,7 @@ func RunExpList(args ...string) error {
|
||||
cfgFile := paramConfig(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 {
|
||||
@@ -31,8 +29,7 @@ func RunExpList(args ...string) error {
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
listExpParams := listExpParams{
|
||||
@@ -53,15 +50,12 @@ func doExpList(listExpParams listExpParams) error {
|
||||
}
|
||||
|
||||
res, err := listExpParams.saasHttp.ExpList(saasReq)
|
||||
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit ListExp error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "list exp failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
listExpRes := res.GetExpListRes()
|
||||
|
||||
@@ -2,7 +2,6 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -20,10 +19,7 @@ func RunGrant(args ...string) error {
|
||||
case "delete":
|
||||
return RunGrantDelete(args...)
|
||||
default:
|
||||
err := fmt.Errorf(`unknown command "%s"`+"\n"+`Run 'saastool grant help' for usage`, name)
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
|
||||
return err
|
||||
return fmt.Errorf(`Unknown command "%s"`+"\n"+`Run 'saastool grant help' for usage`, name)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
@@ -26,8 +25,7 @@ func RunGrantAdd(args ...string) error {
|
||||
grantIndex := paramGrantIndex(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 {
|
||||
@@ -36,27 +34,23 @@ func RunGrantAdd(args ...string) error {
|
||||
}
|
||||
|
||||
if *srtaAccountId == 0 {
|
||||
fmt.Fprintln(os.Stderr, "Error: sRTA account ID is required")
|
||||
fs.PrintDefaults()
|
||||
return fmt.Errorf("sRTA account ID is required")
|
||||
return fmt.Errorf("sRTA account ID is required.")
|
||||
}
|
||||
|
||||
if *grantIndex == "" {
|
||||
fmt.Fprintln(os.Stderr, "Error: grant index is required")
|
||||
fs.PrintDefaults()
|
||||
return fmt.Errorf("grant index is required")
|
||||
return fmt.Errorf("Grant index is required.")
|
||||
}
|
||||
|
||||
if *dsid == 0 {
|
||||
fmt.Fprintln(os.Stderr, "Error: data space ID is required")
|
||||
fs.PrintDefaults()
|
||||
return fmt.Errorf("data space ID is required")
|
||||
return fmt.Errorf("Data space ID is required.")
|
||||
}
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
grantAddParams := grantAddParams{
|
||||
@@ -86,13 +80,11 @@ func doGrantAdd(params grantAddParams) error {
|
||||
|
||||
res, err := params.saasHttp.GrantAdd(saasReq)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Grant Add error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "Grant add failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
grantRes := res.GetGrantAddRes()
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
@@ -26,8 +25,7 @@ func RunGrantDelete(args ...string) error {
|
||||
grantIndex := paramGrantIndex(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 {
|
||||
@@ -36,27 +34,23 @@ func RunGrantDelete(args ...string) error {
|
||||
}
|
||||
|
||||
if *dsid == 0 {
|
||||
fmt.Fprintln(os.Stderr, "Error: data space ID is required")
|
||||
fs.PrintDefaults()
|
||||
return fmt.Errorf("data space ID is required")
|
||||
return fmt.Errorf("data space ID is required.")
|
||||
}
|
||||
|
||||
if *srtaAccountId == 0 {
|
||||
fmt.Fprintln(os.Stderr, "Error: sRTA account ID is required")
|
||||
fs.PrintDefaults()
|
||||
return fmt.Errorf("sRTA account ID is required")
|
||||
return fmt.Errorf("sRTA account ID is required.")
|
||||
}
|
||||
|
||||
if *grantIndex == "" {
|
||||
fmt.Fprintln(os.Stderr, "Error: grant index is required")
|
||||
fs.PrintDefaults()
|
||||
return fmt.Errorf("grant index is required")
|
||||
return fmt.Errorf("grant index is required.")
|
||||
}
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
grantDeleteParams := grantDeleteParams{
|
||||
@@ -86,13 +80,11 @@ func doGrantDelete(params grantDeleteParams) error {
|
||||
|
||||
res, err := params.saasHttp.GrantDelete(saasReq)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Grant Delete error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "Grant delete failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
grantRes := res.GetGrantDeleteRes()
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
@@ -20,8 +19,7 @@ func RunGrantList(args ...string) error {
|
||||
cfgFile := paramConfig(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 {
|
||||
@@ -31,8 +29,7 @@ func RunGrantList(args ...string) error {
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
grantListParams := grantListParams{
|
||||
@@ -55,13 +52,11 @@ func doGrantList(params grantListParams) error {
|
||||
|
||||
res, err := params.saasHttp.GrantList(saasReq)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Grant List error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "Grant list failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
grantRes := res.GetGrantListRes()
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
@@ -20,8 +19,7 @@ func RunInfo(args ...string) error {
|
||||
cfgFile := paramConfig(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 {
|
||||
@@ -31,8 +29,7 @@ func RunInfo(args ...string) error {
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
infoParams := infoParams{
|
||||
@@ -53,19 +50,16 @@ func doInfo(infoParams infoParams) error {
|
||||
}
|
||||
|
||||
res, err := infoParams.saasHttp.Info(saasReq)
|
||||
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Info error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "info failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
infoRes := res.GetInfoRes()
|
||||
|
||||
fmt.Printf("info res: %v\n", protojson.Format(infoRes))
|
||||
fmt.Printf("Info res: %v\n", protojson.Format(infoRes))
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
|
||||
func main() {
|
||||
if err := Run(os.Args[1:]...); err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
@@ -26,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":
|
||||
@@ -45,8 +48,6 @@ func Run(args ...string) error {
|
||||
case "daemon":
|
||||
return RunDaemon(args...)
|
||||
default:
|
||||
err := fmt.Errorf(`unknown command "%v"`+"\n"+`Run 'saastool help' for usage`, name)
|
||||
fmt.Fprintln(os.Stderr, err.Error())
|
||||
return err
|
||||
return fmt.Errorf(`Unknown command "%v"`+"\n"+`Run 'saastool help' for usage`, name)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
@@ -32,8 +31,7 @@ func RunRead(args ...string) error {
|
||||
userids := paramUserids(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
// 切割字符串
|
||||
@@ -44,15 +42,13 @@ func RunRead(args ...string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
if strings.ToLower(*ds) == "openid" && len(*appid) == 0 {
|
||||
fmt.Fprintln(os.Stderr, "appid must be set when data space is openid")
|
||||
return nil
|
||||
if strings.ToLower(*ds) == "wuid" && len(*appid) == 0 {
|
||||
return fmt.Errorf("Appid must be set when data space is wuid.")
|
||||
}
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "load config file error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
readParams := readParams{
|
||||
@@ -92,18 +88,16 @@ func doRead(readParams readParams) error {
|
||||
read.ReadItems = saasReadItems
|
||||
|
||||
res, err := readParams.saasHttp.Read(saasReq)
|
||||
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit read error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.GetCode() != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, protojson.Format(res))
|
||||
return err
|
||||
} else {
|
||||
fmt.Println(protojson.Format(res))
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
readRes := res.GetReadRes()
|
||||
fmt.Printf("read res: %v\n", protojson.Format(readRes))
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
@@ -2,7 +2,6 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -13,8 +12,8 @@ func RunScript(args ...string) error {
|
||||
switch name {
|
||||
case "", "help":
|
||||
return RunScriptHelp(args...)
|
||||
case "run":
|
||||
return RunScriptRun(args...)
|
||||
case "debug", "run":
|
||||
return RunScriptDebug(args...)
|
||||
case "create":
|
||||
return RunScriptCreate(args...)
|
||||
case "list":
|
||||
@@ -26,10 +25,7 @@ func RunScript(args ...string) error {
|
||||
case "use":
|
||||
return RunScriptUse(args...)
|
||||
default:
|
||||
err := fmt.Errorf(`unknown command "%s"`+"\n"+`Run 'saastool script help' for usage`, name)
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
|
||||
return err
|
||||
return fmt.Errorf(`Unknown command "%s"`+"\n"+`Run 'saastool script help' for usage`, name)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +38,7 @@ const scriptUsage = `
|
||||
Usage: saastool script COMMAND [OPTIONS]
|
||||
|
||||
Commands:
|
||||
run Run lua script test on server
|
||||
debug Debug lua script on server
|
||||
create Create lua script on server
|
||||
list List all scripts on server
|
||||
delete Delete a script from server
|
||||
|
||||
@@ -25,8 +25,7 @@ func RunScriptCreate(args ...string) error {
|
||||
luaName := paramName(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 || len(*luaFile) == 0 || len(*luaName) == 0 {
|
||||
@@ -36,21 +35,18 @@ func RunScriptCreate(args ...string) error {
|
||||
|
||||
file, err := os.Open(*luaFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "lua file error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Lua file open error: %w", err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
body, err := io.ReadAll(file)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "lua file read error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Lua file read error: %w", err)
|
||||
}
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
scriptCreateParams := scriptCreateParams{
|
||||
@@ -78,13 +74,11 @@ func doScriptCreate(scriptCreateParams scriptCreateParams) error {
|
||||
|
||||
res, err := scriptCreateParams.saasHttp.ScriptCreate(saasReq)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Create Script error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "script create failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
scriptRes := res.GetScriptCreateRes()
|
||||
|
||||
@@ -11,23 +11,22 @@ import (
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
)
|
||||
|
||||
type scriptRunParams struct {
|
||||
type scriptDebugParams struct {
|
||||
luaScript string
|
||||
did string
|
||||
os saasapi.OS
|
||||
saasHttp *saashttp.SaasClient
|
||||
}
|
||||
|
||||
func RunScriptRun(args ...string) error {
|
||||
fs := flag.NewFlagSet("run", flag.ExitOnError)
|
||||
func RunScriptDebug(args ...string) error {
|
||||
fs := flag.NewFlagSet("debug", flag.ExitOnError)
|
||||
cfgFile := paramConfig(fs)
|
||||
luaFile := paramLua(fs)
|
||||
did := paramDid(fs)
|
||||
tos := paramOS(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 || len(*luaFile) == 0 || len(*did) == 0 {
|
||||
@@ -36,30 +35,27 @@ func RunScriptRun(args ...string) error {
|
||||
}
|
||||
|
||||
if !(*tos == 1 || *tos == 2 || *tos == 7) {
|
||||
fmt.Fprintln(os.Stderr, "OS error")
|
||||
fs.PrintDefaults()
|
||||
return nil
|
||||
}
|
||||
|
||||
file, err := os.Open(*luaFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "lua file error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Lua file open error: %w", err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
body, err := io.ReadAll(file)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "lua file read error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Lua file read error: %w", err)
|
||||
}
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
scriptRunParams := scriptRunParams{
|
||||
scriptDebugParams := scriptDebugParams{
|
||||
luaScript: string(body),
|
||||
did: *did,
|
||||
os: saasapi.OS(*tos),
|
||||
@@ -70,43 +66,40 @@ func RunScriptRun(args ...string) error {
|
||||
},
|
||||
}
|
||||
|
||||
return doScriptRun(scriptRunParams)
|
||||
return doScriptDebug(scriptDebugParams)
|
||||
}
|
||||
|
||||
func doScriptRun(scriptRunParams scriptRunParams) error {
|
||||
func doScriptDebug(scriptDebugParams scriptDebugParams) error {
|
||||
saasReq := &saasapi.SaasReq{
|
||||
Cmd: &saasapi.SaasReq_ScriptRun{
|
||||
ScriptRun: &saasapi.ScriptRun{
|
||||
LuaScript: scriptRunParams.luaScript,
|
||||
ServerDid: scriptRunParams.did,
|
||||
Os: scriptRunParams.os,
|
||||
Cmd: &saasapi.SaasReq_ScriptDebug{
|
||||
ScriptDebug: &saasapi.ScriptDebug{
|
||||
LuaScript: scriptDebugParams.luaScript,
|
||||
ServerDid: scriptDebugParams.did,
|
||||
Os: scriptDebugParams.os,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
res, err := scriptRunParams.saasHttp.ScriptRun(saasReq)
|
||||
res, err := scriptDebugParams.saasHttp.ScriptDebug(saasReq)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "run script error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
err = fmt.Errorf("run script failed. code:%v, status:%v", res.Code, res.Status)
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
return err
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
scriptRunRes := res.GetScriptRunRes()
|
||||
scriptDebugRes := res.GetScriptDebugRes()
|
||||
fmt.Println("ERROROUT_OUTPUT:")
|
||||
fmt.Print(scriptRunRes.GetErrorOutput())
|
||||
fmt.Print(scriptDebugRes.GetErrorOutput())
|
||||
fmt.Println()
|
||||
fmt.Println("PRINT_OUTPUT:")
|
||||
fmt.Print(scriptRunRes.GetPrintOutput())
|
||||
fmt.Print(scriptDebugRes.GetPrintOutput())
|
||||
fmt.Println()
|
||||
fmt.Println("DATASPACE_OUTPUT:")
|
||||
fmt.Print(scriptRunRes.GetDataspaceOut())
|
||||
fmt.Print(scriptDebugRes.GetDataspaceOut())
|
||||
fmt.Println()
|
||||
fmt.Println("TARGETS_OUTPUT:")
|
||||
fmt.Print(scriptRunRes.GetTargetsOutput())
|
||||
fmt.Print(scriptDebugRes.GetTargetsOutput())
|
||||
return nil
|
||||
}
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
@@ -22,8 +21,7 @@ func RunScriptDelete(args ...string) error {
|
||||
luaName := paramName(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 || len(*luaName) == 0 {
|
||||
@@ -33,8 +31,7 @@ func RunScriptDelete(args ...string) error {
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
scriptDeleteParams := scriptDeleteParams{
|
||||
@@ -60,13 +57,11 @@ func doScriptDelete(scriptDeleteParams scriptDeleteParams) error {
|
||||
|
||||
res, err := scriptDeleteParams.saasHttp.ScriptDelete(saasReq)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Delete Script error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "script delete failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
scriptRes := res.GetScriptDeleteRes()
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
@@ -22,8 +21,7 @@ func RunScriptGet(args ...string) error {
|
||||
luaName := paramName(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 || len(*luaName) == 0 {
|
||||
@@ -33,8 +31,7 @@ func RunScriptGet(args ...string) error {
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
scriptGetParams := scriptGetParams{
|
||||
@@ -60,13 +57,11 @@ func doScriptGet(scriptGetParams scriptGetParams) error {
|
||||
|
||||
res, err := scriptGetParams.saasHttp.ScriptGet(saasReq)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Get Script error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "script get failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
scriptRes := res.GetScriptGetRes()
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
@@ -20,8 +19,7 @@ func RunScriptList(args ...string) error {
|
||||
cfgFile := paramConfig(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 {
|
||||
@@ -31,8 +29,7 @@ func RunScriptList(args ...string) error {
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
scriptListParams := scriptListParams{
|
||||
@@ -55,13 +52,11 @@ func doScriptList(scriptListParams scriptListParams) error {
|
||||
|
||||
res, err := scriptListParams.saasHttp.ScriptList(saasReq)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit List Script error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "script list failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
scriptRes := res.GetScriptListRes()
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
@@ -22,8 +21,7 @@ func RunScriptUse(args ...string) error {
|
||||
luaName := paramName(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 || len(*luaName) == 0 {
|
||||
@@ -33,8 +31,7 @@ func RunScriptUse(args ...string) error {
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
scriptUseParams := scriptUseParams{
|
||||
@@ -60,13 +57,11 @@ func doScriptUse(scriptUseParams scriptUseParams) error {
|
||||
|
||||
res, err := scriptUseParams.saasHttp.ScriptUse(saasReq)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Use Script error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "script use failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
scriptRes := res.GetScriptUseRes()
|
||||
|
||||
@@ -2,7 +2,6 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -20,10 +19,7 @@ func RunTarget(args ...string) error {
|
||||
case "delete":
|
||||
return RunTargetDelete(args...)
|
||||
default:
|
||||
err := fmt.Errorf(`unknown command "%s"`+"\n"+`Run 'saastool target help' for usage`, name)
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
|
||||
return err
|
||||
return fmt.Errorf(`Unknown command "%s"`+"\n"+`Run 'saastool target help' for usage`, name)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
@@ -24,8 +23,7 @@ func RunTargetCreate(args ...string) error {
|
||||
targetDesc := paramTaskDesc(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 || len(*targetId) == 0 {
|
||||
@@ -35,8 +33,7 @@ func RunTargetCreate(args ...string) error {
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
createTargetParams := createTargetParams{
|
||||
@@ -63,15 +60,12 @@ func doTargetCreate(createTargetParams createTargetParams) error {
|
||||
}
|
||||
|
||||
res, err := createTargetParams.saasHttp.TargetCreate(saasReq)
|
||||
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Create Target error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "target create failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
targetRes := res.GetTargetCreateRes()
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
@@ -22,8 +21,7 @@ func RunTargetDelete(args ...string) error {
|
||||
targetId := paramTarget(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 || len(*targetId) == 0 {
|
||||
@@ -33,8 +31,7 @@ func RunTargetDelete(args ...string) error {
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
deleteTargetParams := deleteTargetParams{
|
||||
@@ -60,14 +57,11 @@ func doTargetDelete(deleteTargetParams deleteTargetParams) error {
|
||||
|
||||
res, err := deleteTargetParams.saasHttp.TargetDelete(saasReq)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Target delete error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
err = fmt.Errorf("target delete failed. code:%v, status:%v", res.Code, res.Status)
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
return err
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
targetDeleteRes := res.GetTargetDeleteRes()
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
@@ -25,8 +24,7 @@ func RunTargetList(args ...string) error {
|
||||
listBinds := paramListBinds(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 {
|
||||
@@ -42,8 +40,7 @@ func RunTargetList(args ...string) error {
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
listTargetParams := listTargetParams{
|
||||
@@ -70,15 +67,12 @@ func doTargetList(listTargetParams listTargetParams) error {
|
||||
}
|
||||
|
||||
res, err := listTargetParams.saasHttp.TargetList(saasReq)
|
||||
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit List Target error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "Target list failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
targetRes := res.GetTargetListRes()
|
||||
|
||||
@@ -2,7 +2,6 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -30,10 +29,7 @@ func RunTask(args ...string) error {
|
||||
case "run":
|
||||
return RunTaskRun(args...)
|
||||
default:
|
||||
err := fmt.Errorf(`unknown command "%s"`+"\n"+`Run 'saastool task help' for usage`, name)
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
|
||||
return err
|
||||
return fmt.Errorf(`Unknown command "%s"`+"\n"+`Run 'saastool task help' for usage`, name)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,8 +23,7 @@ func RunTaskCreate(args ...string) error {
|
||||
hashFile := paramInputHashFile(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 || len(*hashFile) == 0 {
|
||||
@@ -34,8 +33,7 @@ func RunTaskCreate(args ...string) error {
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
createTaskParams := createTaskParams{
|
||||
@@ -50,12 +48,11 @@ func RunTaskCreate(args ...string) error {
|
||||
|
||||
taskBuf, err := os.ReadFile(createTaskParams.hashFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "open task file error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("open task file error: %w", err)
|
||||
}
|
||||
|
||||
if err = protojson.Unmarshal(taskBuf, createTaskParams.task); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "parse task file error", "err", err)
|
||||
return fmt.Errorf("parse task file error: %w", err)
|
||||
}
|
||||
|
||||
return doTaskCreate(createTaskParams)
|
||||
@@ -69,15 +66,12 @@ func doTaskCreate(createTaskParams createTaskParams) error {
|
||||
}
|
||||
|
||||
res, err := createTaskParams.saasHttp.TaskCreate(saasReq)
|
||||
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Create Task error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "task create failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
taskRes := res.GetTaskCreateRes()
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
@@ -22,8 +21,7 @@ func RunTaskDelete(args ...string) error {
|
||||
sha256 := paramSha256(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 || len(*sha256) == 0 {
|
||||
@@ -33,8 +31,7 @@ func RunTaskDelete(args ...string) error {
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
deleteTaskParams := deleteTaskParams{
|
||||
@@ -46,15 +43,11 @@ func RunTaskDelete(args ...string) error {
|
||||
},
|
||||
}
|
||||
|
||||
taskRes, err := doTaskDelete(deleteTaskParams)
|
||||
return doTaskDelete(deleteTaskParams)
|
||||
|
||||
if err != nil {
|
||||
fmt.Printf("task res: %v\n", protojson.Format(taskRes))
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func doTaskDelete(deleteTaskParams deleteTaskParams) (*saasapi.Task, error) {
|
||||
func doTaskDelete(deleteTaskParams deleteTaskParams) error {
|
||||
saasReq := &saasapi.SaasReq{
|
||||
Cmd: &saasapi.SaasReq_TaskDelete{
|
||||
TaskDelete: &saasapi.TaskDelete{
|
||||
@@ -65,17 +58,14 @@ func doTaskDelete(deleteTaskParams deleteTaskParams) (*saasapi.Task, error) {
|
||||
|
||||
res, err := deleteTaskParams.saasHttp.TaskDelete(saasReq)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Task delete error", "err", err)
|
||||
return nil, err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
err = fmt.Errorf("task delete failed. code:%v, status:%v", res.Code, res.Status)
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
return nil, err
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
taskRes := res.GetTaskDeleteRes()
|
||||
fmt.Println(protojson.Format(taskRes))
|
||||
return taskRes, nil
|
||||
fmt.Printf("task res: %v\n", protojson.Format(taskRes))
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -24,8 +24,7 @@ func RunTaskDownload(args ...string) error {
|
||||
destPath := paramDestPath(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 || len(*sha256) == 0 || len(*destPath) == 0 {
|
||||
@@ -35,8 +34,7 @@ func RunTaskDownload(args ...string) error {
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
downloadTaskParams := downloadTaskParams{
|
||||
@@ -63,9 +61,7 @@ func doTaskDownload(downloadTaskParams downloadTaskParams) error {
|
||||
}
|
||||
|
||||
if len(taskInfo.GetSourcePath()) == 0 {
|
||||
err = fmt.Errorf("task download failed. task info source path is empty")
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
return err
|
||||
return fmt.Errorf("download task failed: %w, task info source path is empty", err)
|
||||
}
|
||||
|
||||
totalFiles := len(taskInfo.GetTaskFileInfos())
|
||||
@@ -105,9 +101,7 @@ func doTaskDownload(downloadTaskParams downloadTaskParams) error {
|
||||
}
|
||||
|
||||
if blockRes.GetCode() != saasapi.ErrorCode_SUCC {
|
||||
err = fmt.Errorf("download block error, code %d, msg %s", blockRes.GetCode(), blockRes.GetStatus())
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
return err
|
||||
return fmt.Errorf("download block error, code %d, msg %s", blockRes.GetCode(), blockRes.GetStatus())
|
||||
} else {
|
||||
fmt.Printf("download block success. file: %v, sha256 %v. block %v/%v, file %v/%v\n",
|
||||
finfo.GetFileName(), binfo.GetBlockSha256(),
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
@@ -22,8 +21,7 @@ func RunTaskInfo(args ...string) error {
|
||||
sha256 := paramSha256(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 || len(*sha256) == 0 {
|
||||
@@ -33,8 +31,7 @@ func RunTaskInfo(args ...string) error {
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
infoTaskParams := infoTaskParams{
|
||||
@@ -46,12 +43,9 @@ func RunTaskInfo(args ...string) error {
|
||||
},
|
||||
}
|
||||
|
||||
taskRes, err := doTaskInfo(infoTaskParams)
|
||||
|
||||
if err != nil {
|
||||
fmt.Printf("task res: %v\n", protojson.Format(taskRes))
|
||||
}
|
||||
_, err = doTaskInfo(infoTaskParams)
|
||||
return err
|
||||
|
||||
}
|
||||
|
||||
func doTaskInfo(infoTaskParams infoTaskParams) (*saasapi.Task, error) {
|
||||
@@ -65,17 +59,15 @@ func doTaskInfo(infoTaskParams infoTaskParams) (*saasapi.Task, error) {
|
||||
|
||||
res, err := infoTaskParams.saasHttp.TaskInfo(saasReq)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Task info error", "err", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
err = fmt.Errorf("task info failed. code:%v, status:%v", res.Code, res.Status)
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
taskRes := res.GetTaskInfoRes()
|
||||
fmt.Println(protojson.Format(taskRes))
|
||||
fmt.Printf("task res: %v\n", protojson.Format(taskRes))
|
||||
|
||||
return taskRes, nil
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
@@ -22,8 +21,7 @@ func RunTaskList(args ...string) error {
|
||||
filter := paramFilterStatus(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 {
|
||||
@@ -33,8 +31,7 @@ func RunTaskList(args ...string) error {
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
listTaskParams := listTaskParams{
|
||||
@@ -71,15 +68,12 @@ func doTaskList(listTaskParams listTaskParams) error {
|
||||
}
|
||||
|
||||
res, err := listTaskParams.saasHttp.TaskList(saasReq)
|
||||
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit List Task error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
fmt.Fprintln(os.Stderr, "task list failed", "code", res.Code, "status", res.Status)
|
||||
return nil
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
taskRes := res.GetTaskListRes()
|
||||
|
||||
@@ -55,8 +55,7 @@ func RunTaskMake(args ...string) error {
|
||||
ds := paramDataSpaceId(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 || len(*sourcePath) == 0 || len(*hashFile) == 0 || len(*ds) == 0 {
|
||||
@@ -64,9 +63,8 @@ func RunTaskMake(args ...string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
if strings.ToLower(*ds) == "openid" && len(*appid) == 0 {
|
||||
fmt.Fprintln(os.Stderr, "appid must be set when data space is openid")
|
||||
return nil
|
||||
if strings.ToLower(*ds) == "wuid" && len(*appid) == 0 {
|
||||
return fmt.Errorf("appid must be set when data space is wuid")
|
||||
}
|
||||
|
||||
blockSizeNum, err := ParseByteSize(*blockSize)
|
||||
@@ -77,8 +75,7 @@ func RunTaskMake(args ...string) error {
|
||||
}
|
||||
|
||||
if blockSizeNum < blockSizeMin || blockSizeNum > blockSizeMax {
|
||||
fmt.Fprintln(os.Stderr, "block size error", "min", blockSizeMin, "max", blockSizeMax)
|
||||
return nil
|
||||
return fmt.Errorf("block size error. min: %v, max: %v, current: %v", blockSizeMin, blockSizeMax, blockSizeNum)
|
||||
}
|
||||
|
||||
makeTaskParams := &makeTaskParams{
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"git.algo.com.cn/public/saasapi"
|
||||
"git.algo.com.cn/public/saasapi/pkg/saashttp"
|
||||
@@ -22,8 +21,7 @@ func RunTaskRun(args ...string) error {
|
||||
sha256 := paramSha256(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 || len(*sha256) == 0 {
|
||||
@@ -33,8 +31,7 @@ func RunTaskRun(args ...string) error {
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
runTaskParams := runTaskParams{
|
||||
@@ -61,14 +58,11 @@ func doTaskRun(runTaskParams runTaskParams) error {
|
||||
|
||||
res, err := runTaskParams.saasHttp.TaskRun(saasReq)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit Task run error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.Code != saasapi.ErrorCode_SUCC {
|
||||
err = fmt.Errorf("task run failed. code:%v, status:%v", res.Code, res.Status)
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
return err
|
||||
return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
|
||||
}
|
||||
|
||||
fmt.Println("task run success", protojson.Format(res))
|
||||
|
||||
@@ -22,8 +22,7 @@ func RunTaskUpload(args ...string) error {
|
||||
sha256 := paramSha256(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 || len(*sha256) == 0 {
|
||||
@@ -33,8 +32,7 @@ func RunTaskUpload(args ...string) error {
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
uploadTaskParams := uploadTaskParams{
|
||||
@@ -94,9 +92,7 @@ func doTaskUpload(uploadTaskParams uploadTaskParams) error {
|
||||
}
|
||||
|
||||
if blockRes.GetCode() != saasapi.ErrorCode_SUCC {
|
||||
err = fmt.Errorf("upload block error, code %d, msg %s", blockRes.GetCode(), blockRes.GetStatus())
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
return err
|
||||
return fmt.Errorf("upload block error, code %d, msg %s", blockRes.GetCode(), blockRes.GetStatus())
|
||||
} else {
|
||||
fmt.Printf("upload block success. file: %v, sha256 %v. block %v/%v, file %v/%v\n",
|
||||
finfo.GetFileName(), binfo.GetBlockSha256(),
|
||||
|
||||
@@ -34,8 +34,7 @@ func RunWrite(args ...string) error {
|
||||
clear := paramClear(fs)
|
||||
|
||||
if err := fs.Parse(args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("Command line parse error: %w", err)
|
||||
}
|
||||
|
||||
if fs.NArg() > 0 || len(*sourcePath) == 0 || len(*ds) == 0 {
|
||||
@@ -43,15 +42,14 @@ func RunWrite(args ...string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
if strings.ToLower(*ds) == "openid" && len(*appid) == 0 {
|
||||
fmt.Fprintln(os.Stderr, "appid must be set when data space is openid")
|
||||
if strings.ToLower(*ds) == "wuid" && len(*appid) == 0 {
|
||||
fmt.Fprintln(os.Stderr, "appid must be set when data space is wuid")
|
||||
return nil
|
||||
}
|
||||
|
||||
cfg, err := LoadConfigFile(*cfgFile)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "load config file error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("LoadConfigFile error: %w", err)
|
||||
}
|
||||
|
||||
writeParams := writeParams{
|
||||
@@ -74,8 +72,7 @@ func RunWrite(args ...string) error {
|
||||
func doWrite(writeParams writeParams) error {
|
||||
fsInfo, err := os.Stat(writeParams.sourcePath)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "file stat error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("file stat error: %w", err)
|
||||
}
|
||||
|
||||
if !fsInfo.IsDir() {
|
||||
@@ -86,8 +83,7 @@ func doWrite(writeParams writeParams) error {
|
||||
// 读取目录下信息
|
||||
dirEntry, err := os.ReadDir(writeParams.sourcePath)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "read dir error", "err", err)
|
||||
return err
|
||||
return fmt.Errorf("read dir error: %w", err)
|
||||
}
|
||||
|
||||
// 遍历目录
|
||||
@@ -107,8 +103,7 @@ func doLoadFileToWrite(writeParams writeParams) error {
|
||||
// 读取文件并按行遍历,以\t分割为两列,第一列为userid,第二列解析为string数组
|
||||
file, err := os.Open(writeParams.sourcePath)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "open file error", "file", writeParams.sourcePath, "err", err)
|
||||
return err
|
||||
return fmt.Errorf("open file error: %w. file: %v", err, writeParams.sourcePath)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
@@ -127,8 +122,7 @@ func doLoadFileToWrite(writeParams writeParams) error {
|
||||
}
|
||||
saasWriteItem := &saasapi.WriteItem{}
|
||||
if err = protojson.Unmarshal([]byte(line), saasWriteItem); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "protojson unmashal error", "file", writeParams.sourcePath, "line", total, "err", err)
|
||||
return err
|
||||
return fmt.Errorf("protojson unmashal error: %w. file: %v line: %v", err, writeParams.sourcePath, total)
|
||||
}
|
||||
|
||||
saasWriteItems = append(saasWriteItems, saasWriteItem)
|
||||
@@ -171,15 +165,12 @@ func submitWrite(writeParams writeParams, saasWriteCmds []*saasapi.WriteItem) (e
|
||||
write.WriteItems = saasWriteCmds
|
||||
|
||||
res, err := writeParams.saasHttp.Write(saasReq)
|
||||
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "submit write error", "err", err)
|
||||
return
|
||||
return 0, fmt.Errorf("Submit Command error: %w", err)
|
||||
}
|
||||
|
||||
if res.GetCode() != saasapi.ErrorCode_SUCC {
|
||||
err = fmt.Errorf("write failed. code:%v, status:%v", res.GetCode(), res.GetStatus())
|
||||
fmt.Fprintln(os.Stderr, protojson.Format(res))
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -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"
|
||||
@@ -18,7 +19,7 @@ const (
|
||||
targetDeletePath = "/saas/target/delete"
|
||||
bindSetPath = "/saas/bind/set"
|
||||
bindDeletePath = "/saas/bind/delete"
|
||||
scriptRunPath = "/saas/script/run"
|
||||
scriptDebugPath = "/saas/script/debug"
|
||||
scriptCreatePath = "/saas/script/create"
|
||||
scriptListPath = "/saas/script/list"
|
||||
scriptDeletePath = "/saas/script/delete"
|
||||
@@ -45,6 +46,7 @@ type ApiUrls struct {
|
||||
WritePath string
|
||||
ReadPath string
|
||||
ColumnWritePath string
|
||||
ResetDSPath string
|
||||
TaskCreatePath string
|
||||
TaskListPath string
|
||||
TaskInfoPath string
|
||||
@@ -57,7 +59,7 @@ type ApiUrls struct {
|
||||
TargetDeletePath string
|
||||
BindSetPath string
|
||||
BindDeletePath string
|
||||
ScriptRunPath string
|
||||
ScriptDebugPath string
|
||||
ScriptCreatePath string
|
||||
ScriptListPath string
|
||||
ScriptDeletePath 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 {
|
||||
@@ -162,10 +169,10 @@ func InitAPIUrl(c *ApiUrls) *ApiUrls {
|
||||
r.BindDeletePath = bindDeletePath
|
||||
}
|
||||
|
||||
if c.ScriptRunPath != "" {
|
||||
r.ScriptRunPath = c.ScriptRunPath
|
||||
if c.ScriptDebugPath != "" {
|
||||
r.ScriptDebugPath = c.ScriptDebugPath
|
||||
} else {
|
||||
r.ScriptRunPath = scriptRunPath
|
||||
r.ScriptDebugPath = scriptDebugPath
|
||||
}
|
||||
|
||||
if c.ScriptCreatePath != "" {
|
||||
|
||||
@@ -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)
|
||||
@@ -113,8 +118,8 @@ func (c *SaasClient) BindDelete(saasReq *saasapi.SaasReq) (saasRes *saasapi.Saas
|
||||
return c.post(postUrl, saasReq)
|
||||
}
|
||||
|
||||
func (c *SaasClient) ScriptRun(saasReq *saasapi.SaasReq) (saasRes *saasapi.SaasRes, err error) {
|
||||
postUrl := c.makeUrl(c.ApiUrls.BaseUrl, c.ApiUrls.ScriptRunPath)
|
||||
func (c *SaasClient) ScriptDebug(saasReq *saasapi.SaasReq) (saasRes *saasapi.SaasRes, err error) {
|
||||
postUrl := c.makeUrl(c.ApiUrls.BaseUrl, c.ApiUrls.ScriptDebugPath)
|
||||
return c.post(postUrl, saasReq)
|
||||
}
|
||||
|
||||
@@ -186,14 +191,12 @@ func (c *SaasClient) makeUrl(baseUrl, path string, params ...string) string {
|
||||
func (c *SaasClient) post(url string, saasReq *saasapi.SaasReq) (saasRes *saasapi.SaasRes, err error) {
|
||||
postBuf, err := proto.Marshal(saasReq)
|
||||
if err != nil {
|
||||
fmt.Println("marshal saas req error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("Marshal saas req error. %w", err)
|
||||
}
|
||||
|
||||
req, err := http.NewRequest("POST", url, bytes.NewBuffer(postBuf))
|
||||
if err != nil {
|
||||
fmt.Println("http new request error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("Http new request error. %w", err)
|
||||
}
|
||||
|
||||
timeStamp := strconv.FormatInt(time.Now().Unix(), 10)
|
||||
@@ -206,30 +209,30 @@ func (c *SaasClient) post(url string, saasReq *saasapi.SaasReq) (saasRes *saasap
|
||||
req.Header.Add("Content-Type", "application/x-protobuf")
|
||||
res, err := c.Client.Do(req)
|
||||
if err != nil {
|
||||
fmt.Println("http send error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("Http do request error. %w", err)
|
||||
}
|
||||
|
||||
defer res.Body.Close()
|
||||
|
||||
if res.StatusCode != 200 {
|
||||
return nil, fmt.Errorf("NOT 200. %v", res.StatusCode)
|
||||
}
|
||||
|
||||
resBody, err := io.ReadAll(res.Body)
|
||||
if err != nil {
|
||||
fmt.Println("http read body error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("Http read body error. %w", err)
|
||||
}
|
||||
|
||||
saasRes = &saasapi.SaasRes{}
|
||||
if c.ResponseEncoder == RESPONSE_ENCODER_PROTOBUF {
|
||||
err = proto.Unmarshal(resBody, saasRes)
|
||||
if err != nil {
|
||||
fmt.Println("unmarshal response body to protobuf error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("unmarshal response body to protobuf error. %w", err)
|
||||
}
|
||||
} else {
|
||||
err = json.Unmarshal(resBody, saasRes)
|
||||
if err != nil {
|
||||
fmt.Println("unmarshal response body to json error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("unmarshal response body to json error. %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,39 +241,36 @@ func (c *SaasClient) post(url string, saasReq *saasapi.SaasReq) (saasRes *saasap
|
||||
|
||||
func (c *SaasClient) upload(url string, file *os.File, offset int64, size int) (saasRes *saasapi.SaasRes, err error) {
|
||||
if file == nil {
|
||||
return nil, fmt.Errorf("file is nil")
|
||||
return nil, fmt.Errorf("file is nil.")
|
||||
}
|
||||
|
||||
if size <= 0 {
|
||||
return nil, fmt.Errorf("size is invalid")
|
||||
return nil, fmt.Errorf("size is invalid.")
|
||||
}
|
||||
|
||||
buf := make([]byte, size)
|
||||
n, err := file.ReadAt(buf, offset)
|
||||
if err != nil {
|
||||
fmt.Println("read file error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("Read file error. %w", err)
|
||||
}
|
||||
if n != size {
|
||||
return nil, fmt.Errorf("read file error")
|
||||
return nil, fmt.Errorf("Read file size not match. %v", n)
|
||||
}
|
||||
|
||||
var gzBuf bytes.Buffer
|
||||
gz := gzip.NewWriter(&gzBuf)
|
||||
|
||||
if _, err := gz.Write(buf); err != nil {
|
||||
fmt.Println("gzip write error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("GZip write error. %w", err)
|
||||
}
|
||||
|
||||
if err = gz.Close(); err != nil {
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("GZip close error. %w", err)
|
||||
}
|
||||
|
||||
req, err := http.NewRequest("POST", url, bytes.NewBuffer(gzBuf.Bytes()))
|
||||
if err != nil {
|
||||
fmt.Println("http new request error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("Http new request error. %w", err)
|
||||
}
|
||||
|
||||
timeStamp := strconv.FormatInt(time.Now().Unix(), 10)
|
||||
@@ -284,30 +284,30 @@ func (c *SaasClient) upload(url string, file *os.File, offset int64, size int) (
|
||||
req.Header.Add("Content-Encoding", "gzip")
|
||||
res, err := c.Client.Do(req)
|
||||
if err != nil {
|
||||
fmt.Println("http send error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("Http do request error. %w", err)
|
||||
}
|
||||
|
||||
defer res.Body.Close()
|
||||
|
||||
if res.StatusCode != 200 {
|
||||
return nil, fmt.Errorf("NOT 200. %v", res.StatusCode)
|
||||
}
|
||||
|
||||
resBody, err := io.ReadAll(res.Body)
|
||||
if err != nil {
|
||||
fmt.Println("http read body error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("http read body error. %w", err)
|
||||
}
|
||||
|
||||
saasRes = &saasapi.SaasRes{}
|
||||
if c.ResponseEncoder == RESPONSE_ENCODER_PROTOBUF {
|
||||
err = proto.Unmarshal(resBody, saasRes)
|
||||
if err != nil {
|
||||
fmt.Println("unmarshal response body to protobuf error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("unmarshal response body to protobuf error. %w", err)
|
||||
}
|
||||
} else {
|
||||
err = json.Unmarshal(resBody, saasRes)
|
||||
if err != nil {
|
||||
fmt.Println("unmarshal response body to json error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("unmarshal response body to json error. %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -316,17 +316,16 @@ func (c *SaasClient) upload(url string, file *os.File, offset int64, size int) (
|
||||
|
||||
func (c *SaasClient) download(url string, file *os.File, offset int64, size int) (saasRes *saasapi.SaasRes, err error) {
|
||||
if file == nil {
|
||||
return nil, fmt.Errorf("file is nil")
|
||||
return nil, fmt.Errorf("file is nil.")
|
||||
}
|
||||
|
||||
if size <= 0 {
|
||||
return nil, fmt.Errorf("size is invalid")
|
||||
return nil, fmt.Errorf("size is invalid.")
|
||||
}
|
||||
|
||||
req, err := http.NewRequest("GET", url, bytes.NewBuffer([]byte{}))
|
||||
if err != nil {
|
||||
fmt.Println("http new request error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("Http new request error. %w", err)
|
||||
}
|
||||
|
||||
timeStamp := strconv.FormatInt(time.Now().Unix(), 10)
|
||||
@@ -340,24 +339,20 @@ func (c *SaasClient) download(url string, file *os.File, offset int64, size int)
|
||||
|
||||
res, err := c.Client.Do(req)
|
||||
if err != nil {
|
||||
fmt.Println("http send error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("Http do request error. %w", err)
|
||||
}
|
||||
|
||||
defer res.Body.Close()
|
||||
|
||||
if res.StatusCode != 200 {
|
||||
err = fmt.Errorf("NOT 200. %v", res.StatusCode)
|
||||
fmt.Println("http state error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("http state error. %w", err)
|
||||
}
|
||||
|
||||
bodyReader := res.Body
|
||||
if strings.Contains(res.Header.Get("Content-Encoding"), "gzip") {
|
||||
gz, err := gzip.NewReader(res.Body)
|
||||
if err != nil {
|
||||
fmt.Println("gzip newreader error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("GZip newreader error. %w", err)
|
||||
}
|
||||
defer gz.Close()
|
||||
bodyReader = gz
|
||||
@@ -365,8 +360,7 @@ func (c *SaasClient) download(url string, file *os.File, offset int64, size int)
|
||||
|
||||
resBody, err := io.ReadAll(bodyReader)
|
||||
if err != nil {
|
||||
fmt.Println("read body error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("Http read body error. %w", err)
|
||||
}
|
||||
saasRes = &saasapi.SaasRes{}
|
||||
|
||||
@@ -374,22 +368,18 @@ func (c *SaasClient) download(url string, file *os.File, offset int64, size int)
|
||||
if len(resBody) == size {
|
||||
file.WriteAt(resBody, offset)
|
||||
} else {
|
||||
err = fmt.Errorf("body size error. body:%v, want:%v", len(resBody), size)
|
||||
fmt.Println("http read body error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("body size error. body:%v, want:%v", len(resBody), size)
|
||||
}
|
||||
} else {
|
||||
if c.ResponseEncoder == RESPONSE_ENCODER_PROTOBUF {
|
||||
err = proto.Unmarshal(resBody, saasRes)
|
||||
if err != nil {
|
||||
fmt.Println("unmarshal response body to protobuf error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("unmarshal response body to protobuf error. %w", err)
|
||||
}
|
||||
} else {
|
||||
err = json.Unmarshal(resBody, saasRes)
|
||||
if err != nil {
|
||||
fmt.Println("unmarshal response body to json error", err)
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("unmarshal response body to json error. %w", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user