From 70afbbfc687465021a60a824ef999980db1249b4 Mon Sep 17 00:00:00 2001 From: Dane Everitt Date: Thu, 3 Sep 2020 20:29:53 -0700 Subject: [PATCH] Remove last zap references --- cmd/root.go | 30 +++-------- go.mod | 6 +-- go.sum | 19 ------- router/router_transfer.go | 101 ++++++++++++++++++-------------------- 4 files changed, 58 insertions(+), 98 deletions(-) diff --git a/cmd/root.go b/cmd/root.go index d8f37a1..6fe555b 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -27,7 +27,6 @@ import ( "github.com/pterodactyl/wings/sftp" "github.com/pterodactyl/wings/system" "github.com/spf13/cobra" - "go.uber.org/zap" ) var configPath = config.DefaultLocation @@ -144,8 +143,7 @@ func rootCmdRun(*cobra.Command, []string) { log.WithField("username", c.System.Username).Info("checking for pterodactyl system user") if su, err := c.EnsurePterodactylUser(); err != nil { - log.WithError(err).Error("failed to create pterodactyl system user") - os.Exit(1) + log.WithField("error", err).Fatal("failed to create pterodactyl system user") return } else { log.WithFields(log.Fields{ @@ -162,7 +160,7 @@ func rootCmdRun(*cobra.Command, []string) { if err := environment.ConfigureDocker(&c.Docker); err != nil { log.WithField("error", err).Fatal("failed to configure docker environment") - os.Exit(1) + return } if err := c.WriteToDisk(); err != nil { @@ -344,30 +342,18 @@ func configureLogging(logDir string, debug bool) error { return errors.WithStack(err) } - cfg := zap.NewProductionConfig() - if debug { - cfg = zap.NewDevelopmentConfig() - } - - cfg.Encoding = "console" - cfg.OutputPaths = []string{ - "stdout", - } - - logger, err := cfg.Build() - if err != nil { - return err - } - - zap.ReplaceGlobals(logger) - p := filepath.Join(logDir, "/wings.log") w, err := logrotate.NewFile(p) if err != nil { panic(errors.Wrap(err, "failed to open process log file")) } - log.SetLevel(log.DebugLevel) + if debug { + log.SetLevel(log.DebugLevel) + } else { + log.SetLevel(log.InfoLevel) + } + log.SetHandler(multi.New( cli.Default, cli.New(w.File, false), diff --git a/go.mod b/go.mod index d2d9e57..f174131 100644 --- a/go.mod +++ b/go.mod @@ -65,14 +65,11 @@ require ( github.com/spf13/cobra v1.0.0 github.com/spf13/pflag v1.0.5 // indirect github.com/ulikunitz/xz v0.5.7 // indirect - go.uber.org/zap v1.15.0 golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de - golang.org/x/lint v0.0.0-20200302205851-738671d3881b // indirect golang.org/x/net v0.0.0-20200707034311-ab3426394381 // indirect golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 - golang.org/x/text v0.3.3 + golang.org/x/text v0.3.3 // indirect golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e // indirect - golang.org/x/tools v0.0.0-20200509030707-2212a7e161a5 // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98 // indirect google.golang.org/grpc v1.31.0 // indirect @@ -81,5 +78,4 @@ require ( gopkg.in/ini.v1 v1.57.0 gopkg.in/yaml.v2 v2.3.0 gotest.tools v2.2.0+incompatible // indirect - honnef.co/go/tools v0.0.1-2020.1.3 // indirect ) diff --git a/go.sum b/go.sum index 2ba1bef..5733b1f 100644 --- a/go.sum +++ b/go.sum @@ -549,7 +549,6 @@ github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 h1:nIPpBwaJSVYIxUFsDv3M8ofm github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= @@ -560,19 +559,13 @@ go.uber.org/atomic v1.3.2 h1:2Oa65PReHzfn29GpvgsYwloV9AVFHPDk8tYxt2c2tr4= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.5.0 h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A= -go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.15.0 h1:ZZCA22JRF2gQE5FoNmhmrf7jeJJ2uhqDUNRYKm8dvmM= -go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -594,12 +587,8 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -617,7 +606,6 @@ golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= @@ -689,12 +677,7 @@ golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5 h1:hKsoRgsbwY1NafxrwTs+k64bikrLBkAgPir1TNCj3Zs= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200509030707-2212a7e161a5 h1:MeC2gMlMdkd67dn17MEby3rGXRxZtWeiRXOnISfTQ74= -golang.org/x/tools v0.0.0-20200509030707-2212a7e161a5/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 h1:9zdDQZ7Thm29KFXgAX/+yaf3eVbP7djjWp/dXAppNCc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -777,7 +760,5 @@ honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3 h1:sXmLre5bzIR6ypkjXCDI3jHPssRhc8KD/Ome589sc3U= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/router/router_transfer.go b/router/router_transfer.go index 5cb4426..3276796 100644 --- a/router/router_transfer.go +++ b/router/router_transfer.go @@ -5,16 +5,16 @@ import ( "bytes" "crypto/sha256" "encoding/hex" - "errors" + "github.com/apex/log" "github.com/buger/jsonparser" "github.com/gin-gonic/gin" "github.com/mholt/archiver/v3" + "github.com/pkg/errors" "github.com/pterodactyl/wings/api" "github.com/pterodactyl/wings/config" "github.com/pterodactyl/wings/installer" "github.com/pterodactyl/wings/router/tokens" "github.com/pterodactyl/wings/server" - "go.uber.org/zap" "io" "io/ioutil" "net/http" @@ -22,7 +22,6 @@ import ( "path/filepath" "strconv" "strings" - "time" ) func getServerArchive(c *gin.Context) { @@ -94,45 +93,34 @@ func getServerArchive(c *gin.Context) { func postServerArchive(c *gin.Context) { s := GetServer(c.Param("server")) - go func(server *server.Server) { - start := time.Now() - - if err := server.Archiver.Archive(); err != nil { - zap.S().Errorw("failed to get archive for server", zap.String("server", server.Id()), zap.Error(err)) + go func(s *server.Server) { + if err := s.Archiver.Archive(); err != nil { + s.Log().WithField("error", err).Error("failed to get archive for server") return } - zap.S().Debugw( - "successfully created archive for server", - zap.String("server", server.Id()), - zap.Duration("time", time.Now().Sub(start).Round(time.Microsecond)), - ) + s.Log().Debug("successfully created server archive, notifying panel") r := api.NewRequester() - rerr, err := r.SendArchiveStatus(server.Id(), true) + rerr, err := r.SendArchiveStatus(s.Id(), true) if rerr != nil || err != nil { if err != nil { - zap.S().Errorw("failed to notify panel with archive status", zap.String("server", server.Id()), zap.Error(err)) + s.Log().WithField("error", err).Error("failed to notify panel of archive status") return } - zap.S().Errorw( - "panel returned an error when sending the archive status", - zap.String("server", server.Id()), - zap.Error(errors.New(rerr.String())), - ) + s.Log().WithField("error", rerr.String()).Error("panel returned an error when sending the archive status") + return } - zap.S().Debugw("successfully notified panel about archive status", zap.String("server", server.Id())) + s.Log().Debug("successfully notified panel of archive status") }(s) c.Status(http.StatusAccepted) } func postTransfer(c *gin.Context) { - zap.S().Debug("incoming transfer from panel") - buf := bytes.Buffer{} buf.ReadFrom(c.Request.Body) @@ -141,6 +129,7 @@ func postTransfer(c *gin.Context) { url, _ := jsonparser.GetString(data, "url") token, _ := jsonparser.GetString(data, "token") + l := log.WithField("server", serverID) // Create an http client with no timeout. client := &http.Client{Timeout: 0} @@ -150,25 +139,25 @@ func postTransfer(c *gin.Context) { return } - zap.S().Errorw("server transfer has failed", zap.String("server", serverID)) + l.Info("server transfer failed, notifying panel") rerr, err := api.NewRequester().SendTransferFailure(serverID) if rerr != nil || err != nil { if err != nil { - zap.S().Errorw("failed to notify panel with transfer failure", zap.String("server", serverID), zap.Error(err)) + l.WithField("error", err).Error("failed to notify panel with transfer failure") return } - zap.S().Errorw("panel returned an error when notifying of a transfer failure", zap.String("server", serverID), zap.Error(errors.New(rerr.String()))) + l.WithField("error", errors.WithStack(rerr)).Error("recieved error response from panel while notifying of transfer failure") return } - zap.S().Debugw("successfully notified panel about transfer failure", zap.String("server", serverID)) + l.Debug("notified panel of tranfer failure") }() // Make a new GET request to the URL the panel gave us. req, err := http.NewRequest("GET", url, nil) if err != nil { - zap.S().Errorw("failed to create http request", zap.Error(err)) + log.WithField("error", errors.WithStack(err)).Error("failed to create http request for archive transfer") return } @@ -178,36 +167,39 @@ func postTransfer(c *gin.Context) { // Execute the http request. res, err := client.Do(req) if err != nil { - zap.S().Errorw("failed to send http request", zap.Error(err)) + l.WithField("error", errors.WithStack(err)).Error("failed to send archive http request") return } defer res.Body.Close() // Handle non-200 status codes. if res.StatusCode != 200 { - body, err := ioutil.ReadAll(res.Body) + _, err := ioutil.ReadAll(res.Body) if err != nil { - zap.S().Errorw("failed to read response body", zap.Int("status", res.StatusCode), zap.Error(err)) + l.WithField("error", errors.WithStack(err)).WithField("status", res.StatusCode).Error("failed read transfer response body") + return } - zap.S().Errorw("failed to request server archive", zap.Int("status", res.StatusCode), zap.String("body", string(body))) + l.WithField("error", errors.WithStack(err)).WithField("status", res.StatusCode).Error("failed to request server archive") + return } // Get the path to the archive. - archivePath := filepath.Join(config.Get().System.ArchiveDirectory, serverID + ".tar.gz") + archivePath := filepath.Join(config.Get().System.ArchiveDirectory, serverID+".tar.gz") // Check if the archive already exists and delete it if it does. _, err = os.Stat(archivePath) if err != nil { if !os.IsNotExist(err) { - zap.S().Errorw("failed to stat file", zap.Error(err)) + l.WithField("error", errors.WithStack(err)).Error("failed to stat archive file") return } } else { if err := os.Remove(archivePath); err != nil { - zap.S().Errorw("failed to delete old file", zap.Error(err)) + l.WithField("error", errors.WithStack(err)).Warn("failed to remove old archive file") + return } } @@ -215,65 +207,69 @@ func postTransfer(c *gin.Context) { // Create the file. file, err := os.Create(archivePath) if err != nil { - zap.S().Errorw("failed to open file on disk", zap.Error(err)) + l.WithField("error", errors.WithStack(err)).Error("failed to open archive on disk") + return } // Copy the file. - buf := make([]byte, 1024 * 4) + buf := make([]byte, 1024*4) _, err = io.CopyBuffer(file, res.Body, buf) if err != nil { - zap.S().Errorw("failed to copy file to disk", zap.Error(err)) + l.WithField("error", errors.WithStack(err)).Error("failed to copy archive file to disk") + return } // Close the file so it can be opened to verify the checksum. if err := file.Close(); err != nil { - zap.S().Errorw("failed to close archive file", zap.Error(err)) + l.WithField("error", errors.WithStack(err)).Error("failed to close archive file") + return } - zap.S().Debug("server archive has been downloaded, computing checksum..", zap.String("server", serverID)) + + l.WithField("server", serverID).Debug("server archive downloaded, computing checksum...") // Open the archive file for computing a checksum. file, err = os.Open(archivePath) if err != nil { - zap.S().Errorw("failed to open file on disk", zap.Error(err)) + l.WithField("error", errors.WithStack(err)).Error("failed to open archive on disk") return } // Compute the sha256 checksum of the file. hash := sha256.New() - buf = make([]byte, 1024 * 4) + buf = make([]byte, 1024*4) if _, err := io.CopyBuffer(hash, file, buf); err != nil { - zap.S().Errorw("failed to copy file for checksum verification", zap.Error(err)) + l.WithField("error", errors.WithStack(err)).Error("failed to copy archive file for checksum verification") return } // Verify the two checksums. if hex.EncodeToString(hash.Sum(nil)) != res.Header.Get("X-Checksum") { - zap.S().Errorw("checksum failed verification") + l.Error("checksum verification failed for archive") return } // Close the file. if err := file.Close(); err != nil { - zap.S().Errorw("failed to close archive file", zap.Error(err)) + l.WithField("error", errors.WithStack(err)).Error("failed to close archive file after calculating checksum") return } - zap.S().Infow("server archive transfer was successful", zap.String("server", serverID)) + l.Info("server archive transfer was successful") // Get the server data from the request. serverData, t, _, _ := jsonparser.Get(data, "server") if t != jsonparser.Object { - zap.S().Errorw("invalid server data passed in request") + l.Error("invalid server data passed in request") return } // Create a new server installer (note this does not execute the install script) i, err := installer.New(serverData) if err != nil { - zap.S().Warnw("failed to validate the received server data", zap.Error(err)) + l.WithField("error", errors.WithStack(err)).Error("failed to validate received server data") return } @@ -285,7 +281,7 @@ func postTransfer(c *gin.Context) { // Un-archive the archive. That sounds weird.. if err := archiver.NewTarGz().Unarchive(archivePath, i.Server().Filesystem.Path()); err != nil { - zap.S().Errorw("failed to extract archive", zap.String("server", serverID), zap.Error(err)) + l.WithField("error", errors.WithStack(err)).Error("failed to extract server archive") return } @@ -300,15 +296,16 @@ func postTransfer(c *gin.Context) { rerr, err := api.NewRequester().SendTransferSuccess(serverID) if rerr != nil || err != nil { if err != nil { - zap.S().Errorw("failed to notify panel with transfer success", zap.String("server", serverID), zap.Error(err)) + l.WithField("error", errors.WithStack(err)).Error("failed to notify panel of transfer success") return } - zap.S().Errorw("panel returned an error when notifying of a transfer success", zap.String("server", serverID), zap.Error(errors.New(rerr.String()))) + l.WithField("error", errors.WithStack(rerr)).Error("panel responded with error after transfer success") + return } - zap.S().Debugw("successfully notified panel about transfer success", zap.String("server", serverID)) + l.Info("successfully notified panel of transfer success") }(buf.Bytes()) c.Status(http.StatusAccepted)