diff --git a/internal/cnpgi/operator/config/config.go b/internal/cnpgi/operator/config/config.go index 7f16dda..ba596cc 100644 --- a/internal/cnpgi/operator/config/config.go +++ b/internal/cnpgi/operator/config/config.go @@ -102,6 +102,15 @@ func (config *PluginConfiguration) GetReplicaSourceBarmanObjectKey() types.Names } } +// HasAnyBarmanObjectStore returns true if the configuration references at least +// one barman object store, be it for backup/archiving, recovery, or as a +// replica source. +func (config *PluginConfiguration) HasAnyBarmanObjectStore() bool { + return len(config.BarmanObjectName) > 0 || + len(config.RecoveryBarmanObjectName) > 0 || + len(config.ReplicaSourceBarmanObjectName) > 0 +} + // GetReferredBarmanObjectsKey gets the list of barman objects referred by this // plugin configuration func (config *PluginConfiguration) GetReferredBarmanObjectsKey() []types.NamespacedName { @@ -263,9 +272,7 @@ func getReplicaSourcePlugin(cluster *cnpgv1.Cluster) *cnpgv1.PluginConfiguration func (config *PluginConfiguration) Validate() error { err := NewConfigurationError() - if len(config.BarmanObjectName) == 0 && - len(config.RecoveryBarmanObjectName) == 0 && - len(config.ReplicaSourceBarmanObjectName) == 0 { + if !config.HasAnyBarmanObjectStore() { return err.WithMessage("no reference to barmanObjectName have been included") } diff --git a/internal/cnpgi/operator/lifecycle.go b/internal/cnpgi/operator/lifecycle.go index ca42f0b..8938f63 100644 --- a/internal/cnpgi/operator/lifecycle.go +++ b/internal/cnpgi/operator/lifecycle.go @@ -343,9 +343,7 @@ func reconcileInstancePod( // sidecar in its instance pods: the phase-0 bootstrap restore and the WAL // replay that follows both run inside the instance and rely on it. This // condition therefore mirrors what pluginConfiguration.Validate() accepts. - if len(pluginConfiguration.BarmanObjectName) != 0 || - len(pluginConfiguration.RecoveryBarmanObjectName) != 0 || - len(pluginConfiguration.ReplicaSourceBarmanObjectName) != 0 { + if pluginConfiguration.HasAnyBarmanObjectStore() { if err := reconcilePodSpec( cluster, &mutatedPod.Spec,