Fix issue with merging observations config (#31248)

This commit is contained in:
Violet Hynes 2025-07-10 17:19:01 -04:00 committed by GitHub
parent 611ca3036f
commit e59eb00ce1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 2 deletions

View File

@ -447,8 +447,8 @@ func (c *Config) Merge(c2 *Config) *Config {
if c2.Observations.LedgerPath != "" {
result.Observations.LedgerPath = c2.Observations.LedgerPath
}
result.Observations.TypePrefixDenylist = append(c.Observations.TypePrefixDenylist, c2.Observations.TypePrefixDenylist...)
result.Observations.TypePrefixAllowlist = append(c.Observations.TypePrefixAllowlist, c2.Observations.TypePrefixAllowlist...)
result.Observations.TypePrefixDenylist = append(result.Observations.TypePrefixDenylist, c2.Observations.TypePrefixDenylist...)
result.Observations.TypePrefixAllowlist = append(result.Observations.TypePrefixAllowlist, c2.Observations.TypePrefixAllowlist...)
if c2.Observations.FileMode != "" {
result.Observations.FileMode = c2.Observations.FileMode
}

View File

@ -139,6 +139,27 @@ func Test_ObservationSystemConfigMerge(t *testing.T) {
require.Equal(t, "0777", merged.Observations.FileMode)
}
// Test_ObservationSystemConfigMergeFromNoObservations checks merge for observation system config from a config
// without an observation system defined
func Test_ObservationSystemConfigMergeFromNoObservations(t *testing.T) {
config, err := LoadConfigFile("./test-fixtures/config.hcl")
require.NoError(t, err)
require.NotNil(t, config)
config2, err := LoadConfigFile("./test-fixtures/observations_allow_deny.hcl")
require.NoError(t, err)
require.NotNil(t, config2)
merged := config.Merge(config2)
require.NotNil(t, merged)
require.NotNil(t, merged.Observations)
require.Equal(t, "/var/ledger.log", merged.Observations.LedgerPath)
require.Equal(t, []string{"deny1", "deny2"}, merged.Observations.TypePrefixDenylist)
require.Equal(t, []string{"allow1", "allow2", "allow3"}, merged.Observations.TypePrefixAllowlist)
require.Equal(t, "0777", merged.Observations.FileMode)
require.Equal(t, true, merged.EnableUI)
}
// TestDuplicateKeyValidationHcl checks that the server command displays a warning when the HCL config file contains duplicate keys.
func TestDuplicateKeyValidationHcl(t *testing.T) {
testDuplicateKeyValidationHcl(t)