Merge pull request #1254 from tgstation/dev [TGSDeploy][DMDeploy]

v4.11.0
This commit is contained in:
Jordan Brown
2021-05-06 11:57:54 -04:00
committed by GitHub
6 changed files with 36 additions and 4 deletions
+2 -2
View File
@@ -3,12 +3,12 @@
<!-- Integration tests will ensure they match across the board -->
<Import Project="ControlPanelVersion.props" />
<PropertyGroup>
<TgsCoreVersion>4.10.6</TgsCoreVersion>
<TgsCoreVersion>4.11.0</TgsCoreVersion>
<TgsConfigVersion>3.0.0</TgsConfigVersion>
<TgsApiVersion>9.0.1</TgsApiVersion>
<TgsApiLibraryVersion>9.0.0</TgsApiLibraryVersion>
<TgsClientVersion>10.0.0</TgsClientVersion>
<TgsDmapiVersion>6.0.3</TgsDmapiVersion>
<TgsDmapiVersion>6.0.4</TgsDmapiVersion>
<TgsInteropVersion>5.3.0</TgsInteropVersion>
<TgsHostWatchdogVersion>1.1.1</TgsHostWatchdogVersion>
<TgsContainerScriptVersion>1.2.0</TgsContainerScriptVersion>
+3 -1
View File
@@ -1,6 +1,6 @@
// tgstation-server DMAPI
#define TGS_DMAPI_VERSION "6.0.3"
#define TGS_DMAPI_VERSION "6.0.4"
// All functions and datums outside this document are subject to change with any version and should not be relied on.
@@ -102,6 +102,8 @@
// #define TGS_EVENT_WORLD_REBOOT 20
/// Watchdog event when TgsInitializationComplete() is called. No parameters.
#define TGS_EVENT_WORLD_PRIME 21
// DMAPI also doesnt implement this
// #define TGS_EVENT_DREAM_DAEMON_LAUNCH 22
// OTHER ENUMS
@@ -137,5 +137,11 @@ namespace Tgstation.Server.Host.Components.Events
/// </summary>
[EventScript("WorldPrime")]
WorldPrime,
/// <summary>
/// After DD has launched. Not the same as WatchdogLaunch. Parameters: PID of DreamDaemon
/// </summary>
[EventScript("DreamDaemonLaunch")]
DreamDaemonLaunch,
}
}
@@ -271,6 +271,7 @@ namespace Tgstation.Server.Host.Components
platformIdentifier,
bridgeRegistrar,
serverPortProvider,
eventConsumer,
loggerFactory,
loggerFactory.CreateLogger<SessionControllerFactory>(),
metadata);
@@ -1,4 +1,4 @@
using System.Threading;
using System.Threading;
using System.Threading.Tasks;
using Tgstation.Server.Api.Models.Internal;
using Tgstation.Server.Host.Components.Byond;
@@ -1,5 +1,6 @@
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Net.Sockets;
using System.Text;
@@ -11,6 +12,7 @@ using Tgstation.Server.Api.Models.Internal;
using Tgstation.Server.Host.Components.Byond;
using Tgstation.Server.Host.Components.Chat;
using Tgstation.Server.Host.Components.Deployment;
using Tgstation.Server.Host.Components.Events;
using Tgstation.Server.Host.Components.Interop;
using Tgstation.Server.Host.Components.Interop.Bridge;
using Tgstation.Server.Host.Core;
@@ -80,6 +82,11 @@ namespace Tgstation.Server.Host.Components.Session
/// </summary>
readonly IServerPortProvider serverPortProvider;
/// <summary>
/// The <see cref="IEventConsumer"/> for the <see cref="SessionControllerFactory"/>
/// </summary>
readonly IEventConsumer eventConsumer;
/// <summary>
/// The <see cref="ILoggerFactory"/> for the <see cref="SessionControllerFactory"/>
/// </summary>
@@ -95,6 +102,8 @@ namespace Tgstation.Server.Host.Components.Session
/// </summary>
readonly Api.Models.Instance instance;
/// <summary>
/// Change a given <paramref name="securityLevel"/> into the appropriate DreamDaemon command line word
/// </summary>
@@ -145,6 +154,7 @@ namespace Tgstation.Server.Host.Components.Session
/// <param name="serverPortProvider">The value of <see cref="serverPortProvider"/>.</param>
/// <param name="loggerFactory">The value of <see cref="loggerFactory"/></param>
/// <param name="logger">The value of <see cref="logger"/>.</param>
/// <param name="eventConsumer">The value of <see cref="EventConsumer"/>.</param>
public SessionControllerFactory(
IProcessExecutor processExecutor,
IByondManager byond,
@@ -157,6 +167,7 @@ namespace Tgstation.Server.Host.Components.Session
IPlatformIdentifier platformIdentifier,
IBridgeRegistrar bridgeRegistrar,
IServerPortProvider serverPortProvider,
EventConsumer eventConsumer,
ILoggerFactory loggerFactory,
ILogger<SessionControllerFactory> logger,
Api.Models.Instance instance)
@@ -173,6 +184,7 @@ namespace Tgstation.Server.Host.Components.Session
this.platformIdentifier = platformIdentifier ?? throw new ArgumentNullException(nameof(platformIdentifier));
this.bridgeRegistrar = bridgeRegistrar ?? throw new ArgumentNullException(nameof(bridgeRegistrar));
this.serverPortProvider = serverPortProvider ?? throw new ArgumentNullException(nameof(serverPortProvider));
this.eventConsumer = eventConsumer ?? throw new ArgumentNullException(nameof(eventConsumer));
this.loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
}
@@ -345,6 +357,17 @@ namespace Tgstation.Server.Host.Components.Session
false,
apiValidate);
// If this isnt a staging DD (From a Deployment), fire off an event
if (!apiValidate)
await eventConsumer.HandleEvent(
EventType.DreamDaemonLaunch,
new List<string>
{
process.Id.ToString(CultureInfo.InvariantCulture)
},
cancellationToken)
.ConfigureAwait(false);
return sessionController;
}
catch