Compare commits

..

2 Commits

Author SHA1 Message Date
algotao
369023b81d 优化error输出 2026-01-11 17:24:11 +08:00
algotao
5e102ea8e7 script run调整为script debug;优化错误信息输出 2026-01-11 17:23:51 +08:00
45 changed files with 331 additions and 559 deletions

139
cmd.pb.go
View File

@@ -481,7 +481,7 @@ type SaasReq struct {
// *SaasReq_GrantList // *SaasReq_GrantList
// *SaasReq_GrantAdd // *SaasReq_GrantAdd
// *SaasReq_GrantDelete // *SaasReq_GrantDelete
// *SaasReq_ScriptRun // *SaasReq_ScriptDebug
// *SaasReq_ScriptCreate // *SaasReq_ScriptCreate
// *SaasReq_ScriptList // *SaasReq_ScriptList
// *SaasReq_ScriptDelete // *SaasReq_ScriptDelete
@@ -687,10 +687,10 @@ func (x *SaasReq) GetGrantDelete() *Grant {
return nil return nil
} }
func (x *SaasReq) GetScriptRun() *ScriptRun { func (x *SaasReq) GetScriptDebug() *ScriptDebug {
if x != nil { if x != nil {
if x, ok := x.Cmd.(*SaasReq_ScriptRun); ok { if x, ok := x.Cmd.(*SaasReq_ScriptDebug); ok {
return x.ScriptRun return x.ScriptDebug
} }
} }
return nil return nil
@@ -858,8 +858,8 @@ type SaasReq_GrantDelete struct {
GrantDelete *Grant `protobuf:"bytes,72,opt,name=grant_delete,json=grantDelete,proto3,oneof"` // 删除数据授权 GrantDelete *Grant `protobuf:"bytes,72,opt,name=grant_delete,json=grantDelete,proto3,oneof"` // 删除数据授权
} }
type SaasReq_ScriptRun struct { type SaasReq_ScriptDebug struct {
ScriptRun *ScriptRun `protobuf:"bytes,90,opt,name=script_run,json=scriptRun,proto3,oneof"` // 运行脚本 ScriptDebug *ScriptDebug `protobuf:"bytes,90,opt,name=script_debug,json=scriptDebug,proto3,oneof"` // 调试脚本
} }
type SaasReq_ScriptCreate struct { type SaasReq_ScriptCreate struct {
@@ -936,7 +936,7 @@ func (*SaasReq_GrantAdd) isSaasReq_Cmd() {}
func (*SaasReq_GrantDelete) isSaasReq_Cmd() {} func (*SaasReq_GrantDelete) isSaasReq_Cmd() {}
func (*SaasReq_ScriptRun) isSaasReq_Cmd() {} func (*SaasReq_ScriptDebug) isSaasReq_Cmd() {}
func (*SaasReq_ScriptCreate) isSaasReq_Cmd() {} func (*SaasReq_ScriptCreate) isSaasReq_Cmd() {}
@@ -2356,8 +2356,8 @@ func (x *Grant) GetDataspaceId() uint32 {
return 0 return 0
} }
// ScriptRun 运行脚本 // ScriptDebug 调试脚本
type ScriptRun struct { type ScriptDebug struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
LuaScript string `protobuf:"bytes,1,opt,name=lua_script,json=luaScript,proto3" json:"lua_script,omitempty"` // 要调试的lua脚本 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下的数据 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 sizeCache protoimpl.SizeCache
} }
func (x *ScriptRun) Reset() { func (x *ScriptDebug) Reset() {
*x = ScriptRun{} *x = ScriptDebug{}
mi := &file_cmd_proto_msgTypes[25] mi := &file_cmd_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
func (x *ScriptRun) String() string { func (x *ScriptDebug) String() string {
return protoimpl.X.MessageStringOf(x) 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] mi := &file_cmd_proto_msgTypes[25]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -2393,40 +2393,40 @@ func (x *ScriptRun) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x) return mi.MessageOf(x)
} }
// Deprecated: Use ScriptRun.ProtoReflect.Descriptor instead. // Deprecated: Use ScriptDebug.ProtoReflect.Descriptor instead.
func (*ScriptRun) Descriptor() ([]byte, []int) { func (*ScriptDebug) Descriptor() ([]byte, []int) {
return file_cmd_proto_rawDescGZIP(), []int{25} return file_cmd_proto_rawDescGZIP(), []int{25}
} }
func (x *ScriptRun) GetLuaScript() string { func (x *ScriptDebug) GetLuaScript() string {
if x != nil { if x != nil {
return x.LuaScript return x.LuaScript
} }
return "" return ""
} }
func (x *ScriptRun) GetServerDid() string { func (x *ScriptDebug) GetServerDid() string {
if x != nil { if x != nil {
return x.ServerDid return x.ServerDid
} }
return "" return ""
} }
func (x *ScriptRun) GetAppid() string { func (x *ScriptDebug) GetAppid() string {
if x != nil { if x != nil {
return x.Appid return x.Appid
} }
return "" return ""
} }
func (x *ScriptRun) GetServerOpenid() string { func (x *ScriptDebug) GetServerOpenid() string {
if x != nil { if x != nil {
return x.ServerOpenid return x.ServerOpenid
} }
return "" return ""
} }
func (x *ScriptRun) GetOs() OS { func (x *ScriptDebug) GetOs() OS {
if x != nil { if x != nil {
return x.Os return x.Os
} }
@@ -2907,7 +2907,7 @@ type SaasRes struct {
// *SaasRes_GrantListRes // *SaasRes_GrantListRes
// *SaasRes_GrantAddRes // *SaasRes_GrantAddRes
// *SaasRes_GrantDeleteRes // *SaasRes_GrantDeleteRes
// *SaasRes_ScriptRunRes // *SaasRes_ScriptDebugRes
// *SaasRes_ScriptCreateRes // *SaasRes_ScriptCreateRes
// *SaasRes_ScriptListRes // *SaasRes_ScriptListRes
// *SaasRes_ScriptDeleteRes // *SaasRes_ScriptDeleteRes
@@ -3118,10 +3118,10 @@ func (x *SaasRes) GetGrantDeleteRes() *Grant {
return nil return nil
} }
func (x *SaasRes) GetScriptRunRes() *ScriptRunRes { func (x *SaasRes) GetScriptDebugRes() *ScriptDebugRes {
if x != nil { if x != nil {
if x, ok := x.Res.(*SaasRes_ScriptRunRes); ok { if x, ok := x.Res.(*SaasRes_ScriptDebugRes); ok {
return x.ScriptRunRes return x.ScriptDebugRes
} }
} }
return nil return nil
@@ -3285,8 +3285,8 @@ type SaasRes_GrantDeleteRes struct {
GrantDeleteRes *Grant `protobuf:"bytes,72,opt,name=grant_delete_res,json=grantDeleteRes,proto3,oneof"` // 删除数据授权返回状态 GrantDeleteRes *Grant `protobuf:"bytes,72,opt,name=grant_delete_res,json=grantDeleteRes,proto3,oneof"` // 删除数据授权返回状态
} }
type SaasRes_ScriptRunRes struct { type SaasRes_ScriptDebugRes struct {
ScriptRunRes *ScriptRunRes `protobuf:"bytes,90,opt,name=script_run_res,json=scriptRunRes,proto3,oneof"` // 运行脚本返回 ScriptDebugRes *ScriptDebugRes `protobuf:"bytes,90,opt,name=script_debug_res,json=scriptDebugRes,proto3,oneof"` // 调试脚本返回
} }
type SaasRes_ScriptCreateRes struct { type SaasRes_ScriptCreateRes struct {
@@ -3361,7 +3361,7 @@ func (*SaasRes_GrantAddRes) isSaasRes_Res() {}
func (*SaasRes_GrantDeleteRes) isSaasRes_Res() {} func (*SaasRes_GrantDeleteRes) isSaasRes_Res() {}
func (*SaasRes_ScriptRunRes) isSaasRes_Res() {} func (*SaasRes_ScriptDebugRes) isSaasRes_Res() {}
func (*SaasRes_ScriptCreateRes) isSaasRes_Res() {} func (*SaasRes_ScriptCreateRes) isSaasRes_Res() {}
@@ -3388,6 +3388,8 @@ type DataSpace struct {
Did []string `protobuf:"bytes,1,rep,name=did,proto3" json:"did,omitempty"` // 设备ID区 Did []string `protobuf:"bytes,1,rep,name=did,proto3" json:"did,omitempty"` // 设备ID区
Wuid []string `protobuf:"bytes,2,rep,name=wuid,proto3" json:"wuid,omitempty"` // OpenID区 Wuid []string `protobuf:"bytes,2,rep,name=wuid,proto3" json:"wuid,omitempty"` // OpenID区
Geo []string `protobuf:"bytes,7,rep,name=geo,proto3" json:"geo,omitempty"` // GEO区 Geo []string `protobuf:"bytes,7,rep,name=geo,proto3" json:"geo,omitempty"` // GEO区
Geoip []string `protobuf:"bytes,8,rep,name=geoip,proto3" json:"geoip,omitempty"` // GEOIP区
Geofac []string `protobuf:"bytes,9,rep,name=geofac,proto3" json:"geofac,omitempty"` // GEOFAC区(经常活动城市)
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
} }
@@ -3443,6 +3445,20 @@ func (x *DataSpace) GetGeo() []string {
return nil return nil
} }
func (x *DataSpace) GetGeoip() []string {
if x != nil {
return x.Geoip
}
return nil
}
func (x *DataSpace) GetGeofac() []string {
if x != nil {
return x.Geofac
}
return nil
}
// InfoRes 账号信息返回 // InfoRes 账号信息返回
type InfoRes struct { type InfoRes struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
@@ -4280,8 +4296,8 @@ func (x *GrantListRes) GetTo() []*Grant {
return nil return nil
} }
// ScriptRunRes 运行脚本返回 // ScriptDebugRes 调试脚本返回
type ScriptRunRes struct { type ScriptDebugRes struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
PrintOutput string `protobuf:"bytes,1,opt,name=print_output,json=printOutput,proto3" json:"print_output,omitempty"` // print输出 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"` // 错误信息 ErrorOutput string `protobuf:"bytes,2,opt,name=error_output,json=errorOutput,proto3" json:"error_output,omitempty"` // 错误信息
@@ -4291,20 +4307,20 @@ type ScriptRunRes struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
} }
func (x *ScriptRunRes) Reset() { func (x *ScriptDebugRes) Reset() {
*x = ScriptRunRes{} *x = ScriptDebugRes{}
mi := &file_cmd_proto_msgTypes[51] mi := &file_cmd_proto_msgTypes[51]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
func (x *ScriptRunRes) String() string { func (x *ScriptDebugRes) String() string {
return protoimpl.X.MessageStringOf(x) 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] mi := &file_cmd_proto_msgTypes[51]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -4316,33 +4332,33 @@ func (x *ScriptRunRes) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x) return mi.MessageOf(x)
} }
// Deprecated: Use ScriptRunRes.ProtoReflect.Descriptor instead. // Deprecated: Use ScriptDebugRes.ProtoReflect.Descriptor instead.
func (*ScriptRunRes) Descriptor() ([]byte, []int) { func (*ScriptDebugRes) Descriptor() ([]byte, []int) {
return file_cmd_proto_rawDescGZIP(), []int{51} return file_cmd_proto_rawDescGZIP(), []int{51}
} }
func (x *ScriptRunRes) GetPrintOutput() string { func (x *ScriptDebugRes) GetPrintOutput() string {
if x != nil { if x != nil {
return x.PrintOutput return x.PrintOutput
} }
return "" return ""
} }
func (x *ScriptRunRes) GetErrorOutput() string { func (x *ScriptDebugRes) GetErrorOutput() string {
if x != nil { if x != nil {
return x.ErrorOutput return x.ErrorOutput
} }
return "" return ""
} }
func (x *ScriptRunRes) GetTargetsOutput() string { func (x *ScriptDebugRes) GetTargetsOutput() string {
if x != nil { if x != nil {
return x.TargetsOutput return x.TargetsOutput
} }
return "" return ""
} }
func (x *ScriptRunRes) GetDataspaceOut() string { func (x *ScriptDebugRes) GetDataspaceOut() string {
if x != nil { if x != nil {
return x.DataspaceOut return x.DataspaceOut
} }
@@ -5051,7 +5067,7 @@ var File_cmd_proto protoreflect.FileDescriptor
const file_cmd_proto_rawDesc = "" + const file_cmd_proto_rawDesc = "" +
"\n" + "\n" +
"\tcmd.proto\x12\asaasapi\"\xd3\v\n" + "\tcmd.proto\x12\asaasapi\"\xd9\v\n" +
"\aSaasReq\x12#\n" + "\aSaasReq\x12#\n" +
"\x04info\x18\x05 \x01(\v2\r.saasapi.InfoH\x00R\x04info\x12#\n" + "\x04info\x18\x05 \x01(\v2\r.saasapi.InfoH\x00R\x04info\x12#\n" +
"\x04read\x18\n" + "\x04read\x18\n" +
@@ -5075,9 +5091,8 @@ const file_cmd_proto_rawDesc = "" +
"\n" + "\n" +
"grant_list\x18F \x01(\v2\x12.saasapi.GrantListH\x00R\tgrantList\x12-\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" + "\tgrant_add\x18G \x01(\v2\x0e.saasapi.GrantH\x00R\bgrantAdd\x123\n" +
"\fgrant_delete\x18H \x01(\v2\x0e.saasapi.GrantH\x00R\vgrantDelete\x123\n" + "\fgrant_delete\x18H \x01(\v2\x0e.saasapi.GrantH\x00R\vgrantDelete\x129\n" +
"\n" + "\fscript_debug\x18Z \x01(\v2\x14.saasapi.ScriptDebugH\x00R\vscriptDebug\x12<\n" +
"script_run\x18Z \x01(\v2\x12.saasapi.ScriptRunH\x00R\tscriptRun\x12<\n" +
"\rscript_create\x18[ \x01(\v2\x15.saasapi.ScriptCreateH\x00R\fscriptCreate\x126\n" + "\rscript_create\x18[ \x01(\v2\x15.saasapi.ScriptCreateH\x00R\fscriptCreate\x126\n" +
"\vscript_list\x18\\ \x01(\v2\x13.saasapi.ScriptListH\x00R\n" + "\vscript_list\x18\\ \x01(\v2\x13.saasapi.ScriptListH\x00R\n" +
"scriptList\x12<\n" + "scriptList\x12<\n" +
@@ -5206,8 +5221,8 @@ const file_cmd_proto_rawDesc = "" +
"\x11target_account_id\x18\x01 \x01(\rR\x0ftargetAccountId\x12\x1f\n" + "\x11target_account_id\x18\x01 \x01(\rR\x0ftargetAccountId\x12\x1f\n" +
"\vgrant_index\x18\x02 \x01(\tR\n" + "\vgrant_index\x18\x02 \x01(\tR\n" +
"grantIndex\x12!\n" + "grantIndex\x12!\n" +
"\fdataspace_id\x18\x03 \x01(\rR\vdataspaceId\"\xa1\x01\n" + "\fdataspace_id\x18\x03 \x01(\rR\vdataspaceId\"\xa3\x01\n" +
"\tScriptRun\x12\x1d\n" + "\vScriptDebug\x12\x1d\n" +
"\n" + "\n" +
"lua_script\x18\x01 \x01(\tR\tluaScript\x12\x1d\n" + "lua_script\x18\x01 \x01(\tR\tluaScript\x12\x1d\n" +
"\n" + "\n" +
@@ -5242,7 +5257,7 @@ const file_cmd_proto_rawDesc = "" +
"total_flag\x18\x1e \x01(\rR\ttotalFlag\"\x0e\n" + "total_flag\x18\x1e \x01(\rR\ttotalFlag\"\x0e\n" +
"\fExpGrantList\"6\n" + "\fExpGrantList\"6\n" +
"\bExpGrant\x12*\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" + "\aSaasRes\x12&\n" +
"\x04code\x18\x01 \x01(\x0e2\x12.saasapi.ErrorCodeR\x04code\x12\x16\n" + "\x04code\x18\x01 \x01(\x0e2\x12.saasapi.ErrorCodeR\x04code\x12\x16\n" +
"\x06status\x18\x02 \x01(\tR\x06status\x12-\n" + "\x06status\x18\x02 \x01(\tR\x06status\x12-\n" +
@@ -5264,8 +5279,8 @@ const file_cmd_proto_rawDesc = "" +
"\x0fbind_delete_res\x18> \x01(\v2\x16.saasapi.BindDeleteResH\x00R\rbindDeleteRes\x12=\n" + "\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" + "\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" + "\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" + "\x10grant_delete_res\x18H \x01(\v2\x0e.saasapi.GrantH\x00R\x0egrantDeleteRes\x12C\n" +
"\x0escript_run_res\x18Z \x01(\v2\x15.saasapi.ScriptRunResH\x00R\fscriptRunRes\x12F\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" + "\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" + "\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" + "\x11script_delete_res\x18] \x01(\v2\x18.saasapi.ScriptDeleteResH\x00R\x0fscriptDeleteRes\x12=\n" +
@@ -5277,11 +5292,13 @@ const file_cmd_proto_rawDesc = "" +
"\x12exp_grant_list_res\x18f \x01(\v2\x18.saasapi.ExpGrantListResH\x00R\x0fexpGrantListRes\x12>\n" + "\x12exp_grant_list_res\x18f \x01(\v2\x18.saasapi.ExpGrantListResH\x00R\x0fexpGrantListRes\x12>\n" +
"\x11exp_grant_add_res\x18g \x01(\v2\x11.saasapi.ExpGrantH\x00R\x0eexpGrantAddRes\x12D\n" + "\x11exp_grant_add_res\x18g \x01(\v2\x11.saasapi.ExpGrantH\x00R\x0eexpGrantAddRes\x12D\n" +
"\x14exp_grant_delete_res\x18h \x01(\v2\x11.saasapi.ExpGrantH\x00R\x11expGrantDeleteResB\x05\n" + "\x14exp_grant_delete_res\x18h \x01(\v2\x11.saasapi.ExpGrantH\x00R\x11expGrantDeleteResB\x05\n" +
"\x03res\"C\n" + "\x03res\"q\n" +
"\tDataSpace\x12\x10\n" + "\tDataSpace\x12\x10\n" +
"\x03did\x18\x01 \x03(\tR\x03did\x12\x12\n" + "\x03did\x18\x01 \x03(\tR\x03did\x12\x12\n" +
"\x04wuid\x18\x02 \x03(\tR\x04wuid\x12\x10\n" + "\x04wuid\x18\x02 \x03(\tR\x04wuid\x12\x10\n" +
"\x03geo\x18\a \x03(\tR\x03geo\"X\n" + "\x03geo\x18\a \x03(\tR\x03geo\x12\x14\n" +
"\x05geoip\x18\b \x03(\tR\x05geoip\x12\x16\n" +
"\x06geofac\x18\t \x03(\tR\x06geofac\"X\n" +
"\aInfoRes\x120\n" + "\aInfoRes\x120\n" +
"\tdataspace\x18\x01 \x01(\v2\x12.saasapi.DataSpaceR\tdataspace\x12\x1b\n" + "\tdataspace\x18\x01 \x01(\v2\x12.saasapi.DataSpaceR\tdataspace\x12\x1b\n" +
"\ttarget_id\x18\x02 \x03(\tR\btargetId\"\x82\x01\n" + "\ttarget_id\x18\x02 \x03(\tR\btargetId\"\x82\x01\n" +
@@ -5354,8 +5371,8 @@ const file_cmd_proto_rawDesc = "" +
"\x06reason\x18\x03 \x01(\tR\x06reason\"R\n" + "\x06reason\x18\x03 \x01(\tR\x06reason\"R\n" +
"\fGrantListRes\x12\"\n" + "\fGrantListRes\x12\"\n" +
"\x04from\x18\x01 \x03(\v2\x0e.saasapi.GrantR\x04from\x12\x1e\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" + "\x02to\x18\x02 \x03(\v2\x0e.saasapi.GrantR\x02to\"\xa2\x01\n" +
"\fScriptRunRes\x12!\n" + "\x0eScriptDebugRes\x12!\n" +
"\fprint_output\x18\x01 \x01(\tR\vprintOutput\x12!\n" + "\fprint_output\x18\x01 \x01(\tR\vprintOutput\x12!\n" +
"\ferror_output\x18\x02 \x01(\tR\verrorOutput\x12%\n" + "\ferror_output\x18\x02 \x01(\tR\verrorOutput\x12%\n" +
"\x0etargets_output\x18\x03 \x01(\tR\rtargetsOutput\x12#\n" + "\x0etargets_output\x18\x03 \x01(\tR\rtargetsOutput\x12#\n" +
@@ -5538,7 +5555,7 @@ var file_cmd_proto_goTypes = []any{
(*BindDelete)(nil), // 29: saasapi.BindDelete (*BindDelete)(nil), // 29: saasapi.BindDelete
(*GrantList)(nil), // 30: saasapi.GrantList (*GrantList)(nil), // 30: saasapi.GrantList
(*Grant)(nil), // 31: saasapi.Grant (*Grant)(nil), // 31: saasapi.Grant
(*ScriptRun)(nil), // 32: saasapi.ScriptRun (*ScriptDebug)(nil), // 32: saasapi.ScriptDebug
(*ScriptCreate)(nil), // 33: saasapi.ScriptCreate (*ScriptCreate)(nil), // 33: saasapi.ScriptCreate
(*ScriptList)(nil), // 34: saasapi.ScriptList (*ScriptList)(nil), // 34: saasapi.ScriptList
(*ScriptDelete)(nil), // 35: saasapi.ScriptDelete (*ScriptDelete)(nil), // 35: saasapi.ScriptDelete
@@ -5564,7 +5581,7 @@ var file_cmd_proto_goTypes = []any{
(*BindDeleteRes)(nil), // 55: saasapi.BindDeleteRes (*BindDeleteRes)(nil), // 55: saasapi.BindDeleteRes
(*BindError)(nil), // 56: saasapi.BindError (*BindError)(nil), // 56: saasapi.BindError
(*GrantListRes)(nil), // 57: saasapi.GrantListRes (*GrantListRes)(nil), // 57: saasapi.GrantListRes
(*ScriptRunRes)(nil), // 58: saasapi.ScriptRunRes (*ScriptDebugRes)(nil), // 58: saasapi.ScriptDebugRes
(*ScriptInfo)(nil), // 59: saasapi.ScriptInfo (*ScriptInfo)(nil), // 59: saasapi.ScriptInfo
(*ScriptCreateRes)(nil), // 60: saasapi.ScriptCreateRes (*ScriptCreateRes)(nil), // 60: saasapi.ScriptCreateRes
(*ScriptListRes)(nil), // 61: saasapi.ScriptListRes (*ScriptListRes)(nil), // 61: saasapi.ScriptListRes
@@ -5605,7 +5622,7 @@ var file_cmd_proto_depIdxs = []int32{
30, // 14: saasapi.SaasReq.grant_list:type_name -> saasapi.GrantList 30, // 14: saasapi.SaasReq.grant_list:type_name -> saasapi.GrantList
31, // 15: saasapi.SaasReq.grant_add:type_name -> saasapi.Grant 31, // 15: saasapi.SaasReq.grant_add:type_name -> saasapi.Grant
31, // 16: saasapi.SaasReq.grant_delete: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 33, // 18: saasapi.SaasReq.script_create:type_name -> saasapi.ScriptCreate
34, // 19: saasapi.SaasReq.script_list:type_name -> saasapi.ScriptList 34, // 19: saasapi.SaasReq.script_list:type_name -> saasapi.ScriptList
35, // 20: saasapi.SaasReq.script_delete:type_name -> saasapi.ScriptDelete 35, // 20: saasapi.SaasReq.script_delete:type_name -> saasapi.ScriptDelete
@@ -5634,7 +5651,7 @@ var file_cmd_proto_depIdxs = []int32{
24, // 43: saasapi.FileInfo.file_blocks:type_name -> saasapi.FileBlock 24, // 43: saasapi.FileInfo.file_blocks:type_name -> saasapi.FileBlock
53, // 44: saasapi.BindSet.binds:type_name -> saasapi.Bind 53, // 44: saasapi.BindSet.binds:type_name -> saasapi.Bind
53, // 45: saasapi.BindDelete.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 2, // 47: saasapi.SaasRes.code:type_name -> saasapi.ErrorCode
44, // 48: saasapi.SaasRes.info_res:type_name -> saasapi.InfoRes 44, // 48: saasapi.SaasRes.info_res:type_name -> saasapi.InfoRes
45, // 49: saasapi.SaasRes.read_res:type_name -> saasapi.ReadRes 45, // 49: saasapi.SaasRes.read_res:type_name -> saasapi.ReadRes
@@ -5652,7 +5669,7 @@ var file_cmd_proto_depIdxs = []int32{
57, // 61: saasapi.SaasRes.grant_list_res:type_name -> saasapi.GrantListRes 57, // 61: saasapi.SaasRes.grant_list_res:type_name -> saasapi.GrantListRes
31, // 62: saasapi.SaasRes.grant_add_res:type_name -> saasapi.Grant 31, // 62: saasapi.SaasRes.grant_add_res:type_name -> saasapi.Grant
31, // 63: saasapi.SaasRes.grant_delete_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 60, // 65: saasapi.SaasRes.script_create_res:type_name -> saasapi.ScriptCreateRes
61, // 66: saasapi.SaasRes.script_list_res:type_name -> saasapi.ScriptListRes 61, // 66: saasapi.SaasRes.script_list_res:type_name -> saasapi.ScriptListRes
63, // 67: saasapi.SaasRes.script_delete_res:type_name -> saasapi.ScriptDeleteRes 63, // 67: saasapi.SaasRes.script_delete_res:type_name -> saasapi.ScriptDeleteRes
@@ -5724,7 +5741,7 @@ func file_cmd_proto_init() {
(*SaasReq_GrantList)(nil), (*SaasReq_GrantList)(nil),
(*SaasReq_GrantAdd)(nil), (*SaasReq_GrantAdd)(nil),
(*SaasReq_GrantDelete)(nil), (*SaasReq_GrantDelete)(nil),
(*SaasReq_ScriptRun)(nil), (*SaasReq_ScriptDebug)(nil),
(*SaasReq_ScriptCreate)(nil), (*SaasReq_ScriptCreate)(nil),
(*SaasReq_ScriptList)(nil), (*SaasReq_ScriptList)(nil),
(*SaasReq_ScriptDelete)(nil), (*SaasReq_ScriptDelete)(nil),
@@ -5753,7 +5770,7 @@ func file_cmd_proto_init() {
(*SaasRes_GrantListRes)(nil), (*SaasRes_GrantListRes)(nil),
(*SaasRes_GrantAddRes)(nil), (*SaasRes_GrantAddRes)(nil),
(*SaasRes_GrantDeleteRes)(nil), (*SaasRes_GrantDeleteRes)(nil),
(*SaasRes_ScriptRunRes)(nil), (*SaasRes_ScriptDebugRes)(nil),
(*SaasRes_ScriptCreateRes)(nil), (*SaasRes_ScriptCreateRes)(nil),
(*SaasRes_ScriptListRes)(nil), (*SaasRes_ScriptListRes)(nil),
(*SaasRes_ScriptDeleteRes)(nil), (*SaasRes_ScriptDeleteRes)(nil),

View File

@@ -30,7 +30,7 @@ message SaasReq {
Grant grant_add = 71; // 增加数据授权 Grant grant_add = 71; // 增加数据授权
Grant grant_delete = 72; // 删除数据授权 Grant grant_delete = 72; // 删除数据授权
ScriptRun script_run = 90; // 运行脚本 ScriptDebug script_debug = 90; // 调试脚本
ScriptCreate script_create = 91; // 脚本创建 ScriptCreate script_create = 91; // 脚本创建
ScriptList script_list = 92; // 列出脚本 ScriptList script_list = 92; // 列出脚本
ScriptDelete script_delete = 93; // 删除脚本 ScriptDelete script_delete = 93; // 删除脚本
@@ -208,8 +208,8 @@ message Grant {
} }
// ScriptRun 运行脚本 // ScriptDebug 调试脚本
message ScriptRun { message ScriptDebug {
string lua_script = 1; // 要调试的lua脚本 string lua_script = 1; // 要调试的lua脚本
string server_did = 2; // 将从服务端读取该DID下的数据 string server_did = 2; // 将从服务端读取该DID下的数据
string appid = 3; // 小程序/小游戏/公众号/视频号的appid string appid = 3; // 小程序/小游戏/公众号/视频号的appid
@@ -301,7 +301,7 @@ message SaasRes {
Grant grant_add_res = 71; // 增加数据授权返回状态 Grant grant_add_res = 71; // 增加数据授权返回状态
Grant grant_delete_res = 72; // 删除数据授权返回状态 Grant grant_delete_res = 72; // 删除数据授权返回状态
ScriptRunRes script_run_res = 90; // 运行脚本返回 ScriptDebugRes script_debug_res = 90; // 调试脚本返回
ScriptCreateRes script_create_res = 91; // 创建脚本返回 ScriptCreateRes script_create_res = 91; // 创建脚本返回
ScriptListRes script_list_res = 92; // 列出脚本返回 ScriptListRes script_list_res = 92; // 列出脚本返回
ScriptDeleteRes script_delete_res = 93; // 删除脚本返回 ScriptDeleteRes script_delete_res = 93; // 删除脚本返回
@@ -320,6 +320,8 @@ message DataSpace {
repeated string did = 1; // 设备ID区 repeated string did = 1; // 设备ID区
repeated string wuid = 2; // OpenID区 repeated string wuid = 2; // OpenID区
repeated string geo = 7; // GEO区 repeated string geo = 7; // GEO区
repeated string geoip = 8; // GEOIP区
repeated string geofac = 9; // GEOFAC区(经常活动城市)
} }
// InfoRes 账号信息返回 // InfoRes 账号信息返回
@@ -436,8 +438,8 @@ message GrantListRes {
repeated Grant to = 2; // 向外授权列表 repeated Grant to = 2; // 向外授权列表
} }
// ScriptRunRes 运行脚本返回 // ScriptDebugRes 调试脚本返回
message ScriptRunRes { message ScriptDebugRes {
string print_output = 1; // print输出 string print_output = 1; // print输出
string error_output = 2; // 错误信息 string error_output = 2; // 错误信息
string targets_output = 3; // 策略输出 string targets_output = 3; // 策略输出

View File

@@ -2,7 +2,6 @@ package main
import ( import (
"fmt" "fmt"
"os"
"strings" "strings"
) )
@@ -20,10 +19,7 @@ func RunBind(args ...string) error {
case "delete": case "delete":
return RunBindDelete(args...) return RunBindDelete(args...)
default: default:
err := fmt.Errorf(`unknown command "%s"`+"\n"+`Run 'saastool bind help' for usage`, name) return fmt.Errorf(`Unknown command "%s"`+"\n"+`Run 'saastool bind help' for usage`, name)
fmt.Fprintln(os.Stderr, err)
return err
} }
} }

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"strconv" "strconv"
"strings" "strings"
@@ -26,8 +25,7 @@ func RunBindDelete(args ...string) error {
ids := paramIDs(fs) ids := paramIDs(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
// 切割字符串 // 切割字符串
@@ -45,16 +43,14 @@ func RunBindDelete(args ...string) error {
for _, v := range idsSlice { for _, v := range idsSlice {
n, err := strconv.ParseInt(v, 10, 64) n, err := strconv.ParseInt(v, 10, 64)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "id parse error", "value", v, "err", err) return fmt.Errorf("Id parse error. value: %v. %w", v, err)
return err
} }
numIds = append(numIds, n) numIds = append(numIds, n)
} }
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
bindDeleteParams := bindDeleteParams{ bindDeleteParams := bindDeleteParams{
@@ -87,15 +83,12 @@ func doBindDeleteAccount(p bindDeleteParams) error {
} }
res, err := p.saasHttp.BindDelete(saasReq) res, err := p.saasHttp.BindDelete(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Bind Delete error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "Bind Delete failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
bindRes := res.GetBindDeleteRes() bindRes := res.GetBindDeleteRes()

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"strconv" "strconv"
"strings" "strings"
@@ -26,8 +25,7 @@ func RunBindSetAccount(args ...string) error {
accounts := paramAccounts(fs) accounts := paramAccounts(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
// 切割字符串 // 切割字符串
@@ -45,16 +43,14 @@ func RunBindSetAccount(args ...string) error {
for _, v := range idsSlice { for _, v := range idsSlice {
n, err := strconv.ParseInt(v, 10, 64) n, err := strconv.ParseInt(v, 10, 64)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "account parse error", "value", v, "err", err) return fmt.Errorf("Account parse error. value: %v. %w", v, err)
return err
} }
numAccounts = append(numAccounts, n) numAccounts = append(numAccounts, n)
} }
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
bindSetAccountParams := bindSetAccountParams{ bindSetAccountParams := bindSetAccountParams{
@@ -89,15 +85,12 @@ func doBindSetAccount(p bindSetAccountParams) error {
} }
res, err := p.saasHttp.BindSet(saasReq) res, err := p.saasHttp.BindSet(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Bind Set error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "Bind Set failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
fmt.Printf("bind res: %v\n", protojson.Format(res.GetBindSetRes())) fmt.Printf("bind res: %v\n", protojson.Format(res.GetBindSetRes()))

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"strconv" "strconv"
"strings" "strings"
@@ -28,8 +27,7 @@ func RunBindSetAd(args ...string) error {
ads := paramAds(fs) ads := paramAds(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
// 切割字符串 // 切割字符串
@@ -47,16 +45,14 @@ func RunBindSetAd(args ...string) error {
for _, v := range idsSlice { for _, v := range idsSlice {
n, err := strconv.ParseInt(v, 10, 64) n, err := strconv.ParseInt(v, 10, 64)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "account parse error", "value", v, "err", err) return fmt.Errorf("AD parse error. value: %v. %w", v, err)
return err
} }
numAds = append(numAds, n) numAds = append(numAds, n)
} }
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
bindSetAdParams := bindSetAdParams{ bindSetAdParams := bindSetAdParams{
@@ -92,15 +88,12 @@ func doBindSetAd(p bindSetAdParams) error {
} }
res, err := p.saasHttp.BindSet(saasReq) res, err := p.saasHttp.BindSet(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Bind Set error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "Bind Set failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
fmt.Printf("bind res: %v\n", protojson.Format(res.GetBindSetRes())) fmt.Printf("bind res: %v\n", protojson.Format(res.GetBindSetRes()))

View File

@@ -38,8 +38,7 @@ func RunConvert(args ...string) error {
destPath := paramDestPath(fs) destPath := paramDestPath(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 || *mapCfgFile == "" || len(*sourcePath) == 0 || len(*destPath) == 0 { if fs.NArg() > 0 || *mapCfgFile == "" || len(*sourcePath) == 0 || len(*destPath) == 0 {
@@ -49,8 +48,7 @@ func RunConvert(args ...string) error {
mapCfg, err := LoadMapFile(*mapCfgFile) mapCfg, err := LoadMapFile(*mapCfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadMapFile error: %w", err)
return err
} }
convertParams := convertParams{ convertParams := convertParams{

View File

@@ -58,9 +58,7 @@ func RunDaemon(args ...string) error {
case "dev": case "dev":
apiurls.BaseUrl = "http://localhost:8080" apiurls.BaseUrl = "http://localhost:8080"
default: default:
err = fmt.Errorf("SRTA_ENV is not demo or prd") return fmt.Errorf("SRTA_ENV is not demo or prd")
slog.Error("Env", "err", err)
return err
} }
mux := http.NewServeMux() mux := http.NewServeMux()
@@ -227,9 +225,9 @@ func (d *Daemon) parsePublicParams(r *http.Request) (*daemonPublicParams, error)
params.ds = strings.ToLower(strings.TrimSpace(q.Get("ds"))) params.ds = strings.ToLower(strings.TrimSpace(q.Get("ds")))
switch params.ds { switch params.ds {
case "did", "wuid", "geo": case "did", "wuid", "geo", "geoip", "geofac":
default: default:
return nil, fmt.Errorf("ds must use did/wuid/geo. current is %v", params.ds) return nil, fmt.Errorf("ds must use did/wuid/geo/geoip/geofac. current is %v", params.ds)
} }
params.appid = strings.TrimSpace(q.Get("appid")) params.appid = strings.TrimSpace(q.Get("appid"))

View File

@@ -2,7 +2,6 @@ package main
import ( import (
"fmt" "fmt"
"os"
"strings" "strings"
) )
@@ -20,10 +19,7 @@ func RunExp(args ...string) error {
case "grant": case "grant":
return RunExpGrant(args...) return RunExpGrant(args...)
default: default:
err := fmt.Errorf(`unknown command "%s"`+"\n"+`Run 'saastool exp help' for usage`, name) return fmt.Errorf(`Unknown command "%s"`+"\n"+`Run 'saastool exp help' for usage`, name)
fmt.Fprintln(os.Stderr, err)
return err
} }
} }

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"slices" "slices"
"strconv" "strconv"
"strings" "strings"
@@ -39,8 +38,7 @@ func RunExpGet(args ...string) error {
extFields := paramExtFields(fs) extFields := paramExtFields(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 { if fs.NArg() > 0 {
@@ -54,28 +52,24 @@ func RunExpGet(args ...string) error {
for _, id := range expIDsSlice { for _, id := range expIDsSlice {
idNum, err := strconv.ParseUint(id, 10, 32) idNum, err := strconv.ParseUint(id, 10, 32)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "expid parse error", "err", err) return fmt.Errorf("Expid parse error. value: %v. %w", id, err)
return err
} }
if idNum == 0 || idNum > 10 { if idNum == 0 || idNum > 10 {
fmt.Fprintln(os.Stderr, "expid range error") return fmt.Errorf("Expid range error.")
return nil
} }
bucketIDsNumSlice = append(bucketIDsNumSlice, uint32(idNum)) bucketIDsNumSlice = append(bucketIDsNumSlice, uint32(idNum))
} }
} }
if *beginDay < 20250101 || *beginDay > 21001231 || *endDay < 20250101 || *endDay > 21001231 { if *beginDay < 20250101 || *beginDay > 21001231 || *endDay < 20250101 || *endDay > 21001231 {
fmt.Fprintln(os.Stderr, "begin/end day error")
fs.PrintDefaults() fs.PrintDefaults()
return nil return fmt.Errorf("Begin/End day error.")
} }
if *target == "" { if *target == "" {
fmt.Fprintln(os.Stderr, "target error")
fs.PrintDefaults() fs.PrintDefaults()
return nil return fmt.Errorf("Target error.")
} }
uidNumSlice := []uint64{} uidNumSlice := []uint64{}
@@ -84,13 +78,11 @@ func RunExpGet(args ...string) error {
for _, id := range uidSlice { for _, id := range uidSlice {
idNum, err := strconv.ParseUint(id, 10, 64) idNum, err := strconv.ParseUint(id, 10, 64)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "advertiser id parse error", "err", err) return fmt.Errorf("Advertiser id parse error. value: %v. %w", id, err)
return err
} }
if idNum == 0 { if idNum == 0 {
fmt.Fprintln(os.Stderr, "advertiser id error") return fmt.Errorf("Advertiser id error.")
return nil
} }
uidNumSlice = append(uidNumSlice, idNum) uidNumSlice = append(uidNumSlice, idNum)
} }
@@ -102,8 +94,7 @@ func RunExpGet(args ...string) error {
groupBySlice = strings.Split(*groupBy, ",") groupBySlice = strings.Split(*groupBy, ",")
for _, group := range groupBySlice { for _, group := range groupBySlice {
if !validGroupBy[group] { if !validGroupBy[group] {
fmt.Fprintln(os.Stderr, "group by error", "group", group) return fmt.Errorf("Group by error. group:", group)
return nil
} }
} }
} }
@@ -112,15 +103,13 @@ func RunExpGet(args ...string) error {
if *extFields != "" { if *extFields != "" {
extFieldsSlice = strings.Split(*extFields, ",") extFieldsSlice = strings.Split(*extFields, ",")
if slices.Contains(extFieldsSlice, "") { if slices.Contains(extFieldsSlice, "") {
fmt.Fprintln(os.Stderr, "ext field error") return fmt.Errorf("Ext field error.")
return nil
} }
} }
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
getExpParams := getExpParams{ getExpParams := getExpParams{
@@ -164,15 +153,12 @@ func doExpGet(getExpParams getExpParams) error {
} }
res, err := getExpParams.saasHttp.ExpGet(saasReq) res, err := getExpParams.saasHttp.ExpGet(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit GetExp error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "get exp failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
getExpRes := res.GetExpGetRes() getExpRes := res.GetExpGetRes()

View File

@@ -2,7 +2,6 @@ package main
import ( import (
"fmt" "fmt"
"os"
"strings" "strings"
) )
@@ -20,9 +19,7 @@ func RunExpGrant(args ...string) error {
case "delete": case "delete":
return RunExpGrantDelete(args...) return RunExpGrantDelete(args...)
default: default:
err := fmt.Errorf(`unknown command "%s"`+"\n"+`Run 'saastool exp grant help' for usage`, name) return fmt.Errorf(`Unknown command "%s"`+"\n"+`Run 'saastool exp grant help' for usage`, name)
fmt.Fprintln(os.Stderr, err)
return err
} }
} }

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
@@ -22,8 +21,7 @@ func RunExpGrantAdd(args ...string) error {
srtaAccountId := paramSrtaAccountId(fs) srtaAccountId := paramSrtaAccountId(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 { if fs.NArg() > 0 {
@@ -32,15 +30,13 @@ func RunExpGrantAdd(args ...string) error {
} }
if *srtaAccountId == 0 { if *srtaAccountId == 0 {
fmt.Fprintln(os.Stderr, "Error: sRTA account ID is required")
fs.PrintDefaults() fs.PrintDefaults()
return fmt.Errorf("sRTA account ID is required") return fmt.Errorf("sRTA account ID is required")
} }
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
expGrantAddParams := expGrantAddParams{ expGrantAddParams := expGrantAddParams{
@@ -66,13 +62,11 @@ func doExpGrantAdd(params expGrantAddParams) error {
res, err := params.saasHttp.ExpGrantAdd(saasReq) res, err := params.saasHttp.ExpGrantAdd(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Exp Grant Add error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "Exp grant add failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
expGrantRes := res.GetExpGrantAddRes() expGrantRes := res.GetExpGrantAddRes()

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
@@ -22,8 +21,7 @@ func RunExpGrantDelete(args ...string) error {
srtaAccountId := paramSrtaAccountId(fs) srtaAccountId := paramSrtaAccountId(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 { if fs.NArg() > 0 {
@@ -32,15 +30,13 @@ func RunExpGrantDelete(args ...string) error {
} }
if *srtaAccountId == 0 { if *srtaAccountId == 0 {
fmt.Fprintln(os.Stderr, "Error: sRTA account ID is required")
fs.PrintDefaults() fs.PrintDefaults()
return fmt.Errorf("sRTA account ID is required") return fmt.Errorf("sRTA account ID is required")
} }
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
expGrantDeleteParams := expGrantDeleteParams{ expGrantDeleteParams := expGrantDeleteParams{
@@ -66,13 +62,11 @@ func doExpGrantDelete(params expGrantDeleteParams) error {
res, err := params.saasHttp.ExpGrantDelete(saasReq) res, err := params.saasHttp.ExpGrantDelete(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Exp Grant Delete error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "Exp grant delete failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
expGrantRes := res.GetExpGrantDeleteRes() expGrantRes := res.GetExpGrantDeleteRes()

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
@@ -20,8 +19,7 @@ func RunExpGrantList(args ...string) error {
cfgFile := paramConfig(fs) cfgFile := paramConfig(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 { if fs.NArg() > 0 {
@@ -31,8 +29,7 @@ func RunExpGrantList(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
expGrantListParams := expGrantListParams{ expGrantListParams := expGrantListParams{
@@ -55,13 +52,11 @@ func doExpGrantList(params expGrantListParams) error {
res, err := params.saasHttp.ExpGrantList(saasReq) res, err := params.saasHttp.ExpGrantList(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Exp Grant List error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "Exp grant list failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
expGrantRes := res.GetExpGrantListRes() expGrantRes := res.GetExpGrantListRes()

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
@@ -20,8 +19,7 @@ func RunExpList(args ...string) error {
cfgFile := paramConfig(fs) cfgFile := paramConfig(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 { if fs.NArg() > 0 {
@@ -31,8 +29,7 @@ func RunExpList(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
listExpParams := listExpParams{ listExpParams := listExpParams{
@@ -53,15 +50,12 @@ func doExpList(listExpParams listExpParams) error {
} }
res, err := listExpParams.saasHttp.ExpList(saasReq) res, err := listExpParams.saasHttp.ExpList(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit ListExp error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "list exp failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
listExpRes := res.GetExpListRes() listExpRes := res.GetExpListRes()

View File

@@ -2,7 +2,6 @@ package main
import ( import (
"fmt" "fmt"
"os"
"strings" "strings"
) )
@@ -20,10 +19,7 @@ func RunGrant(args ...string) error {
case "delete": case "delete":
return RunGrantDelete(args...) return RunGrantDelete(args...)
default: default:
err := fmt.Errorf(`unknown command "%s"`+"\n"+`Run 'saastool grant help' for usage`, name) return fmt.Errorf(`Unknown command "%s"`+"\n"+`Run 'saastool grant help' for usage`, name)
fmt.Fprintln(os.Stderr, err)
return err
} }
} }

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
@@ -26,8 +25,7 @@ func RunGrantAdd(args ...string) error {
grantIndex := paramGrantIndex(fs) grantIndex := paramGrantIndex(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 { if fs.NArg() > 0 {
@@ -36,27 +34,23 @@ func RunGrantAdd(args ...string) error {
} }
if *srtaAccountId == 0 { if *srtaAccountId == 0 {
fmt.Fprintln(os.Stderr, "Error: sRTA account ID is required")
fs.PrintDefaults() fs.PrintDefaults()
return fmt.Errorf("sRTA account ID is required") return fmt.Errorf("sRTA account ID is required.")
} }
if *grantIndex == "" { if *grantIndex == "" {
fmt.Fprintln(os.Stderr, "Error: grant index is required")
fs.PrintDefaults() fs.PrintDefaults()
return fmt.Errorf("grant index is required") return fmt.Errorf("Grant index is required.")
} }
if *dsid == 0 { if *dsid == 0 {
fmt.Fprintln(os.Stderr, "Error: data space ID is required")
fs.PrintDefaults() fs.PrintDefaults()
return fmt.Errorf("data space ID is required") return fmt.Errorf("Data space ID is required.")
} }
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
grantAddParams := grantAddParams{ grantAddParams := grantAddParams{
@@ -86,13 +80,11 @@ func doGrantAdd(params grantAddParams) error {
res, err := params.saasHttp.GrantAdd(saasReq) res, err := params.saasHttp.GrantAdd(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Grant Add error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "Grant add failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
grantRes := res.GetGrantAddRes() grantRes := res.GetGrantAddRes()

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
@@ -26,8 +25,7 @@ func RunGrantDelete(args ...string) error {
grantIndex := paramGrantIndex(fs) grantIndex := paramGrantIndex(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 { if fs.NArg() > 0 {
@@ -36,27 +34,23 @@ func RunGrantDelete(args ...string) error {
} }
if *dsid == 0 { if *dsid == 0 {
fmt.Fprintln(os.Stderr, "Error: data space ID is required")
fs.PrintDefaults() fs.PrintDefaults()
return fmt.Errorf("data space ID is required") return fmt.Errorf("data space ID is required.")
} }
if *srtaAccountId == 0 { if *srtaAccountId == 0 {
fmt.Fprintln(os.Stderr, "Error: sRTA account ID is required")
fs.PrintDefaults() fs.PrintDefaults()
return fmt.Errorf("sRTA account ID is required") return fmt.Errorf("sRTA account ID is required.")
} }
if *grantIndex == "" { if *grantIndex == "" {
fmt.Fprintln(os.Stderr, "Error: grant index is required")
fs.PrintDefaults() fs.PrintDefaults()
return fmt.Errorf("grant index is required") return fmt.Errorf("grant index is required.")
} }
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
grantDeleteParams := grantDeleteParams{ grantDeleteParams := grantDeleteParams{
@@ -86,13 +80,11 @@ func doGrantDelete(params grantDeleteParams) error {
res, err := params.saasHttp.GrantDelete(saasReq) res, err := params.saasHttp.GrantDelete(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Grant Delete error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "Grant delete failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
grantRes := res.GetGrantDeleteRes() grantRes := res.GetGrantDeleteRes()

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
@@ -20,8 +19,7 @@ func RunGrantList(args ...string) error {
cfgFile := paramConfig(fs) cfgFile := paramConfig(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 { if fs.NArg() > 0 {
@@ -31,8 +29,7 @@ func RunGrantList(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
grantListParams := grantListParams{ grantListParams := grantListParams{
@@ -55,13 +52,11 @@ func doGrantList(params grantListParams) error {
res, err := params.saasHttp.GrantList(saasReq) res, err := params.saasHttp.GrantList(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Grant List error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "Grant list failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
grantRes := res.GetGrantListRes() grantRes := res.GetGrantListRes()

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
@@ -20,8 +19,7 @@ func RunInfo(args ...string) error {
cfgFile := paramConfig(fs) cfgFile := paramConfig(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 { if fs.NArg() > 0 {
@@ -31,8 +29,7 @@ func RunInfo(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
infoParams := infoParams{ infoParams := infoParams{
@@ -53,19 +50,16 @@ func doInfo(infoParams infoParams) error {
} }
res, err := infoParams.saasHttp.Info(saasReq) res, err := infoParams.saasHttp.Info(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Info error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "info failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
infoRes := res.GetInfoRes() infoRes := res.GetInfoRes()
fmt.Printf("info res: %v\n", protojson.Format(infoRes)) fmt.Printf("Info res: %v\n", protojson.Format(infoRes))
return nil return nil
} }

View File

@@ -7,6 +7,7 @@ import (
func main() { func main() {
if err := Run(os.Args[1:]...); err != nil { if err := Run(os.Args[1:]...); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1) os.Exit(1)
} }
} }
@@ -45,8 +46,6 @@ func Run(args ...string) error {
case "daemon": case "daemon":
return RunDaemon(args...) return RunDaemon(args...)
default: default:
err := fmt.Errorf(`unknown command "%v"`+"\n"+`Run 'saastool help' for usage`, name) return fmt.Errorf(`Unknown command "%v"`+"\n"+`Run 'saastool help' for usage`, name)
fmt.Fprintln(os.Stderr, err.Error())
return err
} }
} }

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"strings" "strings"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
@@ -32,8 +31,7 @@ func RunRead(args ...string) error {
userids := paramUserids(fs) userids := paramUserids(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
// 切割字符串 // 切割字符串
@@ -44,15 +42,13 @@ func RunRead(args ...string) error {
return nil return nil
} }
if strings.ToLower(*ds) == "openid" && len(*appid) == 0 { if strings.ToLower(*ds) == "wuid" && len(*appid) == 0 {
fmt.Fprintln(os.Stderr, "appid must be set when data space is openid") return fmt.Errorf("Appid must be set when data space is wuid.")
return nil
} }
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "load config file error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
readParams := readParams{ readParams := readParams{
@@ -92,18 +88,16 @@ func doRead(readParams readParams) error {
read.ReadItems = saasReadItems read.ReadItems = saasReadItems
res, err := readParams.saasHttp.Read(saasReq) res, err := readParams.saasHttp.Read(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit read error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.GetCode() != saasapi.ErrorCode_SUCC { if res.GetCode() != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, protojson.Format(res)) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return err
} else {
fmt.Println(protojson.Format(res))
} }
readRes := res.GetReadRes()
fmt.Printf("read res: %v\n", protojson.Format(readRes))
return nil return nil
} }

View File

@@ -2,7 +2,6 @@ package main
import ( import (
"fmt" "fmt"
"os"
"strings" "strings"
) )
@@ -13,8 +12,8 @@ func RunScript(args ...string) error {
switch name { switch name {
case "", "help": case "", "help":
return RunScriptHelp(args...) return RunScriptHelp(args...)
case "run": case "debug", "run":
return RunScriptRun(args...) return RunScriptDebug(args...)
case "create": case "create":
return RunScriptCreate(args...) return RunScriptCreate(args...)
case "list": case "list":
@@ -26,10 +25,7 @@ func RunScript(args ...string) error {
case "use": case "use":
return RunScriptUse(args...) return RunScriptUse(args...)
default: default:
err := fmt.Errorf(`unknown command "%s"`+"\n"+`Run 'saastool script help' for usage`, name) return fmt.Errorf(`Unknown command "%s"`+"\n"+`Run 'saastool script help' for usage`, name)
fmt.Fprintln(os.Stderr, err)
return err
} }
} }
@@ -42,7 +38,7 @@ const scriptUsage = `
Usage: saastool script COMMAND [OPTIONS] Usage: saastool script COMMAND [OPTIONS]
Commands: Commands:
run Run lua script test on server debug Debug lua script on server
create Create lua script on server create Create lua script on server
list List all scripts on server list List all scripts on server
delete Delete a script from server delete Delete a script from server

View File

@@ -25,8 +25,7 @@ func RunScriptCreate(args ...string) error {
luaName := paramName(fs) luaName := paramName(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 || len(*luaFile) == 0 || len(*luaName) == 0 { if fs.NArg() > 0 || len(*luaFile) == 0 || len(*luaName) == 0 {
@@ -36,21 +35,18 @@ func RunScriptCreate(args ...string) error {
file, err := os.Open(*luaFile) file, err := os.Open(*luaFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "lua file error", "err", err) return fmt.Errorf("Lua file open error: %w", err)
return err
} }
defer file.Close() defer file.Close()
body, err := io.ReadAll(file) body, err := io.ReadAll(file)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "lua file read error", "err", err) return fmt.Errorf("Lua file read error: %w", err)
return err
} }
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
scriptCreateParams := scriptCreateParams{ scriptCreateParams := scriptCreateParams{
@@ -78,13 +74,11 @@ func doScriptCreate(scriptCreateParams scriptCreateParams) error {
res, err := scriptCreateParams.saasHttp.ScriptCreate(saasReq) res, err := scriptCreateParams.saasHttp.ScriptCreate(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Create Script error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "script create failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
scriptRes := res.GetScriptCreateRes() scriptRes := res.GetScriptCreateRes()

View File

@@ -11,23 +11,22 @@ import (
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
) )
type scriptRunParams struct { type scriptDebugParams struct {
luaScript string luaScript string
did string did string
os saasapi.OS os saasapi.OS
saasHttp *saashttp.SaasClient saasHttp *saashttp.SaasClient
} }
func RunScriptRun(args ...string) error { func RunScriptDebug(args ...string) error {
fs := flag.NewFlagSet("run", flag.ExitOnError) fs := flag.NewFlagSet("debug", flag.ExitOnError)
cfgFile := paramConfig(fs) cfgFile := paramConfig(fs)
luaFile := paramLua(fs) luaFile := paramLua(fs)
did := paramDid(fs) did := paramDid(fs)
tos := paramOS(fs) tos := paramOS(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 || len(*luaFile) == 0 || len(*did) == 0 { 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) { if !(*tos == 1 || *tos == 2 || *tos == 7) {
fmt.Fprintln(os.Stderr, "OS error") fs.PrintDefaults()
return nil return nil
} }
file, err := os.Open(*luaFile) file, err := os.Open(*luaFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "lua file error", "err", err) return fmt.Errorf("Lua file open error: %w", err)
return err
} }
defer file.Close() defer file.Close()
body, err := io.ReadAll(file) body, err := io.ReadAll(file)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "lua file read error", "err", err) return fmt.Errorf("Lua file read error: %w", err)
return err
} }
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
scriptRunParams := scriptRunParams{ scriptDebugParams := scriptDebugParams{
luaScript: string(body), luaScript: string(body),
did: *did, did: *did,
os: saasapi.OS(*tos), 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{ saasReq := &saasapi.SaasReq{
Cmd: &saasapi.SaasReq_ScriptRun{ Cmd: &saasapi.SaasReq_ScriptDebug{
ScriptRun: &saasapi.ScriptRun{ ScriptDebug: &saasapi.ScriptDebug{
LuaScript: scriptRunParams.luaScript, LuaScript: scriptDebugParams.luaScript,
ServerDid: scriptRunParams.did, ServerDid: scriptDebugParams.did,
Os: scriptRunParams.os, Os: scriptDebugParams.os,
}, },
}, },
} }
res, err := scriptRunParams.saasHttp.ScriptRun(saasReq) res, err := scriptDebugParams.saasHttp.ScriptDebug(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "run script error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
err = fmt.Errorf("run script failed. code:%v, status:%v", res.Code, res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
fmt.Fprintln(os.Stderr, err)
return err
} }
scriptRunRes := res.GetScriptRunRes() scriptDebugRes := res.GetScriptDebugRes()
fmt.Println("ERROROUT_OUTPUT:") fmt.Println("ERROROUT_OUTPUT:")
fmt.Print(scriptRunRes.GetErrorOutput()) fmt.Print(scriptDebugRes.GetErrorOutput())
fmt.Println() fmt.Println()
fmt.Println("PRINT_OUTPUT:") fmt.Println("PRINT_OUTPUT:")
fmt.Print(scriptRunRes.GetPrintOutput()) fmt.Print(scriptDebugRes.GetPrintOutput())
fmt.Println() fmt.Println()
fmt.Println("DATASPACE_OUTPUT:") fmt.Println("DATASPACE_OUTPUT:")
fmt.Print(scriptRunRes.GetDataspaceOut()) fmt.Print(scriptDebugRes.GetDataspaceOut())
fmt.Println() fmt.Println()
fmt.Println("TARGETS_OUTPUT:") fmt.Println("TARGETS_OUTPUT:")
fmt.Print(scriptRunRes.GetTargetsOutput()) fmt.Print(scriptDebugRes.GetTargetsOutput())
return nil return nil
} }

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
@@ -22,8 +21,7 @@ func RunScriptDelete(args ...string) error {
luaName := paramName(fs) luaName := paramName(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 || len(*luaName) == 0 { if fs.NArg() > 0 || len(*luaName) == 0 {
@@ -33,8 +31,7 @@ func RunScriptDelete(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
scriptDeleteParams := scriptDeleteParams{ scriptDeleteParams := scriptDeleteParams{
@@ -60,13 +57,11 @@ func doScriptDelete(scriptDeleteParams scriptDeleteParams) error {
res, err := scriptDeleteParams.saasHttp.ScriptDelete(saasReq) res, err := scriptDeleteParams.saasHttp.ScriptDelete(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Delete Script error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "script delete failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
scriptRes := res.GetScriptDeleteRes() scriptRes := res.GetScriptDeleteRes()

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
@@ -22,8 +21,7 @@ func RunScriptGet(args ...string) error {
luaName := paramName(fs) luaName := paramName(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 || len(*luaName) == 0 { if fs.NArg() > 0 || len(*luaName) == 0 {
@@ -33,8 +31,7 @@ func RunScriptGet(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
scriptGetParams := scriptGetParams{ scriptGetParams := scriptGetParams{
@@ -60,13 +57,11 @@ func doScriptGet(scriptGetParams scriptGetParams) error {
res, err := scriptGetParams.saasHttp.ScriptGet(saasReq) res, err := scriptGetParams.saasHttp.ScriptGet(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Get Script error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "script get failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
scriptRes := res.GetScriptGetRes() scriptRes := res.GetScriptGetRes()

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
@@ -20,8 +19,7 @@ func RunScriptList(args ...string) error {
cfgFile := paramConfig(fs) cfgFile := paramConfig(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 { if fs.NArg() > 0 {
@@ -31,8 +29,7 @@ func RunScriptList(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
scriptListParams := scriptListParams{ scriptListParams := scriptListParams{
@@ -55,13 +52,11 @@ func doScriptList(scriptListParams scriptListParams) error {
res, err := scriptListParams.saasHttp.ScriptList(saasReq) res, err := scriptListParams.saasHttp.ScriptList(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit List Script error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "script list failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
scriptRes := res.GetScriptListRes() scriptRes := res.GetScriptListRes()

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
@@ -22,8 +21,7 @@ func RunScriptUse(args ...string) error {
luaName := paramName(fs) luaName := paramName(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 || len(*luaName) == 0 { if fs.NArg() > 0 || len(*luaName) == 0 {
@@ -33,8 +31,7 @@ func RunScriptUse(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
scriptUseParams := scriptUseParams{ scriptUseParams := scriptUseParams{
@@ -60,13 +57,11 @@ func doScriptUse(scriptUseParams scriptUseParams) error {
res, err := scriptUseParams.saasHttp.ScriptUse(saasReq) res, err := scriptUseParams.saasHttp.ScriptUse(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Use Script error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "script use failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
scriptRes := res.GetScriptUseRes() scriptRes := res.GetScriptUseRes()

View File

@@ -2,7 +2,6 @@ package main
import ( import (
"fmt" "fmt"
"os"
"strings" "strings"
) )
@@ -20,10 +19,7 @@ func RunTarget(args ...string) error {
case "delete": case "delete":
return RunTargetDelete(args...) return RunTargetDelete(args...)
default: default:
err := fmt.Errorf(`unknown command "%s"`+"\n"+`Run 'saastool target help' for usage`, name) return fmt.Errorf(`Unknown command "%s"`+"\n"+`Run 'saastool target help' for usage`, name)
fmt.Fprintln(os.Stderr, err)
return err
} }
} }

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
@@ -24,8 +23,7 @@ func RunTargetCreate(args ...string) error {
targetDesc := paramTaskDesc(fs) targetDesc := paramTaskDesc(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 || len(*targetId) == 0 { if fs.NArg() > 0 || len(*targetId) == 0 {
@@ -35,8 +33,7 @@ func RunTargetCreate(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
createTargetParams := createTargetParams{ createTargetParams := createTargetParams{
@@ -63,15 +60,12 @@ func doTargetCreate(createTargetParams createTargetParams) error {
} }
res, err := createTargetParams.saasHttp.TargetCreate(saasReq) res, err := createTargetParams.saasHttp.TargetCreate(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Create Target error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "target create failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
targetRes := res.GetTargetCreateRes() targetRes := res.GetTargetCreateRes()

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
@@ -22,8 +21,7 @@ func RunTargetDelete(args ...string) error {
targetId := paramTarget(fs) targetId := paramTarget(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 || len(*targetId) == 0 { if fs.NArg() > 0 || len(*targetId) == 0 {
@@ -33,8 +31,7 @@ func RunTargetDelete(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
deleteTargetParams := deleteTargetParams{ deleteTargetParams := deleteTargetParams{
@@ -60,14 +57,11 @@ func doTargetDelete(deleteTargetParams deleteTargetParams) error {
res, err := deleteTargetParams.saasHttp.TargetDelete(saasReq) res, err := deleteTargetParams.saasHttp.TargetDelete(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Target delete error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
err = fmt.Errorf("target delete failed. code:%v, status:%v", res.Code, res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
fmt.Fprintln(os.Stderr, err)
return err
} }
targetDeleteRes := res.GetTargetDeleteRes() targetDeleteRes := res.GetTargetDeleteRes()

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"strings" "strings"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
@@ -25,8 +24,7 @@ func RunTargetList(args ...string) error {
listBinds := paramListBinds(fs) listBinds := paramListBinds(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 { if fs.NArg() > 0 {
@@ -42,8 +40,7 @@ func RunTargetList(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
listTargetParams := listTargetParams{ listTargetParams := listTargetParams{
@@ -70,15 +67,12 @@ func doTargetList(listTargetParams listTargetParams) error {
} }
res, err := listTargetParams.saasHttp.TargetList(saasReq) res, err := listTargetParams.saasHttp.TargetList(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit List Target error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "Target list failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
targetRes := res.GetTargetListRes() targetRes := res.GetTargetListRes()

View File

@@ -2,7 +2,6 @@ package main
import ( import (
"fmt" "fmt"
"os"
"strings" "strings"
) )
@@ -30,10 +29,7 @@ func RunTask(args ...string) error {
case "run": case "run":
return RunTaskRun(args...) return RunTaskRun(args...)
default: default:
err := fmt.Errorf(`unknown command "%s"`+"\n"+`Run 'saastool task help' for usage`, name) return fmt.Errorf(`Unknown command "%s"`+"\n"+`Run 'saastool task help' for usage`, name)
fmt.Fprintln(os.Stderr, err)
return err
} }
} }

View File

@@ -23,8 +23,7 @@ func RunTaskCreate(args ...string) error {
hashFile := paramInputHashFile(fs) hashFile := paramInputHashFile(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 || len(*hashFile) == 0 { if fs.NArg() > 0 || len(*hashFile) == 0 {
@@ -34,8 +33,7 @@ func RunTaskCreate(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
createTaskParams := createTaskParams{ createTaskParams := createTaskParams{
@@ -50,12 +48,11 @@ func RunTaskCreate(args ...string) error {
taskBuf, err := os.ReadFile(createTaskParams.hashFile) taskBuf, err := os.ReadFile(createTaskParams.hashFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "open task file error", "err", err) return fmt.Errorf("open task file error: %w", err)
return err
} }
if err = protojson.Unmarshal(taskBuf, createTaskParams.task); err != nil { 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) return doTaskCreate(createTaskParams)
@@ -69,15 +66,12 @@ func doTaskCreate(createTaskParams createTaskParams) error {
} }
res, err := createTaskParams.saasHttp.TaskCreate(saasReq) res, err := createTaskParams.saasHttp.TaskCreate(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Create Task error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "task create failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
taskRes := res.GetTaskCreateRes() taskRes := res.GetTaskCreateRes()

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
@@ -22,8 +21,7 @@ func RunTaskDelete(args ...string) error {
sha256 := paramSha256(fs) sha256 := paramSha256(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 || len(*sha256) == 0 { if fs.NArg() > 0 || len(*sha256) == 0 {
@@ -33,8 +31,7 @@ func RunTaskDelete(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
deleteTaskParams := deleteTaskParams{ 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{ saasReq := &saasapi.SaasReq{
Cmd: &saasapi.SaasReq_TaskDelete{ Cmd: &saasapi.SaasReq_TaskDelete{
TaskDelete: &saasapi.TaskDelete{ TaskDelete: &saasapi.TaskDelete{
@@ -65,17 +58,14 @@ func doTaskDelete(deleteTaskParams deleteTaskParams) (*saasapi.Task, error) {
res, err := deleteTaskParams.saasHttp.TaskDelete(saasReq) res, err := deleteTaskParams.saasHttp.TaskDelete(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Task delete error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return nil, err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
err = fmt.Errorf("task delete failed. code:%v, status:%v", res.Code, res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
fmt.Fprintln(os.Stderr, err)
return nil, err
} }
taskRes := res.GetTaskDeleteRes() taskRes := res.GetTaskDeleteRes()
fmt.Println(protojson.Format(taskRes)) fmt.Printf("task res: %v\n", protojson.Format(taskRes))
return taskRes, nil return nil
} }

View File

@@ -24,8 +24,7 @@ func RunTaskDownload(args ...string) error {
destPath := paramDestPath(fs) destPath := paramDestPath(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 || len(*sha256) == 0 || len(*destPath) == 0 { if fs.NArg() > 0 || len(*sha256) == 0 || len(*destPath) == 0 {
@@ -35,8 +34,7 @@ func RunTaskDownload(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
downloadTaskParams := downloadTaskParams{ downloadTaskParams := downloadTaskParams{
@@ -63,9 +61,7 @@ func doTaskDownload(downloadTaskParams downloadTaskParams) error {
} }
if len(taskInfo.GetSourcePath()) == 0 { if len(taskInfo.GetSourcePath()) == 0 {
err = fmt.Errorf("task download failed. task info source path is empty") return fmt.Errorf("download task failed: %w, task info source path is empty", err)
fmt.Fprintln(os.Stderr, err)
return err
} }
totalFiles := len(taskInfo.GetTaskFileInfos()) totalFiles := len(taskInfo.GetTaskFileInfos())
@@ -105,9 +101,7 @@ func doTaskDownload(downloadTaskParams downloadTaskParams) error {
} }
if blockRes.GetCode() != saasapi.ErrorCode_SUCC { if blockRes.GetCode() != saasapi.ErrorCode_SUCC {
err = fmt.Errorf("download block error, code %d, msg %s", blockRes.GetCode(), blockRes.GetStatus()) return fmt.Errorf("download block error, code %d, msg %s", blockRes.GetCode(), blockRes.GetStatus())
fmt.Fprintln(os.Stderr, err)
return err
} else { } else {
fmt.Printf("download block success. file: %v, sha256 %v. block %v/%v, file %v/%v\n", fmt.Printf("download block success. file: %v, sha256 %v. block %v/%v, file %v/%v\n",
finfo.GetFileName(), binfo.GetBlockSha256(), finfo.GetFileName(), binfo.GetBlockSha256(),

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
@@ -22,8 +21,7 @@ func RunTaskInfo(args ...string) error {
sha256 := paramSha256(fs) sha256 := paramSha256(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 || len(*sha256) == 0 { if fs.NArg() > 0 || len(*sha256) == 0 {
@@ -33,8 +31,7 @@ func RunTaskInfo(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
infoTaskParams := infoTaskParams{ infoTaskParams := infoTaskParams{
@@ -46,12 +43,9 @@ func RunTaskInfo(args ...string) error {
}, },
} }
taskRes, err := doTaskInfo(infoTaskParams) _, err = doTaskInfo(infoTaskParams)
if err != nil {
fmt.Printf("task res: %v\n", protojson.Format(taskRes))
}
return err return err
} }
func doTaskInfo(infoTaskParams infoTaskParams) (*saasapi.Task, error) { func doTaskInfo(infoTaskParams infoTaskParams) (*saasapi.Task, error) {
@@ -65,17 +59,15 @@ func doTaskInfo(infoTaskParams infoTaskParams) (*saasapi.Task, error) {
res, err := infoTaskParams.saasHttp.TaskInfo(saasReq) res, err := infoTaskParams.saasHttp.TaskInfo(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Task info error", "err", err) return nil, fmt.Errorf("Submit Command error: %w", err)
return nil, err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
err = fmt.Errorf("task info failed. code:%v, status:%v", res.Code, res.Status) return nil, fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
fmt.Fprintln(os.Stderr, err)
return nil, err
} }
taskRes := res.GetTaskInfoRes() taskRes := res.GetTaskInfoRes()
fmt.Println(protojson.Format(taskRes)) fmt.Printf("task res: %v\n", protojson.Format(taskRes))
return taskRes, nil return taskRes, nil
} }

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
@@ -22,8 +21,7 @@ func RunTaskList(args ...string) error {
filter := paramFilterStatus(fs) filter := paramFilterStatus(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 { if fs.NArg() > 0 {
@@ -33,8 +31,7 @@ func RunTaskList(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
listTaskParams := listTaskParams{ listTaskParams := listTaskParams{
@@ -71,15 +68,12 @@ func doTaskList(listTaskParams listTaskParams) error {
} }
res, err := listTaskParams.saasHttp.TaskList(saasReq) res, err := listTaskParams.saasHttp.TaskList(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit List Task error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
fmt.Fprintln(os.Stderr, "task list failed", "code", res.Code, "status", res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
return nil
} }
taskRes := res.GetTaskListRes() taskRes := res.GetTaskListRes()

View File

@@ -55,8 +55,7 @@ func RunTaskMake(args ...string) error {
ds := paramDataSpaceId(fs) ds := paramDataSpaceId(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 || len(*sourcePath) == 0 || len(*hashFile) == 0 || len(*ds) == 0 { if fs.NArg() > 0 || len(*sourcePath) == 0 || len(*hashFile) == 0 || len(*ds) == 0 {
@@ -64,9 +63,8 @@ func RunTaskMake(args ...string) error {
return nil return nil
} }
if strings.ToLower(*ds) == "openid" && len(*appid) == 0 { if strings.ToLower(*ds) == "wuid" && len(*appid) == 0 {
fmt.Fprintln(os.Stderr, "appid must be set when data space is openid") return fmt.Errorf("appid must be set when data space is wuid")
return nil
} }
blockSizeNum, err := ParseByteSize(*blockSize) blockSizeNum, err := ParseByteSize(*blockSize)
@@ -77,8 +75,7 @@ func RunTaskMake(args ...string) error {
} }
if blockSizeNum < blockSizeMin || blockSizeNum > blockSizeMax { if blockSizeNum < blockSizeMin || blockSizeNum > blockSizeMax {
fmt.Fprintln(os.Stderr, "block size error", "min", blockSizeMin, "max", blockSizeMax) return fmt.Errorf("block size error. min: %v, max: %v, current: %v", blockSizeMin, blockSizeMax, blockSizeNum)
return nil
} }
makeTaskParams := &makeTaskParams{ makeTaskParams := &makeTaskParams{

View File

@@ -4,7 +4,6 @@ import (
"flag" "flag"
"fmt" "fmt"
"net/http" "net/http"
"os"
"git.algo.com.cn/public/saasapi" "git.algo.com.cn/public/saasapi"
"git.algo.com.cn/public/saasapi/pkg/saashttp" "git.algo.com.cn/public/saasapi/pkg/saashttp"
@@ -22,8 +21,7 @@ func RunTaskRun(args ...string) error {
sha256 := paramSha256(fs) sha256 := paramSha256(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 || len(*sha256) == 0 { if fs.NArg() > 0 || len(*sha256) == 0 {
@@ -33,8 +31,7 @@ func RunTaskRun(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
runTaskParams := runTaskParams{ runTaskParams := runTaskParams{
@@ -61,14 +58,11 @@ func doTaskRun(runTaskParams runTaskParams) error {
res, err := runTaskParams.saasHttp.TaskRun(saasReq) res, err := runTaskParams.saasHttp.TaskRun(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit Task run error", "err", err) return fmt.Errorf("Submit Command error: %w", err)
return err
} }
if res.Code != saasapi.ErrorCode_SUCC { if res.Code != saasapi.ErrorCode_SUCC {
err = fmt.Errorf("task run failed. code:%v, status:%v", res.Code, res.Status) return fmt.Errorf("Command failed. code:%v, status:%v", res.Code, res.Status)
fmt.Fprintln(os.Stderr, err)
return err
} }
fmt.Println("task run success", protojson.Format(res)) fmt.Println("task run success", protojson.Format(res))

View File

@@ -22,8 +22,7 @@ func RunTaskUpload(args ...string) error {
sha256 := paramSha256(fs) sha256 := paramSha256(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 || len(*sha256) == 0 { if fs.NArg() > 0 || len(*sha256) == 0 {
@@ -33,8 +32,7 @@ func RunTaskUpload(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "LoadConfigFile error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
uploadTaskParams := uploadTaskParams{ uploadTaskParams := uploadTaskParams{
@@ -94,9 +92,7 @@ func doTaskUpload(uploadTaskParams uploadTaskParams) error {
} }
if blockRes.GetCode() != saasapi.ErrorCode_SUCC { if blockRes.GetCode() != saasapi.ErrorCode_SUCC {
err = fmt.Errorf("upload block error, code %d, msg %s", blockRes.GetCode(), blockRes.GetStatus()) return fmt.Errorf("upload block error, code %d, msg %s", blockRes.GetCode(), blockRes.GetStatus())
fmt.Fprintln(os.Stderr, err)
return err
} else { } else {
fmt.Printf("upload block success. file: %v, sha256 %v. block %v/%v, file %v/%v\n", fmt.Printf("upload block success. file: %v, sha256 %v. block %v/%v, file %v/%v\n",
finfo.GetFileName(), binfo.GetBlockSha256(), finfo.GetFileName(), binfo.GetBlockSha256(),

View File

@@ -34,8 +34,7 @@ func RunWrite(args ...string) error {
clear := paramClear(fs) clear := paramClear(fs)
if err := fs.Parse(args); err != nil { if err := fs.Parse(args); err != nil {
fmt.Fprintln(os.Stderr, "command line parse error", "err", err) return fmt.Errorf("Command line parse error: %w", err)
return err
} }
if fs.NArg() > 0 || len(*sourcePath) == 0 || len(*ds) == 0 { if fs.NArg() > 0 || len(*sourcePath) == 0 || len(*ds) == 0 {
@@ -43,15 +42,14 @@ func RunWrite(args ...string) error {
return nil return nil
} }
if strings.ToLower(*ds) == "openid" && len(*appid) == 0 { if strings.ToLower(*ds) == "wuid" && len(*appid) == 0 {
fmt.Fprintln(os.Stderr, "appid must be set when data space is openid") fmt.Fprintln(os.Stderr, "appid must be set when data space is wuid")
return nil return nil
} }
cfg, err := LoadConfigFile(*cfgFile) cfg, err := LoadConfigFile(*cfgFile)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "load config file error", "err", err) return fmt.Errorf("LoadConfigFile error: %w", err)
return err
} }
writeParams := writeParams{ writeParams := writeParams{
@@ -74,8 +72,7 @@ func RunWrite(args ...string) error {
func doWrite(writeParams writeParams) error { func doWrite(writeParams writeParams) error {
fsInfo, err := os.Stat(writeParams.sourcePath) fsInfo, err := os.Stat(writeParams.sourcePath)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "file stat error", "err", err) return fmt.Errorf("file stat error: %w", err)
return err
} }
if !fsInfo.IsDir() { if !fsInfo.IsDir() {
@@ -86,8 +83,7 @@ func doWrite(writeParams writeParams) error {
// 读取目录下信息 // 读取目录下信息
dirEntry, err := os.ReadDir(writeParams.sourcePath) dirEntry, err := os.ReadDir(writeParams.sourcePath)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "read dir error", "err", err) return fmt.Errorf("read dir error: %w", err)
return err
} }
// 遍历目录 // 遍历目录
@@ -107,8 +103,7 @@ func doLoadFileToWrite(writeParams writeParams) error {
// 读取文件并按行遍历,以\t分割为两列第一列为userid第二列解析为string数组 // 读取文件并按行遍历,以\t分割为两列第一列为userid第二列解析为string数组
file, err := os.Open(writeParams.sourcePath) file, err := os.Open(writeParams.sourcePath)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "open file error", "file", writeParams.sourcePath, "err", err) return fmt.Errorf("open file error: %w. file: %v", err, writeParams.sourcePath)
return err
} }
defer file.Close() defer file.Close()
@@ -127,8 +122,7 @@ func doLoadFileToWrite(writeParams writeParams) error {
} }
saasWriteItem := &saasapi.WriteItem{} saasWriteItem := &saasapi.WriteItem{}
if err = protojson.Unmarshal([]byte(line), saasWriteItem); err != nil { if err = protojson.Unmarshal([]byte(line), saasWriteItem); err != nil {
fmt.Fprintln(os.Stderr, "protojson unmashal error", "file", writeParams.sourcePath, "line", total, "err", err) return fmt.Errorf("protojson unmashal error: %w. file: %v line: %v", err, writeParams.sourcePath, total)
return err
} }
saasWriteItems = append(saasWriteItems, saasWriteItem) saasWriteItems = append(saasWriteItems, saasWriteItem)
@@ -171,15 +165,12 @@ func submitWrite(writeParams writeParams, saasWriteCmds []*saasapi.WriteItem) (e
write.WriteItems = saasWriteCmds write.WriteItems = saasWriteCmds
res, err := writeParams.saasHttp.Write(saasReq) res, err := writeParams.saasHttp.Write(saasReq)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "submit write error", "err", err) return 0, fmt.Errorf("Submit Command error: %w", err)
return
} }
if res.GetCode() != saasapi.ErrorCode_SUCC { if res.GetCode() != saasapi.ErrorCode_SUCC {
err = fmt.Errorf("write failed. code:%v, status:%v", res.GetCode(), res.GetStatus()) err = fmt.Errorf("write failed. code:%v, status:%v", res.GetCode(), res.GetStatus())
fmt.Fprintln(os.Stderr, protojson.Format(res))
return return
} }

View File

@@ -18,7 +18,7 @@ const (
targetDeletePath = "/saas/target/delete" targetDeletePath = "/saas/target/delete"
bindSetPath = "/saas/bind/set" bindSetPath = "/saas/bind/set"
bindDeletePath = "/saas/bind/delete" bindDeletePath = "/saas/bind/delete"
scriptRunPath = "/saas/script/run" scriptDebugPath = "/saas/script/debug"
scriptCreatePath = "/saas/script/create" scriptCreatePath = "/saas/script/create"
scriptListPath = "/saas/script/list" scriptListPath = "/saas/script/list"
scriptDeletePath = "/saas/script/delete" scriptDeletePath = "/saas/script/delete"
@@ -57,7 +57,7 @@ type ApiUrls struct {
TargetDeletePath string TargetDeletePath string
BindSetPath string BindSetPath string
BindDeletePath string BindDeletePath string
ScriptRunPath string ScriptDebugPath string
ScriptCreatePath string ScriptCreatePath string
ScriptListPath string ScriptListPath string
ScriptDeletePath string ScriptDeletePath string
@@ -162,10 +162,10 @@ func InitAPIUrl(c *ApiUrls) *ApiUrls {
r.BindDeletePath = bindDeletePath r.BindDeletePath = bindDeletePath
} }
if c.ScriptRunPath != "" { if c.ScriptDebugPath != "" {
r.ScriptRunPath = c.ScriptRunPath r.ScriptDebugPath = c.ScriptDebugPath
} else { } else {
r.ScriptRunPath = scriptRunPath r.ScriptDebugPath = scriptDebugPath
} }
if c.ScriptCreatePath != "" { if c.ScriptCreatePath != "" {

View File

@@ -113,8 +113,8 @@ func (c *SaasClient) BindDelete(saasReq *saasapi.SaasReq) (saasRes *saasapi.Saas
return c.post(postUrl, saasReq) return c.post(postUrl, saasReq)
} }
func (c *SaasClient) ScriptRun(saasReq *saasapi.SaasReq) (saasRes *saasapi.SaasRes, err error) { func (c *SaasClient) ScriptDebug(saasReq *saasapi.SaasReq) (saasRes *saasapi.SaasRes, err error) {
postUrl := c.makeUrl(c.ApiUrls.BaseUrl, c.ApiUrls.ScriptRunPath) postUrl := c.makeUrl(c.ApiUrls.BaseUrl, c.ApiUrls.ScriptDebugPath)
return c.post(postUrl, saasReq) 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) { func (c *SaasClient) post(url string, saasReq *saasapi.SaasReq) (saasRes *saasapi.SaasRes, err error) {
postBuf, err := proto.Marshal(saasReq) postBuf, err := proto.Marshal(saasReq)
if err != nil { if err != nil {
fmt.Println("marshal saas req error", err) return nil, fmt.Errorf("Marshal saas req error. %w", err)
return nil, err
} }
req, err := http.NewRequest("POST", url, bytes.NewBuffer(postBuf)) req, err := http.NewRequest("POST", url, bytes.NewBuffer(postBuf))
if err != nil { if err != nil {
fmt.Println("http new request error", err) return nil, fmt.Errorf("Http new request error. %w", err)
return nil, err
} }
timeStamp := strconv.FormatInt(time.Now().Unix(), 10) 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") req.Header.Add("Content-Type", "application/x-protobuf")
res, err := c.Client.Do(req) res, err := c.Client.Do(req)
if err != nil { if err != nil {
fmt.Println("http send error", err) return nil, fmt.Errorf("Http do request error. %w", err)
return nil, err
} }
defer res.Body.Close() defer res.Body.Close()
if res.StatusCode != 200 {
return nil, fmt.Errorf("NOT 200. %v", res.StatusCode)
}
resBody, err := io.ReadAll(res.Body) resBody, err := io.ReadAll(res.Body)
if err != nil { if err != nil {
fmt.Println("http read body error", err) return nil, fmt.Errorf("Http read body error. %w", err)
return nil, err
} }
saasRes = &saasapi.SaasRes{} saasRes = &saasapi.SaasRes{}
if c.ResponseEncoder == RESPONSE_ENCODER_PROTOBUF { if c.ResponseEncoder == RESPONSE_ENCODER_PROTOBUF {
err = proto.Unmarshal(resBody, saasRes) err = proto.Unmarshal(resBody, saasRes)
if err != nil { if err != nil {
fmt.Println("unmarshal response body to protobuf error", err) return nil, fmt.Errorf("unmarshal response body to protobuf error. %w", err)
return nil, err
} }
} else { } else {
err = json.Unmarshal(resBody, saasRes) err = json.Unmarshal(resBody, saasRes)
if err != nil { if err != nil {
fmt.Println("unmarshal response body to json error", err) return nil, fmt.Errorf("unmarshal response body to json error. %w", err)
return nil, 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) { func (c *SaasClient) upload(url string, file *os.File, offset int64, size int) (saasRes *saasapi.SaasRes, err error) {
if file == nil { if file == nil {
return nil, fmt.Errorf("file is nil") return nil, fmt.Errorf("file is nil.")
} }
if size <= 0 { if size <= 0 {
return nil, fmt.Errorf("size is invalid") return nil, fmt.Errorf("size is invalid.")
} }
buf := make([]byte, size) buf := make([]byte, size)
n, err := file.ReadAt(buf, offset) n, err := file.ReadAt(buf, offset)
if err != nil { if err != nil {
fmt.Println("read file error", err) return nil, fmt.Errorf("Read file error. %w", err)
return nil, err
} }
if n != size { 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 var gzBuf bytes.Buffer
gz := gzip.NewWriter(&gzBuf) gz := gzip.NewWriter(&gzBuf)
if _, err := gz.Write(buf); err != nil { if _, err := gz.Write(buf); err != nil {
fmt.Println("gzip write error", err) return nil, fmt.Errorf("GZip write error. %w", err)
return nil, err
} }
if err = gz.Close(); err != nil { 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())) req, err := http.NewRequest("POST", url, bytes.NewBuffer(gzBuf.Bytes()))
if err != nil { if err != nil {
fmt.Println("http new request error", err) return nil, fmt.Errorf("Http new request error. %w", err)
return nil, err
} }
timeStamp := strconv.FormatInt(time.Now().Unix(), 10) 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") req.Header.Add("Content-Encoding", "gzip")
res, err := c.Client.Do(req) res, err := c.Client.Do(req)
if err != nil { if err != nil {
fmt.Println("http send error", err) return nil, fmt.Errorf("Http do request error. %w", err)
return nil, err
} }
defer res.Body.Close() defer res.Body.Close()
if res.StatusCode != 200 {
return nil, fmt.Errorf("NOT 200. %v", res.StatusCode)
}
resBody, err := io.ReadAll(res.Body) resBody, err := io.ReadAll(res.Body)
if err != nil { if err != nil {
fmt.Println("http read body error", err) return nil, fmt.Errorf("http read body error. %w", err)
return nil, err
} }
saasRes = &saasapi.SaasRes{} saasRes = &saasapi.SaasRes{}
if c.ResponseEncoder == RESPONSE_ENCODER_PROTOBUF { if c.ResponseEncoder == RESPONSE_ENCODER_PROTOBUF {
err = proto.Unmarshal(resBody, saasRes) err = proto.Unmarshal(resBody, saasRes)
if err != nil { if err != nil {
fmt.Println("unmarshal response body to protobuf error", err) return nil, fmt.Errorf("unmarshal response body to protobuf error. %w", err)
return nil, err
} }
} else { } else {
err = json.Unmarshal(resBody, saasRes) err = json.Unmarshal(resBody, saasRes)
if err != nil { if err != nil {
fmt.Println("unmarshal response body to json error", err) return nil, fmt.Errorf("unmarshal response body to json error. %w", err)
return nil, 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) { func (c *SaasClient) download(url string, file *os.File, offset int64, size int) (saasRes *saasapi.SaasRes, err error) {
if file == nil { if file == nil {
return nil, fmt.Errorf("file is nil") return nil, fmt.Errorf("file is nil.")
} }
if size <= 0 { 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{})) req, err := http.NewRequest("GET", url, bytes.NewBuffer([]byte{}))
if err != nil { if err != nil {
fmt.Println("http new request error", err) return nil, fmt.Errorf("Http new request error. %w", err)
return nil, err
} }
timeStamp := strconv.FormatInt(time.Now().Unix(), 10) 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) res, err := c.Client.Do(req)
if err != nil { if err != nil {
fmt.Println("http send error", err) return nil, fmt.Errorf("Http do request error. %w", err)
return nil, err
} }
defer res.Body.Close() defer res.Body.Close()
if res.StatusCode != 200 { if res.StatusCode != 200 {
err = fmt.Errorf("NOT 200. %v", res.StatusCode) return nil, fmt.Errorf("http state error. %w", err)
fmt.Println("http state error", err)
return nil, err
} }
bodyReader := res.Body bodyReader := res.Body
if strings.Contains(res.Header.Get("Content-Encoding"), "gzip") { if strings.Contains(res.Header.Get("Content-Encoding"), "gzip") {
gz, err := gzip.NewReader(res.Body) gz, err := gzip.NewReader(res.Body)
if err != nil { if err != nil {
fmt.Println("gzip newreader error", err) return nil, fmt.Errorf("GZip newreader error. %w", err)
return nil, err
} }
defer gz.Close() defer gz.Close()
bodyReader = gz bodyReader = gz
@@ -365,8 +355,7 @@ func (c *SaasClient) download(url string, file *os.File, offset int64, size int)
resBody, err := io.ReadAll(bodyReader) resBody, err := io.ReadAll(bodyReader)
if err != nil { if err != nil {
fmt.Println("read body error", err) return nil, fmt.Errorf("Http read body error. %w", err)
return nil, err
} }
saasRes = &saasapi.SaasRes{} saasRes = &saasapi.SaasRes{}
@@ -374,22 +363,18 @@ func (c *SaasClient) download(url string, file *os.File, offset int64, size int)
if len(resBody) == size { if len(resBody) == size {
file.WriteAt(resBody, offset) file.WriteAt(resBody, offset)
} else { } else {
err = fmt.Errorf("body size error. body:%v, want:%v", len(resBody), size) return nil, fmt.Errorf("body size error. body:%v, want:%v", len(resBody), size)
fmt.Println("http read body error", err)
return nil, err
} }
} else { } else {
if c.ResponseEncoder == RESPONSE_ENCODER_PROTOBUF { if c.ResponseEncoder == RESPONSE_ENCODER_PROTOBUF {
err = proto.Unmarshal(resBody, saasRes) err = proto.Unmarshal(resBody, saasRes)
if err != nil { if err != nil {
fmt.Println("unmarshal response body to protobuf error", err) return nil, fmt.Errorf("unmarshal response body to protobuf error. %w", err)
return nil, err
} }
} else { } else {
err = json.Unmarshal(resBody, saasRes) err = json.Unmarshal(resBody, saasRes)
if err != nil { if err != nil {
fmt.Println("unmarshal response body to json error", err) return nil, fmt.Errorf("unmarshal response body to json error. %w", err)
return nil, err
} }
} }
} }