From 233e8529c19a2cee99900ddc786688c3e8bf4f4a Mon Sep 17 00:00:00 2001 From: Murat Kabilov Date: Thu, 18 May 2017 17:24:44 +0200 Subject: [PATCH] Return error instead of logging it --- pkg/cluster/cluster.go | 10 +++++----- pkg/cluster/pg.go | 4 +++- pkg/cluster/sync.go | 21 ++++++++++++--------- pkg/controller/postgresql.go | 5 ++++- 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/pkg/cluster/cluster.go b/pkg/cluster/cluster.go index 18fe68b29..18212fbca 100644 --- a/pkg/cluster/cluster.go +++ b/pkg/cluster/cluster.go @@ -227,7 +227,7 @@ func (c *Cluster) Create(stopCh <-chan struct{}) error { } c.logger.Infof("Pods are ready") - if !(c.masterLess || c.DatabaseAccessDisabled()) { + if !(c.masterLess || c.databaseAccessDisabled()) { if err := c.initDbConn(); err != nil { return fmt.Errorf("Can't init db connection: %s", err) } else { @@ -466,20 +466,20 @@ func (c *Cluster) Delete() error { defer c.mu.Unlock() if err := c.deleteEndpoint(); err != nil { - c.logger.Errorf("Can't delete Endpoint: %s", err) + return fmt.Errorf("Can't delete Endpoint: %s", err) } if err := c.deleteService(); err != nil { - c.logger.Errorf("Can't delete Service: %s", err) + return fmt.Errorf("Can't delete Service: %s", err) } if err := c.deleteStatefulSet(); err != nil { - c.logger.Errorf("Can't delete StatefulSet: %s", err) + return fmt.Errorf("Can't delete StatefulSet: %s", err) } for _, obj := range c.Secrets { if err := c.deleteSecret(obj); err != nil { - c.logger.Errorf("Can't delete Secret: %s", err) + return fmt.Errorf("Can't delete Secret: %s", err) } } diff --git a/pkg/cluster/pg.go b/pkg/cluster/pg.go index c1902c5b5..c8f4c4aba 100644 --- a/pkg/cluster/pg.go +++ b/pkg/cluster/pg.go @@ -32,12 +32,14 @@ func (c *Cluster) pgConnectionString() string { strings.Replace(password, "$", "\\$", -1)) } -func (c *Cluster) DatabaseAccessDisabled() bool { +func (c *Cluster) databaseAccessDisabled() bool { if c.OpConfig.EnableDBAccess == false { c.logger.Debugf("Database access is disabled") } + return c.OpConfig.EnableDBAccess == false } + func (c *Cluster) initDbConn() (err error) { if c.pgDb == nil { conn, err := sql.Open("postgres", c.pgConnectionString()) diff --git a/pkg/cluster/sync.go b/pkg/cluster/sync.go index 41c8d2fbf..b937cb117 100644 --- a/pkg/cluster/sync.go +++ b/pkg/cluster/sync.go @@ -6,7 +6,7 @@ import ( "github.com/zalando-incubator/postgres-operator/pkg/util" ) -func (c *Cluster) SyncCluster(stopCh <-chan struct{}) { +func (c *Cluster) Sync(stopCh <-chan struct{}) error { c.mu.Lock() defer c.mu.Unlock() @@ -19,34 +19,37 @@ func (c *Cluster) SyncCluster(stopCh <-chan struct{}) { c.logger.Debugf("Syncing Secrets") if err := c.syncSecrets(); err != nil { - c.logger.Infof("Can't sync Secrets: %s", err) + return fmt.Errorf("Can't sync Secrets: %s", err) } c.logger.Debugf("Syncing Endpoints") if err := c.syncEndpoint(); err != nil { - c.logger.Errorf("Can't sync Endpoints: %s", err) + return fmt.Errorf("Can't sync Endpoints: %s", err) } c.logger.Debugf("Syncing Services") if err := c.syncService(); err != nil { - c.logger.Errorf("Can't sync Services: %s", err) + return fmt.Errorf("Can't sync Services: %s", err) } c.logger.Debugf("Syncing StatefulSets") if err := c.syncStatefulSet(); err != nil { - c.logger.Errorf("Can't sync StatefulSets: %s", err) + return fmt.Errorf("Can't sync StatefulSets: %s", err) } - if c.DatabaseAccessDisabled() { - return + + if c.databaseAccessDisabled() { + return nil } if err := c.initDbConn(); err != nil { - c.logger.Errorf("Can't init db connection: %s", err) + return fmt.Errorf("Can't init db connection: %s", err) } else { c.logger.Debugf("Syncing Roles") if err := c.SyncRoles(); err != nil { - c.logger.Errorf("Can't sync Roles: %s", err) + return fmt.Errorf("Can't sync Roles: %s", err) } } + + return nil } func (c *Cluster) syncSecrets() error { diff --git a/pkg/controller/postgresql.go b/pkg/controller/postgresql.go index 30ef1f940..86fc04e22 100644 --- a/pkg/controller/postgresql.go +++ b/pkg/controller/postgresql.go @@ -165,7 +165,10 @@ func (c *Controller) processEvent(obj interface{}) error { c.clustersMu.Unlock() } - cl.SyncCluster(stopCh) + if err := cl.Sync(stopCh); err != nil { + logger.Errorf("Can't sync cluster '%s': %s", clusterName, err) + return nil + } logger.Infof("Cluster '%s' has been synced", clusterName) }