mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #1290 from coreos/member_endpoint
etcdserver: change machines endpoint to members
This commit is contained in:
commit
57ae19b500
@ -53,7 +53,7 @@ func (s *clusterStore) Add(m Member) {
|
|||||||
// lock here.
|
// lock here.
|
||||||
func (s *clusterStore) Get() Cluster {
|
func (s *clusterStore) Get() Cluster {
|
||||||
c := &Cluster{}
|
c := &Cluster{}
|
||||||
e, err := s.Store.Get(machineKVPrefix, true, true)
|
e, err := s.Store.Get(membersKVPrefix, true, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if v, ok := err.(*etcdErr.Error); ok && v.ErrorCode == etcdErr.EcodeKeyNotFound {
|
if v, ok := err.(*etcdErr.Error); ok && v.ErrorCode == etcdErr.EcodeKeyNotFound {
|
||||||
return *c
|
return *c
|
||||||
|
@ -18,7 +18,7 @@ func TestClusterStoreAdd(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "Create",
|
name: "Create",
|
||||||
params: []interface{}{
|
params: []interface{}{
|
||||||
machineKVPrefix + "1/raftAttributes",
|
membersKVPrefix + "1/raftAttributes",
|
||||||
false,
|
false,
|
||||||
`{"PeerURLs":null}`,
|
`{"PeerURLs":null}`,
|
||||||
false,
|
false,
|
||||||
@ -28,7 +28,7 @@ func TestClusterStoreAdd(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "Create",
|
name: "Create",
|
||||||
params: []interface{}{
|
params: []interface{}{
|
||||||
machineKVPrefix + "1/attributes",
|
membersKVPrefix + "1/attributes",
|
||||||
false,
|
false,
|
||||||
`{"Name":"node1","ClientURLs":null}`,
|
`{"Name":"node1","ClientURLs":null}`,
|
||||||
false,
|
false,
|
||||||
@ -96,7 +96,7 @@ func TestClusterStoreDelete(t *testing.T) {
|
|||||||
cs.Add(newTestMember(1, nil, "node1", nil))
|
cs.Add(newTestMember(1, nil, "node1", nil))
|
||||||
cs.Remove(1)
|
cs.Remove(1)
|
||||||
|
|
||||||
wdeletes := []string{machineKVPrefix + "1"}
|
wdeletes := []string{membersKVPrefix + "1"}
|
||||||
if !reflect.DeepEqual(st.deletes, wdeletes) {
|
if !reflect.DeepEqual(st.deletes, wdeletes) {
|
||||||
t.Error("deletes = %v, want %v", st.deletes, wdeletes)
|
t.Error("deletes = %v, want %v", st.deletes, wdeletes)
|
||||||
}
|
}
|
||||||
|
@ -21,9 +21,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
keysPrefix = "/v2/keys"
|
keysPrefix = "/v2/keys"
|
||||||
machinesPrefix = "/v2/machines"
|
membersPrefix = "/v2/members"
|
||||||
raftPrefix = "/raft"
|
deprecatedMachinesPrefix = "/v2/machines"
|
||||||
|
raftPrefix = "/raft"
|
||||||
|
|
||||||
// time to wait for response from EtcdServer requests
|
// time to wait for response from EtcdServer requests
|
||||||
defaultServerTimeout = 500 * time.Millisecond
|
defaultServerTimeout = 500 * time.Millisecond
|
||||||
@ -47,7 +48,9 @@ func NewClientHandler(server *etcdserver.EtcdServer) http.Handler {
|
|||||||
mux.HandleFunc(keysPrefix+"/", sh.serveKeys)
|
mux.HandleFunc(keysPrefix+"/", sh.serveKeys)
|
||||||
// TODO: dynamic configuration may make this outdated. take care of it.
|
// TODO: dynamic configuration may make this outdated. take care of it.
|
||||||
// TODO: dynamic configuration may introduce race also.
|
// TODO: dynamic configuration may introduce race also.
|
||||||
mux.HandleFunc(machinesPrefix, sh.serveMachines)
|
// TODO: add serveMembers
|
||||||
|
mux.HandleFunc(membersPrefix, sh.serveMachines)
|
||||||
|
mux.HandleFunc(deprecatedMachinesPrefix, sh.serveMachines)
|
||||||
mux.HandleFunc("/", http.NotFound)
|
mux.HandleFunc("/", http.NotFound)
|
||||||
return mux
|
return mux
|
||||||
}
|
}
|
||||||
@ -107,7 +110,6 @@ func (h serverHandler) serveKeys(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// serveMachines responds address list in the format '0.0.0.0, 1.1.1.1'.
|
// serveMachines responds address list in the format '0.0.0.0, 1.1.1.1'.
|
||||||
// TODO: rethink the format of machine list because it is not json format.
|
|
||||||
func (h serverHandler) serveMachines(w http.ResponseWriter, r *http.Request) {
|
func (h serverHandler) serveMachines(w http.ResponseWriter, r *http.Request) {
|
||||||
if !allowMethod(w, r.Method, "GET", "HEAD") {
|
if !allowMethod(w, r.Method, "GET", "HEAD") {
|
||||||
return
|
return
|
||||||
|
@ -581,7 +581,7 @@ func (w *dummyWatcher) EventChan() chan *store.Event {
|
|||||||
func (w *dummyWatcher) StartIndex() uint64 { return w.sidx }
|
func (w *dummyWatcher) StartIndex() uint64 { return w.sidx }
|
||||||
func (w *dummyWatcher) Remove() {}
|
func (w *dummyWatcher) Remove() {}
|
||||||
|
|
||||||
func TestV2MachinesEndpoint(t *testing.T) {
|
func TestV2MembersEndpoint(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
method string
|
method string
|
||||||
wcode int
|
wcode int
|
||||||
@ -596,7 +596,7 @@ func TestV2MachinesEndpoint(t *testing.T) {
|
|||||||
defer s.Close()
|
defer s.Close()
|
||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
req, err := http.NewRequest(tt.method, s.URL+machinesPrefix, nil)
|
req, err := http.NewRequest(tt.method, s.URL+membersPrefix, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ import (
|
|||||||
"github.com/coreos/etcd/pkg/types"
|
"github.com/coreos/etcd/pkg/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
const machineKVPrefix = "/_etcd/machines/"
|
const membersKVPrefix = "/_etcd/members/"
|
||||||
|
|
||||||
// RaftAttributes represents the raft related attributes of an etcd member.
|
// RaftAttributes represents the raft related attributes of an etcd member.
|
||||||
type RaftAttributes struct {
|
type RaftAttributes struct {
|
||||||
@ -55,7 +55,7 @@ func newMember(name string, peerURLs types.URLs, now *time.Time) *Member {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m Member) storeKey() string {
|
func (m Member) storeKey() string {
|
||||||
return path.Join(machineKVPrefix, strconv.FormatUint(m.ID, 16))
|
return path.Join(membersKVPrefix, strconv.FormatUint(m.ID, 16))
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseMemberID(key string) uint64 {
|
func parseMemberID(key string) uint64 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user