Xiang Li
699e76b631
etcdserver: only pause compaction when sending snapshot
2016-06-16 08:57:02 -07:00
Xiang Li
49266dca2d
Merge pull request #5690 from xiang90/fix_s
...
etcdserver: save state before save snapshot
2016-06-15 22:36:30 -07:00
Xiang Li
9c78cda088
etcdserver: save state before save snapshot
2016-06-15 22:00:33 -07:00
Hitoshi Mitake
cdf1a2ee2c
etcdserver: permission checking of Txn() in authApplierV3
2016-06-15 20:10:16 -07:00
Gyu-Ho Lee
32d766d749
etcdserver: preallocate slice
2016-06-15 13:03:10 -07:00
Anthony Romano
16db9e68a2
auth, etcdserver: separate auth checking apply from core apply
2016-06-15 09:03:27 -07:00
Xiang Li
5a7b7f7595
main: add grpc-gateway support
...
Now etcd can serve HTTP json request at /v3alpha/
2016-06-14 17:09:06 -07:00
Xiang Li
c75fa6fdc9
*: support deleteRange perm checking
2016-06-13 17:49:13 -07:00
Gyu-Ho Lee
5d6af0b51f
etcdserver: key, rangeEnd in []byte for auth
2016-06-13 14:21:25 -07:00
Hongchao Deng
c11418b56c
docs: v3 api, ErrCompaction -> ErrCompacted
2016-06-10 21:53:06 -07:00
Xiang Li
65ff76882b
Merge pull request #5624 from xiang90/warn_apply
...
etcdserver: warn heavy apply
2016-06-10 15:28:27 -07:00
Xiang Li
64eccd519d
etcdserver: warn heavy apply
2016-06-10 14:43:34 -07:00
Hitoshi Mitake
ead5096fa9
auth, etcdserver: make auth tokens consistent for all nodes
...
Currently auth tokens are generated in the replicated state machine
layer randomly. It means one auth token generated in node A cannot be
used for node B. It is problematic for load balancing and fail
over. This commit moves the token generation logic from the state
machine to API layer (before raft) and let all nodes share a single
token.
Log index of Raft is also added to a token for ensuring uniqueness of
the token and detecting activation of the token in the cluster (some
nodes can receive the token before generating and installing the token
in its state machine).
This commit also lets authStore have simple token related things. It
is required because of unit test. The test requires cleaning of the
state of the simple token things after one test (succeeding test can
create duplicated token and it causes panic).
2016-06-10 13:55:37 -07:00
Anthony Romano
b3a0b0502c
etcdserver: respect auth on serialized Range
2016-06-10 11:43:05 -07:00
Xiang Li
f1c6fa48f5
*: add admin permission checking
2016-06-09 15:25:09 -07:00
Xiang Li
fb0df211f0
Merge pull request #5586 from xiang90/root
...
auth: add root user and root role
2016-06-09 00:23:45 -07:00
Xiang Li
da2f2a5189
auth: add root user and root role
2016-06-08 19:55:08 -07:00
Hitoshi Mitake
253e313c09
*: support granting and revoking range
...
This commit adds a feature for granting and revoking range of keys,
not a single key.
Example:
$ ETCDCTL_API=3 bin/etcdctl role grant r1 readwrite k1 k3
Role r1 updated
$ ETCDCTL_API=3 bin/etcdctl role get r1
Role r1
KV Read:
[a, b)
[k1, k3)
[k2, k4)
KV Write:
[a, b)
[k1, k3)
[k2, k4)
$ ETCDCTL_API=3 bin/etcdctl --user u1:p get k1 k4
k1
v1
$ ETCDCTL_API=3 bin/etcdctl --user u1:p get k1 k5
Error: etcdserver: permission denied
2016-06-08 14:58:25 -07:00
Hitoshi Mitake
6bb96074da
auth, etcdserver: permission of range requests
...
Currently the auth mechanism doesn't support permissions of range
request. It just checks exact matching of key names even for range
queries. This commit adds a mechanism for setting permission to range
queries. Range queries are allowed if a range of the query is [begin1,
end1) and the user has a permission of reading [begin2, range2) and
[begin1, end2) is a subset of [begin2, range2). Range delete requests
will follow the same rule.
2016-06-08 11:57:32 -07:00
Anthony Romano
ff2b24a8ac
Merge pull request #5583 from heyitsanthony/grpc-nuke-waitstate
...
clientv3: use grpc balancer
2016-06-08 09:45:44 -07:00
Anthony Romano
62f8ec25c0
clientv3: use grpc reconnection logic
2016-06-08 01:04:59 -07:00
Xiang Li
cc1155c93b
etcdserver: make usernameFromCtx more go style
2016-06-07 21:17:32 -07:00
Gyu-Ho Lee
6e149e3485
etcdserver: following updates for proto change
2016-06-07 13:32:07 -07:00
Gyu-Ho Lee
ca630a0803
etcdserverpb: RequestOp, ResponseOp
...
Fix https://github.com/coreos/etcd/issues/5504 .
2016-06-07 13:31:10 -07:00
Xiang Li
83ce1051ff
auth: make naming consistent
2016-06-07 10:54:50 -07:00
Hitoshi Mitake
94f22e8a07
*: rename RPCs and structs related to revoking
...
This commit renames RPCs and structs related to revoking.
1. UserRevoke -> UserRevokeRole
2. RoleRevoke -> RoleRevokePermission
2016-06-05 16:57:23 +09:00
Hitoshi Mitake
60fc1e4d4e
auth, etcdserver: error codes for revoking non existing role and permission
...
This commit adds error codes for representing revoking non existing
role (from user) and permission (from role).
2016-06-05 16:41:10 +09:00
Hitoshi Mitake
c7a1423d45
*: support deleting a role in auth v3
...
This commit implements RoleDelete() RPC for supporting deleting a role
in auth v3. It also adds a new subcommand "role delete" to etcdctl.
2016-06-04 13:42:45 +09:00
Hitoshi Mitake
0cb1343109
*: support revoking a key from a role in auth v3
...
This commit implements RoleRevoke() RPC for supporting revoking a key
from a role in auth v3. It also adds a new subcommand "role revoke" to
etcdctl.
2016-06-04 13:42:45 +09:00
Hitoshi Mitake
957b07c408
*: support revoking a role from a user in auth v3
...
This commit implements UserRevoke() RPC for supporting revoking a role
from a user in auth v3. It also adds a new subcommand "user revoke" to
etcdctl.
2016-06-04 13:39:26 +09:00
Hitoshi Mitake
10ee69b44c
*: support getting role in auth v3
...
This commit implements RoleGet() RPC of etcdserver and adds a new
subcommand "role get" to etcdctl v3. It will list up permissions that
are granted to a given role.
$ ETCDCTL_API=3 bin/etcdctl role get r1
Role r1
KV Read:
b
d
KV Write:
a
c
d
2016-06-03 13:03:54 +09:00
Anthony Romano
84a487f723
Revert "etcdserverpb: make RangeResponse.More an int64"
...
This reverts commit 84e1ab8765
.
2016-06-02 13:43:40 -07:00
Hitoshi Mitake
5609fdb9a8
*: support getting user in etcdctl v3
...
This commit adds a new subcommand "user get" to etcdctl v3. It will
list up roles that are granted to a given user.
Example:
$ ETCDCTL_API=3 bin/etcdctl user get u1
User: u1
Roles: r1 r2 r3
This commit also modifies the layout of InternalRaftRequest for
frequent update of auth related members.
2016-06-02 12:10:19 +09:00
Anthony Romano
84e1ab8765
etcdserverpb: make RangeResponse.More an int64
2016-06-01 17:10:23 -07:00
Xiang Li
8528c8c599
*: more logging on critical state change
...
Add more logging for better debugging purpose.
2016-05-31 23:31:03 -07:00
Anthony Romano
7709cd84bb
Merge pull request #5505 from heyitsanthony/v3rpc-watcher-close
...
v3rpc: fix race on ctrl channel when watcher stream closes
2016-05-31 14:24:10 -07:00
Gyu-Ho Lee
283318d547
v3rpc: add ErrConnClosed for closed client
...
For https://github.com/coreos/etcd/issues/5495 .
2016-05-31 11:15:01 -07:00
Anthony Romano
09e8f5782e
v3rpc: fix race on closing watcher stream ctrl channel
...
Sometimes close would race with the recvLoop, leading the
recvLoop to write to a close channel.
2016-05-31 11:07:31 -07:00
Xiang Li
6f8cc58214
Merge pull request #5490 from mitake/errcode
...
etcdserver, auth: not return grpc error code directly in the apply phase
2016-05-30 22:00:54 -07:00
Anthony Romano
9c767cbf98
Merge pull request #5464 from heyitsanthony/fix-victim-watchers
...
mvcc: tighten up watcher cancelation and revision handling
2016-05-30 20:09:39 -06:00
Hitoshi Mitake
5144318af0
etcdserver, auth: not return grpc error code directly in the apply phase
...
Current permission checking mechanism doesn't return its error code
well. The internal error (code = 13) is returned to client and the
retry mechanism doesn't work well. This commit fixes the problem.
2016-05-31 11:04:34 +09:00
Xiang Li
815bc5307f
Merge pull request #5489 from linuxcer/master
...
etcdserver: fix typo in server.go
2016-05-30 15:20:02 -07:00
Chengfei Zhang
29cc568659
etcdserver: fix typo in server.go
2016-05-31 05:54:30 +08:00
Hitoshi Mitake
8e821cdc70
*: do permission check in raft log apply phase
...
This commit lets etcdserver check permission during its log applying
phase. With this change, permission checking of operations is
supported.
Currently, put and range are supported. In addition, multi key
permission check of range isn't supported yet.
2016-05-29 00:05:48 +09:00
Hitoshi Mitake
90e9652f70
etcdserver: return error of apply result without touching response
...
Current etcdserver tries to return result.resp even if result.err is
not nil. A situation of result.resp == nil and result.err != nil can
happen and it results an error like below:
18:49:57 etcd1 | interface conversion: proto.Message is nil, not *etcdserverpb.PutResponse
This commit lets the functions return result.err if it is not nil.
2016-05-29 00:05:48 +09:00
Anthony Romano
c438310634
v3rpc: make watcher wait for its send goroutine to finish
2016-05-27 16:54:26 -07:00
Anthony Romano
fc7da09d67
*: add missing godoc package descriptions
...
Fixes #4074
2016-05-27 15:15:26 -07:00
Gyu-Ho Lee
8a718f3e56
etcdserverpb: document prefix, range query
...
Fix https://github.com/coreos/etcd/issues/5401 .
2016-05-25 16:53:36 -07:00
Xiang Li
1c544c3ba5
api: add v3rpc capability
2016-05-23 14:45:08 -07:00
Xiang Li
6f2e7875aa
etcdctl: add migrate command
...
Migrate command accepts a datadir and an optional user-provided
transformer function that transform v2 keys to v2 keys.
Migrate command then builds a v3 backend state based on the existing
v2 keys and the output of the transformer function.
2016-05-19 12:17:15 -07:00
Anthony Romano
fb8d12a9cd
Merge pull request #5379 from heyitsanthony/fix-snapshot-close-wal
...
etcdserver: wait for snapshots before closing raft
2016-05-17 15:19:41 -07:00
Anthony Romano
73204e9637
etcdserver: wait for snapshots before closing raft
...
Fixes #5374
2016-05-17 15:04:25 -07:00
Anthony Romano
ac2e3e43bf
v3rpc: add sha trailer to snapshot
2016-05-16 11:15:03 -07:00
Gyu-Ho Lee
abb4cd5646
etcdserver: update LICENSE header
2016-05-12 20:49:40 -07:00
Xiang Li
a880e9c7cb
Merge pull request #5332 from xiang90/sl
...
*: cancel required leader streams when memeber lost its leader
2016-05-12 20:24:34 -07:00
Xiang Li
9c103dd0de
*: cancel required leader streams when memeber lost its leader
2016-05-12 19:42:21 -07:00
Gyu-Ho Lee
b1f95c314b
*: fix protodoc, consistent casing in api doc
...
There was a bug in protodoc.
This changes git SHA to use the latest protodoc.
And make the letter casing consistent with original
Protocol Buffer. Go capitalizes the member variables,
but the protocol buffer documentation should be same as
original proto files.
2016-05-12 16:23:29 -07:00
Xiang Li
6fc3106e68
Merge pull request #5324 from xiang90/partitioned
...
*: etcd member rejects unary call with leader requirement when it does not have leader
2016-05-11 17:48:06 -07:00
Xiang Li
19221b33cc
*: etcd member rejects unary call with leader requirement when it does not have leader
2016-05-11 16:34:34 -07:00
Anthony Romano
dcb3b7aecf
*: scrub legacy ports from code and scripts
2016-05-11 13:46:30 -07:00
Xiang Li
ab11415d25
*: add proposalsCommitted metrics
2016-05-10 10:56:25 -07:00
Xiang Li
4ae47ad934
Merge pull request #5294 from xiang90/r_metrics
...
*: simplify network metrics
2016-05-09 22:50:45 -07:00
Xiang Li
98dbdd5fbb
*: simplify network metrics
2016-05-09 22:37:12 -07:00
Xiang Li
0d43a2b7e7
Merge pull request #5295 from ajityagaty/auth_disable
...
auth: Adding support for "auth disable" command.
2016-05-07 23:09:37 -07:00
Ajit Yagaty
adc981c53d
auth: Adding support for "auth disable" command.
...
Added support for the auth disable command in the server, added the
etcdctl command and a respective testcase.
2016-05-07 19:21:49 -07:00
Gyu-Ho Lee
c9c2cdfeaf
Merge pull request #5293 from heyitsanthony/fix-compact-cancel-crash
...
etcdserver: fix nil dereference in physical Compact on proposal timeout
2016-05-06 16:25:03 -07:00
Anthony Romano
824ffded12
etcdserver: fix nil dereference in physical Compact on proposal timeout
...
Fixes #5292
2016-05-06 15:38:18 -07:00
Xiang Li
824478be5f
*: add has leader metrics
2016-05-06 13:59:19 -07:00
Gyu-Ho Lee
ffd1fa6f52
Merge pull request #5288 from gyuho/version_bump
...
*: bump to 3.0.0-beta.0
2016-05-06 13:29:19 -07:00
Xiang Li
faca29fc3b
Merge pull request #5287 from xiang90/l_metrics
...
*: add leader changes to metrics
2016-05-06 13:27:08 -07:00
Xiang Li
76d073a2b5
*: add leader changes to metrics
2016-05-06 13:12:20 -07:00
Gyu-Ho Lee
74ea9ea5cd
*: bump to 3.0.0-beta.0
2016-05-06 13:09:50 -07:00
Gyu-Ho Lee
3c2d0a229c
v2http: allow empty role for GET /users
...
Fix https://github.com/coreos/etcd/issues/5246 .
2016-05-06 11:39:38 -07:00
Xiang Li
98031a3b6e
Merge pull request #5249 from xiang90/metrics
...
*: add metrics for grpc api
2016-05-05 14:19:46 -07:00
Xiang Li
063307ec0a
*: add metrics for grpc api
2016-05-05 13:45:52 -07:00
Gyu-Ho Lee
9bf601a921
etcdserver: log timeout
2016-05-03 13:39:31 -07:00
Gyu-Ho Lee
a288188001
*: typo, remove string type assertions
2016-05-03 10:59:57 -07:00
Gyu-Ho Lee
015acabdbb
*: rerun genproto -g
2016-05-02 23:02:31 -07:00
Gyu-Ho Lee
064c1ff0f3
etcdserver/api/v3rpc: use Revision from Hash API
2016-05-02 15:06:39 -07:00
Brian Brazil
ea1d0f3e0d
etcdserver: Improve some debug metrics.
...
The _total suffix is by convention for counters,
don't use it on a gauge. Clarify help string.
Tweak metric name so it'll sort with related metrics,
and be a little more understandable.
Remove open file descriptor metric, as Prometheus client_golang
provides that out of the box as process_open_fds which is also
more up to date. Both only support Linux, so there's no loss of
platform support.
Fixes #5229
2016-04-30 01:29:13 +01:00
Gyu-Ho Lee
506cf1f03f
etcdserver/api/v3rpc: use new errors
2016-04-29 12:00:26 -07:00
Gyu-Ho Lee
2b361cf06b
rpctypes: define a new error interface
2016-04-29 12:00:22 -07:00
Gyu-Ho Lee
f613052435
rpctypes: Error function to convert clientv3 error
2016-04-28 12:16:13 -07:00
Xiang Li
6ee5f9c677
etcdserver: add timeout for processing v3 request
2016-04-28 08:52:17 -07:00
Anthony Romano
06ea8aee11
v3rpc: only fill lease grant header if no error
...
Was panicking under cluster fault injection.
2016-04-27 16:28:40 -07:00
Xiang Li
ca83793876
Merge pull request #5169 from xiang90/ready
...
etcdserver: do not serve requests before finish the first internal proposal
2016-04-27 16:05:12 -07:00
Xiang Li
434f2c356d
etcdserver: do not serve requests before finish the first internal proposal
2016-04-27 15:46:31 -07:00
Gyu-Ho Lee
8b3d1562f9
Documentation: remove admin_guide out of v2
2016-04-27 13:48:07 -07:00
Xiang Li
afd2cc7373
Merge pull request #5206 from xiang90/lease_header
...
v3rpc: fill lease header
2016-04-27 11:18:00 -07:00
Xiang Li
c3de53c23c
v3rpc: fill lease header
2016-04-27 10:30:23 -07:00
Gyu-Ho Lee
c8ab6c348a
Merge pull request #5196 from gyuho/password_check
...
etcdserver/auth: check empty password
2016-04-26 15:56:17 -07:00
Gyu-Ho Lee
07685bcf97
etcdserver/auth: check empty password in merge
...
Fix https://github.com/coreos/etcd/issues/5182 .
2016-04-26 15:37:15 -07:00
Anthony Romano
ce76c28805
Merge pull request #5197 from heyitsanthony/fix-lease-revoke-keepalive
...
etcdserver: respond with ttl=0 for revoked lease keep alive
2016-04-26 14:13:54 -07:00
Anthony Romano
af1a0b60e2
etcdserver: respond with ttl=0 for revoked lease keep alive
...
Fixes #5172
2016-04-26 13:53:20 -07:00
Xiang Li
67645095e9
*: add debugging metrics
2016-04-26 09:52:56 -07:00
Anthony Romano
b7ac758969
*: rename storage package to mvcc
2016-04-25 15:25:51 -07:00
Gyu-Ho Lee
4b31acf0e0
*: update generated Proto
2016-04-25 14:08:33 -07:00
Anthony Romano
08d879341d
etcdserver: stop raft after stopping apply scheduler
...
Was causing a pipeline leak.
2016-04-22 17:15:13 -07:00
Hitoshi Mitake
24077fb3f6
etcdserver: remove a data race of ServerStat
...
It seems that ServerStats.BecomeLeader() is missing a lock.
Fix https://github.com/coreos/etcd/issues/5155
2016-04-22 23:41:38 +09:00
Xiang Li
4e175a98c3
Merge pull request #5144 from xiang90/l
...
*: fix invalid access to backend struct
2016-04-21 10:14:39 -07:00
Xiang Li
4991cda202
etcdsever: fix the leaky snashot routine issue
2016-04-21 08:48:11 -07:00
Hitoshi Mitake
131e3806bb
*: support authenticate in v3 auth
...
This commit implements Authenticate() API of the auth package. It does
authentication based on its authUsers bucket and generate a token for
succeeding RPCs.
2016-04-21 12:32:19 +09:00
Anthony Romano
0fe24e7ffc
etcdserver: rename v3demo_server to v3_server
...
Not much of a demo any more.
2016-04-20 10:29:22 -07:00
Anthony Romano
ebace2eb1b
etcdserver: split out v2 Do() API from core server code
2016-04-20 10:29:22 -07:00
Anthony Romano
41382bc3f0
etcdserver: split out v2 raft apply interface
2016-04-20 10:29:22 -07:00
magicwang-cn
97c71f44fd
etcdserver: close response body when getting cluster information
2016-04-19 10:03:40 +08:00
Anthony Romano
42245a5518
storagepb, etcdserverpb: improve documentation for RPC message fields
2016-04-17 23:33:00 -07:00
Gyu-Ho Lee
86f580fa8f
v3rpc: bytes-key map look-up gc optimization
...
This change
f5f5a8b620
just got merged to go1.6.1 where Go does special optimization for x =
m[string(k)] where k is []byte.
2016-04-17 10:52:19 -07:00
Gyu-Ho Lee
641a1a66e1
*: fix govet -shadow in go tip
2016-04-15 07:39:52 -07:00
Anthony Romano
d72bcdc156
storage: have Range on rev=0 work even if compacted to current revision
2016-04-13 21:00:35 -07:00
Gyu-Ho Lee
7a2ef3eb00
*: regenerate proto buffers
2016-04-13 16:24:07 -07:00
Gyu-Ho Lee
b78886239e
*: remove IsLeader field in Member API server side
2016-04-13 16:23:33 -07:00
Gyu-Ho Lee
89f8e66682
*: fixes based on ineffassign
2016-04-13 10:41:58 -07:00
Xiang Li
e9735b7bd0
etcdserver: save cluster version into backend
2016-04-12 11:37:22 -07:00
mqliang
a9a06438f9
etcdctlv3: expose db size and raft status in server side
2016-04-12 22:49:15 +08:00
mqliang
1044fbce2c
etcdctlv3: update aunto generated files
2016-04-12 22:48:47 +08:00
mqliang
c3da2631bf
etcdctlv3: add db size and raft status in protobuffer
2016-04-12 22:47:27 +08:00
Anthony Romano
c5b8e8dc88
etcdserver: set txn header revision to store revision following txn
2016-04-11 17:03:05 -07:00
Xiang Li
0a684c10ad
Merge pull request #5025 from xiang90/no_dup_resp
...
etcdserver: do not send out out of date appResp
2016-04-11 14:41:52 -07:00
Xiang Li
3bad47d691
Merge pull request #5018 from xiang90/b
...
etcdserver: set backend to cluster
2016-04-11 13:02:57 -07:00
Anthony Romano
be822b05d2
Merge pull request #5012 from heyitsanthony/snap-api
...
*: snapshot RPC
2016-04-11 13:00:18 -07:00
Anthony Romano
a6b6fcf1c4
etcdserverpb, v3rpc: add Snapshot to Maintenance RPC service
2016-04-11 09:51:16 -07:00
Hitoshi Mitake
7ba2646d37
*: support granting a role to a user in v3 auth
2016-04-11 15:53:30 +09:00
Xiang Li
27480f9ea4
Merge pull request #4966 from mitake/auth-role-grant
...
*: support granting key permission to role in v3 auth
2016-04-10 20:31:05 -07:00
Hitoshi Mitake
02033b4c47
*: support granting key permission to role in v3 auth
2016-04-11 12:23:19 +09:00
Anthony Romano
130567832f
Merge pull request #4734 from luxas/32bit_alignments
...
etcdserver: align 64-bit atomics on 8-byte boundary
2016-04-10 19:18:15 -07:00
Xiang Li
de7692b2b2
etcdserver: do not send out out of date appResp
2016-04-09 23:30:00 -07:00
Xiang Li
3c0ac9d600
etcdserver: set backend to cluster
2016-04-08 21:46:45 -07:00
Xiang Li
a406c9fa3d
membership: save/update the whole member information into backend
2016-04-08 13:14:37 -07:00
Gyu-Ho Lee
953a08d841
*: clean up from gosimple
2016-04-08 11:55:03 -07:00
Gyu-Ho Lee
fb85da92e8
*: fix based on gosimple and unused
2016-04-07 23:16:37 -07:00
Xiang Li
71a492e59e
Merge pull request #5005 from xiang90/clu_storage
...
membership: update attr in membership pkg
2016-04-07 21:40:32 -07:00
Xiang Li
b13b77f362
membership: update attr in membership pkg
2016-04-07 21:25:32 -07:00
Anthony Romano
2fe3e1e850
Merge pull request #5007 from heyitsanthony/hush-caps
...
v2http: only report capabilities on update
2016-04-07 20:31:37 -07:00
Anthony Romano
2b7ad35fa0
v2http: only report capabilities on update
2016-04-07 20:14:30 -07:00
Anthony Romano
4d2d2cabb9
etcdserver: fix race on consistent index
2016-04-07 19:53:08 -07:00
Gyu-Ho Lee
8b320e7c55
Merge pull request #4999 from gyuho/test
...
*: log, expect by capability check
2016-04-07 19:06:15 -07:00
Xiang Li
1c12b66e35
Merge pull request #5000 from xiang90/clu_storage
...
membership: save/update/delete member when backend is provided
2016-04-07 18:00:11 -07:00
Gyu-Ho Lee
d78345244b
*: log, expect by capability check
2016-04-07 17:18:51 -07:00
Xiang Li
29623cccb2
membership: save/update/delete member when backend is provided
2016-04-07 16:34:43 -07:00
Anthony Romano
c91c7ca3bf
Merge pull request #4961 from heyitsanthony/rename-lease-create
...
*: rename lease Create to Grant
2016-04-07 14:51:22 -07:00
Xiang Li
bf2289ae00
etcdserver: move membership related code to membership pkg
2016-04-07 14:21:37 -07:00
Anthony Romano
dc17eaace7
*: rename Lease Create to Grant
...
Creating a lease through the client API interface union looked like
"c.Create(...)"-- the method name wasn't very descriptive.
2016-04-07 12:28:14 -07:00
Xiang Li
030865abe3
*: move Cluster interface to api
2016-04-07 08:05:47 -07:00
Gyu-Ho Lee
6e6d64fb9b
*: clean up unused vars, functions
...
With help from https://github.com/dominikh/go-unused .
IsNetTimeoutError seems useful, so moved to pkg/netutil.
2016-04-06 21:33:55 -07:00
Xiang Li
c3bca3739f
Merge pull request #4926 from mitake/auth-role-add
...
*: support adding role in auth v3
2016-04-04 18:44:16 -07:00
Xiang Li
21096bf27f
Merge pull request #4963 from xiang90/ht
...
*: mv etcdhttp into api pkg
2016-04-04 18:40:29 -07:00
Xiang Li
8662aaada4
Merge pull request #4958 from mitake/progrep-race
...
etcdserver, clientv3: let progressReportIntervalMilliseconds be private
2016-04-04 18:04:57 -07:00
Hitoshi Mitake
2b17a3919c
*: support adding role in auth v3
2016-04-05 09:28:17 +09:00
Hitoshi Mitake
88306c9fa7
etcdserver, clientv3: let progressReportIntervalMilliseconds be private
...
progressReportIntervalMilliseconds (old
ProgressReportIntervalMilliseconds) is accessed by multiple goroutines
and it is reported as race.
For avoiding this report, this commit wraps the variable with
functions. They access the variable with atomic operations so the race
won't be reported.
2016-04-05 09:12:17 +09:00
Xiang Li
2c50eb240e
*: mv etcdhttp into api pkg
2016-04-04 16:31:35 -07:00
Anthony Romano
fab3c8e705
etcdserver: serializable transactions
...
Support case where txn doesn't have to go through quorum.
2016-04-04 04:21:42 -07:00
Xiang Li
19136afc2b
Merge pull request #4798 from mqliang/memberStatus
...
etcdctlv3: initial implementaton of 'etcdctl member status' command
2016-04-03 08:48:23 -07:00
mqliang
1d5d2494ed
etcdctlv3: implement status rpc in server side
2016-04-03 13:46:01 +08:00
mqliang
bbca61252f
etcdctlv3: update aunto generated files
2016-04-03 13:45:17 +08:00
mqliang
3c62bfb7a3
etcdctlv3: add status rpc in protbuffer file
2016-04-03 13:44:45 +08:00
Gyu-Ho Lee
b0cc0e443c
*: clean up if, bool comparison
2016-04-02 12:55:11 -07:00
Anthony Romano
ff01a4de65
Merge pull request #4936 from heyitsanthony/compact-barrier-restore
...
etcdserver, storage: don't ack physical compaction on error or snap restore
2016-04-01 20:18:12 -07:00
Anthony Romano
6f707b857a
etcdserver, storage: don't ack physical compaction on error or snap restore
...
Snapshot recovery will reset the FIFO; reschedule the physical acknowledgment
instead of acknowledging on scheduler teardown.
2016-04-01 16:32:05 -07:00
Gyu-Ho Lee
eea56d037e
etcdserver: fix govet error
2016-04-01 16:01:47 -07:00
Anthony Romano
81de5648d9
etcdserver: force backend commit before acking physical compaction
2016-03-31 21:25:40 -07:00
Hitoshi Mitake
73166b41e9
*: support changing password in v3 auth
...
This commit adds a functionality for updating password of existing
users.
2016-03-31 15:28:15 +09:00
Hitoshi Mitake
d8888ded12
*: support deleting user in v3 auth
...
This commit adds a functionality of user deletion. It can be invoked
with the new user delete command.
Example usage:
$ ETCDCTL_API=3 etcdctl user delete usr1
2016-03-31 13:18:51 +09:00
Gyu-Ho Lee
6cf198d1b1
Merge pull request #4911 from heyitsanthony/physical-already
...
etcdserver, storage: wait for physical compaction if already compacted
2016-03-30 14:27:21 -07:00
Anthony Romano
7b37bd332c
etcdserver, storage: wait for physical compaction if already compacted
2016-03-30 13:59:52 -07:00
Anthony Romano
7ce5c2b9ff
Merge pull request #4902 from heyitsanthony/alarm-ctl
...
etcdctl: alarm command
2016-03-30 13:55:29 -07:00
Xiang Li
14f146b9f7
Merge pull request #4908 from xiang90/c
...
*: simplify consistent index handling
2016-03-30 13:53:21 -07:00
Xiang Li
eddc741b5e
*: simplify consistent index handling
2016-03-30 13:38:28 -07:00
Anthony Romano
cd02cef5e9
etcdserver: only warn on new and disarmed alarms
...
listing alarms was generating warning output
2016-03-30 13:33:52 -07:00
Anthony Romano
a5172974da
Merge pull request #4863 from heyitsanthony/ft-check-compact
...
etcd-tester: check compaction revision
2016-03-30 10:08:05 -07:00
Gyu-Ho Lee
1eb375d296
Merge pull request #4880 from gyuho/drain
...
*: drain http.Response.Body before closing
2016-03-30 10:02:52 -07:00
Anthony Romano
4b35cb9462
etcdserver, storage: optionally wait for Compaction completion in RPC
2016-03-30 09:45:30 -07:00
Gyu-Ho Lee
a42d1dc1fe
*: drain http.Response.Body before closing
2016-03-30 09:35:47 -07:00
Hitoshi Mitake
8ee8d755bb
etcdserver: return internal error in a case of not auth specific errors
2016-03-30 23:44:22 +09:00
Hitoshi Mitake
443c677357
etcdserver: extract togRPCError() to a separated file
...
It is used from multiple files in v3rpc package.
2016-03-30 22:53:20 +09:00
Anthony Romano
96ee00a322
etcdserverpb: make alarm memberId uint64
...
To be consistent with Cluster API
2016-03-29 20:15:39 -07:00
Anthony Romano
2deed74494
Merge pull request #4901 from heyitsanthony/config-dbsize
...
etcdserver: configurable backend size quota
2016-03-29 18:55:12 -07:00
Anthony Romano
9b2c963179
etcdserver: configurable backend size quota
...
Configurable with the flag --experimental-quota-backend-bytes and
through ServerConfig.QuotaBackendBytes.
Fixes #4894
2016-03-29 18:39:25 -07:00
Xiang Li
b0956d5dbf
Merge pull request #4891 from mitake/auth-prefix
...
*: add Auth prefix to auth related requests and responses
2016-03-29 17:24:12 -07:00
Anthony Romano
d533c14881
Merge pull request #4876 from heyitsanthony/integration-races
...
*: fix races from clientv3/integration tests
2016-03-29 09:10:53 -07:00
Hitoshi Mitake
987568c65c
*: add Auth prefix to auth related requests and responses
2016-03-29 14:32:19 +09:00
Anthony Romano
3fbacf4be2
v3rpc: move Hash RPC to Maintenance service
2016-03-28 17:15:58 -07:00
Anthony Romano
5ee85bea7c
v3rpc: fix race on watch progress map
...
Found in TestElectionWait
2016-03-28 16:08:18 -07:00
Anthony Romano
91dc6b29a6
clientv3/integration: fix race when setting progress report interval
2016-03-28 16:08:18 -07:00
Anthony Romano
a403a94d7b
etcdserver: cap new keys on space alarm
2016-03-28 14:56:26 -07:00
Anthony Romano
9e7f47c490
etcdserver: Alarm RPC
...
Alarms are events that nodes can use to relay health information to
the rest of the cluster. A node may Activate an alarm and that alarm
will stay set until Deactivated.
2016-03-28 14:56:26 -07:00
Anthony Romano
9c8253c543
etcdserver, v3rpc: space quotas
2016-03-28 14:56:26 -07:00
Anthony Romano
94e77cfa5d
etcdserver: move v3 raft apply functions to interface
2016-03-28 13:16:21 -07:00
Hitoshi Mitake
8874545a1e
*: support adding user in v3 auth
...
This commit adds a new subcommand "user add" to etcdctlv3. With the
command users can create a user for the authentication.
Example of usage:
$ etcdctlv3 user add user1
Password of user1:
Type password of user1 again for confirmation:
2016-03-27 18:11:42 +09:00
Xiang Li
70a9391378
*: enable v3 by default
2016-03-23 17:01:36 -07:00
Xiang Li
900a61b023
*: http and https on the same port
2016-03-23 10:28:38 -07:00
Anthony Romano
bd832e5b0a
*: migrate Godeps to vendor/
2016-03-22 17:10:28 -07:00
Xiang Li
afb1bc242b
Merge pull request #4822 from mitake/auth-backend
...
auth, etcdserver: add a method for updating backend during apply snap…
2016-03-21 23:34:46 -07:00
Hitoshi Mitake
4e39f690f2
auth, etcdserver: add a method for recoverying from backend during apply snapshot
...
This commit adds a new method Recovery() to auth.AuthStore for
recoverying auth state from backend during apply snapshot. It follows
a manner of the lessor.
2016-03-22 15:17:40 +09:00
Gyu-Ho Lee
67c2384bdf
*: replace '-' with '--' in doc
...
Fix https://github.com/coreos/etcd/issues/4595 .
2016-03-21 11:12:43 -07:00
Gyu-Ho Lee
dae7e009b0
*: godoc clean up
2016-03-19 14:19:23 -07:00
Anthony Romano
44753594ec
v3rpc: move errors to v3rpc/rpctypes
...
Fixes #4771
2016-03-17 11:52:34 -07:00
Xiang Li
2a28ac7ad4
etcdserver: leader should stepdown when lose quorum for v3
2016-03-15 23:23:26 -07:00
Xiang Li
a7f6dc6c0d
Merge pull request #4778 from xiang90/lease_promote
...
*: refresh the lease TTL correctly when a leader is elected.
2016-03-15 22:52:33 -07:00
Xiang Li
e9a0a103e5
*: refresh the lease TTL correctly when a leader is elected.
...
The new leader needs to refresh with an extened TTL to gracefully handle
the potential concurrent leader issue. Clients might still send keep alive
to old leader until the old leader itself gives up leadership at most after
an election timeout.
2016-03-15 22:40:03 -07:00
Hongchao Deng
dcaf5ef586
move store recorder to 'mock/mockstore'
2016-03-15 15:41:07 -07:00
Hitoshi Mitake
4eb1cfd658
etcdserver, auth: new package auth for the auth feature
...
This commit adds a new package auth. Its role is persisting auth
related metadata. This commit also connects its main interface
AuthStore and v3 server.
2016-03-14 13:57:41 +09:00
Xiang Li
0f9d04237c
etcdserver: leader latency optimization
2016-03-12 22:51:13 -08:00
Xiang Li
c6192d1d7a
etcdserver: remove todo
2016-03-10 19:10:20 -08:00
Xiang Li
adcba975cb
*: recover lessor when applying snapshot
2016-03-10 17:06:58 -08:00
Xiang Li
2f12ea893b
etcdserver: add maintain service to support defrag
2016-03-09 22:29:21 -08:00
Lucas Käldström
a44645e13d
etcdserver: align 64-bit atomics on 8-byte boundary
2016-03-10 07:24:33 +02:00
Anthony Romano
c666a11f38
etcdserver: update NewMember comment to reflect how id is computed
...
Fixes #4573
2016-03-07 14:09:53 -08:00
Xiang Li
036ed87c6d
*: support watch from future revision
2016-03-07 10:57:30 -08:00
Xiang Li
d84811aecf
*: fix watch full key range
2016-03-05 14:45:43 -08:00
Xiang Li
b1521570b6
v3api: support progress
2016-03-03 13:58:15 -08:00
Hitoshi Mitake
7a78c1ef1d
etcdserver: AuthServer for auth related RPCs
...
Currently AuthEnable() is connected to etcdserver for experimental
purpose.
2016-03-02 15:17:59 +09:00
Hitoshi Mitake
286d96284e
etcdserver: update rpc.proto for v3 authentication
2016-03-01 17:11:50 +09:00
Xiang Li
f0dbd0b856
Merge pull request #4646 from xiang90/starvation
...
etcdserver: detect raft stravation
2016-02-29 19:58:17 -08:00
Anthony Romano
1d6ebdd35c
pkg/timeutil: removal
...
Overkill of a package for three lines of code.
2016-02-29 17:07:24 -08:00
Xiang Li
d6520303c6
etcdserver: detect raft starvation caused by contention
2016-02-29 17:06:57 -08:00
Anthony Romano
c0eac7ab72
storage: support watch on ranges
2016-02-29 15:20:41 -08:00
Anthony Romano
8dbc6cfd43
etcdserver: ranges in watcher rpc protocol
...
protocol change so watch requests are ranges; server rejects non-prefix ranges
2016-02-29 14:03:27 -08:00
Gyu-Ho Lee
4a0a83380e
*: return -1 for canceled watch request
2016-02-26 14:26:46 -08:00
Xiang Li
9e493ccb14
Merge pull request #4621 from xiang90/auto-compaction
...
*: support time based auto compaction.
2016-02-25 16:19:00 -08:00
Xiang Li
d265fe000c
*: support time based auto compaction.
...
Fix https://github.com/coreos/etcd/issues/3906 .
We will have extensive doc to talk about what is compaction
and what is auto compaction soon.
2016-02-25 16:02:03 -08:00
Gyu-Ho Lee
a78604dacb
*: watch true cancel, created for wrong rev
...
This sets Created and Cancel true in pb.WatchResponse
when it has received wrong start revision instead of
panic. So that clientv3 can set 'Canceled' in WatchResponse
as well.
Fix https://github.com/coreos/etcd/issues/4610 .
2016-02-24 20:56:17 -08:00
Anthony Romano
afa0368dcc
*: fix godoc bugs in interfaces and slice fields
...
detected with goword
2016-02-24 00:45:40 -08:00
Anthony Romano
a524d5bdb7
etcdserver: fix race in TestTriggerSnap
...
Fixes #4584
2016-02-21 22:03:35 -08:00
Anthony Romano
c5b51946eb
*: exported godoc fixups
2016-02-21 20:36:44 -08:00
Gyu-Ho Lee
fc86e1ded1
*: return the number of deleted keys
...
For https://github.com/coreos/etcd/issues/4576 .
2016-02-21 17:59:21 -08:00
Xiang Li
f607f64876
Merge pull request #4534 from mitake/obsolete-comment
...
etcdserver, auth: remove obsolete mutex
2016-02-18 17:56:29 -08:00
Anthony Romano
4fc89678b2
etcdserver: add >= support for v3 delete range
2016-02-18 12:34:04 -08:00
Anthony Romano
ef2d3feca6
Merge pull request #4528 from heyitsanthony/fix-watchcurrev
...
fix several watcher races
2016-02-17 14:26:33 -08:00
Anthony Romano
af225e7433
v3rpc: don't race on current watcher header revision
2016-02-17 14:03:52 -08:00
Anthony Romano
59e7be4a2a
v3api: send watch events only after sending watchid creation
...
If events show up before the watch id, the client won't be able
to match the event with the requested watcher.
2016-02-17 01:06:55 -08:00
Xiang Li
994333e720
*: record the number of bytes of snapshot sent/received
2016-02-16 16:08:26 -08:00
Hitoshi Mitake
0cf9cde1b4
etcdserver, auth: remove obsolete mutex
...
The removed mutex is obsolete because the enabled field is removed
in the commit b2d2c79a2f
.
2016-02-16 12:03:31 +09:00
Gyu-Ho Lee
93f2a4487a
Merge pull request #4507 from gyuho/better_hash
...
etcdserver: populate ResponseHeader in Hash method
2016-02-12 14:36:26 -08:00
Gyu-Ho Lee
2710e4eed1
etcdserver: populate ResponseHeader in Hash method
2016-02-12 14:26:18 -08:00
Anthony Romano
ee1a03167d
storage, v3: pass compaction revision through watchresponse
2016-02-12 14:06:59 -08:00
Anthony Romano
6851fffdfb
clientv3: support >= Range requests
...
Turns out grpc will convert an empty byte string to nil, so use "\0" to
indicate Range on >= key in v3 grpc protocol.
2016-02-12 14:06:59 -08:00
Xiang Li
30c11c1bca
*: support local range request
2016-02-12 12:04:06 -08:00
Anthony Romano
9cd45312d5
Merge pull request #4505 from heyitsanthony/v3-range-ge
...
storage: support ranges for >= key
2016-02-12 10:03:45 -08:00
Anthony Romano
4854d7f69d
storage: support ranges for >= key
...
If end == "", range(key, end) will give all keys >= key.
2016-02-12 09:45:43 -08:00
Anthony Romano
616f395920
etcdserver: use fifo scheduler for applier
2016-02-11 19:21:30 -08:00
Gyu-Ho Lee
a56287b9b4
etcdserver: include IsLeader in etcdserverpb.Member
2016-02-11 13:04:03 -08:00
Xiang Li
0fde354eba
Merge pull request #4164 from cchamplin/ttl-refresh
...
store/httpapi: support refresh ttl without firing watch
2016-02-08 13:20:34 -08:00
Xiang Li
35567221a7
*: limit request size for v3
2016-02-08 12:54:03 -08:00
Caleb Champlin
82778ed478
Add refresh parameter to allow TTL refreshes without firing watch/wait responses
2016-02-08 10:37:37 -07:00
Anthony Romano
fe7cfe4d3d
rafthttp: plumb local peer URLs through transport
2016-02-05 16:44:41 -08:00
Xiang Li
bc3fc4ea33
*: add etcdserver namespace for rpc error
2016-02-05 15:13:24 -08:00
Xiang Li
e44e753e66
pkg/idutil: reduce conflict rate from 1% to 0.005%
...
Perviously, we only use 8bits from member identification
in id generation. The conflict rate is A(256,3)/256^3, which
is around 1%. Now we use 16bites to reduce the rate to 0.005%.
We can attach the full member id into id generation if needed...
2016-02-04 13:25:18 -08:00
Gyu-Ho Lee
2d197ac9e8
*: add kv Hash method (for testing purpose)
2016-02-03 12:52:39 -08:00
Hitoshi Mitake
f7d35a1ef8
etcdserver: update comments in a generated file
...
On the latest master branch, etcdserver/etcdserverpb/etcdserver.pb.go
is changed when scripts/genproto.sh is executed. The content only has
changes for comment. Therefore it is not important but the change is
annoying when we update the proto file.
2016-02-04 00:45:16 +09:00