b0ea4ab | Xiang Li | 10 August 2015, 18:22:55 UTC | doc: link to v3 api doc | 10 August 2015, 18:22:55 UTC |
c32919e | Xiang Li | 10 August 2015, 18:21:37 UTC | *: rename v3etcdctl to etcdctlv3 | 10 August 2015, 18:21:37 UTC |
c1e0b19 | Xiang Li | 10 August 2015, 16:53:17 UTC | *: better flag | 10 August 2015, 16:53:17 UTC |
9ff7075 | Xiang Li | 08 August 2015, 17:14:42 UTC | etcdserver: use v3server interface | 08 August 2015, 17:39:04 UTC |
523567b | Xiang Li | 08 August 2015, 12:58:58 UTC | v3etcdctl: initial v3 ctl support | 08 August 2015, 12:58:58 UTC |
f004b4d | Xiang Li | 08 August 2015, 12:58:29 UTC | *: etcdserver supports v3 demo | 08 August 2015, 12:58:29 UTC |
82afadb | Xiang Li | 08 August 2015, 12:29:18 UTC | etcdserverpb: update proto | 08 August 2015, 12:31:35 UTC |
668a8a8 | Xiang Li | 07 August 2015, 17:58:39 UTC | Merge pull request #3242 from xiang90/typo *: fix typos vaild->valid | 07 August 2015, 17:58:39 UTC |
845c51f | Xiang Li | 07 August 2015, 17:57:11 UTC | *: fix typos vaild->valid | 07 August 2015, 17:57:11 UTC |
f0a5874 | Yicheng Qin | 07 August 2015, 17:24:29 UTC | Merge pull request #3241 from yichengq/sync-pin client: Sync() pin the endpoint when member list doesn't change | 07 August 2015, 17:24:29 UTC |
0ab16db | Yicheng Qin | 06 August 2015, 23:20:53 UTC | client: Sync() pin the endpoint when member list doesn't change This helps client to pin the same endpoint as long as cluster doesn't change. | 07 August 2015, 17:08:28 UTC |
d7adcc3 | Xiang Li | 07 August 2015, 16:37:32 UTC | Merge pull request #3239 from xiang90/improve_probing rafthttp: use customized transport for probing | 07 August 2015, 16:37:32 UTC |
b6580a9 | Xiang Li | 06 August 2015, 22:45:28 UTC | rafthttp: use customized transport for probing We need to support TLS verification when probing. | 06 August 2015, 23:20:44 UTC |
d2363af | Xiang Li | 06 August 2015, 22:56:14 UTC | Merge pull request #3240 from xiang90/fix_log etcdmain: fix path printing | 06 August 2015, 22:56:14 UTC |
f03f048 | Yicheng Qin | 06 August 2015, 22:54:40 UTC | Merge pull request #3184 from yichengq/fast-bootstrap etcdserver: tick ElectionTicks before starting when bootstrap new cluster | 06 August 2015, 22:54:40 UTC |
1b572ae | Xiang Li | 06 August 2015, 22:53:24 UTC | etcdmain: fix path printing | 06 August 2015, 22:53:24 UTC |
21f5b88 | Yicheng Qin | 24 July 2015, 23:48:33 UTC | etcdserver: fast election timeout when bootstrap cluster The behavior accelarates the happen of the first-time leader election, so the cluster could elect its leader fast. Technically, it could help to reduce `electionMs - heartbeatMs` wait time for the first leader election. Main usage: 1. Quick start for the local cluster when setting a little longer election timeout 2. Quick start for the global cluster, which sets election timeout to its maximum 50s. | 06 August 2015, 22:44:26 UTC |
a637e86 | Yicheng Qin | 06 August 2015, 22:09:04 UTC | Merge pull request #3220 from yichengq/fix-auth-check etcdhttp: fix access check for multiple roles in auth | 06 August 2015, 22:09:04 UTC |
b9c6b64 | Xiang Li | 06 August 2015, 22:04:49 UTC | Merge pull request #3216 from yichengq/cancel-err client: return context canceled error correctly | 06 August 2015, 22:04:49 UTC |
b965c4b | Yicheng Qin | 06 August 2015, 22:00:04 UTC | Merge pull request #3217 from yichengq/update-migrate-example update commands used in admin_guide.md | 06 August 2015, 22:00:04 UTC |
78af793 | Yicheng Qin | 03 August 2015, 22:57:59 UTC | client: return context canceled error correctly If the body is closed to stop watching, it will ignore the error from reading body and return context error. Before this PR, the cancel when watching always returns error `read tcp 127.0.0.1:57824: use of closed network connection`. After this PR, it will return expected context canceled error. | 06 August 2015, 21:52:04 UTC |
b04bb3e | Xiang Li | 06 August 2015, 21:41:19 UTC | Merge pull request #3229 from xiang90/f_cerr client: return context.Canceled error when user cancels the request | 06 August 2015, 21:41:19 UTC |
25ad71f | Yicheng Qin | 06 August 2015, 21:40:38 UTC | Merge pull request #3225 from yichengq/client-record-err client: return correct error for 50x response | 06 August 2015, 21:40:38 UTC |
7314310 | Xiang Li | 06 August 2015, 21:35:22 UTC | Merge pull request #3233 from xiang90/srv_discovery better dns discovery error and doc | 06 August 2015, 21:35:22 UTC |
cfeaf3d | Yicheng Qin | 05 August 2015, 05:21:54 UTC | client: return correct error for 50x response etcd always returns 500/503 response when it may have no leader. So we should log the other 50x response in a normal way. This helps to log correctly when discovery meets 504 error. Before this PR, it logs like this: ``` 18:31:58 etcd2 | 2015/08/4 18:31:58 discovery: error #0: client: etcd member https://discovery.etcd.io has no leader 18:31:58 etcd2 | 2015/08/4 18:31:58 discovery: waiting for other nodes: error connecting to https://discovery.etcd.io, retrying in 4s ``` After this PR: ``` 22:20:25 etcd2 | 2015/08/4 22:20:25 discovery: error #0: client: etcd member https://discovery.etcd.io returns server error [Gateway Timeout] 22:20:25 etcd2 | 2015/08/4 22:20:25 discovery: waiting for other nodes: error connecting to https://discovery.etcd.io, retrying in 4s ``` | 06 August 2015, 21:25:03 UTC |
e9f05e8 | Xiang Li | 06 August 2015, 18:39:14 UTC | doc: explain srv error | 06 August 2015, 21:24:58 UTC |
2c2249d | Yicheng Qin | 06 August 2015, 19:17:49 UTC | Merge pull request #3219 from yichengq/limit-listener etcdmain: stop accepting client conns when it reachs limit | 06 August 2015, 19:17:49 UTC |
97923ca | Yicheng Qin | 04 August 2015, 18:36:24 UTC | etcdmain: close client conns when it exceeds limit This solves the problem that etcd may fatal because its critical path cannot get file descriptor resource when the number of clients is too big. The PR lets the client listener close client connections immediately after they are accepted when the file descriptor usage in the process reaches some pre-set limit, so it ensures that the internal critical path could always get file descriptor when it needs. When there are tons to clients connecting to the server, the original behavior is like this: ``` 2015/08/4 16:42:08 etcdserver: cannot monitor file descriptor usage (open /proc/self/fd: too many open files) 2015/08/4 16:42:33 etcdserver: failed to purge snap file open default2.etcd/member/snap: too many open files [halted] ``` Current behavior is like this: ``` 2015/08/6 19:05:25 transport: accept error: closing connection, exceed file descriptor usage limitation (fd limit=874) 2015/08/6 19:05:25 transport: accept error: closing connection, exceed file descriptor usage limitation (fd limit=874) 2015/08/6 19:05:26 transport: accept error: closing connection, exceed file descriptor usage limitation (fd limit=874) 2015/08/6 19:05:27 transport: accept error: closing connection, exceed file descriptor usage limitation (fd limit=874) 2015/08/6 19:05:28 transport: accept error: closing connection, exceed file descriptor usage limitation (fd limit=874) 2015/08/6 19:05:28 etcdserver: 80% of the file descriptor limit is used [used = 873, limit = 1024] ``` It is available at linux system today because pkg/runtime only has linux support. | 06 August 2015, 19:03:20 UTC |
203e0f1 | Xiang Li | 06 August 2015, 18:38:53 UTC | etcdmian: better error for srv discovery failure | 06 August 2015, 18:38:53 UTC |
01c286c | Xiang Li | 06 August 2015, 17:25:28 UTC | Merge pull request #3231 from xiang90/fallocate pkg/fileutil: support perallocate | 06 August 2015, 17:25:28 UTC |
39a4b6a | Xiang Li | 06 August 2015, 06:46:15 UTC | pkg/fileutil: support perallocate | 06 August 2015, 17:10:58 UTC |
9a8607f | Xiang Li | 06 August 2015, 07:16:28 UTC | Merge pull request #3187 from yichengq/client-keep-sync client: add KeepSync function | 06 August 2015, 07:16:28 UTC |
c53b301 | Yicheng Qin | 27 July 2015, 23:52:02 UTC | client: add AutoSync function AutoSync provides the way for client to syncing member list from etcd cluster automatically. | 05 August 2015, 20:22:56 UTC |
807a6f2 | Yicheng Qin | 03 August 2015, 23:52:35 UTC | docs/admin_guide: decouple example from CoreOS specific details This makes the example commands general, while keeping it easy to understand. It also fixes some name mismatch. | 05 August 2015, 18:33:46 UTC |
f38187b | Xiang Li | 05 August 2015, 16:52:30 UTC | client: return context.Canceled error when user cancels the request | 05 August 2015, 16:52:30 UTC |
ff0b872 | Xiang Li | 05 August 2015, 16:27:32 UTC | Merge pull request #2688 from xiang90/versioning etcdserver: internal request union | 05 August 2015, 16:27:32 UTC |
5850381 | Xiang Li | 15 April 2015, 17:58:56 UTC | etcdserver: internal request union | 05 August 2015, 14:47:10 UTC |
487639b | Xiang Li | 05 August 2015, 06:19:45 UTC | Merge pull request #3222 from mitake/wal-log-error wal: log errors in wal.Close() | 05 August 2015, 06:19:45 UTC |
9cbeffc | Xiang Li | 05 August 2015, 06:15:29 UTC | Merge pull request #3224 from xiang90/fix_ls etcdctl: ls takes / as default key arg | 05 August 2015, 06:15:29 UTC |
ba76e27 | Hitoshi Mitake | 05 August 2015, 02:09:08 UTC | wal: log errors in wal.Close() This patch adds error logging in wal.Close() if unlocking and destroying fail. Though it is hard to handling the errors, logging would be helpful for trouble shooting. | 05 August 2015, 06:03:45 UTC |
9527a97 | Xiang Li | 05 August 2015, 05:56:55 UTC | etcdctl: ls takes / as default key arg | 05 August 2015, 05:56:55 UTC |
718a42f | Xiang Li | 04 August 2015, 23:56:31 UTC | Merge pull request #3210 from xiang90/probing monitoring connectivity between peers | 04 August 2015, 23:56:31 UTC |
18169e8 | Yicheng Qin | 04 August 2015, 21:07:39 UTC | etcdhttp: fix access check for multiple roles in auth Check access for multiple roles should go through all roles. | 04 August 2015, 21:31:07 UTC |
0650170 | Yicheng Qin | 04 August 2015, 20:52:42 UTC | Merge pull request #3196 from eyakubovich/fix-watch-timeout client: handle watch timing out elegantly | 04 August 2015, 20:52:42 UTC |
1e048b5 | Xiang Li | 04 August 2015, 09:42:51 UTC | rafthttp: cleanup prober when stopping the transport | 04 August 2015, 09:42:51 UTC |
709718e | Xiang Li | 04 August 2015, 09:40:39 UTC | godeps: update probing pkg | 04 August 2015, 09:40:39 UTC |
0fc7642 | Xiang Li | 03 August 2015, 01:07:16 UTC | rafthttp: monitor connection | 04 August 2015, 09:39:40 UTC |
ff5c346 | Xiang Li | 04 August 2015, 03:48:06 UTC | Merge pull request #3197 from xiang90/health etcdctl: cluster-health supports forever flag | 04 August 2015, 03:48:06 UTC |
6312e22 | Eugene Yakubovich | 30 July 2015, 01:52:13 UTC | client: handle empty watch responses elegantly Even though current etcd does not time out watches, the client could be running against an old etcd version or the server may close polling connection for other reasons. This patch ignores successful (as in 200) responses with emtpy bodies instead of producing JSON errors. | 03 August 2015, 18:47:21 UTC |
306085d | Xiang Li | 03 August 2015, 01:06:31 UTC | Godeps: add probing dependency | 03 August 2015, 01:07:43 UTC |
f7f00b0 | Xiang Li | 30 July 2015, 02:01:47 UTC | etcdctl: cluster-health supports forever flag cluster-health command supports checking the cluster health forever. | 01 August 2015, 14:29:08 UTC |
3da1df2 | Xiang Li | 01 August 2015, 11:47:17 UTC | Merge pull request #3207 from xiang90/rm_migration *: remove migration related stuff from 2.2 | 01 August 2015, 11:47:17 UTC |
2b8abeb | Xiang Li | 30 June 2015, 22:13:21 UTC | *: remove migration related stuff from 2.2 | 01 August 2015, 11:37:20 UTC |
eee1c8b | Xiang Li | 31 July 2015, 23:34:25 UTC | Merge pull request #3200 from xiang90/d_doc doc: unique names must be specified when using public discovery service | 31 July 2015, 23:34:25 UTC |
8bd9554 | Yicheng Qin | 31 July 2015, 21:41:45 UTC | Merge pull request #3202 from yichengq/fix-etcdctl-watch etcdctl: fix watch -after-index parsing | 31 July 2015, 21:41:45 UTC |
4a89b3f | Yicheng Qin | 31 July 2015, 18:55:42 UTC | Merge pull request #3116 from offscale/master build: implemented build shell-script for Windows | 31 July 2015, 18:55:42 UTC |
05b2d06 | Xiang Li | 31 July 2015, 11:04:35 UTC | Merge pull request #3199 from xiang90/sdnotify etcdmain: support sdnotify for readiness | 31 July 2015, 11:04:35 UTC |
4a0d8ee | Samuel Marks | 31 July 2015, 07:43:47 UTC | build: implemented build shell-script for Windows | 31 July 2015, 07:43:47 UTC |
0cbac56 | Xiang Li | 30 July 2015, 08:20:38 UTC | etcdmain: support sdnotify for readiness | 31 July 2015, 05:33:18 UTC |
beeecc3 | Xiang Li | 30 July 2015, 11:02:43 UTC | doc: unique names must be specified when using public discovery service | 31 July 2015, 01:12:44 UTC |
c1c5c7c | Barak Michener | 30 July 2015, 21:00:49 UTC | Merge pull request #3091 from barakmich/client_auth_cov etcdhttp: Improve test coverage surrounding auth | 30 July 2015, 21:00:49 UTC |
dd1a8fe | Barak Michener | 01 July 2015, 19:10:16 UTC | etcdhttp: Improve test coverage surrounding auth | 30 July 2015, 18:21:08 UTC |
1478850 | Yicheng Qin | 30 July 2015, 18:15:43 UTC | etcdctl: fix watch -after-index parsing It uses -after-index incorrectly now: ``` $ ./bin/etcdctl --debug watch -after-index 31 foo Cluster-Endpoints: http://localhost:2379, http://localhost:4001 cURL Command: curl -X GET http://localhost:2379/v2/keys/foo?recursive=false&wait=true&waitIndex=33 ``` After this PR: ``` $ ./bin/etcdctl --debug watch -after-index 31 foo Cluster-Endpoints: http://localhost:2379, http://localhost:4001 cURL Command: curl -X GET http://localhost:2379/v2/keys/foo?recursive=false&wait=true&waitIndex=32 ``` | 30 July 2015, 18:15:43 UTC |
219ed16 | Yicheng Qin | 30 July 2015, 01:16:26 UTC | Merge pull request #3178 from yichengq/refactor-cluster-health etcdctl: refactor the way to check cluster health | 30 July 2015, 01:16:26 UTC |
80b794d | Xiang Li | 30 July 2015, 00:46:07 UTC | Merge pull request #3185 from xiang90/add_debug_endpoint etcdhttp: add config/local/debug endpoint | 30 July 2015, 00:46:07 UTC |
4e31df2 | Xiang Li | 01 July 2015, 18:26:45 UTC | etcdhttp: add config/local/log endpoint PUT on the endpoint sets the GlobalDebugLevel to json level value. The action overwrites the origianl log level setting from users. We need to write doc to warn this. | 30 July 2015, 00:35:01 UTC |
e62a3b8 | Yicheng Qin | 30 July 2015, 00:15:57 UTC | Merge pull request #2891 from glensc/patch-1 build: use posix shell | 30 July 2015, 00:15:57 UTC |
ff945c7 | Xiang Li | 30 July 2015, 00:08:09 UTC | Merge pull request #3181 from xiang90/2.2-client-error client: return cluster error if the etcd cluster is not avaliable | 30 July 2015, 00:08:09 UTC |
f1aaa7a | Yicheng Qin | 23 July 2015, 23:49:31 UTC | etcdctl: refactor the way to check cluster health This method uses raft status exposed at /debug/varz to determine the health of the cluster. It uses whether commit index increases to determine the cluster health, and uses whether match index increases to determine the member health. This could fix the bug #2711 that fails to detect follower is unhealthy because it doesn't rely on whether message in long-polling connection is sent. This health check is stricter than the old one, and reflects the situation that whether followers are healthy in the view of the leader. One example is that if the follower is receiving the snapshot, it will turns out to be unhealthy because it doesn't move forward. `etcdctl cluster-health` will reflect the healthy view in the raft level, while connectivity checks reflects the healthy view in transport level. | 30 July 2015, 00:06:55 UTC |
a47e661 | Xiang Li | 29 July 2015, 15:04:12 UTC | discovery: print out detailed cluster error | 29 July 2015, 15:06:57 UTC |
5fa8652 | Xiang Li | 20 July 2015, 00:24:42 UTC | client: return cluster error if the etcd cluster is not avaliable Add a new ClusterError type. It contians all encountered errors and return ClusterNotAvailable as the error string. | 29 July 2015, 14:55:15 UTC |
6b8b507 | Yicheng Qin | 28 July 2015, 17:33:58 UTC | Merge pull request #3176 from yichengq/reject-high-election etcdmain: reject unreasonably high values of -election-timeout | 28 July 2015, 17:33:58 UTC |
ec21403 | Yicheng Qin | 23 July 2015, 21:48:11 UTC | etcdmain: reject unreasonably high values of -election-timeout This helps users to detect setting problem early. | 28 July 2015, 17:07:57 UTC |
7831a30 | Yicheng Qin | 27 July 2015, 21:45:31 UTC | Merge pull request #3180 from shafreeck/master Update libraries-and-tools.md | 27 July 2015, 21:45:31 UTC |
6184e27 | Yicheng Qin | 27 July 2015, 21:35:51 UTC | Merge pull request #3164 from yichengq/pin-endpoint client: pin itself to an endpoint that given | 27 July 2015, 21:35:51 UTC |
6fc9dbf | Yicheng Qin | 27 July 2015, 21:19:25 UTC | Merge pull request #3114 from yichengq/clean-raft-init etcdserver: clean up start and stop logic of raft | 27 July 2015, 21:19:25 UTC |
ea2347a | Yicheng Qin | 17 July 2015, 22:34:55 UTC | client: pin itself to an endpoint that given 1. When reset endpoints, client will choose a random endpoint to pin. 2. If the pinned endpoint is healthy, client will keep using it. 3. If the pinned endpoint becomes unhealthy, client will attempt other endpoints and update its pin. | 27 July 2015, 20:36:53 UTC |
7696dd3 | Yicheng Qin | 10 July 2015, 23:31:22 UTC | etcdserver: clean up start and stop logic of raft kill TODO and make it more readable. | 27 July 2015, 20:24:26 UTC |
5e3dc31 | Yicheng Qin | 24 July 2015, 22:26:07 UTC | Merge pull request #3150 from gouyang/master pkg/mflag: add modified flag package | 24 July 2015, 22:26:07 UTC |
a7eef37 | Xiang Li | 24 July 2015, 17:48:06 UTC | Merge pull request #3183 from xiang90/txn *: tnx -> txn | 24 July 2015, 17:48:06 UTC |
53a77fa | Xiang Li | 24 July 2015, 15:16:27 UTC | *: tnx -> txn | 24 July 2015, 15:21:09 UTC |
c9769ee | Guohua Ouyang | 22 July 2015, 01:01:19 UTC | etcdmain: Don't print flags when flag parse error At present it prints the whole usage and flags, which cause the exact error message is hidden two screens above. Fixes #3141 Signed-off-by: Guohua Ouyang <gouyang@redhat.com> | 24 July 2015, 13:29:21 UTC |
e75446c | Shafreeck Sea | 24 July 2015, 07:50:57 UTC | docs: add cetcd into libraries-and-tools.md | 24 July 2015, 12:08:39 UTC |
b407f72 | Yicheng Qin | 23 July 2015, 17:30:41 UTC | Merge pull request #3166 from yichengq/publish-timeout etcdserver: rename defaultPublishRetryInterval -> defaultPublishTimeout | 23 July 2015, 17:30:41 UTC |
b7892b2 | Yicheng Qin | 23 July 2015, 17:09:28 UTC | etcdserver: rename defaultPublishRetryInterval -> defaultPublishTimeout This makes code more readable and reasonable. | 23 July 2015, 17:09:28 UTC |
58bc617 | Xiang Li | 23 July 2015, 06:37:38 UTC | Merge pull request #3175 from xiang90/2.2-ctl-bug etcdctl: fix exec watch command | 23 July 2015, 06:37:38 UTC |
448ca20 | Xiang Li | 21 July 2015, 06:31:50 UTC | etcdctl: fix exec watch command The previous flag parsing has a small issue. It uses `recursive == true` and `after-index == 0` to determine if user specifies the sub flags. This is incorrect since user can specify `after-index = 0`. Then the flag parsing would be confused. This commit explicitly find the `--` in the remaining args and determine the key and cmdArgs accordingly. | 23 July 2015, 05:13:15 UTC |
43f4b99 | Xiang Li | 23 July 2015, 05:08:35 UTC | Merge pull request #3174 from xiang90/2.2_submit_bug doc: add reporting bug doc | 23 July 2015, 05:08:35 UTC |
1b5e41e | Xiang Li | 21 July 2015, 01:11:21 UTC | doc: add reporting bug doc | 23 July 2015, 04:55:38 UTC |
93002ca | Yicheng Qin | 22 July 2015, 23:54:14 UTC | Merge pull request #3165 from yichengq/client-quorum client: add Quorum option in getOption | 22 July 2015, 23:54:14 UTC |
b20b878 | Yicheng Qin | 21 July 2015, 21:16:07 UTC | client: add Quorum option in getOption | 22 July 2015, 22:19:34 UTC |
6be02ff | Xiang Li | 19 July 2015, 01:53:57 UTC | etcdmian: fix initialization confilct Fix #3142 Ignore flags if etcd is already initialized. | 21 July 2015, 19:53:21 UTC |
24db661 | Yicheng Qin | 15 July 2015, 23:44:00 UTC | etcdmain: warn when listening on HTTP if TLS is set If the user sets TLS info, this implies that he wants to listen on TLS. If etcd finds that urls to listen is still HTTP schema, it prints out warning to notify user about possible wrong setting. | 21 July 2015, 19:53:21 UTC |
604709c | Yicheng Qin | 16 July 2015, 17:55:39 UTC | etcdctl: update -peers to default to use schema Change its default value from `127.0.0.1:4001,127.0.0.1:2379` to `http://127.0.0.1:4001,http://127.0.0.1:2379` Adding HTTP schema makes its format consistent with etcd's xxx-urls flags. | 21 July 2015, 19:53:21 UTC |
d9c2713 | Xiang Li | 14 July 2015, 23:46:49 UTC | discovery: return bad discovery endpoint error | 21 July 2015, 19:53:21 UTC |
d2dac0f | Xiang Li | 14 July 2015, 23:35:57 UTC | client: consume json error and return ErrInvaildJSON The default JSON error is not very readable. We let client consume the error and return a more understandable error in the context of etcd. Fix #3120 | 21 July 2015, 19:53:21 UTC |
6317abf | Yicheng Qin | 14 July 2015, 19:18:15 UTC | pkg/transport: fix HTTPS downgrade bug for keepalive listener If TLS config is empty, etcd downgrades keepalive listener from HTTPS to HTTP without warning. This results in HTTPS downgrade bug for client urls. The commit returns error if it cannot listen on TLS. | 21 July 2015, 19:53:21 UTC |
43437e2 | Mohammad Samman | 11 July 2015, 04:41:30 UTC | etcdctl: added domain discovery flag provided a domain, will look up SRV records for etcd endpoints Fixes #2636 | 21 July 2015, 19:53:21 UTC |
dc3f7f5 | Xiang Li | 03 July 2015, 01:16:49 UTC | *: detect duplicate name for discovery bootstrap | 21 July 2015, 19:53:20 UTC |
b8279b3 | Xiang Li | 03 July 2015, 01:16:30 UTC | types: add len func for urlmaps | 21 July 2015, 19:53:20 UTC |