Remove function for state only. Fix var names.
This commit is contained in:
parent
c6d7cb5ed5
commit
14e04cc7fe
|
|
@ -12,6 +12,7 @@ import (
|
||||||
|
|
||||||
"github.com/zalando/postgres-operator/pkg/spec"
|
"github.com/zalando/postgres-operator/pkg/spec"
|
||||||
"github.com/zalando/postgres-operator/pkg/util"
|
"github.com/zalando/postgres-operator/pkg/util"
|
||||||
|
"github.com/zalando/postgres-operator/pkg/util/patroni"
|
||||||
"github.com/zalando/postgres-operator/pkg/util/retryutil"
|
"github.com/zalando/postgres-operator/pkg/util/retryutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -312,14 +313,14 @@ func (c *Cluster) isSafeToRecreatePods(pods *v1.PodList) bool {
|
||||||
|
|
||||||
for _, pod := range pods.Items {
|
for _, pod := range pods.Items {
|
||||||
|
|
||||||
var state string
|
var data patroni.MemberData
|
||||||
|
|
||||||
err := retryutil.Retry(1*time.Second, 5*time.Second,
|
err := retryutil.Retry(1*time.Second, 5*time.Second,
|
||||||
func() (bool, error) {
|
func() (bool, error) {
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
state, err = c.patroni.GetPatroniMemberState(&pod)
|
data, err = c.patroni.GetMemberData(&pod)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
|
|
@ -331,7 +332,7 @@ func (c *Cluster) isSafeToRecreatePods(pods *v1.PodList) bool {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.logger.Errorf("failed to get Patroni state for pod: %s", err)
|
c.logger.Errorf("failed to get Patroni state for pod: %s", err)
|
||||||
return false
|
return false
|
||||||
} else if state == "creating replica" {
|
} else if data.State == "creating replica" {
|
||||||
c.logger.Warningf("cannot re-create replica %s: it is currently being initialized", pod.Name)
|
c.logger.Warningf("cannot re-create replica %s: it is currently being initialized", pod.Name)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,6 @@ const (
|
||||||
type Interface interface {
|
type Interface interface {
|
||||||
Switchover(master *v1.Pod, candidate string) error
|
Switchover(master *v1.Pod, candidate string) error
|
||||||
SetPostgresParameters(server *v1.Pod, options map[string]string) error
|
SetPostgresParameters(server *v1.Pod, options map[string]string) error
|
||||||
GetPatroniMemberState(pod *v1.Pod) (string, error)
|
|
||||||
GetMemberData(server *v1.Pod) (MemberData, error)
|
GetMemberData(server *v1.Pod) (MemberData, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -127,39 +126,6 @@ func (p *Patroni) SetPostgresParameters(server *v1.Pod, parameters map[string]st
|
||||||
return p.httpPostOrPatch(http.MethodPatch, apiURLString+configPath, buf)
|
return p.httpPostOrPatch(http.MethodPatch, apiURLString+configPath, buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
//GetPatroniMemberState returns a state of member of a Patroni cluster
|
|
||||||
func (p *Patroni) GetPatroniMemberState(server *v1.Pod) (string, error) {
|
|
||||||
|
|
||||||
apiURLString, err := apiURL(server)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
response, err := p.httpClient.Get(apiURLString)
|
|
||||||
if err != nil {
|
|
||||||
return "", fmt.Errorf("could not perform Get request: %v", err)
|
|
||||||
}
|
|
||||||
defer response.Body.Close()
|
|
||||||
|
|
||||||
body, err := ioutil.ReadAll(response.Body)
|
|
||||||
if err != nil {
|
|
||||||
return "", fmt.Errorf("could not read response: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
data := make(map[string]interface{})
|
|
||||||
err = json.Unmarshal(body, &data)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
|
|
||||||
state, ok := data["state"].(string)
|
|
||||||
if !ok {
|
|
||||||
return "", errors.New("Patroni Get call response contains wrong type for 'state' field")
|
|
||||||
}
|
|
||||||
|
|
||||||
return state, nil
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// MemberData Patroni member data from Patroni API
|
// MemberData Patroni member data from Patroni API
|
||||||
type MemberData struct {
|
type MemberData struct {
|
||||||
State string
|
State string
|
||||||
|
|
@ -197,13 +163,13 @@ func (p *Patroni) GetMemberData(server *v1.Pod) (MemberData, error) {
|
||||||
|
|
||||||
var ok, r bool
|
var ok, r bool
|
||||||
|
|
||||||
memberData.state, r = data["state"].(string)
|
memberData.State, r = data["state"].(string)
|
||||||
ok = ok && r
|
ok = ok && r
|
||||||
memberData.serverVersion, r = data["server_version"].(int)
|
memberData.ServerVersion, r = data["server_version"].(int)
|
||||||
ok = ok && r
|
ok = ok && r
|
||||||
memberData.role, r = data["role"].(string)
|
memberData.Role, r = data["role"].(string)
|
||||||
ok = ok && r
|
ok = ok && r
|
||||||
memberData.role, r = data["scope"].(string)
|
memberData.Role, r = data["scope"].(string)
|
||||||
ok = ok && r
|
ok = ok && r
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue