From 369023b81d44b94fab6ef669c66d3d28400c507f Mon Sep 17 00:00:00 2001 From: algotao Date: Sun, 11 Jan 2026 17:24:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96error=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd.pb.go | 117 +++++++++--------- cmd.proto | 12 +- cmd/saastool/bind.go | 6 +- cmd/saastool/bind_delete.go | 17 +-- cmd/saastool/bind_setaccount.go | 17 +-- cmd/saastool/bind_setad.go | 17 +-- cmd/saastool/convert.go | 6 +- cmd/saastool/daemon.go | 4 +- cmd/saastool/exp.go | 6 +- cmd/saastool/exp_get.go | 38 ++---- cmd/saastool/exp_grant.go | 5 +- cmd/saastool/exp_grant_add.go | 14 +-- cmd/saastool/exp_grant_delete.go | 14 +-- cmd/saastool/exp_grant_list.go | 13 +- cmd/saastool/exp_list.go | 14 +-- cmd/saastool/grant.go | 6 +- cmd/saastool/grant_add.go | 22 ++-- cmd/saastool/grant_delete.go | 22 ++-- cmd/saastool/grant_list.go | 13 +- cmd/saastool/info.go | 16 +-- cmd/saastool/main.go | 5 +- cmd/saastool/read.go | 24 ++-- cmd/saastool/script.go | 12 +- cmd/saastool/script_create.go | 18 +-- .../{script_run.go => script_debug.go} | 55 ++++---- cmd/saastool/script_delete.go | 13 +- cmd/saastool/script_get.go | 13 +- cmd/saastool/script_list.go | 13 +- cmd/saastool/script_use.go | 13 +- cmd/saastool/target.go | 6 +- cmd/saastool/target_create.go | 14 +-- cmd/saastool/target_delete.go | 14 +-- cmd/saastool/target_list.go | 14 +-- cmd/saastool/task.go | 6 +- cmd/saastool/task_create.go | 18 +-- cmd/saastool/task_delete.go | 26 ++-- cmd/saastool/task_download.go | 14 +-- cmd/saastool/task_info.go | 24 ++-- cmd/saastool/task_list.go | 14 +-- cmd/saastool/task_make.go | 11 +- cmd/saastool/task_run.go | 14 +-- cmd/saastool/task_upload.go | 10 +- cmd/saastool/write.go | 27 ++-- pkg/saashttp/cfg.go | 10 +- pkg/saashttp/httpcli.go | 89 ++++++------- 45 files changed, 304 insertions(+), 552 deletions(-) rename cmd/saastool/{script_run.go => script_debug.go} (50%) diff --git a/cmd.pb.go b/cmd.pb.go index 0382eed..9b1911f 100644 --- a/cmd.pb.go +++ b/cmd.pb.go @@ -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), diff --git a/cmd.proto b/cmd.proto index af27755..d3b5fc7 100644 --- a/cmd.proto +++ b/cmd.proto @@ -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; // 策略输出 diff --git a/cmd/saastool/bind.go b/cmd/saastool/bind.go index 0621807..a933dbe 100644 --- a/cmd/saastool/bind.go +++ b/cmd/saastool/bind.go @@ -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) } } diff --git a/cmd/saastool/bind_delete.go b/cmd/saastool/bind_delete.go index f11c787..0b87fc7 100644 --- a/cmd/saastool/bind_delete.go +++ b/cmd/saastool/bind_delete.go @@ -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() diff --git a/cmd/saastool/bind_setaccount.go b/cmd/saastool/bind_setaccount.go index e7fc4e7..e59875d 100644 --- a/cmd/saastool/bind_setaccount.go +++ b/cmd/saastool/bind_setaccount.go @@ -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())) diff --git a/cmd/saastool/bind_setad.go b/cmd/saastool/bind_setad.go index eac28e7..f08053a 100644 --- a/cmd/saastool/bind_setad.go +++ b/cmd/saastool/bind_setad.go @@ -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())) diff --git a/cmd/saastool/convert.go b/cmd/saastool/convert.go index 64d24e7..cd89fb5 100644 --- a/cmd/saastool/convert.go +++ b/cmd/saastool/convert.go @@ -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{ diff --git a/cmd/saastool/daemon.go b/cmd/saastool/daemon.go index 9076745..f9d3c10 100644 --- a/cmd/saastool/daemon.go +++ b/cmd/saastool/daemon.go @@ -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() diff --git a/cmd/saastool/exp.go b/cmd/saastool/exp.go index b7fe463..36a73d9 100644 --- a/cmd/saastool/exp.go +++ b/cmd/saastool/exp.go @@ -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) } } diff --git a/cmd/saastool/exp_get.go b/cmd/saastool/exp_get.go index ce5f5af..ee4cdfe 100644 --- a/cmd/saastool/exp_get.go +++ b/cmd/saastool/exp_get.go @@ -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() diff --git a/cmd/saastool/exp_grant.go b/cmd/saastool/exp_grant.go index b37fb6b..0cb80ab 100644 --- a/cmd/saastool/exp_grant.go +++ b/cmd/saastool/exp_grant.go @@ -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) } } diff --git a/cmd/saastool/exp_grant_add.go b/cmd/saastool/exp_grant_add.go index ffe59cb..7d61505 100644 --- a/cmd/saastool/exp_grant_add.go +++ b/cmd/saastool/exp_grant_add.go @@ -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() diff --git a/cmd/saastool/exp_grant_delete.go b/cmd/saastool/exp_grant_delete.go index d38451a..1735194 100644 --- a/cmd/saastool/exp_grant_delete.go +++ b/cmd/saastool/exp_grant_delete.go @@ -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() diff --git a/cmd/saastool/exp_grant_list.go b/cmd/saastool/exp_grant_list.go index 3c48adb..1225a03 100644 --- a/cmd/saastool/exp_grant_list.go +++ b/cmd/saastool/exp_grant_list.go @@ -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() diff --git a/cmd/saastool/exp_list.go b/cmd/saastool/exp_list.go index f1d5a93..6f1a112 100644 --- a/cmd/saastool/exp_list.go +++ b/cmd/saastool/exp_list.go @@ -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() diff --git a/cmd/saastool/grant.go b/cmd/saastool/grant.go index 6f95264..be71e84 100644 --- a/cmd/saastool/grant.go +++ b/cmd/saastool/grant.go @@ -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) } } diff --git a/cmd/saastool/grant_add.go b/cmd/saastool/grant_add.go index 42fdf43..9a8d1e9 100644 --- a/cmd/saastool/grant_add.go +++ b/cmd/saastool/grant_add.go @@ -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() diff --git a/cmd/saastool/grant_delete.go b/cmd/saastool/grant_delete.go index fd9afb7..c626a24 100644 --- a/cmd/saastool/grant_delete.go +++ b/cmd/saastool/grant_delete.go @@ -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() diff --git a/cmd/saastool/grant_list.go b/cmd/saastool/grant_list.go index 8d9c493..f4a996a 100644 --- a/cmd/saastool/grant_list.go +++ b/cmd/saastool/grant_list.go @@ -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() diff --git a/cmd/saastool/info.go b/cmd/saastool/info.go index c00ff07..fa8e326 100644 --- a/cmd/saastool/info.go +++ b/cmd/saastool/info.go @@ -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 } diff --git a/cmd/saastool/main.go b/cmd/saastool/main.go index 108af76..bd8820c 100644 --- a/cmd/saastool/main.go +++ b/cmd/saastool/main.go @@ -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) } } diff --git a/cmd/saastool/read.go b/cmd/saastool/read.go index d2ee29c..c650cb2 100644 --- a/cmd/saastool/read.go +++ b/cmd/saastool/read.go @@ -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 } diff --git a/cmd/saastool/script.go b/cmd/saastool/script.go index f6b4af6..a118b13 100644 --- a/cmd/saastool/script.go +++ b/cmd/saastool/script.go @@ -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 diff --git a/cmd/saastool/script_create.go b/cmd/saastool/script_create.go index 5bdd904..186033b 100644 --- a/cmd/saastool/script_create.go +++ b/cmd/saastool/script_create.go @@ -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() diff --git a/cmd/saastool/script_run.go b/cmd/saastool/script_debug.go similarity index 50% rename from cmd/saastool/script_run.go rename to cmd/saastool/script_debug.go index 92a21b5..c424f44 100644 --- a/cmd/saastool/script_run.go +++ b/cmd/saastool/script_debug.go @@ -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 } diff --git a/cmd/saastool/script_delete.go b/cmd/saastool/script_delete.go index 2cab016..c6a76a5 100644 --- a/cmd/saastool/script_delete.go +++ b/cmd/saastool/script_delete.go @@ -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() diff --git a/cmd/saastool/script_get.go b/cmd/saastool/script_get.go index 39d0d18..6904278 100644 --- a/cmd/saastool/script_get.go +++ b/cmd/saastool/script_get.go @@ -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() diff --git a/cmd/saastool/script_list.go b/cmd/saastool/script_list.go index 73f38aa..69522f1 100644 --- a/cmd/saastool/script_list.go +++ b/cmd/saastool/script_list.go @@ -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() diff --git a/cmd/saastool/script_use.go b/cmd/saastool/script_use.go index df0ac7d..cd11772 100644 --- a/cmd/saastool/script_use.go +++ b/cmd/saastool/script_use.go @@ -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() diff --git a/cmd/saastool/target.go b/cmd/saastool/target.go index a53b330..8076c9c 100644 --- a/cmd/saastool/target.go +++ b/cmd/saastool/target.go @@ -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) } } diff --git a/cmd/saastool/target_create.go b/cmd/saastool/target_create.go index 6a9e10d..eb5b17b 100644 --- a/cmd/saastool/target_create.go +++ b/cmd/saastool/target_create.go @@ -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() diff --git a/cmd/saastool/target_delete.go b/cmd/saastool/target_delete.go index f7bed07..a85d2af 100644 --- a/cmd/saastool/target_delete.go +++ b/cmd/saastool/target_delete.go @@ -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() diff --git a/cmd/saastool/target_list.go b/cmd/saastool/target_list.go index a07cc3a..7816cee 100644 --- a/cmd/saastool/target_list.go +++ b/cmd/saastool/target_list.go @@ -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() diff --git a/cmd/saastool/task.go b/cmd/saastool/task.go index 86c8264..9481f22 100644 --- a/cmd/saastool/task.go +++ b/cmd/saastool/task.go @@ -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) } } diff --git a/cmd/saastool/task_create.go b/cmd/saastool/task_create.go index a113cb7..a631b39 100644 --- a/cmd/saastool/task_create.go +++ b/cmd/saastool/task_create.go @@ -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() diff --git a/cmd/saastool/task_delete.go b/cmd/saastool/task_delete.go index 09a4ac9..da2de6f 100644 --- a/cmd/saastool/task_delete.go +++ b/cmd/saastool/task_delete.go @@ -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 } diff --git a/cmd/saastool/task_download.go b/cmd/saastool/task_download.go index 259c3b0..32f63d9 100644 --- a/cmd/saastool/task_download.go +++ b/cmd/saastool/task_download.go @@ -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(), diff --git a/cmd/saastool/task_info.go b/cmd/saastool/task_info.go index 8bbeddd..bdb9e9b 100644 --- a/cmd/saastool/task_info.go +++ b/cmd/saastool/task_info.go @@ -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 } diff --git a/cmd/saastool/task_list.go b/cmd/saastool/task_list.go index 7a2d936..601e9d3 100644 --- a/cmd/saastool/task_list.go +++ b/cmd/saastool/task_list.go @@ -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() diff --git a/cmd/saastool/task_make.go b/cmd/saastool/task_make.go index 8c655a2..3e83cf2 100644 --- a/cmd/saastool/task_make.go +++ b/cmd/saastool/task_make.go @@ -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{ diff --git a/cmd/saastool/task_run.go b/cmd/saastool/task_run.go index 6805db3..e1fa5b4 100644 --- a/cmd/saastool/task_run.go +++ b/cmd/saastool/task_run.go @@ -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)) diff --git a/cmd/saastool/task_upload.go b/cmd/saastool/task_upload.go index 7049b31..ff1b19f 100644 --- a/cmd/saastool/task_upload.go +++ b/cmd/saastool/task_upload.go @@ -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(), diff --git a/cmd/saastool/write.go b/cmd/saastool/write.go index df94ae2..446e818 100644 --- a/cmd/saastool/write.go +++ b/cmd/saastool/write.go @@ -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 } diff --git a/pkg/saashttp/cfg.go b/pkg/saashttp/cfg.go index 310c609..d11edc8 100644 --- a/pkg/saashttp/cfg.go +++ b/pkg/saashttp/cfg.go @@ -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 != "" { diff --git a/pkg/saashttp/httpcli.go b/pkg/saashttp/httpcli.go index cc71167..5c8e254 100644 --- a/pkg/saashttp/httpcli.go +++ b/pkg/saashttp/httpcli.go @@ -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) } } }