Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Commit 6515556

Browse files
author
Ian Campbell
committed
Refactor mergeBundleParameters to take the Claim
Instead of a `bundle`, this allows it to `c.Parameters` itself as a precursor to having it update them. Signed-off-by: Ian Campbell <[email protected]>
1 parent 4ed459f commit 6515556

File tree

5 files changed

+32
-30
lines changed

5 files changed

+32
-30
lines changed

internal/commands/cnab.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -324,14 +324,12 @@ func prepareCustomAction(actionName string, dockerCli command.Cli, appname strin
324324
}
325325
c.Bundle = bundle
326326

327-
parameters, err := mergeBundleParameters(c.Bundle,
327+
if err := mergeBundleParameters(c,
328328
withFileParameters(paramsOpts.parametersFiles),
329329
withCommandLineParameters(paramsOpts.overrides),
330-
)
331-
if err != nil {
330+
); err != nil {
332331
return nil, nil, nil, err
333332
}
334-
c.Parameters = parameters
335333

336334
a := &action.RunCustom{
337335
Action: actionName,

internal/commands/install.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,12 @@ func runInstall(dockerCli command.Cli, appname string, opts installOptions) erro
9898
}
9999
c.Bundle = bndl
100100

101-
c.Parameters, err = mergeBundleParameters(bndl,
101+
if err := mergeBundleParameters(c,
102102
withFileParameters(opts.parametersFiles),
103103
withCommandLineParameters(opts.overrides),
104104
withOrchestratorParameters(opts.orchestrator, opts.kubeNamespace),
105105
withSendRegistryAuth(opts.sendRegistryAuth),
106-
)
107-
if err != nil {
106+
); err != nil {
108107
return err
109108
}
110109
creds, err := prepareCredentialSet(bndl,

internal/commands/parameters.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"fmt"
55

66
"github.com/deislabs/duffle/pkg/bundle"
7+
"github.com/deislabs/duffle/pkg/claim"
78
"github.com/docker/app/internal"
89
"github.com/docker/app/types/parameters"
910
cliopts "github.com/docker/cli/opts"
@@ -60,18 +61,20 @@ func withOrchestratorParameters(orchestrator string, kubeNamespace string) param
6061
}
6162
}
6263

63-
func mergeBundleParameters(bndl *bundle.Bundle, ops ...parameterOperation) (map[string]interface{}, error) {
64+
func mergeBundleParameters(c *claim.Claim, ops ...parameterOperation) error {
65+
bndl := c.Bundle
6466
userParams := map[string]string{}
6567
for _, op := range ops {
6668
if err := op(bndl, userParams); err != nil {
67-
return nil, err
69+
return err
6870
}
6971
}
7072
convertedParams, err := matchParametersDefinition(userParams, bndl.Parameters)
7173
if err != nil {
72-
return nil, err
74+
return err
7375
}
74-
return bundle.ValuesOrDefaults(convertedParams, bndl)
76+
c.Parameters, err = bundle.ValuesOrDefaults(convertedParams, bndl)
77+
return err
7578
}
7679

7780
func matchParametersDefinition(parameterValues map[string]string, parameterDefinitions map[string]bundle.ParameterDefinition) (map[string]interface{}, error) {

internal/commands/parameters_test.go

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"testing"
55

66
"github.com/deislabs/duffle/pkg/bundle"
7+
"github.com/deislabs/duffle/pkg/claim"
78
"github.com/docker/app/internal"
89
"gotest.tools/assert"
910
"gotest.tools/assert/cmp"
@@ -105,16 +106,16 @@ func TestMergeBundleParameters(t *testing.T) {
105106
},
106107
},
107108
}
108-
actual, err := mergeBundleParameters(bundle,
109+
c := &claim.Claim{Bundle: bundle}
110+
err := mergeBundleParameters(c,
109111
first,
110112
second,
111113
)
112-
113114
assert.NilError(t, err)
114115
expected := map[string]interface{}{
115116
"param": "second",
116117
}
117-
assert.Assert(t, cmp.DeepEqual(actual, expected))
118+
assert.Assert(t, cmp.DeepEqual(c.Parameters, expected))
118119
})
119120

120121
t.Run("Default values", func(t *testing.T) {
@@ -126,13 +127,13 @@ func TestMergeBundleParameters(t *testing.T) {
126127
},
127128
},
128129
}
129-
actual, err := mergeBundleParameters(bundle)
130-
130+
c := &claim.Claim{Bundle: bundle}
131+
err := mergeBundleParameters(c)
131132
assert.NilError(t, err)
132133
expected := map[string]interface{}{
133134
"param": "default",
134135
}
135-
assert.Assert(t, cmp.DeepEqual(actual, expected))
136+
assert.Assert(t, cmp.DeepEqual(c.Parameters, expected))
136137
})
137138

138139
t.Run("Converting values", func(t *testing.T) {
@@ -148,14 +149,13 @@ func TestMergeBundleParameters(t *testing.T) {
148149
},
149150
},
150151
}
151-
152-
actual, err := mergeBundleParameters(bundle, withIntValue)
153-
152+
c := &claim.Claim{Bundle: bundle}
153+
err := mergeBundleParameters(c, withIntValue)
154154
assert.NilError(t, err)
155155
expected := map[string]interface{}{
156156
"param": 1,
157157
}
158-
assert.Assert(t, cmp.DeepEqual(actual, expected))
158+
assert.Assert(t, cmp.DeepEqual(c.Parameters, expected))
159159
})
160160

161161
t.Run("Default values", func(t *testing.T) {
@@ -167,13 +167,13 @@ func TestMergeBundleParameters(t *testing.T) {
167167
},
168168
},
169169
}
170-
actual, err := mergeBundleParameters(bundle)
171-
170+
c := &claim.Claim{Bundle: bundle}
171+
err := mergeBundleParameters(c)
172172
assert.NilError(t, err)
173173
expected := map[string]interface{}{
174174
"param": "default",
175175
}
176-
assert.Assert(t, cmp.DeepEqual(actual, expected))
176+
assert.Assert(t, cmp.DeepEqual(c.Parameters, expected))
177177
})
178178

179179
t.Run("Undefined parameter is rejected", func(t *testing.T) {
@@ -184,7 +184,8 @@ func TestMergeBundleParameters(t *testing.T) {
184184
bundle := &bundle.Bundle{
185185
Parameters: map[string]bundle.ParameterDefinition{},
186186
}
187-
_, err := mergeBundleParameters(bundle, withUndefined)
187+
c := &claim.Claim{Bundle: bundle}
188+
err := mergeBundleParameters(c, withUndefined)
188189
assert.ErrorContains(t, err, "is not defined in the bundle")
189190
})
190191

@@ -200,7 +201,8 @@ func TestMergeBundleParameters(t *testing.T) {
200201
},
201202
},
202203
}
203-
_, err := mergeBundleParameters(bundle, withIntValue)
204+
c := &claim.Claim{Bundle: bundle}
205+
err := mergeBundleParameters(c, withIntValue)
204206
assert.ErrorContains(t, err, "invalid value for parameter")
205207
})
206208

@@ -217,7 +219,8 @@ func TestMergeBundleParameters(t *testing.T) {
217219
},
218220
},
219221
}
220-
_, err := mergeBundleParameters(bundle, withIntValue)
222+
c := &claim.Claim{Bundle: bundle}
223+
err := mergeBundleParameters(c, withIntValue)
221224
assert.ErrorContains(t, err, "invalid value for parameter")
222225
})
223226
}

internal/commands/upgrade.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,11 @@ func runUpgrade(dockerCli command.Cli, installationName string, opts upgradeOpti
5555
}
5656
c.Bundle = b
5757
}
58-
c.Parameters, err = mergeBundleParameters(c.Bundle,
58+
if err := mergeBundleParameters(&c,
5959
withFileParameters(opts.parametersFiles),
6060
withCommandLineParameters(opts.overrides),
6161
withSendRegistryAuth(opts.sendRegistryAuth),
62-
)
63-
if err != nil {
62+
); err != nil {
6463
return err
6564
}
6665

0 commit comments

Comments
 (0)