mirror of
https://github.com/logos-storage/logos-storage-nim-cs-dist-tests.git
synced 2026-01-07 16:03:07 +00:00
Sets up rewarder bot container recipe
This commit is contained in:
parent
cb259a9086
commit
7d33c1c113
@ -35,6 +35,12 @@ namespace CodexDiscordBotPlugin
|
|||||||
return StartContainer(workflow, config);
|
return StartContainer(workflow, config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public RunningContainers DeployRewarder(RewarderBotStartupConfig config)
|
||||||
|
{
|
||||||
|
var workflow = tools.CreateWorkflow();
|
||||||
|
return StartRewarderContainer(workflow, config);
|
||||||
|
}
|
||||||
|
|
||||||
private RunningContainers StartContainer(IStartupWorkflow workflow, DiscordBotStartupConfig config)
|
private RunningContainers StartContainer(IStartupWorkflow workflow, DiscordBotStartupConfig config)
|
||||||
{
|
{
|
||||||
var startupConfig = new StartupConfig();
|
var startupConfig = new StartupConfig();
|
||||||
@ -42,5 +48,12 @@ namespace CodexDiscordBotPlugin
|
|||||||
startupConfig.Add(config);
|
startupConfig.Add(config);
|
||||||
return workflow.Start(1, new DiscordBotContainerRecipe(), startupConfig);
|
return workflow.Start(1, new DiscordBotContainerRecipe(), startupConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private RunningContainers StartRewarderContainer(IStartupWorkflow workflow, RewarderBotStartupConfig config)
|
||||||
|
{
|
||||||
|
var startupConfig = new StartupConfig();
|
||||||
|
startupConfig.Add(config);
|
||||||
|
return workflow.Start(1, new RewarderBotContainerRecipe(), startupConfig);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,6 +10,11 @@ namespace CodexDiscordBotPlugin
|
|||||||
return Plugin(ci).Deploy(config);
|
return Plugin(ci).Deploy(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static RunningContainers DeployRewarderBot(this CoreInterface ci, RewarderBotStartupConfig config)
|
||||||
|
{
|
||||||
|
return Plugin(ci).DeployRewarder(config);
|
||||||
|
}
|
||||||
|
|
||||||
private static CodexDiscordBotPlugin Plugin(CoreInterface ci)
|
private static CodexDiscordBotPlugin Plugin(CoreInterface ci)
|
||||||
{
|
{
|
||||||
return ci.GetPlugin<CodexDiscordBotPlugin>();
|
return ci.GetPlugin<CodexDiscordBotPlugin>();
|
||||||
|
|||||||
@ -23,6 +23,26 @@
|
|||||||
public string? DataPath { get; set; }
|
public string? DataPath { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class RewarderBotStartupConfig
|
||||||
|
{
|
||||||
|
public RewarderBotStartupConfig(string discordBotHost, int discordBotPort, TimeSpan interval, DateTime historyStartUtc, DiscordBotGethInfo gethInfo, string? dataPath)
|
||||||
|
{
|
||||||
|
DiscordBotHost = discordBotHost;
|
||||||
|
DiscordBotPort = discordBotPort;
|
||||||
|
Interval = interval;
|
||||||
|
HistoryStartUtc = historyStartUtc;
|
||||||
|
GethInfo = gethInfo;
|
||||||
|
DataPath = dataPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string DiscordBotHost { get; }
|
||||||
|
public int DiscordBotPort { get; }
|
||||||
|
public TimeSpan Interval { get; }
|
||||||
|
public DateTime HistoryStartUtc { get; }
|
||||||
|
public DiscordBotGethInfo GethInfo { get; }
|
||||||
|
public string? DataPath { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
public class DiscordBotGethInfo
|
public class DiscordBotGethInfo
|
||||||
{
|
{
|
||||||
public DiscordBotGethInfo(string host, int port, string privKey, string marketplaceAddress, string tokenAddress, string abi)
|
public DiscordBotGethInfo(string host, int port, string privKey, string marketplaceAddress, string tokenAddress, string abi)
|
||||||
|
|||||||
@ -0,0 +1,39 @@
|
|||||||
|
using KubernetesWorkflow.Recipe;
|
||||||
|
using KubernetesWorkflow;
|
||||||
|
using Utils;
|
||||||
|
|
||||||
|
namespace CodexDiscordBotPlugin
|
||||||
|
{
|
||||||
|
public class RewarderBotContainerRecipe : ContainerRecipeFactory
|
||||||
|
{
|
||||||
|
public override string AppName => "discordbot-rewarder";
|
||||||
|
public override string Image => "codexstorage/codex-rewarderbot";
|
||||||
|
|
||||||
|
protected override void Initialize(StartupConfig startupConfig)
|
||||||
|
{
|
||||||
|
var config = startupConfig.Get<RewarderBotStartupConfig>();
|
||||||
|
|
||||||
|
SetSchedulingAffinity(notIn: "false");
|
||||||
|
|
||||||
|
AddEnvVar("DISCORDBOTHOST", config.DiscordBotHost);
|
||||||
|
AddEnvVar("DISCORDBOTPORT", config.DiscordBotPort.ToString());
|
||||||
|
AddEnvVar("INTERVALMINUTES", config.Interval.TotalMinutes.ToString());
|
||||||
|
var offset = new DateTimeOffset(config.HistoryStartUtc);
|
||||||
|
AddEnvVar("CHECKHISTORY", offset.ToUnixTimeSeconds().ToString());
|
||||||
|
|
||||||
|
var gethInfo = config.GethInfo;
|
||||||
|
AddEnvVar("GETH_HOST", gethInfo.Host);
|
||||||
|
AddEnvVar("GETH_HTTP_PORT", gethInfo.Port.ToString());
|
||||||
|
AddEnvVar("GETH_PRIVATE_KEY", gethInfo.PrivKey);
|
||||||
|
AddEnvVar("CODEXCONTRACTS_MARKETPLACEADDRESS", gethInfo.MarketplaceAddress);
|
||||||
|
AddEnvVar("CODEXCONTRACTS_TOKENADDRESS", gethInfo.TokenAddress);
|
||||||
|
AddEnvVar("CODEXCONTRACTS_ABI", gethInfo.Abi);
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(config.DataPath))
|
||||||
|
{
|
||||||
|
AddEnvVar("DATAPATH", config.DataPath);
|
||||||
|
AddVolume(config.DataPath, 1.GB());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user