open-consul/agent
Dhia Ayachi 378f688a6a
file watcher to be used for configuration auto-reload feature (#12301)
* add config watcher to the config package

* add logging to watcher

* add test and refactor to add WatcherEvent.

* add all API calls and fix a bug with recreated files

* add tests for watcher

* remove the unnecessary use of context

* Add debug log and a test for file rename

* use inode to detect if the file is recreated/replaced and only listen to create events.

* tidy ups (#1535)

* tidy ups

* Add tests for inode reconcile

* fix linux vs windows syscall

* fix linux vs windows syscall

* fix windows compile error

* increase timeout

* use ctime ID

* remove remove/creation test as it's a use case that fail in linux

* fix linux/windows to use Ino/CreationTime

* fix the watcher to only overwrite current file id

* fix linter error

* fix remove/create test

* set reconcile loop to 200 Milliseconds

* fix watcher to not trigger event on remove, add more tests

* on a remove event try to add the file back to the watcher and trigger the handler if success

* fix race condition

* fix flaky test

* fix race conditions

* set level to info

* fix when file is removed and get an event for it after

* fix to trigger handler when we get a remove but re-add fail

* fix error message

* add tests for directory watch and fixes

* detect if a file is a symlink and return an error on Add

* rename Watcher to FileWatcher and remove symlink deref

* add fsnotify@v1.5.1

* fix go mod

* fix flaky test

* Apply suggestions from code review

Co-authored-by: Ashwin Venkatesh <ashwin@hashicorp.com>

* fix a possible stack overflow

* do not reset timer on errors, rename OS specific files

* start the watcher when creating it

* fix data race in tests

* rename New func

* do not call handler when a remove event happen

* events trigger on write and rename

* fix watcher tests

* make handler async

* remove recursive call

* do not produce events for sub directories

* trim "/" at the end of a directory when adding

* add missing test

* fix logging

* add todo

* fix failing test

* fix flaking tests

* fix flaky test

* add logs

* fix log text

* increase timeout

* reconcile when remove

* check reconcile when removed

* fix reconcile move test

* fix logging

* delete invalid file

* Apply suggestions from code review

Co-authored-by: R.B. Boyer <4903+rboyer@users.noreply.github.com>

* fix review comments

* fix is watched to properly catch a remove

* change test timeout

* fix test and rename id

* fix test to create files with different mod time.

* fix deadlock when stopping watcher

* Apply suggestions from code review

Co-authored-by: R.B. Boyer <4903+rboyer@users.noreply.github.com>

* fix a deadlock when calling stop while emitting event is blocked

* make sure to close the event channel after the event loop is done

* add go doc

* back date file instead of sleeping

* Apply suggestions from code review

Co-authored-by: R.B. Boyer <4903+rboyer@users.noreply.github.com>

* check error

Co-authored-by: Ashwin Venkatesh <ashwin@hashicorp.com>
Co-authored-by: R.B. Boyer <4903+rboyer@users.noreply.github.com>
2022-02-21 11:36:52 -05:00
..
ae sdk: add TestLogLevel for setting log level in tests 2022-02-03 13:42:28 -05:00
auto-config Rename Master and AgentMaster fields in config protobuf (#11764) 2021-12-07 19:59:38 +00:00
cache bulk rewrite using this script 2022-01-20 10:46:23 -06:00
cache-types bulk rewrite using this script 2022-01-20 10:46:23 -06:00
checks
config file watcher to be used for configuration auto-reload feature (#12301) 2022-02-21 11:36:52 -05:00
connect Vendor in rpc mono repo for net/rpc fork, go-msgpack, msgpackrpc. (#12311) 2022-02-14 09:45:45 -08:00
consul rpc: set response to nil when not found 2022-02-18 12:26:06 -05:00
debug bulk rewrite using this script 2022-01-20 10:46:23 -06:00
dns
exec
grpc Merge remote-tracking branch 'origin/main' into serve-panic-recovery 2021-12-07 16:30:41 -05:00
local missed this test adjustment (#12331) 2022-02-14 11:39:00 -06:00
metadata
mock
pool Vendor in rpc mono repo for net/rpc fork, go-msgpack, msgpackrpc. (#12311) 2022-02-14 09:45:45 -08:00
proxycfg Account for upstream targets in another DC. 2022-02-10 17:01:57 -07:00
router sdk: add TestLogLevel for setting log level in tests 2022-02-03 13:42:28 -05:00
routine-leak-checker Remove references to "master" ACL tokens in tests (#11751) 2021-12-07 12:48:50 +00:00
rpc/subscribe streaming: split event buffer by key (#12080) 2022-01-28 12:27:00 +00:00
rpcclient/health
structs Vendor in rpc mono repo for net/rpc fork, go-msgpack, msgpackrpc. (#12311) 2022-02-14 09:45:45 -08:00
submatview
systemd
token agent/token: rename agent_master to agent_recovery (internally) (#11744) 2021-12-07 12:12:47 +00:00
uiserver Generate bindata_assetfs.go (#12146) 2022-01-21 16:06:44 -05:00
xds xds: respect chain protocol on default discovery chain 2022-02-17 11:47:20 -08:00
acl.go Refactor to make ACL errors more structured. (#12308) 2022-02-11 12:53:23 -08:00
acl_endpoint.go Parse datacenter from request (#12370) 2022-02-17 16:41:27 -05:00
acl_endpoint_legacy.go
acl_endpoint_legacy_test.go
acl_endpoint_test.go Parse datacenter from request (#12370) 2022-02-17 16:41:27 -05:00
acl_oss.go
acl_test.go sdk: add TestLogLevel for setting log level in tests 2022-02-03 13:42:28 -05:00
agent.go checks: populate interval and timeout when registering services (#11138) 2022-02-18 12:05:33 -08:00
agent_endpoint.go Refactor to make ACL errors more structured. (#12308) 2022-02-11 12:53:23 -08:00
agent_endpoint_oss.go
agent_endpoint_test.go acl: return a resposne from ResolveToken that includes the ACLIdentity 2022-01-22 14:33:09 -05:00
agent_oss.go
agent_test.go checks: populate interval and timeout when registering services (#11138) 2022-02-18 12:05:33 -08:00
apiserver.go
apiserver_test.go
catalog_endpoint.go Change error-handling across handlers. (#12225) 2022-01-31 11:17:35 -05:00
catalog_endpoint_oss.go
catalog_endpoint_test.go bulk rewrite using this script 2022-01-20 10:46:23 -06:00
check.go
config_endpoint.go Change error-handling across handlers. (#12225) 2022-01-31 11:17:35 -05:00
config_endpoint_test.go bulk rewrite using this script 2022-01-20 10:46:23 -06:00
connect_auth.go
connect_ca_endpoint.go
connect_ca_endpoint_test.go bulk rewrite using this script 2022-01-20 10:46:23 -06:00
coordinate_endpoint.go Change error-handling across handlers. (#12225) 2022-01-31 11:17:35 -05:00
coordinate_endpoint_test.go Change error-handling across handlers. (#12225) 2022-01-31 11:17:35 -05:00
delegate_mock_test.go acl: remove unused methods on fakes, and add changelog 2022-01-31 17:53:53 -05:00
denylist.go
denylist_test.go
discovery_chain_endpoint.go Change error-handling across handlers. (#12225) 2022-01-31 11:17:35 -05:00
discovery_chain_endpoint_test.go
dns.go
dns_oss.go
dns_test.go Remove references to "master" ACL tokens in tests (#11751) 2021-12-07 12:48:50 +00:00
enterprise_delegate_oss.go
event_endpoint.go Change error-handling across handlers. (#12225) 2022-01-31 11:17:35 -05:00
event_endpoint_test.go Change error-handling across handlers. (#12225) 2022-01-31 11:17:35 -05:00
federation_state_endpoint.go URL-encode/decode resource names for HTTP API part 3 (#12103) 2022-01-26 13:12:42 -05:00
health_endpoint.go URL-encode/decode resource names for HTTP API part 5 (#12297) 2022-02-14 10:47:06 -05:00
health_endpoint_test.go Change error-handling across handlers. (#12225) 2022-01-31 11:17:35 -05:00
http.go Change error-handling across handlers. (#12225) 2022-01-31 11:17:35 -05:00
http_decode_test.go
http_oss.go
http_oss_test.go Remove references to "master" ACL tokens in tests (#11751) 2021-12-07 12:48:50 +00:00
http_register.go
http_test.go testing: fix test failures caused by new log level 2022-02-03 17:07:39 -05:00
intentions_endpoint.go Change error-handling across handlers. (#12225) 2022-01-31 11:17:35 -05:00
intentions_endpoint_oss_test.go
intentions_endpoint_test.go
keyring.go
keyring_test.go Remove references to "master" ACL tokens in tests (#11751) 2021-12-07 12:48:50 +00:00
kvs_endpoint.go Change error-handling across handlers. (#12225) 2022-01-31 11:17:35 -05:00
kvs_endpoint_test.go
metrics.go
metrics_test.go
nodeid.go
nodeid_test.go
notify.go
notify_test.go
operator_endpoint.go
operator_endpoint_oss.go
operator_endpoint_test.go
prepared_query_endpoint.go Change error-handling across handlers. (#12225) 2022-01-31 11:17:35 -05:00
prepared_query_endpoint_test.go Change error-handling across handlers. (#12225) 2022-01-31 11:17:35 -05:00
reload.go
remote_exec.go
remote_exec_test.go Remove references to "master" ACL tokens in tests (#11751) 2021-12-07 12:48:50 +00:00
retry_join.go
retry_join_test.go
service_checks_test.go
service_manager.go
service_manager_test.go bulk rewrite using this script 2022-01-20 10:46:23 -06:00
session_endpoint.go Change error-handling across handlers. (#12225) 2022-01-31 11:17:35 -05:00
session_endpoint_test.go
setup.go
setup_oss.go
sidecar_service.go
sidecar_service_test.go bulk rewrite using this script 2022-01-20 10:46:23 -06:00
signal_unix.go
signal_windows.go
snapshot_endpoint.go
snapshot_endpoint_test.go
status_endpoint.go
status_endpoint_test.go
streaming_test.go
testagent.go testing: fix test failures caused by new log level 2022-02-03 17:07:39 -05:00
testagent_test.go
translate_addr.go
txn_endpoint.go Change error-handling across handlers. (#12225) 2022-01-31 11:17:35 -05:00
txn_endpoint_test.go Change error-handling across handlers. (#12225) 2022-01-31 11:17:35 -05:00
ui_endpoint.go Support for connect native services in topology view. (#12098) 2022-02-16 16:51:54 -05:00
ui_endpoint_oss_test.go
ui_endpoint_test.go Support for connect native services in topology view. (#12098) 2022-02-16 16:51:54 -05:00
user_event.go Vendor in rpc mono repo for net/rpc fork, go-msgpack, msgpackrpc. (#12311) 2022-02-14 09:45:45 -08:00
user_event_test.go
util.go
util_test.go
watch_handler.go
watch_handler_test.go