feat(ansible): add b64encode filter support

Co-authored-by: Virgil <virgil@lethean.io>
This commit is contained in:
Virgil 2026-04-02 01:54:40 +00:00
parent b3f2cc3fc6
commit f5c4f16d42
2 changed files with 18 additions and 0 deletions

View file

@ -2680,6 +2680,11 @@ func (e *Executor) applyFilter(value, filter string) string {
return value
}
// Handle b64encode
if filter == "b64encode" {
return base64.StdEncoding.EncodeToString([]byte(value))
}
return value
}

View file

@ -1049,6 +1049,11 @@ func TestExecutorExtra_ApplyFilter_Good_B64Decode(t *testing.T) {
assert.Equal(t, "hello", e.applyFilter("aGVsbG8=", "b64decode"))
}
func TestExecutorExtra_ApplyFilter_Good_B64Encode(t *testing.T) {
e := NewExecutor("/tmp")
assert.Equal(t, "aGVsbG8=", e.applyFilter("hello", "b64encode"))
}
func TestExecutorExtra_ApplyFilter_Good_UnknownFilter(t *testing.T) {
e := NewExecutor("/tmp")
assert.Equal(t, "value", e.applyFilter("value", "unknown_filter"))
@ -1076,3 +1081,11 @@ func TestExecutorExtra_ResolveExpr_Good_WithFilter(t *testing.T) {
result := e.resolveExpr("raw_value | trim", "host1", nil)
assert.Equal(t, "trimmed", result)
}
func TestExecutorExtra_ResolveExpr_Good_WithB64Encode(t *testing.T) {
e := NewExecutor("/tmp")
e.vars["raw_value"] = "hello"
result := e.resolveExpr("raw_value | b64encode", "host1", nil)
assert.Equal(t, "aGVsbG8=", result)
}