Commit Graph

615 Commits

Author SHA1 Message Date
Armon Dadgar 1b84705cb3 consul: ensure conn pool shutdown is fast 2014-02-05 14:20:18 -08:00
Armon Dadgar 944cbc7291 consul: Health endpoints support blocking queries 2014-02-05 13:30:18 -08:00
Armon Dadgar a58ee71739 consul: Adding a sanity check 2014-02-05 11:13:08 -08:00
Armon Dadgar f0134e42c6 consul: Support blocking queries for the Catalog 2014-02-05 11:10:10 -08:00
Armon Dadgar b0707df2ab consul: Enable ListNodes and ListServices to be a blocking query 2014-02-05 11:00:43 -08:00
Armon Dadgar 8b1c78dc00 consul: Cleanup the FSM, running out of file handles 2014-02-05 11:00:10 -08:00
Armon Dadgar ed5ff78504 consul: Adding indexed versions of return structs 2014-02-05 10:44:28 -08:00
Armon Dadgar 5c60d0a1bc consul: blockingRPC is a helper method for queries that need to block 2014-02-05 10:38:29 -08:00
Armon Dadgar 428c74cc35 consul: State store can return the tables for a query, and watch for changes 2014-02-05 10:37:28 -08:00
Armon Dadgar 626a3b5bf6 consul: Adding BlockingQuery to structs to wait for changes 2014-02-05 10:21:31 -08:00
Armon Dadgar ab0831e268 consul: Add a guard against deadlock in MDB 2014-02-04 19:04:36 -08:00
Armon Dadgar 59cd74dbb0 consul: reduce the scope of various transactions 2014-02-04 19:01:32 -08:00
Armon Dadgar 6188cd4ccd consul: Notify watchers of changes 2014-02-04 18:45:40 -08:00
Armon Dadgar 10707da7fc consul: Move notification group from MDBTable into the state store 2014-02-04 18:37:38 -08:00
Armon Dadgar 369193fbd6 consul: updating state store to associate changes with raft index 2014-02-04 18:33:15 -08:00
Armon Dadgar a8c366e9df consul: Add a NotifyGroup to the MDBTable 2014-02-04 12:32:05 -08:00
Armon Dadgar e1c7632cc3 consul: Adding a simple notification mechansim 2014-02-04 12:21:30 -08:00
Armon Dadgar 7d643a9dab consul: MDBTable can track a special 'last index' value 2014-02-04 11:11:31 -08:00
Armon Dadgar 255e224ac8 consul: Log state store errors 2014-02-03 15:21:56 -08:00
Armon Dadgar 936152092d consul: client re-uses the last connection if error free 2014-02-03 11:53:04 -08:00
Armon Dadgar 9b80ab9a61 consul: benchmark the ListNodes RPC method 2014-02-01 12:16:33 -08:00
Armon Dadgar 5c11f1fb79 consul: Adding some benchmarks to test state store 2014-02-01 12:00:56 -08:00
Armon Dadgar 1ecdeae1b6 consul: Update for serf 0.4 2014-01-30 13:13:29 -08:00
Armon Dadgar 9ea32b102f Adding LANMembers to the Consul.Interface 2014-01-21 11:52:01 -08:00
Armon Dadgar 334c2137ef Preventing multiple nodes in bootstrap mode from adding each other as Raft peers 2014-01-20 13:56:29 -10:00
Armon Dadgar 3e6787511e change isConsulServer to parse flags 2014-01-20 13:39:07 -10:00
Armon Dadgar ed8cb1bc2b Export the consul service id and name 2014-01-15 17:27:37 -10:00
Armon Dadgar ea41b2bb26 Export the serf check ID 2014-01-15 17:24:16 -10:00
Armon Dadgar e4c6ad9807 CheckServiceNodes will return node checks that are not service associated 2014-01-15 11:14:28 -10:00
Armon Dadgar 80d9899aec Do not remove ourself when we leave from Raft 2014-01-10 15:05:34 -08:00
Armon Dadgar df1eea834a Fixing testServerDC method 2014-01-10 12:58:04 -08:00
Armon Dadgar 2030b2288d Simplify Raft peer adds using only reconciliation 2014-01-10 12:55:55 -08:00
Armon Dadgar 786755ebcd Check for error when sending RPC byte 2014-01-10 12:09:19 -08:00
Armon Dadgar d741a999f5 Refactor testServerDC 2014-01-10 11:07:29 -08:00
Armon Dadgar 6b45c2c5a4 Cleanup log 2014-01-10 11:07:04 -08:00
Armon Dadgar c5e2004be9 Log cleanup 2014-01-10 11:06:11 -08:00
Armon Dadgar c2ef218c30 Improve idempotence check for consul service registration 2014-01-09 22:12:08 -08:00
Armon Dadgar 27e558ee77 Verify that consul service is registered 2014-01-09 18:02:44 -08:00
Armon Dadgar 79717c95bf Fixing issue that would prevent consul server registration 2014-01-09 17:59:31 -08:00
Armon Dadgar 26134960b1 Auto-register the consul service 2014-01-09 17:57:13 -08:00
Armon Dadgar 688a0d5bf1 Testing leader functions and reconciliation 2014-01-09 17:46:33 -08:00
Armon Dadgar 6992e8bf61 Fixing some tests 2014-01-09 17:22:01 -08:00
Armon Dadgar 9d96ce1107 First pass at Serf reconciliation 2014-01-09 15:49:09 -08:00
Armon Dadgar 3cb3085175 Adding utility method to parse consul nodes 2014-01-09 15:45:14 -08:00
Armon Dadgar e1692fb0a0 Adding a ReconcileInterval config 2014-01-09 15:44:25 -08:00
Armon Dadgar a82a606221 Retain reference to RPC endpoints 2014-01-09 15:30:36 -08:00
Armon Dadgar 5bb4a5306b Cleanup 2014-01-09 11:33:23 -08:00
Armon Dadgar f410802055 Adding Health endpoint to combine service nodes with health 2014-01-08 15:06:13 -08:00
Armon Dadgar 0b59adce3f Adding CheckServiceNodes to get health info with service nodes 2014-01-08 14:58:53 -08:00
Armon Dadgar 490abc75a6 Minor structs cleanup 2014-01-08 14:43:36 -08:00
Armon Dadgar 000dbedc06 Testing the health endpoints 2014-01-08 14:23:52 -08:00
Armon Dadgar 918b83bf4e First pass at health endpoints 2014-01-08 13:56:34 -08:00
Armon Dadgar dff6b6e3c5 Adding stubs for Health endpoints 2014-01-08 13:52:09 -08:00
Armon Dadgar ad346fecdf Adding FSM support for register/deregister health checks 2014-01-08 13:39:40 -08:00
Armon Dadgar 7c8993ef3f Support getting node checks in the snapshot 2014-01-08 12:19:11 -08:00
Armon Dadgar 023974becb Implementing the health methods with tests 2014-01-08 12:15:01 -08:00
Armon Dadgar 30618ca359 Skeleton methods for health info 2014-01-08 11:35:27 -08:00
Armon Dadgar d6f8b6e48b Adding HealthCheck and an associated table 2014-01-08 11:21:29 -08:00
Armon Dadgar 48fecaf410 Adding test for last row id restore 2014-01-08 10:43:44 -08:00
Armon Dadgar c3c507f381 Remove unused variable 2014-01-08 10:39:06 -08:00
Armon Dadgar 97b9ff64e0 Delete node in a transaction 2014-01-08 10:37:16 -08:00
Armon Dadgar a84fdd51e1 Update for new interfaces 2014-01-08 10:31:42 -08:00
Armon Dadgar 0ca9b085a2 Switch state store to MDBTables 2014-01-08 10:31:20 -08:00
Armon Dadgar f666211ca2 Adding ServiceName to ServiceNode to simplify 2014-01-08 10:29:29 -08:00
Armon Dadgar a5a8eeee93 Support multi-table transactions with MDBTable 2014-01-08 10:27:37 -08:00
Armon Dadgar 49bc2c4075 Handle record updates 2014-01-07 21:35:44 -08:00
Armon Dadgar ed87aae1cf Supporting table Delete 2014-01-07 18:55:34 -08:00
Armon Dadgar f55090314a Refactoring some code to share with Delete 2014-01-07 17:43:57 -08:00
Armon Dadgar e8846486de Support blank fields 2014-01-07 17:28:15 -08:00
Armon Dadgar 88cebcc595 Working on abstracting MDB storage 2014-01-07 16:58:28 -08:00
Armon Dadgar 4bca485178 Adding some utility functions 2014-01-07 16:58:16 -08:00
Armon Dadgar 870074056f Support non-unique service entries per node 2014-01-06 14:18:38 -08:00
Armon Dadgar 2edd92a73b Handle new Raft API 2014-01-03 17:15:09 -08:00
Armon Dadgar ca43075041 NodeServices struct now includes the node address 2014-01-02 17:29:39 -08:00
Armon Dadgar 76baf19c9a Fixing bug in state store 2013-12-31 18:31:17 -08:00
Armon Dadgar aefe4cc679 Fix indexing error when getting nodes 2013-12-31 18:16:09 -08:00
Armon Dadgar 3c3da212d7 Allow for more cached connections 2013-12-31 17:43:56 -08:00
Armon Dadgar 4cb3d08aba Increase maximum MDB map size 2013-12-31 17:43:05 -08:00
Armon Dadgar 0588a9cb3f Fixing some tests 2013-12-31 16:46:56 -08:00
Armon Dadgar ce79f27364 Adding support for advertise address 2013-12-31 16:45:13 -08:00
Armon Dadgar 7f2feeb7eb Testing Raft advertise addr 2013-12-31 15:44:27 -08:00
Armon Dadgar f7eb948ae1 Methods to get a private IP 2013-12-31 15:44:17 -08:00
Armon Dadgar a88bef821a Guard against a bad advertise address 2013-12-31 14:00:25 -08:00
Armon Dadgar ebdf8d2114 Adding RemoveFailedNode to consul.Client 2013-12-30 14:42:23 -08:00
Armon Dadgar 8fee0cd50a Changing the Join interfaces to match Serf 2013-12-30 12:20:17 -08:00
Armon Dadgar 3c00ba3864 Update for the new Serf config 2013-12-27 12:51:15 -08:00
Armon Dadgar 3d908d9edf Enable bootstrap mode for the tests 2013-12-24 16:53:30 -08:00
Armon Dadgar 69ed0ec184 Adding a bootstrap flag to allow single server raft 2013-12-24 16:48:07 -08:00
Armon Dadgar fd9a44ba09 Guard MDB against 0 byte slices 2013-12-24 13:25:09 -08:00
Armon Dadgar 17ee53088b Mark a few txn's as being readonly 2013-12-24 13:12:03 -08:00
Armon Dadgar 5df07d9c60 Defer the txn aborts 2013-12-24 13:05:43 -08:00
Armon Dadgar 140fb21472 Stronger API validation 2013-12-24 12:43:34 -08:00
Armon Dadgar 088def3935 Do not leave raft pool if we are the only member 2013-12-24 12:36:50 -08:00
Armon Dadgar ac15ca1139 Better error logging 2013-12-24 12:22:42 -08:00
Armon Dadgar 851c4c8ed1 More HTTP endpoints 2013-12-23 16:20:51 -08:00
Armon Dadgar 995a60ea0b Setup logging for Raft properly 2013-12-23 15:30:45 -08:00
Armon Dadgar b03d1b55b3 Ensure local server is always a raft peer 2013-12-23 11:50:58 -08:00
Armon Dadgar 3fe3f8815d Adding a Status.Peers endpoint to get peerset 2013-12-23 11:39:29 -08:00
Armon Dadgar 0e4b5720d9 Filling in Agent basics 2013-12-20 15:33:13 -08:00
Armon Dadgar 32c822db1b Adding time based reaping to ConnPool 2013-12-19 15:42:17 -08:00
Armon Dadgar 5f0bc8c91d Rename ConsulRPC to just consul.Interface 2013-12-19 15:20:10 -08:00
Armon Dadgar 90f8f075dc Server also implements ConsulRPC interface 2013-12-19 15:18:25 -08:00
Armon Dadgar 20b3d5ccbe Minimize open connections maintained by client 2013-12-19 15:10:29 -08:00
Armon Dadgar 5b0ca256ff Testing Client RPC to server 2013-12-19 15:08:55 -08:00
Armon Dadgar 8b35f6b22a Test joining a Serf pool 2013-12-19 14:56:38 -08:00
Armon Dadgar 9249bb65a5 Adding client tests 2013-12-19 14:54:32 -08:00
Armon Dadgar 1bae62fce6 Adding initial consul client 2013-12-19 14:48:14 -08:00
Armon Dadgar ed0af0ad42 Refactor isConsulServer into util 2013-12-19 14:37:54 -08:00
Armon Dadgar 644ce2fcf7 Refactor ensurePath to util 2013-12-19 14:18:55 -08:00
Armon Dadgar 88396b966a Move rpc structs into sub-package 2013-12-19 12:03:57 -08:00
Armon Dadgar 0ad0393484 Remove comment 2013-12-19 11:15:38 -08:00
Armon Dadgar 5fad6a7372 Make tests more reliable 2013-12-18 16:44:56 -08:00
Armon Dadgar 9c8af31036 Guard against accessing slices that may have contents changed 2013-12-18 16:40:32 -08:00
Armon Dadgar c5aada3298 Switch Raft from SQLite to MDB 2013-12-18 16:23:17 -08:00
Armon Dadgar c515682303 Adding snapshot support 2013-12-18 15:09:38 -08:00
Armon Dadgar 424491e9f6 Starting port of state store to MDB 2013-12-18 15:03:25 -08:00
Armon Dadgar ab970083dd FSM logs snapshot time 2013-12-17 11:13:19 -08:00
Armon Dadgar 7fbb2c9918 Adding support and tests for FSM snapshotting 2013-12-16 10:47:14 -08:00
Armon Dadgar 70a001bfa0 Adding ability to snapshot StateStore 2013-12-12 15:14:08 -08:00
Armon Dadgar b86d6f4370 Changing how state store is opened to allow shared connections 2013-12-12 14:41:13 -08:00
Armon Dadgar 96a52fc0b2 Remove unused raft endpoints 2013-12-12 11:48:22 -08:00
Armon Dadgar 8409f9fc0a Adding NodeServices endpoing 2013-12-12 11:46:25 -08:00
Armon Dadgar 7757943156 Support querying for ServiceNodes 2013-12-12 11:37:19 -08:00
Armon Dadgar d4bb369642 Remove useless check since we are doing a DISTINCT query 2013-12-12 11:08:01 -08:00
Armon Dadgar e1c927f218 Adding ability to list services 2013-12-12 11:07:14 -08:00
Armon Dadgar d3cba241bf Adding node listing 2013-12-12 10:48:36 -08:00
Armon Dadgar 9a76a2bf12 Support datacenter listing 2013-12-12 10:35:50 -08:00
Armon Dadgar aee98291a9 Remove unused methods 2013-12-11 16:43:29 -08:00
Armon Dadgar f73f2a6513 Test leader forwarding 2013-12-11 16:42:19 -08:00
Armon Dadgar 5135724dae Adding support for cross-dc forwarding 2013-12-11 16:33:19 -08:00
Armon Dadgar 4cfe5179ba Track remote consul servers 2013-12-11 16:24:34 -08:00
Armon Dadgar 43cc986202 Adding support for deregistration 2013-12-11 15:34:10 -08:00
Armon Dadgar 4385ab3092 Testing Catalog.Register endpoint 2013-12-11 14:57:40 -08:00
Armon Dadgar 2b194d6380 Adding FSM support for Register 2013-12-11 14:38:18 -08:00
Armon Dadgar b0c82b61d2 Adding state store methods 2013-12-11 14:27:27 -08:00
Armon Dadgar 94865a40ac consul: starting work on some RPC layers 2013-12-11 14:04:44 -08:00
Armon Dadgar b4b4365d1d Adding some state store methods with tests 2013-12-11 14:03:09 -08:00
Armon Dadgar 479185694d Stubs 2013-12-10 18:19:15 -08:00
Armon Dadgar ac9d2a81ff consul: working on fsm state 2013-12-10 17:00:48 -08:00
Armon Dadgar 48e3db305b Adding Status.Leader endpoint 2013-12-10 15:16:41 -08:00
Armon Dadgar 662a1d9af7 consul: Adding method to force remove failed nodes 2013-12-10 14:42:29 -08:00
Armon Dadgar 0725906cab consul: Adding LANMembers and WANMembers 2013-12-10 13:17:54 -08:00
Armon Dadgar e7f4a84841 consul: abandon join on shutdown or member fail 2013-12-09 16:25:24 -08:00
Armon Dadgar 761197575c consul: Adding tons of shit, leave test 2013-12-09 16:05:15 -08:00
Armon Dadgar 9c4583c0e3 consul: type safe event handlers 2013-12-09 15:29:44 -08:00
Armon Dadgar f582b86cd8 consul: status rpc endpoint 2013-12-09 15:29:20 -08:00
Armon Dadgar 2d7af79662 consul: store the peerstore 2013-12-09 15:29:01 -08:00
Armon Dadgar 08152dc66b consul: Leave does a RemovePeer RPC call 2013-12-09 15:01:42 -08:00
Armon Dadgar a8a9d2cd45 consul: helper to make RPC calls 2013-12-09 14:58:49 -08:00
Armon Dadgar f7f743dfa9 consul: ConnPool creates RPC client 2013-12-09 14:52:22 -08:00
Armon Dadgar 03bd66c8fa consul: Adding Raft rpc endpoint 2013-12-09 14:49:07 -08:00
Armon Dadgar b7bafb6bd8 consul: gossip role includes rpc addr 2013-12-09 14:30:16 -08:00
Armon Dadgar c28ebbf60f consul: Write the byte to set the RPC mode 2013-12-09 14:29:20 -08:00
Armon Dadgar 6e9d7dc0fd consul: RaftLayer does not use ConnPool 2013-12-09 14:25:59 -08:00
Armon Dadgar ad51531407 consul: fixing test 2013-12-09 14:23:19 -08:00
Armon Dadgar 5ab00f34ee consul: Remove the RaftBindAddr 2013-12-09 14:22:23 -08:00
Armon Dadgar a5d001034e consul: close raft transport before layer 2013-12-09 14:20:56 -08:00
Armon Dadgar 7f4adceae8 consul: sharing the RPC layer between Consul/Raft 2013-12-09 13:13:40 -08:00
Armon Dadgar fc595ce9ee consul: Adding leave function 2013-12-09 12:10:27 -08:00
Armon Dadgar 205941ffcf consul: adding connection pool 2013-12-09 12:09:57 -08:00
Armon Dadgar af9176bca0 consul: Add+test JoinLAN/JoinWAN 2013-12-06 17:18:09 -08:00
Armon Dadgar 72e93a7432 consul: refactor into more files 2013-12-06 16:54:33 -08:00
Armon Dadgar 0bf9a8fb1c consul: Basic RPC framework 2013-12-06 16:35:13 -08:00
Armon Dadgar 9b8433f787 consul: Rename to LAN/WAN instead of Local/Remote 2013-12-06 16:05:26 -08:00
Armon Dadgar 94ff23d2a4 consul: adding basic skeleton 2013-12-06 15:43:07 -08:00