Merge pull request #151 from philips/listening-ip-cleanups

Listening ip cleanups
This commit is contained in:
Xiang Li 2013-09-01 03:08:14 -07:00
commit d56d79018e
3 changed files with 16 additions and 8 deletions

View File

@ -347,6 +347,9 @@ We use -s to specify server port and -c to specify client port and -d to specify
./etcd -s 127.0.0.1:7001 -c 127.0.0.1:4001 -d nodes/node1 -n node1 ./etcd -s 127.0.0.1:7001 -c 127.0.0.1:4001 -d nodes/node1 -n node1
``` ```
**Note:** If you want to run etcd on external IP address and still have access locally you need to add `-cl 0.0.0.0` so that it will listen on both external and localhost addresses.
A similar argument `-sl` is used to setup the listening address for the server port.
Let the join two more nodes to this cluster using the -C argument: Let the join two more nodes to this cluster using the -C argument:
```sh ```sh
@ -363,7 +366,7 @@ curl -L http://127.0.0.1:4001/v1/machines
We should see there are three nodes in the cluster We should see there are three nodes in the cluster
``` ```
http://0.0.0.0:4001, http://0.0.0.0:4002, http://0.0.0.0:4003 http://127.0.0.1:4001, http://127.0.0.1:4002, http://127.0.0.1:4003
``` ```
The machine list is also available via this API: The machine list is also available via this API:
@ -373,7 +376,7 @@ curl -L http://127.0.0.1:4001/v1/keys/_etcd/machines
``` ```
```json ```json
[{"action":"GET","key":"/_etcd/machines/node1","value":"raft=http://0.0.0.0:7001&etcd=http://0.0.0.0:4001","index":4},{"action":"GET","key":"/_etcd/machines/node2","value":"raft=http://0.0.0.0:7002&etcd=http://0.0.0.0:4002","index":4},{"action":"GET","key":"/_etcd/machines/node3","value":"raft=http://0.0.0.0:7003&etcd=http://0.0.0.0:4003","index":4}] [{"action":"GET","key":"/_etcd/machines/node1","value":"raft=http://127.0.0.1:7001&etcd=http://127.0.0.1:4001","index":4},{"action":"GET","key":"/_etcd/machines/node2","value":"raft=http://127.0.0.1:7002&etcd=http://127.0.0.1:4002","index":4},{"action":"GET","key":"/_etcd/machines/node3","value":"raft=http://127.0.0.1:7003&etcd=http://127.0.0.1:4003","index":4}]
``` ```
The key of the machine is based on the ```commit index``` when it was added. The value of the machine is ```hostname```, ```raft port``` and ```client port```. The key of the machine is based on the ```commit index``` when it was added. The value of the machine is ```hostname```, ```raft port``` and ```client port```.
@ -386,7 +389,7 @@ curl -L http://127.0.0.1:4001/v1/leader
The first server we set up should be the leader, if it has not dead during these commands. The first server we set up should be the leader, if it has not dead during these commands.
``` ```
http://0.0.0.0:7001 http://127.0.0.1:7001
``` ```
Now we can do normal SET and GET operations on keys as we explored earlier. Now we can do normal SET and GET operations on keys as we explored earlier.
@ -414,13 +417,13 @@ curl -L http://127.0.0.1:4001/v1/leader
``` ```
``` ```
http://0.0.0.0:7002 http://127.0.0.1:7002
``` ```
or or
``` ```
http://0.0.0.0:7003 http://127.0.0.1:7003
``` ```
You should be able to see this: You should be able to see this:

View File

@ -52,8 +52,8 @@ func init() {
flag.StringVar(&argInfo.Name, "n", "default-name", "the node name (required)") flag.StringVar(&argInfo.Name, "n", "default-name", "the node name (required)")
flag.StringVar(&argInfo.EtcdURL, "c", "127.0.0.1:4001", "the advertised public hostname:port for etcd client communication") flag.StringVar(&argInfo.EtcdURL, "c", "127.0.0.1:4001", "the advertised public hostname:port for etcd client communication")
flag.StringVar(&argInfo.RaftURL, "s", "127.0.0.1:7001", "the advertised public hostname:port for raft server communication") flag.StringVar(&argInfo.RaftURL, "s", "127.0.0.1:7001", "the advertised public hostname:port for raft server communication")
flag.StringVar(&argInfo.EtcdListenHost, "cl", "127.0.0.1", "the listening hostname for etcd client communication") flag.StringVar(&argInfo.EtcdListenHost, "cl", "", "the listening hostname for etcd client communication (defaults to advertised ip)")
flag.StringVar(&argInfo.RaftListenHost, "sl", "127.0.0.1", "the listening hostname for raft server communication") flag.StringVar(&argInfo.RaftListenHost, "sl", "", "the listening hostname for raft server communication (defaults to advertised ip)")
flag.StringVar(&argInfo.WebURL, "w", "", "the hostname:port of web interface") flag.StringVar(&argInfo.WebURL, "w", "", "the hostname:port of web interface")
flag.StringVar(&argInfo.RaftTLS.CAFile, "serverCAFile", "", "the path of the CAFile") flag.StringVar(&argInfo.RaftTLS.CAFile, "serverCAFile", "", "the path of the CAFile")

View File

@ -114,11 +114,16 @@ func sanitizeListenHost(listen string, advertised string) string {
fatal(err) fatal(err)
} }
_, aport, err := net.SplitHostPort(aurl.Host) ahost, aport, err := net.SplitHostPort(aurl.Host)
if err != nil { if err != nil {
fatal(err) fatal(err)
} }
// If the listen host isn't set use the advertised host
if listen == "" {
listen = ahost
}
return net.JoinHostPort(listen, aport) return net.JoinHostPort(listen, aport)
} }