Commit Graph

1420 Commits

Author SHA1 Message Date
Jordan a298ba4f1e Merge branch 'dev' into 1458-AddMapThreadsParam 2023-06-16 02:16:35 -04:00
Jordan Dominion ea4c5c4ef3 Merge pull request #1547 from tgstation/HeadTailPrePop
Populate `HeadInclude.dm` and `TailInclude.dm` on instance creation
2023-06-15 08:52:17 -04:00
Dominion fb47ad5ba6 Revert the config change for not using DD.exe
It presents complications with pre-existing TGS setup firewall rules.
2023-06-15 03:53:10 -04:00
Dominion 174ac5c760 Populate HeadInclude.dm and TailInclude.dm on instance creation 2023-06-15 03:32:21 -04:00
Dominion 1a3e0fe1c7 Configuration option to disable dd.exe usage
Fixed issues with testing bridge limits in 515.

Added LiveTests helper to get all DreamDaemon processes.

Assert Live tests port usage is >= 10000 to ensure we get maximum url length for bridge tests.
2023-06-15 03:30:32 -04:00
Dominion 6ad5f62ef2 Merge branch 'dev' of https://github.com/tgstation/tgstation-server into 1458-AddMapThreadsParam 2023-06-14 15:04:30 -04:00
Dominion 69af0acf5d Fix secure.byond.com links 2023-06-14 14:53:53 -04:00
Dominion 51b7792e15 CachingFileDownloader now builds the cache
- New global CI cache for BYOND zips
- VersionsTest now caches the BYOND versions it tests
- Move some classes around
2023-06-14 14:53:32 -04:00
Dominion 3a631709c0 Merge branch 'dev' into 1458-AddMapThreadsParam 2023-06-14 13:02:49 -04:00
Dominion 4471391b96 ValueTask Tgstation.Server.Client 2023-06-14 12:30:00 -04:00
Jordan Dominion 4f89cdb6b3 Merge branch 'dev' into HealthCheckHeartbeartContinuation 2023-06-14 11:44:41 -04:00
Dominion 0efe58fe6b Add new API fields for HealthChecks
- Migrate database to these
- Deprecate Heartbeat fields
2023-06-14 11:44:20 -04:00
Dominion 71753f5a44 ValueTask a bunch of Database Functions 2023-06-14 02:33:02 -04:00
Dominion 764724664c ValueTask ByondManager and ByondInstaller 2023-06-14 02:33:00 -04:00
tgstation-server 7db8db0ce7 Merge branch 'master' into dev 2023-06-14 05:59:17 +00:00
Dominion e1d98d3c2b Wait 10 minutes before timing out DB in GitHub Actions 2023-06-13 21:43:31 -04:00
Dominion d9110cefbe Simplify a new expression 2023-06-13 19:40:43 -04:00
Dominion c5d9122f20 Nuget Package updates
- Contains workaround for breaking change in Microsoft.Data.SqlClient
2023-06-13 19:40:28 -04:00
Dominion e6f142d927 Cleanup DummyChatProvider 2023-06-12 20:43:49 -04:00
Dominion 8af2ff539e Replace ifs with ArgumentNullException.ThrowIfNull 2023-06-12 20:43:29 -04:00
tgstation-server 2acebd4c2f Merge branch 'master' into dev 2023-06-11 22:53:08 +00:00
Dominion b37b1e9879 Better error message when CI spuriously fails 2023-06-11 17:58:31 -04:00
Dominion 223c017eb5 File transfer code cleanups 2023-06-11 14:34:48 -04:00
Dominion e9d4abe10d Merge branch 'dev' into 1495-NonGitHubUpdates 2023-06-11 13:13:25 -04:00
Dominion 3c779415f2 Merge branch 'master' into dev 2023-06-11 12:48:46 -04:00
Dominion 1e416e202b Update Byond.TopicSender to 7.0.1
Also note this pushes Microsoft.Extensions.Logging.Abstractions to 7.0.0

This fixes instabilities in topic serialization.

Probably fixes #1529
2023-06-11 10:36:48 -04:00
Dominion a747a14183 Fix line endings OS mismatch in TestFileDownloader 2023-06-11 02:39:41 -04:00
Dominion a1f26709db Add API support for uploading custom TGS updates
- New `ServerUpdateRequest` field `uploadZip`.
- New Administration permission for this.
- `ServerUpdateResponse` will now contain a transfer ticket if set.
- Live tests.

This is super easy after the work done in 09208ade36
2023-06-10 20:53:29 -04:00
Dominion e596110018 Clean up Tgstation.Server.Common
- Move classes to `Http` namespace.
- Give it a unique package version.
- Comment to make me not rage update Nuget libs to .NET 6.
2023-06-10 17:04:04 -04:00
Dominion 41c33684f6 Removes an unused using 2023-06-10 17:04:03 -04:00
Dominion 716fb0c5fd Extract some more constants into SwarmConstants
This stops a class coupling warning.
2023-06-10 17:04:03 -04:00
Dominion 6ae07f404a Massive readibility improvement for swarm updates
- Extract dubiously guarded `SwarmService` variables into `volatile` handler class with `Interlocked` writes.
- `SwarmService.Abort` can no longer be cancelled, but it short circuits more easily.
- Improved `SwarmRpcMapper`'s handling of `CancellationToken`s.
2023-06-10 17:03:59 -04:00
Dominion dfd903c140 Fix name of test class 2023-06-10 16:13:34 -04:00
Dominion 09208ade36 Swarm updates single source downloads
When running a distributed swarm server update, only the initiator server will download the update package directly from GitHub. It will then make the package available to the other nodes via a `SwarmController` hosted variant of the `FileTransferService` which they will use to retrieve their copies of the package.

Because of this, it's possible for the update package to be accessed via the regular `TransferController` duing this process. This is acceptable for three reasons:

- We use crytographically secure strings for the transfer service tickets
- If a malicious user steals one or more of the Swarm's update package tickets, the update will simply be aborted.
- An update package is not considered secure data what with this being OSS.
2023-06-10 16:13:29 -04:00
Dominion 2b3fa1fa0c Code cleanups in TestLiveServer 2023-06-10 12:32:52 -04:00
Dominion 1e0c4183fe Bunch of async file stream changes
- `DelayedFileDownloader` changed into `RequestFileStreamProvider` which provides a direct network stream.
- `CachedResponseStream` now only caches the `HttpContent` as opposed to the `HttpResponseMessage`.
- `IFileDownloader` now synchronously returns `IFileStreamProvider`s.
- `FileDownloader` now returns `RequestFileStreamProviders`.
- Added `ISeekableFileStreamProvider`.
- BufferedFileStreamProvider now implements `ISeekableFileStreamProvider`.
2023-06-10 12:30:41 -04:00
Dominion 70436803f0 Merge branch 'dev' into 1495-NonGitHubUpdates 2023-06-10 12:02:48 -04:00
Dominion c197641267 Make IFileDownloader return the network Stream directly 2023-06-10 11:21:15 -04:00
Dominion 22c3f591fe Allow specifying HttpCompletionOption in IHttpClient 2023-06-10 11:18:21 -04:00
tgstation-server 3d71915af8 Merge branch 'master' into dev 2023-06-10 00:05:52 +00:00
Dominion eb0c631e84 Handler for another possible DumpTests exception 2023-06-09 13:41:34 -04:00
Dominion 2930394baf Cleanup WatchdogTest 2023-06-09 13:25:29 -04:00
Dominion 3a6dfa8936 Make IFileStreamProvider more generic
- Move SetError up to IFileUploadTicket.
- Move from Transfer to IO namespace.
2023-06-09 13:23:37 -04:00
Dominion a8ae1e9e32 FileDownloader unit tests 2023-06-09 12:53:50 -04:00
Dominion ba6f085f21 Merge branch 'master' into dev 2023-06-08 08:30:22 -04:00
Dominion 425386a528 Another dump tests error fix 2023-06-07 19:31:41 -04:00
tgstation-server 746a932978 Merge branch 'master' into dev 2023-06-07 07:14:22 +00:00
Dominion e586102381 EVEN MORE DUMP TESTS EDGE CASES
I fucking hate this test
2023-06-06 23:17:01 -04:00
Dominion d41715c512 More dump tests edge cases 2023-06-06 23:05:27 -04:00
Dominion eba904e700 Fix a log message and dump tests edge case 2023-06-06 23:03:58 -04:00