Commit Graph
9876 Commits
Author SHA1 Message Date
Jordan DominionandGitHub d39737bcac Merge pull request #1537 from tgstation/MinorThing
Better error message when CI spuriously fails
2023-06-11 18:51:56 -04:00
Dominion d83baf79cb Very low effort dox updates 2023-06-11 18:07:00 -04:00
Dominion b37b1e9879 Better error message when CI spuriously fails 2023-06-11 17:58:31 -04:00
Jordan DominionandGitHub 5e6dc42a28 Merge pull request #1535 from tgstation/1495-NonGitHubUpdates
Non-GitHub Updates
2023-06-11 16:07:22 -04:00
Dominion cc6833ae1b Fix ZipToDirectory closing the input streams 2023-06-11 14:34:50 -04:00
Dominion d6615ee5f6 Rename a variable 2023-06-11 14:34:50 -04:00
Dominion 5a1e74f8cb Small semantics cleanup 2023-06-11 14:34:50 -04:00
Dominion 26660ae6d0 Fix possibility to drop bufferedStream here on OOM 2023-06-11 14:34:49 -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
Jordan DominionandGitHub 7e7a2ab967 Merge pull request #1534 from tgstation/ByondTopicUpdate
Update BYOND.TopicSender to 6.0.0
2023-06-11 12:12:14 -04:00
Dominion 709b2c514e Trying to track down elusive swarm update errors 2023-06-11 11:19:18 -04:00
Dominion 8950cc1a36 Catch potential IOExceptions when listing a config directory 2023-06-11 10:41:16 -04:00
Dominion 7e0d4a29b8 Add concurrency group to auto approve workflow 2023-06-11 10:39:29 -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 90517e653e Avoid locking swarmServers twice in PerpareUpdate 2023-06-11 10:05:10 -04:00
Dominion 5fa13fdf0f Minor log message tweak 2023-06-11 10:05:10 -04:00
Dominion cb6e80f65c Fix race condition in BufferedFileStreamProvider 2023-06-11 10:05:02 -04:00
Dominion bf170a3449 Merge branch 'dev' into 1495-NonGitHubUpdates 2023-06-11 02:40:12 -04:00
Dominion a747a14183 Fix line endings OS mismatch in TestFileDownloader 2023-06-11 02:39:41 -04:00
tgstation-server 03e01a1faf Merge branch 'master' into dev 2023-06-11 06:06:17 +00:00
Jordan DominionandGitHub 4388ec41aa Merge pull request #1536 from tgstation/Cyberboss-patch-1
Correct DMAPI Changelog entry name
2023-06-11 02:04:35 -04:00
Jordan DominionandGitHub 9b24c55c04 Correct DMAPI Changelog entry name 2023-06-10 21:27:03 -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 5c778e7ceb Merge branch 'dev' into 1495-NonGitHubUpdates 2023-06-10 17:33:39 -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
tgstation-server 5e7a2737b1 Merge branch 'master' into dev 2023-06-10 20:36:34 +00:00
Jordan DominionandGitHub c70bb39269 Merge pull request #1532 from tgstation/BuildFix
Fix CI: `mysqladmin` is gone in latest mariadb
2023-06-10 16:35:22 -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 160bd3165d Extract some Controller methods into extensions 2023-06-10 11:21:17 -04:00
Dominion 873b4cf8c8 Remove a superfluous file read 2023-06-10 11:21:17 -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
Jordan DominionandGitHub dbf186c4b8 Fix Auto Approve Workflow 2023-06-10 11:07:36 -04:00
Dominion 9ea8bdd457 mysqladmin is gone in latest mariadb
Use `mariadb-admin` instead. See https://github.com/MariaDB/mariadb-docker/issues/512
2023-06-10 10:54:04 -04:00
tgstation-server 3d71915af8 Merge branch 'master' into dev 2023-06-10 00:05:52 +00:00
Jordan DominionandGitHub 3597b47794 Merge pull request #1530 from tgstation/CodeQLVar
Variable for enabling CodeQL + Documentation Updates
2023-06-09 20:04:36 -04:00
Dominion eb0c631e84 Handler for another possible DumpTests exception 2023-06-09 13:41:34 -04:00
Dominion 34386e590a Fix bad IHttpClient usage in GenericOAuthValidator 2023-06-09 13:33:03 -04:00
Dominion 56741b8ddd Switch from bool to enum to increase specificity 2023-06-09 13:31:26 -04:00
Dominion 2930394baf Cleanup WatchdogTest 2023-06-09 13:25:29 -04:00
Dominion 35025c01f3 Fix an error in expired configuration uploads 2023-06-09 13:25:11 -04:00