优化错误处理相关代码

This commit is contained in:
GoEdgeLab
2023-08-11 16:13:33 +08:00
parent 310bc107ad
commit 16557ba6d7
19 changed files with 81 additions and 68 deletions

View File

@@ -1,6 +1,7 @@
package acme
import (
"fmt"
"github.com/TeaOSLab/EdgeAPI/internal/dnsclients"
"github.com/TeaOSLab/EdgeAPI/internal/dnsclients/dnstypes"
"github.com/TeaOSLab/EdgeAPI/internal/errors"
@@ -45,7 +46,7 @@ func (this *DNSProvider) Present(domain, token, keyAuth string) error {
if !wasDeleted {
records, err := this.raw.QueryRecords(this.dnsDomain, recordName, dnstypes.RecordTypeTXT)
if err != nil {
return errors.New("query DNS record failed: " + err.Error())
return fmt.Errorf("query DNS record failed: %w", err)
}
for _, record := range records {
err = this.raw.DeleteRecord(this.dnsDomain, record)
@@ -67,7 +68,7 @@ func (this *DNSProvider) Present(domain, token, keyAuth string) error {
Route: this.raw.DefaultRoute(),
})
if err != nil {
return errors.New("create DNS record failed: " + err.Error())
return fmt.Errorf("create DNS record failed: %w", err)
}
return nil

View File

@@ -1,6 +1,7 @@
package acme
import (
"fmt"
teaconst "github.com/TeaOSLab/EdgeAPI/internal/const"
"github.com/TeaOSLab/EdgeAPI/internal/errors"
"github.com/go-acme/lego/v4/certcrypto"
@@ -104,7 +105,7 @@ func (this *Request) runDNS() (certData []byte, keyData []byte, err error) {
HmacEncoded: this.task.Account.EABKey,
})
if err != nil {
return nil, nil, errors.New("register user failed: " + err.Error())
return nil, nil, fmt.Errorf("register user failed: %w", err)
}
err = this.task.User.Register(resource)
if err != nil {
@@ -134,7 +135,7 @@ func (this *Request) runDNS() (certData []byte, keyData []byte, err error) {
}
certResource, err := client.Certificate.Obtain(request)
if err != nil {
return nil, nil, errors.New("obtain cert failed: " + err.Error())
return nil, nil, fmt.Errorf("obtain cert failed: %w", err)
}
return certResource.Certificate, certResource.PrivateKey, nil
@@ -177,7 +178,7 @@ func (this *Request) runHTTP() (certData []byte, keyData []byte, err error) {
HmacEncoded: this.task.Account.EABKey,
})
if err != nil {
return nil, nil, errors.New("register user failed: " + err.Error())
return nil, nil, fmt.Errorf("register user failed: %w", err)
}
err = this.task.User.Register(resource)
if err != nil {

View File

@@ -3,6 +3,7 @@
package dnsutils
import (
"fmt"
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
"github.com/TeaOSLab/EdgeAPI/internal/db/models/dns"
"github.com/TeaOSLab/EdgeAPI/internal/dnsclients"
@@ -217,7 +218,7 @@ func FindDefaultDomainRoute(tx *dbs.Tx, domain *dns.DNSDomain) (string, error) {
}
paramsMap, err := provider.DecodeAPIParams()
if err != nil {
return "", errors.New("decode provider params failed: " + err.Error())
return "", fmt.Errorf("decode provider params failed: %w", err)
}
var dnsProvider = dnsclients.FindProvider(provider.Type, int64(provider.Id))
if dnsProvider == nil {

View File

@@ -41,7 +41,7 @@ func (this *HTTPAccessLogManager) FindTableNames(db *dbs.DB, day string) ([]stri
for _, prefix := range []string{"edgeHTTPAccessLogs_" + day + "%", "edgehttpaccesslogs_" + day + "%"} {
ones, columnNames, err := db.FindPreparedOnes(`SHOW TABLES LIKE '` + prefix + `'`)
if err != nil {
return nil, errors.New("query table names error: " + err.Error())
return nil, fmt.Errorf("query table names error: %w", err)
}
var columnName = columnNames[0]
@@ -88,7 +88,7 @@ func (this *HTTPAccessLogManager) FindTables(db *dbs.DB, day string) ([]*httpAcc
for _, prefix := range []string{"edgeHTTPAccessLogs_" + day + "%", "edgehttpaccesslogs_" + day + "%"} {
ones, columnNames, err := db.FindPreparedOnes(`SHOW TABLES LIKE '` + prefix + `'`)
if err != nil {
return nil, errors.New("query table names error: " + err.Error())
return nil, fmt.Errorf("query table names error: %w", err)
}
var columnName = columnNames[0]

View File

@@ -3,6 +3,7 @@ package models
import (
"encoding/json"
"errors"
"fmt"
"github.com/TeaOSLab/EdgeAPI/internal/db/models/regions"
"github.com/TeaOSLab/EdgeAPI/internal/utils"
"github.com/TeaOSLab/EdgeCommon/pkg/iplibrary"
@@ -299,7 +300,7 @@ func (this *IPLibraryFileDAO) GenerateIPLibrary(tx *dbs.Tx, libraryFileId int64)
var libraryFile = one.(*IPLibraryFile)
template, err := iplibrary.NewTemplate(libraryFile.Template)
if err != nil {
return errors.New("create template from '" + libraryFile.Template + "' failed: " + err.Error())
return fmt.Errorf("create template from '%s' failed: %w", libraryFile.Template, err)
}
var fileId = int64(libraryFile.FileId)
@@ -314,17 +315,17 @@ func (this *IPLibraryFileDAO) GenerateIPLibrary(tx *dbs.Tx, libraryFileId int64)
if os.IsNotExist(err) {
err = os.Mkdir(dir, 0777)
if err != nil {
return errors.New("can not open dir '" + dir + "' to write: " + err.Error())
return fmt.Errorf("can not open dir '%s' to write: %w", dir, err)
}
} else {
return errors.New("can not open dir '" + dir + "' to write: " + err.Error())
return fmt.Errorf("can not open dir '%s' to write: %w", dir, err)
}
} else if !stat.IsDir() {
_ = os.Remove(dir)
err = os.Mkdir(dir, 0777)
if err != nil {
return errors.New("can not open dir '" + dir + "' to write: " + err.Error())
return fmt.Errorf("can not open dir '%s' to write: %w", dir, err)
}
}
@@ -428,7 +429,7 @@ func (this *IPLibraryFileDAO) GenerateIPLibrary(tx *dbs.Tx, libraryFileId int64)
err = writer.WriteMeta()
if err != nil {
return errors.New("write meta failed: " + err.Error())
return fmt.Errorf("write meta failed: %w", err)
}
chunkIds, err := SharedFileChunkDAO.FindAllFileChunkIds(tx, fileId)
@@ -503,7 +504,7 @@ func (this *IPLibraryFileDAO) GenerateIPLibrary(tx *dbs.Tx, libraryFileId int64)
err = writer.Write(ipFrom, ipTo, countryId, provinceId, cityId, townId, providerId)
if err != nil {
return errors.New("write failed: " + err.Error())
return fmt.Errorf("write failed: %w", err)
}
return nil
@@ -536,7 +537,7 @@ func (this *IPLibraryFileDAO) GenerateIPLibrary(tx *dbs.Tx, libraryFileId int64)
// 将生成的内容写入到文件
stat, err = os.Stat(filePath)
if err != nil {
return errors.New("stat generated file failed: " + err.Error())
return fmt.Errorf("stat generated file failed: %w", err)
}
generatedFileId, err := SharedFileDAO.CreateFile(tx, 0, 0, "ipLibraryFile", "", libraryCode+".db", stat.Size(), "", false)
if err != nil {
@@ -545,7 +546,7 @@ func (this *IPLibraryFileDAO) GenerateIPLibrary(tx *dbs.Tx, libraryFileId int64)
fp, err := os.Open(filePath)
if err != nil {
return errors.New("open generated file failed: " + err.Error())
return fmt.Errorf("open generated file failed: %w", err)
}
var buf = make([]byte, 256*1024)
for {

View File

@@ -1,9 +1,8 @@
package dnsclients
import (
"errors"
"fmt"
"github.com/TeaOSLab/EdgeAPI/internal/dnsclients/dnstypes"
"github.com/iwind/TeaGo/types"
)
type BaseProvider struct{}
@@ -24,5 +23,5 @@ func (this *BaseProvider) WrapError(err error, domain string, record *dnstypes.R
} else {
fullname = record.Name + "." + domain
}
return errors.New("record operation failed: '" + fullname + " " + record.Type + " " + record.Value + " " + types.String(record.TTL) + "': " + err.Error())
return fmt.Errorf("record operation failed: '%s %s %s %d': %w", fullname, record.Type, record.Value, record.TTL, err)
}

View File

@@ -6,6 +6,7 @@ import (
"bytes"
"crypto/tls"
"encoding/json"
"fmt"
teaconst "github.com/TeaOSLab/EdgeAPI/internal/const"
"github.com/TeaOSLab/EdgeAPI/internal/dnsclients/cloudflare"
"github.com/TeaOSLab/EdgeAPI/internal/dnsclients/dnstypes"
@@ -337,7 +338,7 @@ func (this *CloudFlareProvider) doAPI(method string, apiPath string, args map[st
err = json.Unmarshal(data, respPtr)
if err != nil {
return errors.New("decode json failed: " + err.Error() + ", response text: " + string(data))
return fmt.Errorf("decode json failed: %w, response text: %s", err, string(data))
}
return nil

View File

@@ -4,6 +4,7 @@ import (
"crypto/tls"
"encoding/json"
"errors"
"fmt"
"github.com/TeaOSLab/EdgeAPI/internal/dnsclients/dnspod"
"github.com/TeaOSLab/EdgeAPI/internal/dnsclients/dnstypes"
"github.com/TeaOSLab/EdgeAPI/internal/utils/numberutils"
@@ -380,7 +381,7 @@ func (this *DNSPodProvider) doAPI(path string, params map[string]string, respPtr
req, err := http.NewRequest(http.MethodPost, apiHost+path, strings.NewReader(query.Encode()))
if err != nil {
return errors.New("create request failed: " + err.Error())
return fmt.Errorf("create request failed: %w", err)
}
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
req.Header.Set("User-Agent", "GoEdge-Client/1.0.0 (iwind.liu@gmail.com)")

View File

@@ -7,6 +7,7 @@ import (
"crypto/tls"
"encoding/json"
"errors"
"fmt"
teaconst "github.com/TeaOSLab/EdgeAPI/internal/const"
"github.com/TeaOSLab/EdgeAPI/internal/dnsclients/dnstypes"
"github.com/TeaOSLab/EdgeAPI/internal/dnsclients/edgeapi"
@@ -452,7 +453,7 @@ func (this *EdgeDNSAPIProvider) doAPI(path string, params map[string]any, respPt
err = json.Unmarshal(data, respPtr)
if err != nil {
return errors.New("decode response failed: " + err.Error() + ", JSON: " + string(data))
return fmt.Errorf("decode response failed: %w, JSON: %s", err, string(data))
}
if !respPtr.IsValid() {

View File

@@ -2,6 +2,7 @@ package installers
import (
"errors"
"fmt"
"github.com/TeaOSLab/EdgeCommon/pkg/configutils"
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
"github.com/iwind/TeaGo/Tea"
@@ -67,7 +68,7 @@ func (this *BaseInstaller) Login(credentials *Credentials) error {
signer, err = ssh.ParsePrivateKey([]byte(credentials.PrivateKey))
}
if err != nil {
return errors.New("parse private key: " + err.Error())
return fmt.Errorf("parse private key: %w", err)
}
authMethod := ssh.PublicKeys(signer)
methods = append(methods, authMethod)

View File

@@ -3,6 +3,7 @@ package installers
import (
"bytes"
"errors"
"fmt"
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
"os"
@@ -24,7 +25,7 @@ func (this *NodeInstaller) Install(dir string, params interface{}, installStatus
}
err := nodeParams.Validate()
if err != nil {
return errors.New("params validation: " + err.Error())
return fmt.Errorf("params validation: %w", err)
}
// 检查目标目录是否存在
@@ -33,7 +34,7 @@ func (this *NodeInstaller) Install(dir string, params interface{}, installStatus
err = this.client.MkdirAll(dir)
if err != nil {
installStatus.ErrorCode = "CREATE_ROOT_DIRECTORY_FAILED"
return errors.New("create directory '" + dir + "' failed: " + err.Error())
return fmt.Errorf("create directory '%s' failed: %w", dir, err)
}
}
@@ -74,7 +75,7 @@ func (this *NodeInstaller) Install(dir string, params interface{}, installStatus
}
}
if firstCopyErr != nil {
return errors.New("upload node file failed: " + firstCopyErr.Error())
return fmt.Errorf("upload node file failed: %w", firstCopyErr)
}
// 测试运行环境
@@ -82,7 +83,7 @@ func (this *NodeInstaller) Install(dir string, params interface{}, installStatus
if !nodeParams.IsUpgrading {
_, stderr, err := this.client.Exec(env.HelperPath + " -cmd=test")
if err != nil {
return errors.New("test failed: " + err.Error())
return fmt.Errorf("test failed: %w", err)
}
if len(stderr) > 0 {
return errors.New("test failed: " + stderr)
@@ -99,7 +100,7 @@ func (this *NodeInstaller) Install(dir string, params interface{}, installStatus
// 删除可执行文件防止冲突
err = this.client.Remove(exePath)
if err != nil && err != os.ErrNotExist {
return errors.New("remove old file failed: " + err.Error())
return fmt.Errorf("remove old file failed: %w", err)
}
}
}
@@ -133,7 +134,7 @@ secret: "${nodeSecret}"`)
_, err = this.client.WriteFile(configFile, data)
if err != nil {
return errors.New("write '" + configFile + "': " + err.Error())
return fmt.Errorf("write '%s': %w", configFile, err)
}
}
@@ -141,7 +142,7 @@ secret: "${nodeSecret}"`)
_, stderr, err = this.client.Exec(dir + "/edge-node/bin/edge-node test")
if err != nil {
installStatus.ErrorCode = "TEST_FAILED"
return errors.New("test edge node failed: " + err.Error() + ", stderr: " + stderr)
return fmt.Errorf("test edge node failed: %w, stderr: %s", err, stderr)
}
if len(stderr) > 0 {
if regexp.MustCompile(`(?i)rpc`).MatchString(stderr) {
@@ -154,7 +155,7 @@ secret: "${nodeSecret}"`)
// 启动
_, stderr, err = this.client.Exec(dir + "/edge-node/bin/edge-node start")
if err != nil {
return errors.New("start edge node failed: " + err.Error())
return fmt.Errorf("start edge node failed: %w", err)
}
if len(stderr) > 0 {

View File

@@ -167,7 +167,7 @@ func (this *NodeQueue) InstallNode(nodeId int64, installStatus *models.NodeInsta
for _, apiNode := range apiNodes {
addrConfigs, err := apiNode.DecodeAccessAddrs()
if err != nil {
return errors.New("decode api node access addresses failed: " + err.Error())
return fmt.Errorf("decode api node access addresses failed: %w", err)
}
for _, addrConfig := range addrConfigs {
apiEndpoints = append(apiEndpoints, addrConfig.FullAddresses()...)
@@ -320,7 +320,7 @@ func (this *NodeQueue) StartNode(nodeId int64) error {
// 执行start
_, stderr, err := installer.client.Exec("sudo " + exe + " start")
if err != nil {
return errors.New("start failed: " + err.Error())
return fmt.Errorf("start failed: %w", err)
}
if len(stderr) > 0 {
return errors.New("start failed: " + stderr)
@@ -427,7 +427,7 @@ func (this *NodeQueue) StopNode(nodeId int64) error {
// 执行stop
_, stderr, err := installer.client.Exec(exe + " stop")
if err != nil {
return errors.New("stop failed: " + err.Error())
return fmt.Errorf("stop failed: %w", err)
}
if len(stderr) > 0 {
return errors.New("stop failed: " + stderr)

View File

@@ -5,6 +5,7 @@ import (
"crypto/tls"
"encoding/json"
"errors"
"fmt"
"github.com/TeaOSLab/EdgeAPI/internal/configs"
teaconst "github.com/TeaOSLab/EdgeAPI/internal/const"
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
@@ -285,7 +286,7 @@ func (this *APINode) listenRPC(listener net.Listener, tlsConfig *tls.Config) err
this.registerServices(rpcServer)
err := rpcServer.Serve(listener)
if err != nil {
return errors.New("[API_NODE]start rpc failed: " + err.Error())
return fmt.Errorf("[API_NODE]start rpc failed: %w", err)
}
return nil
@@ -354,23 +355,23 @@ func (this *APINode) autoUpgrade() error {
var config = &dbs.Config{}
configData, err := os.ReadFile(Tea.ConfigFile("db.yaml"))
if err != nil {
return errors.New("read database config file failed: " + err.Error())
return fmt.Errorf("read database config file failed: %w", err)
}
err = yaml.Unmarshal(configData, config)
if err != nil {
return errors.New("decode database config failed: " + err.Error())
return fmt.Errorf("decode database config failed: %w", err)
}
var dbConfig = config.DBs[Tea.Env]
db, err := dbs.NewInstanceFromConfig(dbConfig)
if err != nil {
return errors.New("load database failed: " + err.Error())
return fmt.Errorf("load database failed: %w", err)
}
defer func() {
_ = db.Close()
}()
one, err := db.FindOne("SELECT version FROM edgeVersions LIMIT 1")
if err != nil {
return errors.New("query version failed: " + err.Error())
return fmt.Errorf("query version failed: %w", err)
}
if one != nil {
// 如果是同样的版本,则直接认为是最新版本
@@ -384,7 +385,7 @@ func (this *APINode) autoUpgrade() error {
logs.Println("[API_NODE]upgrade database starting ...")
err = setup.NewSQLExecutor(dbConfig).Run(false)
if err != nil {
return errors.New("execute sql failed: " + err.Error())
return fmt.Errorf("execute sql failed: %w", err)
}
// 不使用remotelog
logs.Println("[API_NODE]upgrade database done")

View File

@@ -2,6 +2,7 @@ package rpcutils
import (
"errors"
"fmt"
)
type UserType = string
@@ -27,5 +28,5 @@ func Wrap(description string, err error) error {
if err == nil {
return errors.New(description)
}
return errors.New(description + ": " + err.Error())
return fmt.Errorf("%s: %w", description, err)
}

View File

@@ -2,6 +2,7 @@ package setup
import (
"encoding/json"
"fmt"
"github.com/TeaOSLab/EdgeAPI/internal/configs"
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
"github.com/TeaOSLab/EdgeAPI/internal/errors"
@@ -150,7 +151,7 @@ func (this *Setup) Run() error {
}
addrsJSON, err := json.Marshal([]*serverconfigs.NetworkAddressConfig{addr})
if err != nil {
return errors.New("json encode api node addr failed: " + err.Error())
return fmt.Errorf("json encode api node addr failed: %w", err)
}
var httpJSON []byte = nil
@@ -166,7 +167,7 @@ func (this *Setup) Run() error {
}
httpJSON, err = json.Marshal(httpConfig)
if err != nil {
return errors.New("json encode api node http config failed: " + err.Error())
return fmt.Errorf("json encode api node http config failed: %w", err)
}
}
if this.config.APINodeProtocol == "https" {
@@ -181,14 +182,14 @@ func (this *Setup) Run() error {
}
httpsJSON, err = json.Marshal(httpsConfig)
if err != nil {
return errors.New("json encode api node https config failed: " + err.Error())
return fmt.Errorf("json encode api node https config failed: %w", err)
}
}
// 创建API节点
nodeId, err := dao.CreateAPINode(nil, "默认API节点", "这是默认创建的第一个API节点", httpJSON, httpsJSON, false, nil, nil, addrsJSON, true)
if err != nil {
return errors.New("create api node in database failed: " + err.Error())
return fmt.Errorf("create api node in database failed: %w", err)
}
apiNodeId = nodeId
}
@@ -208,7 +209,7 @@ func (this *Setup) Run() error {
}
err = apiConfig.WriteFile(Tea.ConfigFile("api.yaml"))
if err != nil {
return errors.New("save config failed: " + err.Error())
return fmt.Errorf("save config failed: %w", err)
}
return nil

View File

@@ -2,8 +2,8 @@ package setup
import (
"encoding/json"
"fmt"
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
"github.com/TeaOSLab/EdgeAPI/internal/errors"
"github.com/TeaOSLab/EdgeCommon/pkg/dnsconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
_ "github.com/go-sql-driver/mysql"
@@ -68,7 +68,7 @@ func (this *SQLExecutor) Run(showLog bool) error {
var sqlResult = &SQLDumpResult{}
err = json.Unmarshal(sqlData, sqlResult)
if err != nil {
return errors.New("decode sql data failed: " + err.Error())
return fmt.Errorf("decode sql data failed: %w", err)
}
_, err = sqlDump.Apply(db, sqlResult, showLog)
@@ -227,7 +227,7 @@ func (this *SQLExecutor) checkCluster(db *dbs.DB) error {
/// 检查是否有集群数字
stmt, err := db.Prepare("SELECT COUNT(*) FROM edgeNodeClusters")
if err != nil {
return errors.New("query clusters failed: " + err.Error())
return fmt.Errorf("query clusters failed: %w", err)
}
defer func() {
_ = stmt.Close()
@@ -235,7 +235,7 @@ func (this *SQLExecutor) checkCluster(db *dbs.DB) error {
col, err := stmt.FindCol(0)
if err != nil {
return errors.New("query clusters failed: " + err.Error())
return fmt.Errorf("query clusters failed: %w", err)
}
count := types.Int(col)
if count > 0 {
@@ -311,7 +311,7 @@ func (this *SQLExecutor) checkCluster(db *dbs.DB) error {
func (this *SQLExecutor) checkIPList(db *dbs.DB) error {
stmt, err := db.Prepare("SELECT COUNT(*) FROM edgeIPLists")
if err != nil {
return errors.New("query ip lists failed: " + err.Error())
return fmt.Errorf("query ip lists failed: %w", err)
}
defer func() {
_ = stmt.Close()
@@ -319,7 +319,7 @@ func (this *SQLExecutor) checkIPList(db *dbs.DB) error {
col, err := stmt.FindCol(0)
if err != nil {
return errors.New("query ip lists failed: " + err.Error())
return fmt.Errorf("query ip lists failed: %w", err)
}
count := types.Int(col)
if count > 0 {
@@ -508,7 +508,7 @@ func (this *SQLExecutor) checkClientAgents(db *dbs.DB) error {
func (this *SQLExecutor) updateVersion(db *dbs.DB, version string) error {
stmt, err := db.Prepare("SELECT COUNT(*) FROM edgeVersions")
if err != nil {
return errors.New("query version failed: " + err.Error())
return fmt.Errorf("query version failed: %w", err)
}
defer func() {
_ = stmt.Close()
@@ -516,20 +516,20 @@ func (this *SQLExecutor) updateVersion(db *dbs.DB, version string) error {
col, err := stmt.FindCol(0)
if err != nil {
return errors.New("query version failed: " + err.Error())
return fmt.Errorf("query version failed: %w", err)
}
count := types.Int(col)
if count > 0 {
_, err = db.Exec("UPDATE edgeVersions SET version=?", version)
if err != nil {
return errors.New("update version failed: " + err.Error())
return fmt.Errorf("update version failed: %w", err)
}
return nil
}
_, err = db.Exec("INSERT edgeVersions (version) VALUES (?)", version)
if err != nil {
return errors.New("create version failed: " + err.Error())
return fmt.Errorf("create version failed: %w", err)
}
return nil

View File

@@ -5,7 +5,7 @@ package setup
import (
"encoding/json"
"github.com/TeaOSLab/EdgeAPI/internal/errors"
"fmt"
"github.com/TeaOSLab/EdgeCommon/pkg/dnsconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/systemconfigs"
@@ -79,7 +79,7 @@ func upgradeV0_4_9(db *dbs.DB) error {
config.DenySpiders = true
configJSON, err := json.Marshal(config)
if err != nil {
return errors.New("encode SecurityConfig failed: " + err.Error())
return fmt.Errorf("encode SecurityConfig failed: %w", err)
} else {
_, err := db.Exec("UPDATE edgeSysSettings SET value=? WHERE code=?", configJSON, systemconfigs.SettingCodeAdminSecurityConfig)
if err != nil {

View File

@@ -8,6 +8,7 @@ import (
"crypto/tls"
"crypto/x509"
"errors"
"fmt"
teaconst "github.com/TeaOSLab/EdgeAPI/internal/const"
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
"github.com/TeaOSLab/EdgeAPI/internal/goman"
@@ -63,7 +64,7 @@ func (this *SSLCertUpdateOCSPTask) Loop() error {
var maxTries = 5
certs, err := models.SharedSSLCertDAO.ListCertsToUpdateOCSP(tx, maxTries, size)
if err != nil {
return errors.New("list certs failed: " + err.Error())
return fmt.Errorf("list certs failed: %w", err)
}
if len(certs) == 0 {
@@ -74,7 +75,7 @@ func (this *SSLCertUpdateOCSPTask) Loop() error {
for _, cert := range certs {
err := models.SharedSSLCertDAO.PrepareCertOCSPUpdating(tx, int64(cert.Id))
if err != nil {
return errors.New("prepare cert ocsp updating failed: " + err.Error())
return fmt.Errorf("prepare cert ocsp updating failed: %w", err)
}
}
@@ -90,7 +91,7 @@ func (this *SSLCertUpdateOCSPTask) Loop() error {
}
err = models.SharedSSLCertDAO.UpdateCertOCSP(tx, int64(cert.Id), ocspData, expiresAt, hasErr, errString)
if err != nil {
return errors.New("update ocsp failed: " + err.Error())
return fmt.Errorf("update ocsp failed: %w", err)
}
}

View File

@@ -1,3 +1,4 @@
//go:build windows
// +build windows
package utils
@@ -16,7 +17,7 @@ import (
func (this *ServiceManager) Install(exePath string, args []string) error {
m, err := mgr.Connect()
if err != nil {
return fmt.Errorf("connecting: %s please 'Run as administrator' again", err.Error())
return fmt.Errorf("connecting: %w please 'Run as administrator' again", err)
}
defer m.Disconnect()
s, err := m.OpenService(this.Name)
@@ -31,7 +32,7 @@ func (this *ServiceManager) Install(exePath string, args []string) error {
StartType: windows.SERVICE_AUTO_START,
}, args...)
if err != nil {
return fmt.Errorf("creating: %s", err.Error())
return fmt.Errorf("creating: %w", err)
}
defer s.Close()
@@ -47,12 +48,12 @@ func (this *ServiceManager) Start() error {
defer m.Disconnect()
s, err := m.OpenService(this.Name)
if err != nil {
return fmt.Errorf("could not access service: %v", err)
return fmt.Errorf("could not access service: %w", err)
}
defer s.Close()
err = s.Start("service")
if err != nil {
return fmt.Errorf("could not start service: %v", err)
return fmt.Errorf("could not start service: %w", err)
}
return nil
@@ -62,12 +63,12 @@ func (this *ServiceManager) Start() error {
func (this *ServiceManager) Uninstall() error {
m, err := mgr.Connect()
if err != nil {
return fmt.Errorf("connecting: %s please 'Run as administrator' again", err.Error())
return fmt.Errorf("connecting: %w please 'Run as administrator' again", err)
}
defer m.Disconnect()
s, err := m.OpenService(this.Name)
if err != nil {
return fmt.Errorf("open service: %s", err.Error())
return fmt.Errorf("open service: %w", err)
}
// shutdown service
@@ -79,7 +80,7 @@ func (this *ServiceManager) Uninstall() error {
defer s.Close()
err = s.Delete()
if err != nil {
return fmt.Errorf("deleting: %s", err.Error())
return fmt.Errorf("deleting: %w", err)
}
return nil
}