Proper unmarshal.
This commit is contained in:
parent
6893d0f874
commit
620521d2a8
|
|
@ -3,7 +3,6 @@ package patroni
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net"
|
"net"
|
||||||
|
|
@ -132,12 +131,18 @@ 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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MemberDataPatroni child element
|
||||||
|
type MemberDataPatroni struct {
|
||||||
|
Version string
|
||||||
|
Scope string
|
||||||
|
}
|
||||||
|
|
||||||
// MemberData Patroni member data from Patroni API
|
// MemberData Patroni member data from Patroni API
|
||||||
type MemberData struct {
|
type MemberData struct {
|
||||||
State string
|
State string
|
||||||
Role string
|
Role string
|
||||||
ServerVersion int
|
ServerVersion int
|
||||||
Scope string
|
Patroni MemberDataPatroni
|
||||||
PatroniVersion string
|
PatroniVersion string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -159,29 +164,11 @@ func (p *Patroni) GetMemberData(server *v1.Pod) (MemberData, error) {
|
||||||
return MemberData{}, fmt.Errorf("could not read response: %v", err)
|
return MemberData{}, fmt.Errorf("could not read response: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
data := make(map[string]interface{})
|
data := MemberData{}
|
||||||
err = json.Unmarshal(body, &data)
|
err = json.Unmarshal(body, &data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return MemberData{}, err
|
return MemberData{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
memberData := MemberData{}
|
return data, nil
|
||||||
|
|
||||||
r := false
|
|
||||||
ok := true
|
|
||||||
|
|
||||||
memberData.State, r = data["state"].(string)
|
|
||||||
ok = ok && r
|
|
||||||
memberData.ServerVersion, r = data["server_version"].(int)
|
|
||||||
ok = ok && r
|
|
||||||
memberData.Role, r = data["role"].(string)
|
|
||||||
ok = ok && r
|
|
||||||
memberData.Role, r = data["scope"].(string)
|
|
||||||
ok = ok && r
|
|
||||||
|
|
||||||
if !ok {
|
|
||||||
return MemberData{}, errors.New("Patroni member data could not be read")
|
|
||||||
}
|
|
||||||
|
|
||||||
return memberData, nil
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue