diff --git a/spinnakerresource/application.go b/spinnakerresource/application.go index abf2e78..cb92958 100644 --- a/spinnakerresource/application.go +++ b/spinnakerresource/application.go @@ -32,6 +32,7 @@ func (a *Application) Init(api *gc.GateapiClient, localData map[string]interface a.name = name if api != nil { if err := a.LoadRemoteState(api); err != nil { + err := a.SaveLocalState(api) return err } } diff --git a/spinnakerresource/pipeline.go b/spinnakerresource/pipeline.go index 6273f21..0a53ce4 100644 --- a/spinnakerresource/pipeline.go +++ b/spinnakerresource/pipeline.go @@ -41,6 +41,7 @@ func (p *Pipeline) Init(api *gc.GateapiClient, localData map[string]interface{}) p.templateReference = reference if api != nil { if err := p.LoadRemoteState(api); err != nil { + err := p.SaveLocalState(api) return err } } diff --git a/spinnakerresource/pipelinetemplate.go b/spinnakerresource/pipelinetemplate.go index c09f666..87c5159 100644 --- a/spinnakerresource/pipelinetemplate.go +++ b/spinnakerresource/pipelinetemplate.go @@ -35,6 +35,7 @@ func (pt *PipelineTemplate) Init(api *gc.GateapiClient, localData map[string]int pt.name = name if api != nil { if err := pt.LoadRemoteState(api); err != nil { + err := pt.SaveLocalState(api) return err } } diff --git a/spinnakerresource/resource.go b/spinnakerresource/resource.go index 78e6bbc..1021a50 100644 --- a/spinnakerresource/resource.go +++ b/spinnakerresource/resource.go @@ -86,8 +86,10 @@ func (r *Resource) unmarshalStates() (localJSON, remoteJSON map[string]interface return } - if err = json.Unmarshal(r.remoteState, &remoteJSON); err != nil { - return + if len(r.remoteState) != 0 { + if err = json.Unmarshal(r.remoteState, &remoteJSON); err != nil { + return + } } var state []byte