Commit Graph

1420 Commits

Author SHA1 Message Date
Dominion 4ecdf8afe1 Move duplicate concrete IAbstractHttpClientFactorys to Common.HttpClientFactory 2023-04-23 13:57:57 -04:00
Dominion 43e1fec1b0 Move a bunch of non-core classes to new Utils namespace
- Clean up VS messages, primarily in SessionController.cs
2023-04-23 13:42:16 -04:00
Dominion 86f9d350f6 Clean up LogContext templating and properties
- Bring Serilog LogContext related items into new SerilogContextHelper class.
- ODR LogContext property names.
- InstanceController now inherits InstanceRequiredController and no longer holds an IInstanceManager reference.
- InstanceRequiredController.ValidateInstanceOnlineStatus() no longer static
- Subinterface IInstanceOperations created to reduce surface area InstanceController uses.
- Extracted much of InstanceRequiredController's functionality into new parent ComponentInterfacingController to not break swagger generation type checking (InstanceRequiredController adds the mandatory InstanceId header in the spec but InstanceController inherits ComponentInterfacingController without those checks).
- Added code paths to allow add swarm node identifer to LogContext. Use in Live tests.
- IInstanceManager retrieved via DI in Application for UseAsyncInitialization().
- Correct controller doc comments.
- Minor code cleanups.
2023-04-23 13:07:40 -04:00
Dominion ac2a9f11d1 Fix CA1024 2023-04-23 03:35:30 -04:00
Dominion d771da71b9 Add General:DeploymentDirectoryCopyTasksPerCore config option 2023-04-23 02:34:11 -04:00
Dominion 6443ca8223 Workaround std stream race condition in tests 2023-04-22 23:17:07 -04:00
Dominion 6199e0e12e Increase delay in stdout/err reading test 2023-04-22 19:42:44 -04:00
Dominion 77154c9d9b I think this is the key solution to the race condition we were missing 2023-04-22 19:31:19 -04:00
Dominion 1f7872d224 Race condition this, mf'er 2023-04-22 19:21:25 -04:00
Dominion 2195f4cbc7 Fix logging call 2023-04-22 19:14:51 -04:00
Dominion 5195e78baf Fixing more race conditions in swarm tests 2023-04-22 18:56:32 -04:00
Dominion fe478be8ae Cleanup this test again 2023-04-22 18:41:11 -04:00
Dominion b3426ae758 Test at commit stage, not prepare stage 2023-04-22 18:32:31 -04:00
Dominion b5618d9e29 - Fix test issues.
- Fix non-swarm mode updates.
- Add node ID logging context for live test.
2023-04-22 18:14:17 -04:00
Dominion 930c0e6ab5 Workaround for timeout not working on CI runners 2023-04-22 17:25:53 -04:00
Dominion d0ac8f5000 Got rid of that useless swarm registration abstraction AND fixed race condition in SwarmRpcMapper calls 2023-04-22 17:16:34 -04:00
Dominion 7663296099 Test std error and file reading 2023-04-22 12:19:20 -04:00
Dominion ec068333d4 More swarm protocol test logging 2023-04-22 11:40:11 -04:00
Dominion 783b58aaa3 Additional logging attempting to find cause of flaky tests 2023-04-22 10:51:43 -04:00
Dominion b797451e2b Add better error handling to SwarmRpcMapper 2023-04-22 10:39:34 -04:00
Dominion 86e103b86b More integration test reorganization 2023-04-22 10:33:39 -04:00
Dominion 5f27726e92 Increase swarm protocol test max delays 2023-04-22 10:28:30 -04:00
Dominion 8ab819a414 Reorganize integration tests 2023-04-22 10:27:52 -04:00
Dominion 3b8e3556d6 Add missing discard 2023-04-22 10:06:03 -04:00
Dominion 079ab20752 Swarm test framework cleanup 2023-04-22 10:05:53 -04:00
Dominion 02d5e31004 Add unit test for new class 2023-04-22 10:03:16 -04:00
Dominion b83f382f45 Tested swarm controller and fixed some edge cases
- No longer registers for restart unnecessarily
- Fixed infinite wait when committing update
- Fixed unregistering without a registration
- Abort updates if the controller health check fails
2023-04-22 01:02:22 -04:00
Dominion e30799d0f2 Code cleanups 2023-04-21 15:18:47 -04:00
Dominion 1c219ebadd Framework for testing Swarm protocol 2023-04-21 15:11:44 -04:00
Dominion c52cbcef31 Add configuration option to set expected number of nodes in swarm 2023-04-21 10:11:18 -04:00
Dominion a1b5dbe6ac Abstract HttpClient and FileDownloader
- Set all requests to use assemblyInformationProvider UserAgent by default.
- Removed DefaultIOManager's dependency on IAssemblyInformationProvider.
- Fixed bad Dispose scope for requests under construction in SwarmService.
2023-04-21 03:15:39 -04:00
Dominion e8c89f4271 Set a timeout for TestOneServerSwarmUpdate 2023-04-21 01:50:25 -04:00
Dominion 2a9a271218 Server Update Process Cleanup
- Extract bulk of actions into ServerUpdater class, based on old ServerUpdateInitiator.
- Add new ServerUpdateIntiator for AdministrationController

These changes break some interdependencies between SwarmService and Server.

- Correct the meaning of IRestartHandler.HandleRestart's second argument.
- Eliminate usage of SetupApplication's static IAssemblyInformationProvider and IIOManager.
2023-04-21 01:49:23 -04:00
Dominion bdcc11673a Minor update to Host Watchdog and Program.cs in Host 2023-04-21 00:54:38 -04:00
Dominion 458793d928 Buff time for repository long clone job test slightly 2023-04-17 12:16:17 -04:00
Dominion fb447938bf Documentation comment 2023-04-17 11:24:50 -04:00
Dominion a7333e5095 Fix Byond Test 2023-04-17 00:28:07 -04:00
Dominion fee7484447 Fix watchdog test 2023-04-17 00:08:49 -04:00
Dominion a719809c50 GitHub CI speedup attempt
- Switch off verbose console logger, should still run on errors.
- Add GitHubActionsTestLogger, use in CI.
- Pre-build integration tests to get better time metrics.
2023-04-16 23:47:37 -04:00
Dominion 9e72e47bbc Various cleanups and test parallelization
- Fix a bunch of linter messages
- Document whitebox testing
- Fix race condition in deployment test with BYOND install
2023-04-16 23:28:18 -04:00
Dominion fce684f407 Closes #1457
- Delay bridge requests while detached up to one minute before failing
- Add test coverage
2023-04-16 21:56:28 -04:00
Dominion ee99a799c2 Greatly speed up integration tests by cloning a small repo 2023-04-16 19:23:30 -04:00
Dominion 4926fef98a Watchdog tests improvements
- Reorganize Watchdog Tests slightly
- Add test for chat overloading
- Add additional error logging
2023-04-16 19:23:10 -04:00
Dominion 9e6c043383 Utilize commands for parallel SessionController/DMAPI chunking testing 2023-04-16 17:35:52 -04:00
Dominion 8552ba32b8 More DMAPI constants tests 2023-04-16 17:34:38 -04:00
Dominion 436858dd42 DMAPI Test adjustments
- Improved error Handling
- Fix compile error
- Add overload topic command test
2023-04-16 17:34:19 -04:00
Dominion 70689d8036 The big topic chunking commit
- Implemented topic request and response chunking
- Removed GitHub workflows from .sln as they are auto-detected
- Interop version bump to 5.6.0
- DMAPI version bump to 6.4.0
- Split common chunking code into its own DMAPI/v5 file
- Added DMAPI/v5 file just for all the new topic handling methods
- Fixed runtime errors duing Topic calls not being reported to TGS
- Fixed certain topic requests returning lists instead of JSON
- Bridge and topic response chunk handling merged into `BridgeRequestChunker` now just `Chunker`
- `CombinedTopicResponse` is no longer used outside of SessionController
2023-04-16 17:31:48 -04:00
Dominion 7cee137e43 Implement and test bridge request chunking
- Minor cleanups included
2023-04-15 20:18:03 -04:00
Dominion 1b6d9d5998 Minor message cleanups 2023-04-15 19:12:10 -04:00
Dominion da24b32cf0 Add and test DMAPI5_BRIDGE_REQUEST_LIMIT 2023-04-15 16:56:06 -04:00