9
9
"github.com/go-kit/kit/log"
10
10
"github.com/go-kit/kit/log/level"
11
11
"github.com/pkg/errors"
12
+ "github.com/replicatedhq/ship/pkg/api"
12
13
"github.com/replicatedhq/ship/pkg/constants"
13
14
"github.com/replicatedhq/ship/pkg/lifecycle/daemon/daemontypes"
14
15
"github.com/replicatedhq/ship/pkg/lifecycle/render/helm"
@@ -24,6 +25,12 @@ func (d *NavcycleRoutes) getStep(c *gin.Context) {
24
25
return
25
26
}
26
27
28
+ step , err := d .buildStepContents (step )
29
+ if err != nil {
30
+ level .Error (d .Logger ).Log ("event" , "getStep.buildContents.fail" , "err" , err )
31
+ return
32
+ }
33
+
27
34
if preExecuteFunc , exists := d .PreExecuteFuncMap [step .Shared ().ID ]; exists {
28
35
if err := preExecuteFunc (context .Background (), step ); err != nil {
29
36
level .Error (d .Logger ).Log ("event" , "preExecute.fail" , "err" , err )
@@ -34,34 +41,58 @@ func (d *NavcycleRoutes) getStep(c *gin.Context) {
34
41
delete (d .PreExecuteFuncMap , step .ShortName ())
35
42
}
36
43
37
- d .hydrateAndSend (daemontypes . NewStep ( step ) , c )
44
+ d .hydrateAndSend (step , c )
38
45
return
39
46
}
40
47
}
41
48
42
49
d .errNotFound (c )
43
50
}
44
51
45
- func (d * NavcycleRoutes ) hydrateStep (step daemontypes.Step ) (* daemontypes.StepResponse , error ) {
46
- debug := level .Debug (log .With (d .Logger , "method" , "hydrateStep" ))
47
-
52
+ func (d * NavcycleRoutes ) buildStepContents (step api.Step ) (api.Step , error ) {
48
53
currentState , err := d .StateManager .TryLoad ()
49
54
if err != nil {
50
55
level .Error (d .Logger ).Log ("event" , "tryLoad.fail" , "err" , err )
51
- return nil , errors .Wrap (err , "load state" )
56
+ return api. Step {} , errors .Wrap (err , "load state" )
52
57
}
53
58
54
59
if step .Kustomize != nil {
55
60
builder , err := d .BuilderBuilder .FullBuilder (d .Release .Metadata , d .Release .Spec .Config .V1 , currentState .CurrentConfig ())
56
61
if err != nil {
57
- return nil , errors .Wrap (err , "create kustomize template builder" )
62
+ return api.Step {}, errors .Wrap (err , "create kustomize template builder" )
63
+ }
64
+ renderedBasePath , err := builder .String (step .Kustomize .Base )
65
+ if err != nil {
66
+ return api.Step {}, errors .Wrap (err , "render kustomize basepath template" )
67
+ }
68
+ step .Kustomize .Base = renderedBasePath
69
+ }
70
+
71
+ if step .Message != nil {
72
+ builder , err := d .BuilderBuilder .FullBuilder (d .Release .Metadata , d .Release .Spec .Config .V1 , currentState .CurrentConfig ())
73
+ if err != nil {
74
+ return api.Step {}, errors .Wrap (err , "create message template builder" )
58
75
}
59
- renderedBasePath , err := builder .String (step .Kustomize . BasePath )
76
+ renderedContents , err := builder .String (step .Message . Contents )
60
77
if err != nil {
61
- return nil , errors .Wrap (err , "render kusstomize basepath contents" )
78
+ return api. Step {} , errors .Wrap (err , "render message contents" )
62
79
}
63
- step .Kustomize .BasePath = renderedBasePath
80
+ step .Message .Contents = renderedContents
81
+ }
82
+
83
+ return step , nil
84
+ }
64
85
86
+ func (d * NavcycleRoutes ) hydrateStep (step daemontypes.Step ) (* daemontypes.StepResponse , error ) {
87
+ debug := level .Debug (log .With (d .Logger , "method" , "hydrateStep" ))
88
+
89
+ currentState , err := d .StateManager .TryLoad ()
90
+ if err != nil {
91
+ level .Error (d .Logger ).Log ("event" , "tryLoad.fail" , "err" , err )
92
+ return nil , errors .Wrap (err , "load state" )
93
+ }
94
+
95
+ if step .Kustomize != nil {
65
96
tree , err := d .TreeLoader .LoadTree (step .Kustomize .BasePath )
66
97
if err != nil {
67
98
level .Error (d .Logger ).Log ("event" , "loadTree.fail" , "err" , err )
@@ -93,18 +124,6 @@ func (d *NavcycleRoutes) hydrateStep(step daemontypes.Step) (*daemontypes.StepRe
93
124
step .HelmValues .Namespace = namespace
94
125
}
95
126
96
- if step .Message != nil {
97
- builder , err := d .BuilderBuilder .FullBuilder (d .Release .Metadata , d .Release .Spec .Config .V1 , currentState .CurrentConfig ())
98
- if err != nil {
99
- return nil , errors .Wrap (err , "create message template builder" )
100
- }
101
- rendered , err := builder .String (step .Source .Message .Contents )
102
- if err != nil {
103
- return nil , errors .Wrap (err , "render message contents" )
104
- }
105
- step .Message .Contents = rendered
106
- }
107
-
108
127
result := & daemontypes.StepResponse {
109
128
CurrentStep : step ,
110
129
Phase : step .Source .ShortName (),
0 commit comments