Commit Graph

237 Commits

Author SHA1 Message Date
6ec56f2a88 Pass NetworkConfig into Network loaders as an optional argument 2024-11-12 13:34:39 +01:00
72bca72b29 Revert "Add SetConfig to Daemon, though it will always error right now"
This reverts commit 2ec28cde61.
2024-11-10 22:58:09 +01:00
f0cb29b553 Implement network.Loader, will be helpful for testing Daemon 2024-11-10 22:13:06 +01:00
bfa0dc457f Add mock of network interface 2024-11-09 23:17:10 +01:00
2ec28cde61 Add SetConfig to Daemon, though it will always error right now 2024-11-09 23:14:20 +01:00
5e33eafb80 Fix test removing all allocs 2024-11-09 20:40:39 +01:00
335867644b Output command-line results in either yaml or json, based on a flag 2024-11-09 17:40:02 +01:00
06d85ca961 Make log level configurable, remove custom log message handler 2024-11-09 17:11:10 +01:00
032bdb9e43 Have hosts update garage cluster layout to remove other nodes if necessary 2024-11-08 22:57:31 +01:00
53a06af9ba Use the term 'role' or 'node' rather than 'peer' in the context of garage 2024-11-08 17:46:44 +01:00
734406d4bb Remove legacy tests, document new ones 2024-11-05 23:47:44 +01:00
04978fa9db Block for bucket list to sync across garage instances during init 2024-11-05 21:25:04 +01:00
8e264cf028 Rework how Network background jobs are managed a bit 2024-11-05 11:59:45 +01:00
efdab29ae6 Update isle link in README 2024-11-05 11:23:28 +01:00
932c8e2244 Refactor arch package building a bit, to make it easier to test 2024-11-03 15:23:43 +01:00
6ac473edcb Fix garage health check to wait for full replication factor of nodes 2024-10-31 13:13:17 +01:00
2cdec586b2 Implement removal of nodes from the garage layout 2024-10-31 13:04:19 +01:00
8dab458291 Use Children's Reload method as part of SetConfig 2024-10-31 10:16:06 +01:00
7274815cfd Manage child processes individually, not via Pmux. Also route child logs through mlog 2024-10-29 17:49:24 +01:00
b7c097ef63 Refactor children process reloading, add garage reloading 2024-10-27 14:44:53 +01:00
433328524d Re-organize some reload logic 2024-10-24 22:14:13 +02:00
88ffa97c0f Small changes to how process reloading works 2024-10-24 21:19:58 +02:00
5c41cedea3 Implement SetConfig, but in a stupid way 2024-10-24 19:52:08 +02:00
63cefd403e Use a test logger 2024-10-23 20:38:39 +02:00
bbae88ab4b Add GetConfig method to Network 2024-10-23 20:18:11 +02:00
9e9e98584f Remove bootstrap argument from default.nix 2024-10-15 21:45:29 +02:00
f639d460cf Implement basic test for network.Join 2024-10-14 12:12:43 +02:00
cb6c11acef Test network.Load 2024-10-07 22:41:46 +02:00
7f3cbf628f Cleanup idle HTTP connections to make shutdown smoother 2024-10-07 22:17:06 +02:00
f146b77187 Generalize create network code in network package integration tests 2024-10-06 19:38:35 +02:00
010c53e5c7 Some general cleanup 2024-10-06 17:15:40 +02:00
71bc182ab4 Implement initial go test for network.Create 2024-10-05 23:03:26 +02:00
168b65ea1d Add ./go/tests.sh 2024-10-05 21:12:29 +02:00
48611df2cb Update documentation 2024-10-03 18:59:48 +02:00
61c5338b84 Update go modules vendorHash to be correct 2024-09-30 16:35:51 +02:00
31af39ce4c Embed default daemon.yml directly in entrypoint 2024-09-24 11:27:54 +02:00
64fdba0a48 Implement network(s) list sub-command 2024-09-24 11:03:18 +02:00
de7aac1f25 Refactor command-line parsing, pass --network to most commands 2024-09-23 20:50:45 +02:00
16aca610b4 Add multi-network support to daemon
It's still not possible to pick a network from the command-line, so this
is a bit broken, but the daemon component should handle it correctly at
least.
2024-09-23 19:04:14 +02:00
6c036d1183 Check that two different networks aren't trying to use the same nebula port 2024-09-12 08:59:23 +02:00
df4eae8a5c Support configuring more than one network 2024-09-10 22:51:33 +02:00
c022c97b19 include a migration for multi-network state directories 2024-09-10 21:02:07 +02:00
6d99fb5368 Remove randStr private utility function 2024-09-09 21:38:10 +02:00
8c3e6a2845 Separate Daemon and Network logic into separate packages
In a world where the daemon can manage more than one network, the Daemon
is really responsible only for knowing which networks are currently
joined, creating/joining/leaving networks, and routing incoming RPC
requests to the correct network handler as needed.

The new network package, with its Network interface, inherits most of
the logic that Daemon used to have, leaving Daemon only the parts needed
for the functionality just described. There's a lot of cleanup done here
in order to really nail down the separation of concerns between the two,
especially around directory creation.
2024-09-09 16:34:00 +02:00
86b2ba7bfa Factor daemon.Children into its own package 2024-09-07 15:46:59 +02:00
a840d0e701 Move common daemon types and values into daecommon 2024-09-07 15:11:04 +02:00
ef86c1bbd1 Make Daemon into a concrete type which implements RPC directly 2024-09-07 14:05:07 +02:00
fed79c6ec7 Update documentation on jsonrpc2.NewDispatchHandler 2024-09-05 19:36:21 +02:00
8d3b17e1cb Remove extraneous empty struct returns from RPC interface 2024-09-05 17:28:10 +02:00
038a28bb02 Remove remaining extraneous 'Result' RPC-related struct types 2024-09-04 22:46:38 +02:00