78 lines
3.3 KiB
C#
78 lines
3.3 KiB
C#
//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;
|
|
// }
|
|
// }
|
|
//}
|