Tao He
116b49b784
Lint source code, improve the quality and readability. ( #82 )
...
* Lint the source first, prepare for implementing #81 .
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-09-15 14:59:55 +08:00
Tao He
efcecb7731
Add a "head" method on the client the retrieve the latest revision.
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-06-16 17:10:32 +08:00
Tao He
68c5626d2c
Keepalive: join the thread outside the background job itself.
...
Fixes #67 , when etcd server stops, the keepalive action will crash.
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-06-15 12:03:35 +08:00
Tao He
230ebfd08b
Avoid duplicate const string tags. ( #62 )
...
On behalf of Asplund, Rickard, thanks!
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-05-28 23:22:32 +08:00
Tao He
e80709418b
Avoid including protobuf & grpc headers in our interface files.
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-05-27 22:10:24 +08:00
Tao He
9e77fdb2ee
Fixes lock, and the underlying keepalive implmentation. ( #60 )
...
* Fixes lock, and the underlying keepalive implmentation.
The previous implementation is buggy when a lot of locks happen at the same time,
as the cpprestsdk's threadpool use a fixed number of thread for posix platform:
https://github.com/microsoft/cpprestsdk/blob/master/Release/src/pplx/threadpool.cpp#L198
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-05-21 18:05:35 +08:00
Tao He
bb22ef4d7f
Revert "Wait: wait without callback, otherwise there will be use-after-dtor."
...
This reverts commit 7b16ce6770 .
That patch is invalid.
2021-04-28 17:36:27 +08:00
Tao He
7b16ce6770
Wait: wait without callback, otherwise there will be use-after-dtor.
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-04-27 22:24:04 +08:00
Nils Carlson
ad2da0ac7e
Change KeepAlive lease expiry to throw std::out_of_range ( #55 )
...
Update documentation to show different exceptions used by KeepAlive as well.
2021-04-08 10:18:26 +08:00
Tao He
3e30c4c61d
Optimize the implementation of error handling in keep alive. ( #54 )
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-04-07 23:20:33 +08:00
Tao He
cee938fb0a
Use UTF-8 char U+0000 as terminate charactor.
...
Allow setting range end as `NULL`, see also #50 .
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-04-07 15:08:51 +08:00
Tao He
62a846d798
Handling (or checking) possible failure in lease's KeepAlive. ( #53 )
...
* Handling (or checking) possible failure in lease's KeepAlive.
* Add documentation.
* Enhance documentations.
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-04-02 17:15:27 +08:00
Tao He
27e6e2ac11
Watch on range by specifying `rang_end`. ( #52 )
...
Follow-up work on #51 , and fixes #50 .
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-04-02 01:34:58 +08:00
Tao He
1b24751b9d
List/delete/watch on exact range. ( #51 )
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-04-01 14:50:50 +08:00
rockeet
9339b6dee4
class Value: remove unused code ( #48 )
2021-03-29 18:53:56 +08:00
Tao He
c927b395cb
Set DESTINATION for older versions of CMake.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-03-01 18:11:23 +08:00
Tao He
38366fc5c3
Handle watching on compacted revisions cases.
...
Fixes #43 .
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-15 00:13:38 +08:00
Tao He
4f31000cf4
Set a proper upper bound for `ls` request, and remove the default sort options. ( #46 )
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-12 15:56:09 +08:00
Tao He
c9f82b46d4
Allows specify a lease TTL for lock.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-08 11:07:23 +08:00
Tao He
842372d86d
Conformate the C++ compiler on Ubuntu-18.04.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-07 01:40:07 +08:00
Tao He
03baacf9ea
Support secure transport and certificate-based authentication. ( #42 )
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-07 01:35:37 +08:00
Tao He
d2e35ceb47
Reduce the dependency interface to avoid include all generated protobuf/grpc files. ( #41 )
...
Add CMake config files to make it looks as a cmake module.
Fixes https://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3/issues/37 .
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-06 17:16:58 +08:00
Tao He
3bac086428
Fixes a unused warning.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-02-03 01:26:27 +08:00
Tao He
bcf5313eab
Continue work for #36 , add instructions about how to install deependencies.
2021-01-31 15:24:23 +08:00
Tao He
692840cb58
Support ubuntu 18.04 (boost-1.65), and test it in CI.
2021-01-30 14:43:16 +08:00
Tao He
66c111b5ca
Test the library on more platforms with more versions of etcd.
...
Squashed commit of the following:
commit 7d15f8f5f9b477f606dbe034f26c37a894eb5b46
Author: Tao He <linzhu.ht@alibaba-inc.com>
Date: Thu Jan 28 10:47:55 2021 +0800
Add a bit more about how to enable authentication on etcd v3.2.x and v3.3.x.
Fixes #33 .
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
commit 9e84e27d480930133d2f2380bed44cb187ff1656
Author: Tao He <sighingnow@gmail.com>
Date: Sun Jan 17 20:59:12 2021 +0800
Tweak LD_LIBRARY_PATH, to include /usr/local/lib.
Signed-off-by: Tao He <sighingnow@gmail.com>
commit c3b913c3c33606caa6ff326639a791e55565da3f
Author: Tao He <linzhu.ht@alibaba-inc.com>
Date: Sat Dec 26 15:27:54 2020 +0800
Test on various versions of Ubuntu and Mac, with different versions of ETCD.
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-01-28 13:07:34 +08:00
Tao He
5258809b36
Remove debug logs.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-01-12 11:31:34 +08:00
Tao He
e5c804416c
Protect implicit keepalive maps using a lexical scoped lock.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-01-12 01:11:35 +08:00
Tao He
cfb5cb89d3
Fixes the -Werror for unused "continue_next": we just use it.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2021-01-11 20:47:11 +08:00
Tao He
6962030db8
Implements "KeepAlive" feature, and enhance "lock" with a lease.
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2021-01-10 23:39:50 +08:00
Tao He
f2d8330b08
Fixes when cpprestsdk is a submodule of external project.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-12-21 16:19:24 +08:00
Tao He
7e280ec8a4
Install dll to bin/ on windows.
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2020-12-20 14:54:25 +08:00
Tao He
e286c36926
Fixes for windows (vcpkg environment) compatibility.
...
Signed-off-by: Tao He <sighingnow@gmail.com>
2020-12-20 00:19:47 +08:00
Tao He
eee2ea2d14
Set maximum message bytes for send/recv for larger initial etcd machine.
2020-11-02 20:23:09 +08:00
Tao He
f7e7ec30fe
Fixes CMakeLists.txt for header installation.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-10-25 00:22:29 +08:00
Tao He
525a279a18
Install target etcd-cpp-api where it is defined.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-10-24 22:48:31 +08:00
Tao He
dd1f106150
Make "CancelWatch()" thread-safe and happen only once, fixes the potential assert failure in gRPC routines.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-10-15 19:56:23 +08:00
Tao He
7fe755ae53
Make sure a cancalable watch must be a successful watch.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-10-12 13:19:23 +08:00
Tao He
a00a06d5bd
Remove unused comment code.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-10-11 17:19:46 +08:00
Tao He
3305a19d15
Drop the Interceptor-based implementation to be compatible with ealier version of gRPC (pre-0.17.0).
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-10-10 20:17:32 +08:00
Tao He
eb284103e0
Auto and watch functionalities on SyncClient.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-10-10 20:17:32 +08:00
Tao He
0fb4f2887d
Implements etcd v3 authentication.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-10-10 20:17:32 +08:00
Tao He
100eae97e9
Improve the etcd watcher to detect error when the connection lost.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-09-30 00:32:00 +08:00
Tao He
611ab05de0
Move generated protobuf files to binary directory.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-09-30 00:32:00 +08:00
Tao He
6eb725de0e
Add "limit" support on "ls" command.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-09-30 00:32:00 +08:00
Tao He
60ffe62b26
Update accumulated changes.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-09-30 00:32:00 +08:00
Tao He
bb33b76544
Optimize protobuf generation process in CMakeLists.txt.
...
Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
2020-09-30 00:32:00 +08:00
Tao He
72b215a513
Re-org v3 related files to make it a submodule.
2020-09-30 00:32:00 +08:00
Tao He
4e9d17c188
Update protobuf, implments lock, fixes watch and improves txn ( #1 )
2020-09-30 00:32:00 +08:00
Arches
0c52135bf8
Deleted junk files
...
Added #include <grpc/support/log.h> since this is where GPR_ASSERT is now defined.
2016-12-13 11:14:49 +01:00
Arches
a5d2140793
Updated logic for stripping of endpoint
2016-09-26 11:56:04 +02:00
Arches
e37cb46922
First commit
2016-08-29 16:14:57 +02:00
arches
60383a502c
Make mvccpb::KeyValue a member of etcdv3::keyValue instead of
...
inheriting from it.
2016-07-26 10:04:26 -04:00
arches
888946b589
Added new interface for leasegrant and leaseId in add, set, modify, modify_if
2016-07-13 07:56:43 -04:00
arches
ac54e84f6d
Use ttl
2016-07-13 07:20:15 -04:00
arches
82034a87db
Updated makefiles
2016-07-13 05:54:27 -04:00
arches
3c52636028
Implemented TTL and Lease
2016-07-13 05:09:42 -04:00
arches
dd798f5dfd
Updated rmdir. withPrefix value should be based on the argument pass
...
by the client
2016-07-08 10:30:43 -04:00
arches
77109d06e4
Updated access of V3Response
2016-07-08 10:00:15 -04:00
arches
6dfbe791a0
Added DeleteRangeResponse.
...
Refactor how value/values are filled up by parseResponse
2016-07-08 08:48:39 -04:00
arches
1e046d87a0
Use Actionv2::ActionParameters to pass arguments to AsyncActions.
2016-07-06 12:11:27 -04:00
arches
7d64447e76
Updates for Watcher
2016-07-05 05:22:11 -04:00
arches
174ea401b8
Added SyncClient class
2016-07-04 06:54:07 -04:00
arches
dd1d01519c
Fixed bug when only one key is returned during ls().
...
Instead of placing it in response::value it should be placed in
reponse::values
2016-07-01 10:17:41 -04:00
arches
a43de811f4
Refactor part1
2016-06-24 12:20:31 -04:00
arches
029f46df86
Removed mkdir
2016-06-22 04:34:26 -04:00
lampayan
366f10506c
cleanup
...
removed unused old methods send_get_request and send_del_request
removed unnecessary comments
2016-06-22 09:51:46 +02:00
arches
8ae3a250dd
Remove AsyncPutResponse, utils and grpcClient
2016-06-21 10:58:24 -04:00
arches
a24750cc40
Merge branch 'other_dev' of ssh://bud-git01.emea.nsn-net.net/etcd-cpp-apiv3 into other_dev
...
updated watch to return previous values
2016-06-21 10:45:50 -04:00
arches
bdfb481f69
Updated Watch so it can return previous values.
2016-06-21 10:45:43 -04:00
lampayan
618995c080
Merge remote-tracking branch 'origin/other_dev' into other_dev
...
# Conflicts:
# etcd/Client.hpp
# src/Client.cpp
2016-06-21 15:59:46 +02:00
lampayan
b086ee9d72
Refactored transaction initialization.
...
cleaned up and added comments for methods in transaction class
2016-06-21 15:52:19 +02:00
arches
63661d3889
Merge branch 'other_dev' of ssh://bud-git01.emea.nsn-net.net/etcd-cpp-apiv3 into other_dev
...
# Conflicts:
# src/CMakeLists.txt
2016-06-21 09:38:50 -04:00
arches
40c552725b
Merge branch 'other_dev' of ssh://bud-git01.emea.nsn-net.net/etcd-cpp-apiv3 into other_dev
...
# Conflicts:
# src/CMakeLists.txt
# src/Client.cpp
2016-06-21 09:34:22 -04:00
lampayan
fe5396e437
Refactored Client class to remove boilerplate code.
...
Responsibility of boilerplate work is transfered to its own class
(Transaction).
UT for watch are temporarily commented out as they are not supported yet
2016-06-21 15:33:11 +02:00
arches
b9eb2633d1
Added watch functionality
2016-06-21 09:19:26 -04:00
lampayan
01bf49bf2d
cleanup removing temporary classes AyncDelResponse AsyncModifyResponse
...
and V3BaseResponse
2016-06-21 10:54:13 +02:00
arches
87dc87abdb
Removed createResponse
2016-06-20 06:24:09 -04:00
arches
e84a1b0667
Update rm and modify functions. Use Txn for these functions.
2016-06-17 11:11:53 -04:00
arches
db2ce95328
Updates for merging
2016-06-16 07:52:29 -04:00
arches
e116c51948
added grpc and utils
2016-06-16 07:11:17 -04:00
arches
9239ad04e9
clean up
2016-06-16 07:00:53 -04:00
Arches
e5eafcf531
made prev_values a vector.
2016-06-16 06:29:49 -04:00
arches
88e5298f86
make templated create with shared_ptr arguement
...
with watch snippet(should be deleted next commit)
2016-06-16 06:29:49 -04:00
arches
eedbcd4b70
Added delete
2016-06-16 06:29:19 -04:00
arches
0d7b702430
Added implementation for ls
2016-06-16 06:28:46 -04:00
Arches
8825b43044
Use Txn
2016-06-16 06:25:33 -04:00
arches
b7500a17cb
Use Txn for add()
2016-06-16 06:21:17 -04:00
lampayan
a1293c770a
cleanup removing temporary classes.
2016-06-09 17:14:40 +02:00
lampayan
64a7f72fb9
cleanup removing temporary classes.
2016-06-09 17:12:13 +02:00
lampayan
c28d955b22
Complete implementation for modify with index and delete with index
...
functionalities. AsyncModifyResponse is needed because handling of
indeces are different between create and mod and delete, as per
requirements.
remaining TODOs:
1) Watch functionality
2016-06-09 16:57:25 +02:00
lampayan
6fb775218d
This is the complete implementation for delete functionalities.
...
Index is now also supported
notes/TODOs:
1) We should consider adding an algo for mod/update functions
to consider BOTH creation index and modify index
2) Watch functionality
2016-06-09 13:53:58 +02:00
lampayan
008693a276
merged branches for ease of update later on.
...
cleaned up rm, implemented rm_if methods!
updated tests
remaining todos:
rm and modif with indexes (find out where is X-ETCD-Index)
watch functionality
2016-06-09 11:21:42 +02:00
lampayan
2721e39e12
coexisting approaches with working UTs
2016-06-08 15:21:09 +02:00
lampayan
33be7c9092
Merge remote-tracking branch 'origin/maui' into other_dev
...
# Conflicts:
# etcd/Client.hpp
# etcd/Response.hpp
# proto/rpc.proto
# src/CMakeLists.txt
# src/Client.cpp
# src/Response.cpp
# tst/EtcdTest.cpp
2016-06-08 14:53:34 +02:00
lampayan
12789ad2d2
cleanup removing temporary classes
2016-06-08 11:29:09 +02:00
lampayan
43d6c8ae3c
cleanup removing temporary classes
2016-06-08 11:17:48 +02:00
lampayan
62d4984e71
Refactored and cleaned implementation for rm()
...
Unrelated tests are commented out firsts
temporary method, such as getV3, are done to be able to do the original UT replication.
2016-06-08 11:11:50 +02:00
arches
04f8cc71e5
implemented assigned client interface
2016-06-07 10:59:10 -04:00
lampayan
98e2b57ed4
Merge remote-tracking branch 'origin/other_dev' into lampayan
...
# Conflicts:
# etcd/Client.hpp
# proto/kv.proto
# src/Client.cpp
2016-06-07 15:41:12 +02:00