Fetch account string for each geth companion node
This commit is contained in:
parent
230f9f3bd0
commit
388aacf71c
|
@ -30,23 +30,27 @@ namespace CodexDistTestCore
|
||||||
|
|
||||||
public ICodexNodeGroup BringOnline(OfflineCodexNodes offline)
|
public ICodexNodeGroup BringOnline(OfflineCodexNodes offline)
|
||||||
{
|
{
|
||||||
var online = CreateOnlineCodexNodes(offline);
|
var group = CreateOnlineCodexNodes(offline);
|
||||||
|
|
||||||
if (offline.MarketplaceConfig != null)
|
if (offline.MarketplaceConfig != null)
|
||||||
{
|
{
|
||||||
online.GethInfo = BringOnlineMarketplace();
|
group.GethInfo = BringOnlineMarketplace();
|
||||||
}
|
}
|
||||||
|
|
||||||
K8s(k => k.BringOnline(online, offline));
|
K8s(k => k.BringOnline(group, offline));
|
||||||
|
|
||||||
log.Log($"{online.Describe()} online.");
|
|
||||||
|
|
||||||
if (offline.MetricsEnabled)
|
if (offline.MetricsEnabled)
|
||||||
{
|
{
|
||||||
BringOnlineMetrics(online);
|
BringOnlineMetrics(group);
|
||||||
|
}
|
||||||
|
if (offline.MarketplaceConfig != null)
|
||||||
|
{
|
||||||
|
ConnectMarketplace(group);
|
||||||
}
|
}
|
||||||
|
|
||||||
return online;
|
log.Log($"{group.Describe()} online.");
|
||||||
|
|
||||||
|
return group;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IOfflineCodexNodes BringOffline(ICodexNodeGroup node)
|
public IOfflineCodexNodes BringOffline(ICodexNodeGroup node)
|
||||||
|
@ -109,6 +113,21 @@ namespace CodexDistTestCore
|
||||||
return marketplaceController.BringOnlineMarketplace();
|
return marketplaceController.BringOnlineMarketplace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ConnectMarketplace(CodexNodeGroup group)
|
||||||
|
{
|
||||||
|
foreach (var node in DowncastNodes(group))
|
||||||
|
{
|
||||||
|
ConnectMarketplace(group, node);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ConnectMarketplace(CodexNodeGroup group, OnlineCodexNode node)
|
||||||
|
{
|
||||||
|
var access = new MarketplaceAccess(this, log);
|
||||||
|
access.Initialize(group.PodInfo!, node.Container.GethCompanionNodeContainer!);
|
||||||
|
node.Marketplace = access;
|
||||||
|
}
|
||||||
|
|
||||||
private CodexNodeGroup CreateOnlineCodexNodes(OfflineCodexNodes offline)
|
private CodexNodeGroup CreateOnlineCodexNodes(OfflineCodexNodes offline)
|
||||||
{
|
{
|
||||||
var containers = CreateContainers(offline);
|
var containers = CreateContainers(offline);
|
||||||
|
|
|
@ -6,6 +6,8 @@ namespace CodexDistTestCore.Marketplace
|
||||||
public static class GethDockerImage
|
public static class GethDockerImage
|
||||||
{
|
{
|
||||||
public const string Image = "thatbenbierens/geth-confenv:latest";
|
public const string Image = "thatbenbierens/geth-confenv:latest";
|
||||||
|
public const string AccountFilename = "account_string.txt";
|
||||||
|
public const string GenesisFilename = "genesis.json";
|
||||||
}
|
}
|
||||||
|
|
||||||
public class K8sGethBoostrapSpecs
|
public class K8sGethBoostrapSpecs
|
||||||
|
|
|
@ -13,6 +13,33 @@ namespace CodexDistTestCore.Marketplace
|
||||||
|
|
||||||
public class MarketplaceAccess : IMarketplaceAccess
|
public class MarketplaceAccess : IMarketplaceAccess
|
||||||
{
|
{
|
||||||
|
private readonly K8sManager k8sManager;
|
||||||
|
private readonly TestLog log;
|
||||||
|
private string account = string.Empty;
|
||||||
|
|
||||||
|
public MarketplaceAccess(K8sManager k8sManager, TestLog log)
|
||||||
|
{
|
||||||
|
this.k8sManager = k8sManager;
|
||||||
|
this.log = log;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Initialize(PodInfo pod, GethCompanionNodeContainer gethCompanionNodeContainer)
|
||||||
|
{
|
||||||
|
FetchAccount(pod, gethCompanionNodeContainer);
|
||||||
|
if (string.IsNullOrEmpty(account))
|
||||||
|
{
|
||||||
|
Thread.Sleep(TimeSpan.FromSeconds(15));
|
||||||
|
FetchAccount(pod, gethCompanionNodeContainer);
|
||||||
|
}
|
||||||
|
Assert.That(account, Is.Not.Empty, "Unable to fetch account for geth companion node. Test infra failure.");
|
||||||
|
log.Log($"Initialized Geth companion node with account '{account}'");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FetchAccount(PodInfo pod, GethCompanionNodeContainer gethCompanionNodeContainer)
|
||||||
|
{
|
||||||
|
account = k8sManager.ExecuteCommand(pod, gethCompanionNodeContainer.Name, "cat", GethDockerImage.AccountFilename);
|
||||||
|
}
|
||||||
|
|
||||||
public void AdvertiseContract(ContentId contentId, float maxPricePerMBPerSecond, float minRequiredCollateral, float minRequiredNumberOfDuplicates)
|
public void AdvertiseContract(ContentId contentId, float maxPricePerMBPerSecond, float minRequiredCollateral, float minRequiredNumberOfDuplicates)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
|
|
|
@ -38,16 +38,18 @@ namespace CodexDistTestCore.Marketplace
|
||||||
FetchAccountAndGenesisJson();
|
FetchAccountAndGenesisJson();
|
||||||
}
|
}
|
||||||
|
|
||||||
Assert.That(bootstrapAccount, Is.Not.Empty, "Unable to fetch account for bootstrap geth node. Test infra failure.");
|
Assert.That(bootstrapAccount, Is.Not.Empty, "Unable to fetch account for geth bootstrap node. Test infra failure.");
|
||||||
Assert.That(bootstrapGenesisJson, Is.Not.Empty, "Unable to fetch genesis-json for bootstrap geth node. Test infra failure.");
|
Assert.That(bootstrapGenesisJson, Is.Not.Empty, "Unable to fetch genesis-json for geth bootstrap node. Test infra failure.");
|
||||||
|
|
||||||
gethBootstrapNode!.GenesisJsonBase64 = Convert.ToBase64String(Encoding.ASCII.GetBytes(bootstrapGenesisJson));
|
gethBootstrapNode!.GenesisJsonBase64 = Convert.ToBase64String(Encoding.ASCII.GetBytes(bootstrapGenesisJson));
|
||||||
|
|
||||||
|
log.Log($"Initialized geth bootstrap node with account '{bootstrapAccount}'");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FetchAccountAndGenesisJson()
|
private void FetchAccountAndGenesisJson()
|
||||||
{
|
{
|
||||||
bootstrapAccount = ExecuteCommand("cat", "account_string.txt");
|
bootstrapAccount = ExecuteCommand("cat", GethDockerImage.AccountFilename);
|
||||||
bootstrapGenesisJson = ExecuteCommand("cat", "genesis.json");
|
bootstrapGenesisJson = ExecuteCommand("cat", GethDockerImage.GenesisFilename);
|
||||||
}
|
}
|
||||||
|
|
||||||
private string ExecuteCommand(string command, params string[] arguments)
|
private string ExecuteCommand(string command, params string[] arguments)
|
||||||
|
|
Loading…
Reference in New Issue