add new node to /machines

release-0.4
Xiang Li 2013-07-30 22:39:45 -07:00
parent fba1ba0b85
commit 69f8b8693d
2 changed files with 7 additions and 1 deletions

View File

@ -2,9 +2,10 @@ package main
import ( import (
"encoding/json" "encoding/json"
//"errors" "fmt"
"github.com/coreos/etcd/store" "github.com/coreos/etcd/store"
"github.com/coreos/go-raft" "github.com/coreos/go-raft"
"path"
"time" "time"
) )
@ -120,6 +121,10 @@ func (c *JoinCommand) CommandName() string {
func (c *JoinCommand) Apply(raftServer *raft.Server) (interface{}, error) { func (c *JoinCommand) Apply(raftServer *raft.Server) (interface{}, error) {
err := raftServer.AddPeer(c.Name) err := raftServer.AddPeer(c.Name)
addMachine(c.Name, c.Hostname, c.RaftPort, c.ClientPort) addMachine(c.Name, c.Hostname, c.RaftPort, c.ClientPort)
nodeName := fmt.Sprintf("%s%d", "node", raftServer.CommitIndex())
key := path.Join("machines", nodeName)
value := fmt.Sprintf("%s,%d,%d", c.Hostname, c.RaftPort, c.ClientPort)
etcdStore.Set(key, value, time.Unix(0, 0), raftServer.CommitIndex())
return []byte("join success"), err return []byte("join success"), err
} }

View File

@ -4,4 +4,5 @@ package store
var keywords = map[string]bool{ var keywords = map[string]bool{
"/acoounts": true, "/acoounts": true,
"/ephemeralNodes": true, "/ephemeralNodes": true,
"/machines": true,
} }