cs-codex-dist-tests/CodexPlugin/Marketplace/GethCompanionNodeStarter.cs

78 lines
3.3 KiB
C#
Raw Normal View History

//using KubernetesWorkflow;
//using Utils;
//namespace DistTestCore.Marketplace
//{
// public class GethCompanionNodeStarter : BaseStarter
// {
// private int companionAccountIndex = 0;
// public GethCompanionNodeStarter(TestLifecycle lifecycle)
// : base(lifecycle)
// {
// }
// public GethCompanionNodeInfo StartCompanionNodeFor(CodexSetup codexSetup, MarketplaceNetwork marketplace)
// {
// LogStart($"Initializing companion for {codexSetup.NumberOfNodes} Codex nodes.");
// var config = CreateCompanionNodeStartupConfig(marketplace.Bootstrap, codexSetup.NumberOfNodes);
// var workflow = lifecycle.WorkflowCreator.CreateWorkflow();
// var containers = workflow.Start(1, Location.Unspecified, new GethContainerRecipe(), CreateStartupConfig(config));
// if (containers.Containers.Length != 1) throw new InvalidOperationException("Expected one Geth companion node to be created. Test infra failure.");
// var container = containers.Containers[0];
// var node = CreateCompanionInfo(container, marketplace, config);
// EnsureCompanionNodeIsSynced(node, marketplace);
// LogEnd($"Initialized one companion node for {codexSetup.NumberOfNodes} Codex nodes. Their accounts: [{string.Join(",", node.Accounts.Select(a => a.Account))}]");
// return node;
// }
// private GethCompanionNodeInfo CreateCompanionInfo(RunningContainer container, MarketplaceNetwork marketplace, GethStartupConfig config)
// {
// var accounts = ExtractAccounts(marketplace, config);
// return new GethCompanionNodeInfo(container, accounts);
// }
// private static GethAccount[] ExtractAccounts(MarketplaceNetwork marketplace, GethStartupConfig config)
// {
// return marketplace.Bootstrap.AllAccounts.Accounts
// .Skip(1 + config.CompanionAccountStartIndex)
// .Take(config.NumberOfCompanionAccounts)
// .ToArray();
// }
// private void EnsureCompanionNodeIsSynced(GethCompanionNodeInfo node, MarketplaceNetwork marketplace)
// {
// try
// {
// Time.WaitUntil(() =>
// {
// var interaction = node.StartInteraction(lifecycle, node.Accounts.First());
// return interaction.IsSynced(marketplace.Marketplace.Address, marketplace.Marketplace.Abi);
// }, TimeSpan.FromMinutes(1), TimeSpan.FromSeconds(3));
// }
// catch (Exception e)
// {
// throw new Exception("Geth companion node did not sync within timeout. Test infra failure.", e);
// }
// }
// private GethStartupConfig CreateCompanionNodeStartupConfig(GethBootstrapNodeInfo bootstrapNode, int numberOfAccounts)
// {
// var config = new GethStartupConfig(false, bootstrapNode, companionAccountIndex, numberOfAccounts);
// companionAccountIndex += numberOfAccounts;
// return config;
// }
// private StartupConfig CreateStartupConfig(GethStartupConfig gethConfig)
// {
// var config = new StartupConfig();
// config.Add(gethConfig);
// return config;
// }
// }
//}