update spec when updating status (#2546)
* update spec when updating status * only setSpec of pg resource is not empty
This commit is contained in:
parent
2af9cfa257
commit
e34f19be01
|
|
@ -254,10 +254,17 @@ func (c *Cluster) Create() (err error) {
|
||||||
)
|
)
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
|
var pgUpdatedStatus *acidv1.Postgresql
|
||||||
if err == nil {
|
if err == nil {
|
||||||
c.KubeClient.SetPostgresCRDStatus(c.clusterName(), acidv1.ClusterStatusRunning) //TODO: are you sure it's running?
|
pgUpdatedStatus, err = c.KubeClient.SetPostgresCRDStatus(c.clusterName(), acidv1.ClusterStatusRunning) //TODO: are you sure it's running?
|
||||||
} else {
|
} else {
|
||||||
c.KubeClient.SetPostgresCRDStatus(c.clusterName(), acidv1.ClusterStatusAddFailed)
|
pgUpdatedStatus, err = c.KubeClient.SetPostgresCRDStatus(c.clusterName(), acidv1.ClusterStatusAddFailed)
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
c.logger.Warningf("could not set cluster status: %v", err)
|
||||||
|
}
|
||||||
|
if pgUpdatedStatus != nil {
|
||||||
|
c.setSpec(pgUpdatedStatus)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
|
@ -790,6 +797,7 @@ func (c *Cluster) addFinalizer() error {
|
||||||
|
|
||||||
// update the spec, maintaining the new resourceVersion
|
// update the spec, maintaining the new resourceVersion
|
||||||
c.setSpec(newSpec)
|
c.setSpec(newSpec)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -838,10 +846,20 @@ func (c *Cluster) Update(oldSpec, newSpec *acidv1.Postgresql) error {
|
||||||
c.setSpec(newSpec)
|
c.setSpec(newSpec)
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
|
var (
|
||||||
|
pgUpdatedStatus *acidv1.Postgresql
|
||||||
|
err error
|
||||||
|
)
|
||||||
if updateFailed {
|
if updateFailed {
|
||||||
c.KubeClient.SetPostgresCRDStatus(c.clusterName(), acidv1.ClusterStatusUpdateFailed)
|
pgUpdatedStatus, err = c.KubeClient.SetPostgresCRDStatus(c.clusterName(), acidv1.ClusterStatusUpdateFailed)
|
||||||
} else {
|
} else {
|
||||||
c.KubeClient.SetPostgresCRDStatus(c.clusterName(), acidv1.ClusterStatusRunning)
|
pgUpdatedStatus, err = c.KubeClient.SetPostgresCRDStatus(c.clusterName(), acidv1.ClusterStatusRunning)
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
c.logger.Warningf("could not set cluster status: %v", err)
|
||||||
|
}
|
||||||
|
if pgUpdatedStatus != nil {
|
||||||
|
c.setSpec(pgUpdatedStatus)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,11 +41,18 @@ func (c *Cluster) Sync(newSpec *acidv1.Postgresql) error {
|
||||||
c.setSpec(newSpec)
|
c.setSpec(newSpec)
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
|
var pgUpdatedStatus *acidv1.Postgresql
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.logger.Warningf("error while syncing cluster state: %v", err)
|
c.logger.Warningf("error while syncing cluster state: %v", err)
|
||||||
c.KubeClient.SetPostgresCRDStatus(c.clusterName(), acidv1.ClusterStatusSyncFailed)
|
pgUpdatedStatus, err = c.KubeClient.SetPostgresCRDStatus(c.clusterName(), acidv1.ClusterStatusSyncFailed)
|
||||||
} else if !c.Status.Running() {
|
} else if !c.Status.Running() {
|
||||||
c.KubeClient.SetPostgresCRDStatus(c.clusterName(), acidv1.ClusterStatusRunning)
|
pgUpdatedStatus, err = c.KubeClient.SetPostgresCRDStatus(c.clusterName(), acidv1.ClusterStatusRunning)
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
c.logger.Warningf("could not set cluster status: %v", err)
|
||||||
|
}
|
||||||
|
if pgUpdatedStatus != nil {
|
||||||
|
c.setSpec(pgUpdatedStatus)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -209,7 +209,6 @@ func (client *KubernetesClient) SetPostgresCRDStatus(clusterName spec.Namespaced
|
||||||
return pg, fmt.Errorf("could not update status: %v", err)
|
return pg, fmt.Errorf("could not update status: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// update the spec, maintaining the new resourceVersion.
|
|
||||||
return pg, nil
|
return pg, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -220,7 +219,7 @@ func (client *KubernetesClient) SetFinalizer(clusterName spec.NamespacedName, pg
|
||||||
patch []byte
|
patch []byte
|
||||||
err error
|
err error
|
||||||
)
|
)
|
||||||
pg.ObjectMeta.SetFinalizers(finalizers)
|
pg.ObjectMeta.Finalizers = finalizers
|
||||||
|
|
||||||
if len(finalizers) > 0 {
|
if len(finalizers) > 0 {
|
||||||
patch, err = json.Marshal(struct {
|
patch, err = json.Marshal(struct {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue