Skip to content

Commit

Permalink
Added header interpolation
Browse files Browse the repository at this point in the history
  • Loading branch information
MaartendeKruijf committed Oct 14, 2024
1 parent c5e89c9 commit 328a858
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 4 deletions.
8 changes: 8 additions & 0 deletions internal/executors/action/action.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,14 @@ func (executor *Executor) ExecuteActionStep(metadata execution.Metadata,
command.Content = variables.Interpolate(command.Content)
command.ContentB64 = variables.Interpolate(command.ContentB64)

for key, headers := range command.Headers {
var slice []string
for _, header := range headers {
slice = append(slice, variables.Interpolate(header))
}
command.Headers[key] = slice
}

for key, addresses := range target.Address {
var slice []string
for _, address := range addresses {
Expand Down
30 changes: 26 additions & 4 deletions test/unittest/executor/action/action_executor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,26 @@ func TestVariableInterpolation(t *testing.T) {
},
}

varheader1 := cacao.Variable{
Type: "string",
Name: "__header_var1__",
Value: "headerinfo one",
}

varheader2 := cacao.Variable{
Type: "string",
Name: "__header_var2__",
Value: "headerinfo two",
}

inputHeaders := cacao.Headers{
"header1": []string{"__header_var1__:value", "__header_var2__:value"},
}

expectedHeaders := cacao.Headers{
"header1": []string{"headerinfo one", "headerinfo two"},
}

agent := cacao.AgentTarget{
Type: "ssh",
Name: "cap1",
Expand All @@ -325,15 +345,15 @@ func TestVariableInterpolation(t *testing.T) {
expectedCommand,
expectedAuth,
expectedTarget,
cacao.NewVariables(var1, var2, var3, varUser, varPassword, varOauth, varPrivateKey, varToken, varUserId)).
cacao.NewVariables(var1, var2, var3, varUser, varPassword, varOauth, varPrivateKey, varToken, varUserId, varheader1, varheader2)).
Return(cacao.NewVariables(var1),
nil)

_, err := executerObject.ExecuteActionStep(metadata,
inputCommand,
inputAuth,
inputTarget,
cacao.NewVariables(var1, var2, var3, varUser, varPassword, varOauth, varPrivateKey, varToken, varUserId),
cacao.NewVariables(var1, var2, var3, varUser, varPassword, varOauth, varPrivateKey, varToken, varUserId, varheader1, varheader2),
agent)

assert.Equal(t, err, nil)
Expand All @@ -345,13 +365,15 @@ func TestVariableInterpolation(t *testing.T) {
Command: "GET / HTTP1.1",
Content: "__http-api-content__:value",
ContentB64: "__http-api-content__:value",
Headers: inputHeaders,
}

expectedHttpCommand := cacao.Command{
Type: "http-api",
Command: "GET / HTTP1.1",
Content: "some content of the body",
ContentB64: "some content of the body",
Headers: expectedHeaders,
}

metadataHttp := execution.Metadata{ExecutionId: executionId, PlaybookId: playbookId, StepId: stepId}
Expand All @@ -361,15 +383,15 @@ func TestVariableInterpolation(t *testing.T) {
expectedHttpCommand,
expectedAuth,
expectedTarget,
cacao.NewVariables(varHttpContent)).
cacao.NewVariables(varHttpContent, varheader1, varheader2)).
Return(cacao.NewVariables(var1),
nil)

_, err = executerObject.ExecuteActionStep(metadata,
httpCommand,
expectedAuth,
expectedTarget,
cacao.NewVariables(varHttpContent),
cacao.NewVariables(varHttpContent, varheader1, varheader2),
agent)

assert.Equal(t, err, nil)
Expand Down

0 comments on commit 328a858

Please sign in to comment.