优化error输出

This commit is contained in:
algotao
2026-01-11 17:24:11 +08:00
parent 5e102ea8e7
commit 369023b81d
45 changed files with 304 additions and 552 deletions

117
cmd.pb.go
View File

@@ -481,7 +481,7 @@ type SaasReq struct {
// *SaasReq_GrantList
// *SaasReq_GrantAdd
// *SaasReq_GrantDelete
// *SaasReq_ScriptRun
// *SaasReq_ScriptDebug
// *SaasReq_ScriptCreate
// *SaasReq_ScriptList
// *SaasReq_ScriptDelete
@@ -687,10 +687,10 @@ func (x *SaasReq) GetGrantDelete() *Grant {
return nil
}
func (x *SaasReq) GetScriptRun() *ScriptRun {
func (x *SaasReq) GetScriptDebug() *ScriptDebug {
if x != nil {
if x, ok := x.Cmd.(*SaasReq_ScriptRun); ok {
return x.ScriptRun
if x, ok := x.Cmd.(*SaasReq_ScriptDebug); ok {
return x.ScriptDebug
}
}
return nil
@@ -858,8 +858,8 @@ type SaasReq_GrantDelete struct {
GrantDelete *Grant `protobuf:"bytes,72,opt,name=grant_delete,json=grantDelete,proto3,oneof"` // 删除数据授权
}
type SaasReq_ScriptRun struct {
ScriptRun *ScriptRun `protobuf:"bytes,90,opt,name=script_run,json=scriptRun,proto3,oneof"` // 运行脚本
type SaasReq_ScriptDebug struct {
ScriptDebug *ScriptDebug `protobuf:"bytes,90,opt,name=script_debug,json=scriptDebug,proto3,oneof"` // 调试脚本
}
type SaasReq_ScriptCreate struct {
@@ -936,7 +936,7 @@ func (*SaasReq_GrantAdd) isSaasReq_Cmd() {}
func (*SaasReq_GrantDelete) isSaasReq_Cmd() {}
func (*SaasReq_ScriptRun) isSaasReq_Cmd() {}
func (*SaasReq_ScriptDebug) isSaasReq_Cmd() {}
func (*SaasReq_ScriptCreate) isSaasReq_Cmd() {}
@@ -2356,8 +2356,8 @@ func (x *Grant) GetDataspaceId() uint32 {
return 0
}
// ScriptRun 运行脚本
type ScriptRun struct {
// ScriptDebug 调试脚本
type ScriptDebug struct {
state protoimpl.MessageState `protogen:"open.v1"`
LuaScript string `protobuf:"bytes,1,opt,name=lua_script,json=luaScript,proto3" json:"lua_script,omitempty"` // 要调试的lua脚本
ServerDid string `protobuf:"bytes,2,opt,name=server_did,json=serverDid,proto3" json:"server_did,omitempty"` // 将从服务端读取该DID下的数据
@@ -2368,20 +2368,20 @@ type ScriptRun struct {
sizeCache protoimpl.SizeCache
}
func (x *ScriptRun) Reset() {
*x = ScriptRun{}
func (x *ScriptDebug) Reset() {
*x = ScriptDebug{}
mi := &file_cmd_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ScriptRun) String() string {
func (x *ScriptDebug) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ScriptRun) ProtoMessage() {}
func (*ScriptDebug) ProtoMessage() {}
func (x *ScriptRun) ProtoReflect() protoreflect.Message {
func (x *ScriptDebug) ProtoReflect() protoreflect.Message {
mi := &file_cmd_proto_msgTypes[25]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -2393,40 +2393,40 @@ func (x *ScriptRun) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
// Deprecated: Use ScriptRun.ProtoReflect.Descriptor instead.
func (*ScriptRun) Descriptor() ([]byte, []int) {
// Deprecated: Use ScriptDebug.ProtoReflect.Descriptor instead.
func (*ScriptDebug) Descriptor() ([]byte, []int) {
return file_cmd_proto_rawDescGZIP(), []int{25}
}
func (x *ScriptRun) GetLuaScript() string {
func (x *ScriptDebug) GetLuaScript() string {
if x != nil {
return x.LuaScript
}
return ""
}
func (x *ScriptRun) GetServerDid() string {
func (x *ScriptDebug) GetServerDid() string {
if x != nil {
return x.ServerDid
}
return ""
}
func (x *ScriptRun) GetAppid() string {
func (x *ScriptDebug) GetAppid() string {
if x != nil {
return x.Appid
}
return ""
}
func (x *ScriptRun) GetServerOpenid() string {
func (x *ScriptDebug) GetServerOpenid() string {
if x != nil {
return x.ServerOpenid
}
return ""
}
func (x *ScriptRun) GetOs() OS {
func (x *ScriptDebug) GetOs() OS {
if x != nil {
return x.Os
}
@@ -2907,7 +2907,7 @@ type SaasRes struct {
// *SaasRes_GrantListRes
// *SaasRes_GrantAddRes
// *SaasRes_GrantDeleteRes
// *SaasRes_ScriptRunRes
// *SaasRes_ScriptDebugRes
// *SaasRes_ScriptCreateRes
// *SaasRes_ScriptListRes
// *SaasRes_ScriptDeleteRes
@@ -3118,10 +3118,10 @@ func (x *SaasRes) GetGrantDeleteRes() *Grant {
return nil
}
func (x *SaasRes) GetScriptRunRes() *ScriptRunRes {
func (x *SaasRes) GetScriptDebugRes() *ScriptDebugRes {
if x != nil {
if x, ok := x.Res.(*SaasRes_ScriptRunRes); ok {
return x.ScriptRunRes
if x, ok := x.Res.(*SaasRes_ScriptDebugRes); ok {
return x.ScriptDebugRes
}
}
return nil
@@ -3285,8 +3285,8 @@ type SaasRes_GrantDeleteRes struct {
GrantDeleteRes *Grant `protobuf:"bytes,72,opt,name=grant_delete_res,json=grantDeleteRes,proto3,oneof"` // 删除数据授权返回状态
}
type SaasRes_ScriptRunRes struct {
ScriptRunRes *ScriptRunRes `protobuf:"bytes,90,opt,name=script_run_res,json=scriptRunRes,proto3,oneof"` // 运行脚本返回
type SaasRes_ScriptDebugRes struct {
ScriptDebugRes *ScriptDebugRes `protobuf:"bytes,90,opt,name=script_debug_res,json=scriptDebugRes,proto3,oneof"` // 调试脚本返回
}
type SaasRes_ScriptCreateRes struct {
@@ -3361,7 +3361,7 @@ func (*SaasRes_GrantAddRes) isSaasRes_Res() {}
func (*SaasRes_GrantDeleteRes) isSaasRes_Res() {}
func (*SaasRes_ScriptRunRes) isSaasRes_Res() {}
func (*SaasRes_ScriptDebugRes) isSaasRes_Res() {}
func (*SaasRes_ScriptCreateRes) isSaasRes_Res() {}
@@ -4296,8 +4296,8 @@ func (x *GrantListRes) GetTo() []*Grant {
return nil
}
// ScriptRunRes 运行脚本返回
type ScriptRunRes struct {
// ScriptDebugRes 调试脚本返回
type ScriptDebugRes struct {
state protoimpl.MessageState `protogen:"open.v1"`
PrintOutput string `protobuf:"bytes,1,opt,name=print_output,json=printOutput,proto3" json:"print_output,omitempty"` // print输出
ErrorOutput string `protobuf:"bytes,2,opt,name=error_output,json=errorOutput,proto3" json:"error_output,omitempty"` // 错误信息
@@ -4307,20 +4307,20 @@ type ScriptRunRes struct {
sizeCache protoimpl.SizeCache
}
func (x *ScriptRunRes) Reset() {
*x = ScriptRunRes{}
func (x *ScriptDebugRes) Reset() {
*x = ScriptDebugRes{}
mi := &file_cmd_proto_msgTypes[51]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ScriptRunRes) String() string {
func (x *ScriptDebugRes) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ScriptRunRes) ProtoMessage() {}
func (*ScriptDebugRes) ProtoMessage() {}
func (x *ScriptRunRes) ProtoReflect() protoreflect.Message {
func (x *ScriptDebugRes) ProtoReflect() protoreflect.Message {
mi := &file_cmd_proto_msgTypes[51]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -4332,33 +4332,33 @@ func (x *ScriptRunRes) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
// Deprecated: Use ScriptRunRes.ProtoReflect.Descriptor instead.
func (*ScriptRunRes) Descriptor() ([]byte, []int) {
// Deprecated: Use ScriptDebugRes.ProtoReflect.Descriptor instead.
func (*ScriptDebugRes) Descriptor() ([]byte, []int) {
return file_cmd_proto_rawDescGZIP(), []int{51}
}
func (x *ScriptRunRes) GetPrintOutput() string {
func (x *ScriptDebugRes) GetPrintOutput() string {
if x != nil {
return x.PrintOutput
}
return ""
}
func (x *ScriptRunRes) GetErrorOutput() string {
func (x *ScriptDebugRes) GetErrorOutput() string {
if x != nil {
return x.ErrorOutput
}
return ""
}
func (x *ScriptRunRes) GetTargetsOutput() string {
func (x *ScriptDebugRes) GetTargetsOutput() string {
if x != nil {
return x.TargetsOutput
}
return ""
}
func (x *ScriptRunRes) GetDataspaceOut() string {
func (x *ScriptDebugRes) GetDataspaceOut() string {
if x != nil {
return x.DataspaceOut
}
@@ -5067,7 +5067,7 @@ var File_cmd_proto protoreflect.FileDescriptor
const file_cmd_proto_rawDesc = "" +
"\n" +
"\tcmd.proto\x12\asaasapi\"\xd3\v\n" +
"\tcmd.proto\x12\asaasapi\"\xd9\v\n" +
"\aSaasReq\x12#\n" +
"\x04info\x18\x05 \x01(\v2\r.saasapi.InfoH\x00R\x04info\x12#\n" +
"\x04read\x18\n" +
@@ -5091,9 +5091,8 @@ const file_cmd_proto_rawDesc = "" +
"\n" +
"grant_list\x18F \x01(\v2\x12.saasapi.GrantListH\x00R\tgrantList\x12-\n" +
"\tgrant_add\x18G \x01(\v2\x0e.saasapi.GrantH\x00R\bgrantAdd\x123\n" +
"\fgrant_delete\x18H \x01(\v2\x0e.saasapi.GrantH\x00R\vgrantDelete\x123\n" +
"\n" +
"script_run\x18Z \x01(\v2\x12.saasapi.ScriptRunH\x00R\tscriptRun\x12<\n" +
"\fgrant_delete\x18H \x01(\v2\x0e.saasapi.GrantH\x00R\vgrantDelete\x129\n" +
"\fscript_debug\x18Z \x01(\v2\x14.saasapi.ScriptDebugH\x00R\vscriptDebug\x12<\n" +
"\rscript_create\x18[ \x01(\v2\x15.saasapi.ScriptCreateH\x00R\fscriptCreate\x126\n" +
"\vscript_list\x18\\ \x01(\v2\x13.saasapi.ScriptListH\x00R\n" +
"scriptList\x12<\n" +
@@ -5222,8 +5221,8 @@ const file_cmd_proto_rawDesc = "" +
"\x11target_account_id\x18\x01 \x01(\rR\x0ftargetAccountId\x12\x1f\n" +
"\vgrant_index\x18\x02 \x01(\tR\n" +
"grantIndex\x12!\n" +
"\fdataspace_id\x18\x03 \x01(\rR\vdataspaceId\"\xa1\x01\n" +
"\tScriptRun\x12\x1d\n" +
"\fdataspace_id\x18\x03 \x01(\rR\vdataspaceId\"\xa3\x01\n" +
"\vScriptDebug\x12\x1d\n" +
"\n" +
"lua_script\x18\x01 \x01(\tR\tluaScript\x12\x1d\n" +
"\n" +
@@ -5258,7 +5257,7 @@ const file_cmd_proto_rawDesc = "" +
"total_flag\x18\x1e \x01(\rR\ttotalFlag\"\x0e\n" +
"\fExpGrantList\"6\n" +
"\bExpGrant\x12*\n" +
"\x11target_account_id\x18\x01 \x01(\rR\x0ftargetAccountId\"\xc1\r\n" +
"\x11target_account_id\x18\x01 \x01(\rR\x0ftargetAccountId\"\xc7\r\n" +
"\aSaasRes\x12&\n" +
"\x04code\x18\x01 \x01(\x0e2\x12.saasapi.ErrorCodeR\x04code\x12\x16\n" +
"\x06status\x18\x02 \x01(\tR\x06status\x12-\n" +
@@ -5280,8 +5279,8 @@ const file_cmd_proto_rawDesc = "" +
"\x0fbind_delete_res\x18> \x01(\v2\x16.saasapi.BindDeleteResH\x00R\rbindDeleteRes\x12=\n" +
"\x0egrant_list_res\x18F \x01(\v2\x15.saasapi.GrantListResH\x00R\fgrantListRes\x124\n" +
"\rgrant_add_res\x18G \x01(\v2\x0e.saasapi.GrantH\x00R\vgrantAddRes\x12:\n" +
"\x10grant_delete_res\x18H \x01(\v2\x0e.saasapi.GrantH\x00R\x0egrantDeleteRes\x12=\n" +
"\x0escript_run_res\x18Z \x01(\v2\x15.saasapi.ScriptRunResH\x00R\fscriptRunRes\x12F\n" +
"\x10grant_delete_res\x18H \x01(\v2\x0e.saasapi.GrantH\x00R\x0egrantDeleteRes\x12C\n" +
"\x10script_debug_res\x18Z \x01(\v2\x17.saasapi.ScriptDebugResH\x00R\x0escriptDebugRes\x12F\n" +
"\x11script_create_res\x18[ \x01(\v2\x18.saasapi.ScriptCreateResH\x00R\x0fscriptCreateRes\x12@\n" +
"\x0fscript_list_res\x18\\ \x01(\v2\x16.saasapi.ScriptListResH\x00R\rscriptListRes\x12F\n" +
"\x11script_delete_res\x18] \x01(\v2\x18.saasapi.ScriptDeleteResH\x00R\x0fscriptDeleteRes\x12=\n" +
@@ -5372,8 +5371,8 @@ const file_cmd_proto_rawDesc = "" +
"\x06reason\x18\x03 \x01(\tR\x06reason\"R\n" +
"\fGrantListRes\x12\"\n" +
"\x04from\x18\x01 \x03(\v2\x0e.saasapi.GrantR\x04from\x12\x1e\n" +
"\x02to\x18\x02 \x03(\v2\x0e.saasapi.GrantR\x02to\"\xa0\x01\n" +
"\fScriptRunRes\x12!\n" +
"\x02to\x18\x02 \x03(\v2\x0e.saasapi.GrantR\x02to\"\xa2\x01\n" +
"\x0eScriptDebugRes\x12!\n" +
"\fprint_output\x18\x01 \x01(\tR\vprintOutput\x12!\n" +
"\ferror_output\x18\x02 \x01(\tR\verrorOutput\x12%\n" +
"\x0etargets_output\x18\x03 \x01(\tR\rtargetsOutput\x12#\n" +
@@ -5556,7 +5555,7 @@ var file_cmd_proto_goTypes = []any{
(*BindDelete)(nil), // 29: saasapi.BindDelete
(*GrantList)(nil), // 30: saasapi.GrantList
(*Grant)(nil), // 31: saasapi.Grant
(*ScriptRun)(nil), // 32: saasapi.ScriptRun
(*ScriptDebug)(nil), // 32: saasapi.ScriptDebug
(*ScriptCreate)(nil), // 33: saasapi.ScriptCreate
(*ScriptList)(nil), // 34: saasapi.ScriptList
(*ScriptDelete)(nil), // 35: saasapi.ScriptDelete
@@ -5582,7 +5581,7 @@ var file_cmd_proto_goTypes = []any{
(*BindDeleteRes)(nil), // 55: saasapi.BindDeleteRes
(*BindError)(nil), // 56: saasapi.BindError
(*GrantListRes)(nil), // 57: saasapi.GrantListRes
(*ScriptRunRes)(nil), // 58: saasapi.ScriptRunRes
(*ScriptDebugRes)(nil), // 58: saasapi.ScriptDebugRes
(*ScriptInfo)(nil), // 59: saasapi.ScriptInfo
(*ScriptCreateRes)(nil), // 60: saasapi.ScriptCreateRes
(*ScriptListRes)(nil), // 61: saasapi.ScriptListRes
@@ -5623,7 +5622,7 @@ var file_cmd_proto_depIdxs = []int32{
30, // 14: saasapi.SaasReq.grant_list:type_name -> saasapi.GrantList
31, // 15: saasapi.SaasReq.grant_add:type_name -> saasapi.Grant
31, // 16: saasapi.SaasReq.grant_delete:type_name -> saasapi.Grant
32, // 17: saasapi.SaasReq.script_run:type_name -> saasapi.ScriptRun
32, // 17: saasapi.SaasReq.script_debug:type_name -> saasapi.ScriptDebug
33, // 18: saasapi.SaasReq.script_create:type_name -> saasapi.ScriptCreate
34, // 19: saasapi.SaasReq.script_list:type_name -> saasapi.ScriptList
35, // 20: saasapi.SaasReq.script_delete:type_name -> saasapi.ScriptDelete
@@ -5652,7 +5651,7 @@ var file_cmd_proto_depIdxs = []int32{
24, // 43: saasapi.FileInfo.file_blocks:type_name -> saasapi.FileBlock
53, // 44: saasapi.BindSet.binds:type_name -> saasapi.Bind
53, // 45: saasapi.BindDelete.binds:type_name -> saasapi.Bind
5, // 46: saasapi.ScriptRun.os:type_name -> saasapi.OS
5, // 46: saasapi.ScriptDebug.os:type_name -> saasapi.OS
2, // 47: saasapi.SaasRes.code:type_name -> saasapi.ErrorCode
44, // 48: saasapi.SaasRes.info_res:type_name -> saasapi.InfoRes
45, // 49: saasapi.SaasRes.read_res:type_name -> saasapi.ReadRes
@@ -5670,7 +5669,7 @@ var file_cmd_proto_depIdxs = []int32{
57, // 61: saasapi.SaasRes.grant_list_res:type_name -> saasapi.GrantListRes
31, // 62: saasapi.SaasRes.grant_add_res:type_name -> saasapi.Grant
31, // 63: saasapi.SaasRes.grant_delete_res:type_name -> saasapi.Grant
58, // 64: saasapi.SaasRes.script_run_res:type_name -> saasapi.ScriptRunRes
58, // 64: saasapi.SaasRes.script_debug_res:type_name -> saasapi.ScriptDebugRes
60, // 65: saasapi.SaasRes.script_create_res:type_name -> saasapi.ScriptCreateRes
61, // 66: saasapi.SaasRes.script_list_res:type_name -> saasapi.ScriptListRes
63, // 67: saasapi.SaasRes.script_delete_res:type_name -> saasapi.ScriptDeleteRes
@@ -5742,7 +5741,7 @@ func file_cmd_proto_init() {
(*SaasReq_GrantList)(nil),
(*SaasReq_GrantAdd)(nil),
(*SaasReq_GrantDelete)(nil),
(*SaasReq_ScriptRun)(nil),
(*SaasReq_ScriptDebug)(nil),
(*SaasReq_ScriptCreate)(nil),
(*SaasReq_ScriptList)(nil),
(*SaasReq_ScriptDelete)(nil),
@@ -5771,7 +5770,7 @@ func file_cmd_proto_init() {
(*SaasRes_GrantListRes)(nil),
(*SaasRes_GrantAddRes)(nil),
(*SaasRes_GrantDeleteRes)(nil),
(*SaasRes_ScriptRunRes)(nil),
(*SaasRes_ScriptDebugRes)(nil),
(*SaasRes_ScriptCreateRes)(nil),
(*SaasRes_ScriptListRes)(nil),
(*SaasRes_ScriptDeleteRes)(nil),

View File

@@ -30,7 +30,7 @@ message SaasReq {
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; // 删除脚本
@@ -208,8 +208,8 @@ message Grant {
}
// ScriptRun 运行脚本
message ScriptRun {
// ScriptDebug 调试脚本
message ScriptDebug {
string lua_script = 1; // 要调试的lua脚本
string server_did = 2; // 将从服务端读取该DID下的数据
string appid = 3; // 小程序/小游戏/公众号/视频号的appid
@@ -301,7 +301,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; // 删除脚本返回
@@ -438,8 +438,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; // 策略输出

View File

@@ -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)
}
}

View File

@@ -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()

View File

@@ -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()))

View File

@@ -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()))

View File

@@ -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{

View File

@@ -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()

View File

@@ -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)
}
}

View File

@@ -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:", 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()

View File

@@ -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)
}
}

View File

@@ -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()

View File

@@ -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()

View File

@@ -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()

View File

@@ -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()

View File

@@ -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)
}
}

View File

@@ -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()

View File

@@ -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()

View File

@@ -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()

View File

@@ -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
}

View File

@@ -7,6 +7,7 @@ import (
func main() {
if err := Run(os.Args[1:]...); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
}
@@ -45,8 +46,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)
}
}

View File

@@ -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
}

View File

@@ -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

View File

@@ -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()

View File

@@ -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
}

View File

@@ -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()

View File

@@ -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()

View File

@@ -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()

View File

@@ -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()

View File

@@ -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)
}
}

View File

@@ -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()

View File

@@ -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()

View File

@@ -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()

View File

@@ -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)
}
}

View File

@@ -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()

View File

@@ -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
}

View File

@@ -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(),

View File

@@ -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
}

View File

@@ -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()

View File

@@ -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{

View File

@@ -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))

View File

@@ -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(),

View File

@@ -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
}

View File

@@ -18,7 +18,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"
@@ -57,7 +57,7 @@ type ApiUrls struct {
TargetDeletePath string
BindSetPath string
BindDeletePath string
ScriptRunPath string
ScriptDebugPath string
ScriptCreatePath string
ScriptListPath string
ScriptDeletePath string
@@ -162,10 +162,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 != "" {

View File

@@ -113,8 +113,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 +186,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 +204,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 +236,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 +279,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 +311,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 +334,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 +355,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 +363,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)
}
}
}