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/util"
 | 
			
		||||
	"github.com/zalando/postgres-operator/pkg/util/patroni"
 | 
			
		||||
	"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 {
 | 
			
		||||
 | 
			
		||||
		var state string
 | 
			
		||||
		var data patroni.MemberData
 | 
			
		||||
 | 
			
		||||
		err := retryutil.Retry(1*time.Second, 5*time.Second,
 | 
			
		||||
			func() (bool, error) {
 | 
			
		||||
 | 
			
		||||
				var err error
 | 
			
		||||
 | 
			
		||||
				state, err = c.patroni.GetPatroniMemberState(&pod)
 | 
			
		||||
				data, err = c.patroni.GetMemberData(&pod)
 | 
			
		||||
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					return false, err
 | 
			
		||||
| 
						 | 
				
			
			@ -331,7 +332,7 @@ func (c *Cluster) isSafeToRecreatePods(pods *v1.PodList) bool {
 | 
			
		|||
		if err != nil {
 | 
			
		||||
			c.logger.Errorf("failed to get Patroni state for pod: %s", err)
 | 
			
		||||
			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)
 | 
			
		||||
			return false
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,7 +26,6 @@ const (
 | 
			
		|||
type Interface interface {
 | 
			
		||||
	Switchover(master *v1.Pod, candidate string) error
 | 
			
		||||
	SetPostgresParameters(server *v1.Pod, options map[string]string) error
 | 
			
		||||
	GetPatroniMemberState(pod *v1.Pod) (string, 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)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//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
 | 
			
		||||
type MemberData struct {
 | 
			
		||||
	State          string
 | 
			
		||||
| 
						 | 
				
			
			@ -197,13 +163,13 @@ func (p *Patroni) GetMemberData(server *v1.Pod) (MemberData, error) {
 | 
			
		|||
 | 
			
		||||
	var ok, r bool
 | 
			
		||||
 | 
			
		||||
	memberData.state, r = data["state"].(string)
 | 
			
		||||
	memberData.State, r = data["state"].(string)
 | 
			
		||||
	ok = ok && r
 | 
			
		||||
	memberData.serverVersion, r = data["server_version"].(int)
 | 
			
		||||
	memberData.ServerVersion, r = data["server_version"].(int)
 | 
			
		||||
	ok = ok && r
 | 
			
		||||
	memberData.role, r = data["role"].(string)
 | 
			
		||||
	memberData.Role, r = data["role"].(string)
 | 
			
		||||
	ok = ok && r
 | 
			
		||||
	memberData.role, r = data["scope"].(string)
 | 
			
		||||
	memberData.Role, r = data["scope"].(string)
 | 
			
		||||
	ok = ok && r
 | 
			
		||||
 | 
			
		||||
	if !ok {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue