From 418db0aaa33ddcbb8544a0a1ba73adb76341f539 Mon Sep 17 00:00:00 2001 From: Kacper Sawicki Date: Tue, 12 May 2020 16:05:33 +0200 Subject: [PATCH 1/5] Format warning logs when loading files --- parser/parser.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/parser/parser.go b/parser/parser.go index c4ef42a..1141572 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -88,12 +88,12 @@ func (p *Parser) loadFilesFromDirectory(entrypoint string) ([]map[string]interfa // We want to load only supported files, but don't want to stop loading after // finding unsupported one if !ok { - log.Warn("unsupported file extension", fileExt) + log.Warn(" unsupported file extension\n", fileExt) return nil } obj, err := fileLoader.LoadFile(path) if err != nil { - log.Warn(f.Name(), "not loaded due to", err) + log.Warn(f.Name(), " not loaded due to\n", err) return nil } objects = append(objects, obj...) From 6f1cf763a9cf1a624a5472c5761f9e2fca0722b3 Mon Sep 17 00:00:00 2001 From: Kacper Sawicki Date: Wed, 13 May 2020 10:42:20 +0200 Subject: [PATCH 2/5] Pretty-print resource error --- resourcemanager/resourcemanager.go | 44 ++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/resourcemanager/resourcemanager.go b/resourcemanager/resourcemanager.go index 6c7d598..fc890dc 100644 --- a/resourcemanager/resourcemanager.go +++ b/resourcemanager/resourcemanager.go @@ -3,6 +3,7 @@ package resourcemanager import ( "encoding/json" "fmt" + swagger "github.com/codilime/floodgate/gateapi" "os" "path/filepath" @@ -22,6 +23,17 @@ type ResourceManager struct { client *gc.GateapiClient } +type ResourceError struct { + Timestamp int + Status int + Error string + Message string +} + +func (re *ResourceError) String() string { + return fmt.Sprintf("Status: %d, Error: %s, Message: %s", re.Status, re.Error, re.Message) +} + // Init initializes ResourceManager func (rm *ResourceManager) Init(config *c.Config, customOptions ...Option) error { options := Options{} @@ -126,7 +138,11 @@ func (rm ResourceManager) syncApplications() error { for _, application := range rm.resources.Applications { synced, err := rm.syncResource(application) if err != nil { - log.Error(err) + err = rm.printResourceError(err) + if err != nil { + return err + } + return fmt.Errorf("failed to sync application: \"%s\"", application.Name()) } if !synced { @@ -143,7 +159,11 @@ func (rm ResourceManager) syncPipelines() error { for _, pipeline := range rm.resources.Pipelines { synced, err := rm.syncResource(pipeline) if err != nil { - log.Error(err) + err = rm.printResourceError(err) + if err != nil { + return err + } + return fmt.Errorf("failed to sync pipeline: \"%s\"", pipeline.Name()) } if !synced { @@ -160,7 +180,11 @@ func (rm ResourceManager) syncPipelineTemplates() error { for _, pipelineTemplate := range rm.resources.PipelineTemplates { synced, err := rm.syncResource(pipelineTemplate) if err != nil { - log.Error(err) + err = rm.printResourceError(err) + if err != nil { + return err + } + return fmt.Errorf("failed to sync pipeline template: \"%s\"", pipelineTemplate.Name()) } if !synced { @@ -260,3 +284,17 @@ func (rm ResourceManager) saveResourceData(filePath string, resourceData []byte) } return nil } + +func (rm ResourceManager) printResourceError(err error) error { + if swaggerError, ok := err.(swagger.GenericSwaggerError); ok { + var resourceError ResourceError + err = json.Unmarshal(swaggerError.Body(), &resourceError) + if err != nil { + return err + } + + log.Errorf("%v", &resourceError) + } + + return nil +} From cda9a86821ec3be42f5e46a0743ef90c2c7e5d37 Mon Sep 17 00:00:00 2001 From: Kacper Sawicki Date: Wed, 13 May 2020 11:22:35 +0200 Subject: [PATCH 3/5] Remove resource error struct --- resourcemanager/resourcemanager.go | 39 ++++++------------------------ 1 file changed, 8 insertions(+), 31 deletions(-) diff --git a/resourcemanager/resourcemanager.go b/resourcemanager/resourcemanager.go index fc890dc..96611bb 100644 --- a/resourcemanager/resourcemanager.go +++ b/resourcemanager/resourcemanager.go @@ -23,17 +23,6 @@ type ResourceManager struct { client *gc.GateapiClient } -type ResourceError struct { - Timestamp int - Status int - Error string - Message string -} - -func (re *ResourceError) String() string { - return fmt.Sprintf("Status: %d, Error: %s, Message: %s", re.Status, re.Error, re.Message) -} - // Init initializes ResourceManager func (rm *ResourceManager) Init(config *c.Config, customOptions ...Option) error { options := Options{} @@ -138,10 +127,7 @@ func (rm ResourceManager) syncApplications() error { for _, application := range rm.resources.Applications { synced, err := rm.syncResource(application) if err != nil { - err = rm.printResourceError(err) - if err != nil { - return err - } + rm.printResourceError(err) return fmt.Errorf("failed to sync application: \"%s\"", application.Name()) } @@ -159,10 +145,7 @@ func (rm ResourceManager) syncPipelines() error { for _, pipeline := range rm.resources.Pipelines { synced, err := rm.syncResource(pipeline) if err != nil { - err = rm.printResourceError(err) - if err != nil { - return err - } + rm.printResourceError(err) return fmt.Errorf("failed to sync pipeline: \"%s\"", pipeline.Name()) } @@ -180,11 +163,7 @@ func (rm ResourceManager) syncPipelineTemplates() error { for _, pipelineTemplate := range rm.resources.PipelineTemplates { synced, err := rm.syncResource(pipelineTemplate) if err != nil { - err = rm.printResourceError(err) - if err != nil { - return err - } - + rm.printResourceError(err) return fmt.Errorf("failed to sync pipeline template: \"%s\"", pipelineTemplate.Name()) } if !synced { @@ -285,16 +264,14 @@ func (rm ResourceManager) saveResourceData(filePath string, resourceData []byte) return nil } -func (rm ResourceManager) printResourceError(err error) error { +func (rm ResourceManager) printResourceError(err error) { if swaggerError, ok := err.(swagger.GenericSwaggerError); ok { - var resourceError ResourceError - err = json.Unmarshal(swaggerError.Body(), &resourceError) + var resErr map[string]interface{} + err = json.Unmarshal(swaggerError.Body(), &resErr) if err != nil { - return err + log.Errorf("%v", err) } - log.Errorf("%v", &resourceError) + log.Errorf("Status: %v, Error: %s, Message: %s", resErr["status"], resErr["error"], resErr["message"]) } - - return nil } From 1c4d522ee3c8cc2c24770b42d43815d64fcda97a Mon Sep 17 00:00:00 2001 From: Kacper Sawicki Date: Wed, 13 May 2020 11:31:03 +0200 Subject: [PATCH 4/5] Print error if it's not swagger generic error --- resourcemanager/resourcemanager.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resourcemanager/resourcemanager.go b/resourcemanager/resourcemanager.go index 96611bb..3144f09 100644 --- a/resourcemanager/resourcemanager.go +++ b/resourcemanager/resourcemanager.go @@ -273,5 +273,7 @@ func (rm ResourceManager) printResourceError(err error) { } log.Errorf("Status: %v, Error: %s, Message: %s", resErr["status"], resErr["error"], resErr["message"]) + } else { + log.Errorf("%v", err) } } From 4f2cf3d2419d6cdda20141ac1aaf3e2b7476d439 Mon Sep 17 00:00:00 2001 From: Kacper Sawicki Date: Wed, 13 May 2020 11:36:25 +0200 Subject: [PATCH 5/5] Remove unnecessary empty lines --- resourcemanager/resourcemanager.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/resourcemanager/resourcemanager.go b/resourcemanager/resourcemanager.go index 3144f09..b05be24 100644 --- a/resourcemanager/resourcemanager.go +++ b/resourcemanager/resourcemanager.go @@ -128,7 +128,6 @@ func (rm ResourceManager) syncApplications() error { synced, err := rm.syncResource(application) if err != nil { rm.printResourceError(err) - return fmt.Errorf("failed to sync application: \"%s\"", application.Name()) } if !synced { @@ -146,7 +145,6 @@ func (rm ResourceManager) syncPipelines() error { synced, err := rm.syncResource(pipeline) if err != nil { rm.printResourceError(err) - return fmt.Errorf("failed to sync pipeline: \"%s\"", pipeline.Name()) } if !synced {