Commit Graph

60 Commits (fbb40d72c001d1b9d4b4e23186e91f7141808b34)

Author SHA1 Message Date
dawxy 238d430275 Fix data race (#5029)
Fix #4357
2019-01-08 11:43:14 -05:00
Paul Banks e812f5516a Add -sidecar-for and new /agent/service/:service_id endpoint (#4691)
- A new endpoint `/v1/agent/service/:service_id` which is a generic way to look up the service for a single instance. The primary value here is that it:
   - **supports hash-based blocking** and so;
   - **replaces `/agent/connect/proxy/:proxy_id`** as the mechanism the built-in proxy uses to read its config.
   - It's not proxy specific and so works for any service.
   - It has a temporary shim to call through to the existing endpoint to preserve current managed proxy config defaulting behaviour until that is removed entirely (tested).
 - The built-in proxy now uses the new endpoint exclusively for it's config
 - The built-in proxy now has a `-sidecar-for` flag that allows the service ID of the _target_ service to be specified, on the condition that there is exactly one "sidecar" proxy (that is one that has `Proxy.DestinationServiceID` set) for the service registered.
 - Several fixes for edge cases for SidecarService
 - A fix for `Alias` checks - when running locally they didn't update their state until some external thing updated the target. If the target service has no checks registered as below, then the alias never made it past critical.
2018-10-10 16:55:34 +01:00
Pierre Souchay c01b410cf5 Fixed flaky watch tests (#4595) 2018-09-04 12:32:59 +01:00
Pierre Souchay 92acdaa94c Fixed flaky tests (#4626) 2018-09-04 12:31:51 +01:00
Paul Banks 597e55e8e2 Misc test fixes 2018-06-25 12:25:39 -07:00
Mitchell Hashimoto 8c713e6104
connect/proxy: don't require proxy ID 2018-06-14 09:42:20 -07:00
Paul Banks e0e12e165b
TLS watching integrated into Service with some basic tests.
There are also a lot of small bug fixes found when testing lots of things end-to-end for the first time and some cleanup now it's integrated with real CA code.
2018-06-14 09:42:07 -07:00
Paul Banks e8c510332c
Support legacy watch.HandlerFunc type for backward compat reduces impact of change 2018-06-14 09:42:05 -07:00
Paul Banks ab3df3d4a6
Working proxy config reload tests 2018-06-14 09:42:05 -07:00
Paul Banks cd88b2a351
Basic `watch` support for connect proxy config and certificate endpoints.
- Includes some bug fixes for previous `api` work and `agent` that weren't tested
 - Needed somewhat pervasive changes to support hash based blocking - some TODOs left in our watch toolchain that will explicitly fail on hash-based watches.
 - Integration into `connect` is partially done here but still WIP
2018-06-14 09:42:05 -07:00
Matt Keeler 1fbe828c35 Add RunWithConfig and put Run signature back to normal 2018-05-31 20:22:14 -04:00
Matt Keeler 53fbe2b111 Update unit tests to reflect change to func signature 2018-05-31 17:20:16 -04:00
Matt Keeler 8e0e239e42 Allow passing in a config to the watch plan to use when creating the API client
This allows watches from consul agent config (rather than consul watch command) to be able to utilize HTTPs
2018-05-31 17:07:36 -04:00
Guido Iaquinti 8cd11d5888 Add package name to log output 2018-03-21 15:56:14 +00:00
Frank Schroeder 570ddaae98
watch: make sure invoke channels timeout evenutally 2017-10-24 20:35:36 +02:00
Frank Schroeder f55e234f2e
watch: run tests in parallel 2017-10-24 20:35:36 +02:00
Frank Schroeder a54b0994ed
watch: convert TestEventWatch to use channels 2017-10-24 20:35:36 +02:00
Frank Schroeder e9766c8bd4
watch: convert TestKeyPrefixWatch to use channels 2017-10-24 20:35:36 +02:00
Frank Schroeder 144b337aa5
watch: convert TestKeyWatch_With_PrefixDelete to use channels 2017-10-24 20:35:36 +02:00
Frank Schroeder bad870dc68
watch: convert TestKeyWatch to use channels 2017-10-24 20:35:36 +02:00
Frank Schroeder 7a84f1c82d
watch: convert TestChecksWatch_Service to use channels 2017-10-24 20:35:35 +02:00
Frank Schroeder d57ef823f9
watch: convert TestChecksWatch_State to use channels 2017-10-24 20:35:35 +02:00
Frank Schroeder eb2963345e
watch: convert TestServicesWatch to use channels 2017-10-24 20:35:35 +02:00
Frank Schroeder ef4e8b5811
watch: convert TestServiceWatch to use channels 2017-10-24 20:35:35 +02:00
Frank Schroeder 375fbcb643
watch: convert TestNodesWatch to use channels 2017-10-24 20:35:35 +02:00
Frank Schroeder a7c78e637d
watch: use test agent instead of external Consul instance 2017-10-24 11:59:44 +02:00
James Phillips 23d4b24792
Cleans up import sorting. 2017-10-21 20:08:11 -07:00
Hadar Greinsmark 7e1a860978 Implement HTTP Watch handler (#3413)
Implement HTTP Watch handler
2017-10-21 20:39:09 -05:00
Preetha Appan 36acf8d6a4 Use new DeletePrefixMethod for implementing KVSDeleteTree operation. This makes deletes on sub trees larger than one million nodes about 100 times faster. Added unit tests. 2017-07-25 17:21:18 -05:00
James Phillips 8d0a048408 Expands and rework context support in the API client. (#3273) 2017-07-14 17:30:08 -07:00
Preetha Appan d25be8671a Make sure to call cancel on the context 2017-06-27 16:22:57 -05:00
Preetha Appan a6c3cf0403 Made helper method for query options with context 2017-06-26 16:11:14 -05:00
Preetha Appan 9eaf56bfe3 Fix socket file handle leaks from old blocking queries upon consul reload. This fixes issue #3018 2017-06-26 15:52:03 -05:00
James Phillips 6977e40077 Fixes watch tracking during reloads and fixes address issue. (#3189)
This patch fixes watch registration through the config file and a broken log line when the watch registration fails. It also plumbs all the watch loading through a common function and tweaks the
unit test to create the watch before the reload.
2017-06-24 12:52:41 -07:00
James Phillips 5f9776ac89 Merge pull request #2621 from alicebob/devwatch
reset watch's lastIndex on error
2017-06-02 09:06:02 -07:00
Frank Schroeder d7e23857ad golint: No stutter 2017-04-25 09:26:13 -07:00
Frank Schroeder eddb1af603 Remove duplicate constants
This patch removes duplicate internal copies of constants in the structs
package which are also defined in the api package. The api.KVOp type
with all its values for the TXN endpoint and the api.HealthXXX constants
are now used throughout the codebase.

This resulted in some circular dependencies in the testutil package
which have been resolved by copying code and constants and moving the
WaitForLeader function into a separate testrpc package.
2017-04-20 09:54:49 -07:00
James Phillips d9e6f3c894
Makes watcher test more robust. 2017-04-16 22:15:48 -07:00
Harmen d7b5f41447 reset the watch index when somehow the index goes backwards 2017-01-17 09:02:53 +01:00
Harmen 021cc2017d reset index to 0, not to 1 2017-01-17 09:02:49 +01:00
Harmen 4a13cafa98 reset watch's lastIndex on error
When a -dev agent is restarted it'll have a clean state, including a
reset index. A watch() will reconnect after a restart, but it won't
notice that the index counter has reset and it will keep waiting until
we reached the old index again, which is wrong. Resetting the index will
prevent that and makes watch work for -dev agents.
2016-12-29 21:58:46 +01:00
James Phillips 888f27de2b
Moves stale code to same spot and adds it everywhere that supports it. 2016-08-10 15:49:51 -07:00
Evan Gilman 965fcf9d6b
Enable Stale mode for watchers
Solves https://github.com/hashicorp/consul/issues/917 by giving consul
watch a `-stale` flag
2016-05-10 00:09:15 -07:00
Sean Chittenden e63d3a1275 Update Check API to use constants
Use constants where appropriate to advocate their use.  Also add a deprecation notice re: `updateTTL`.
2016-04-23 16:01:59 -07:00
Ryan Uber 5555e0eb9b api: initial import from armon/consul-api 2015-01-06 10:40:00 -08:00
Emil Hessman c9333b1b9b Fix missing arguments 2014-11-01 22:56:48 +01:00
Armon Dadgar e13ba2f2da watch: Adding support for events 2014-08-28 15:41:06 -07:00
Armon Dadgar 94615b0b7e watch: Fixing bug with null keys 2014-08-21 17:24:20 -07:00
Armon Dadgar 4b547a43d0 agent: First pass at agent-based watches 2014-08-21 13:09:13 -07:00
Armon Dadgar ad40ddf361 watch: Remove DSL in place of JSON 2014-08-21 11:38:44 -07:00