Merge provider defaults into one owned copy
This commit is contained in:
@@ -138,24 +138,33 @@ func overlayProviderMap(lower, upper map[string]any) (map[string]any, error) {
|
||||
if merged == nil {
|
||||
merged = make(map[string]any)
|
||||
}
|
||||
if err := overlayOwnedProviderMap(merged, upper); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return merged, nil
|
||||
}
|
||||
|
||||
func overlayOwnedProviderMap(merged, upper map[string]any) error {
|
||||
for key, value := range upper {
|
||||
if child, ok := value.(map[string]any); ok {
|
||||
if existing, ok := merged[key].(map[string]any); ok {
|
||||
combined, err := overlayProviderMap(existing, child)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
if existing == nil {
|
||||
existing = make(map[string]any)
|
||||
merged[key] = existing
|
||||
}
|
||||
if err := overlayOwnedProviderMap(existing, child); err != nil {
|
||||
return err
|
||||
}
|
||||
merged[key] = combined
|
||||
continue
|
||||
}
|
||||
}
|
||||
copied, err := jsonvalue.Copy(value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return err
|
||||
}
|
||||
merged[key] = copied
|
||||
}
|
||||
return merged, nil
|
||||
return nil
|
||||
}
|
||||
|
||||
func (state *loaded) lookupProfile(ctx context.Context, id string) (domain.ExecutionProfile, error) {
|
||||
|
||||
Reference in New Issue
Block a user