Better logging
This commit is contained in:
parent
7e6de4146e
commit
e4e7afd580
|
@ -8,6 +8,11 @@
|
|||
}
|
||||
|
||||
public long SizeInBytes { get; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"{SizeInBytes} bytes";
|
||||
}
|
||||
}
|
||||
|
||||
public static class ByteSizeIntExtensions
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using KubernetesWorkflow;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace DistTestCore.Codex
|
||||
{
|
||||
|
|
|
@ -5,7 +5,7 @@ namespace DistTestCore.Codex
|
|||
{
|
||||
public class CodexContainerRecipe : ContainerRecipeFactory
|
||||
{
|
||||
public const string DockerImage = "thatbenbierens/nim-codex:sha-b204837";
|
||||
public const string DockerImage = "thatbenbierens/nim-codex:sha-bf5512b";
|
||||
public const string MetricsPortTag = "metrics_port";
|
||||
|
||||
protected override string Image => DockerImage;
|
||||
|
|
|
@ -84,7 +84,7 @@ namespace DistTestCore
|
|||
{
|
||||
if (LogLevel != null) yield return $"LogLevel={LogLevel}";
|
||||
//if (BootstrapNode != null) yield return "BootstrapNode=set-not-shown-here";
|
||||
if (StorageQuota != null) yield return $"StorageQuote={StorageQuota.SizeInBytes}";
|
||||
if (StorageQuota != null) yield return $"StorageQuote={StorageQuota}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ namespace DistTestCore
|
|||
|
||||
LogStart("Setting up initial balance...");
|
||||
TransferInitialBalance(marketplaceNetwork, codexSetup.MarketplaceConfig, companionNodes);
|
||||
LogEnd($"Initial balance of {codexSetup.MarketplaceConfig.InitialTestTokens.Amount} TestTokens set for {codexSetup.NumberOfNodes} nodes.");
|
||||
LogEnd($"Initial balance of {codexSetup.MarketplaceConfig.InitialTestTokens} set for {codexSetup.NumberOfNodes} nodes.");
|
||||
|
||||
return CreateGethStartResult(marketplaceNetwork, companionNodes);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ using Logging;
|
|||
using NUnit.Framework;
|
||||
using NUnit.Framework.Constraints;
|
||||
using System.Numerics;
|
||||
using Utils;
|
||||
|
||||
namespace DistTestCore.Marketplace
|
||||
{
|
||||
|
@ -11,7 +12,7 @@ namespace DistTestCore.Marketplace
|
|||
string MakeStorageAvailable(ByteSize size, TestToken minPricePerBytePerSecond, TestToken maxCollateral, TimeSpan maxDuration);
|
||||
string RequestStorage(ContentId contentId, TestToken pricePerBytePerSecond, TestToken requiredCollateral, uint minRequiredNumberOfNodes, int proofProbability, TimeSpan duration);
|
||||
void AssertThatBalance(IResolveConstraint constraint, string message = "");
|
||||
decimal GetBalance();
|
||||
TestToken GetBalance();
|
||||
}
|
||||
|
||||
public class MarketplaceAccess : IMarketplaceAccess
|
||||
|
@ -42,23 +43,40 @@ namespace DistTestCore.Marketplace
|
|||
tolerance = null,
|
||||
};
|
||||
|
||||
Log($"Requesting storage for: {contentId.Id}... (" +
|
||||
$"pricePerBytePerSecond: {pricePerBytePerSecond}," +
|
||||
$"requiredCollateral: {requiredCollateral}," +
|
||||
$"minRequiredNumberOfNodes: {minRequiredNumberOfNodes}," +
|
||||
$"proofProbability: {proofProbability}," +
|
||||
$"duration: {Time.FormatDuration(duration)})");
|
||||
|
||||
var response = codexAccess.RequestStorage(request, contentId.Id);
|
||||
|
||||
Log($"Storage requested successfully. PurchaseId: {response.purchaseId}");
|
||||
|
||||
return response.purchaseId;
|
||||
}
|
||||
|
||||
public string MakeStorageAvailable(ByteSize size, TestToken minPricePerBytePerSecond, TestToken maxCollateral, TimeSpan duration)
|
||||
public string MakeStorageAvailable(ByteSize size, TestToken minPricePerBytePerSecond, TestToken maxCollateral, TimeSpan maxDuration)
|
||||
{
|
||||
var request = new CodexSalesAvailabilityRequest
|
||||
{
|
||||
size = ToHexBigInt(size.SizeInBytes),
|
||||
duration = ToHexBigInt(duration.TotalSeconds),
|
||||
duration = ToHexBigInt(maxDuration.TotalSeconds),
|
||||
maxCollateral = ToHexBigInt(maxCollateral),
|
||||
minPrice = ToHexBigInt(minPricePerBytePerSecond)
|
||||
};
|
||||
|
||||
Log($"Making storage available... (" +
|
||||
$"size: {size}," +
|
||||
$"minPricePerBytePerSecond: {minPricePerBytePerSecond}," +
|
||||
$"maxCollateral: {maxCollateral}," +
|
||||
$"maxDuration: {Time.FormatDuration(maxDuration)}");
|
||||
|
||||
var response = codexAccess.SalesAvailability(request);
|
||||
|
||||
Log($"Storage successfully made available. Id: {response.id}");
|
||||
|
||||
return response.id;
|
||||
}
|
||||
|
||||
|
@ -78,10 +96,21 @@ namespace DistTestCore.Marketplace
|
|||
Assert.That(GetBalance(), constraint, message);
|
||||
}
|
||||
|
||||
public decimal GetBalance()
|
||||
public TestToken GetBalance()
|
||||
{
|
||||
var interaction = marketplaceNetwork.StartInteraction(log);
|
||||
return interaction.GetBalance(marketplaceNetwork.Marketplace.TokenAddress, companionNode.Account);
|
||||
var account = companionNode.Account;
|
||||
var amount = interaction.GetBalance(marketplaceNetwork.Marketplace.TokenAddress, account);
|
||||
var balance = new TestToken(amount);
|
||||
|
||||
Log($"Balance of {codexAccess.Container.GetName()}({account}) is {balance}.");
|
||||
|
||||
return balance;
|
||||
}
|
||||
|
||||
private void Log(string msg)
|
||||
{
|
||||
log.Log(msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -104,10 +133,10 @@ namespace DistTestCore.Marketplace
|
|||
Unavailable();
|
||||
}
|
||||
|
||||
public decimal GetBalance()
|
||||
public TestToken GetBalance()
|
||||
{
|
||||
Unavailable();
|
||||
return 0;
|
||||
return new TestToken(0);
|
||||
}
|
||||
|
||||
private void Unavailable()
|
||||
|
|
|
@ -40,7 +40,7 @@ namespace DistTestCore
|
|||
|
||||
public string GetName()
|
||||
{
|
||||
return $"<{CodexAccess.Container.Recipe.Name}>";
|
||||
return CodexAccess.Container.GetName();
|
||||
}
|
||||
|
||||
public CodexDebugResponse GetDebugInfo()
|
||||
|
|
|
@ -18,6 +18,11 @@
|
|||
}
|
||||
|
||||
public decimal Amount { get; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"{Amount} TestTokens";
|
||||
}
|
||||
}
|
||||
|
||||
public static class TokensIntExtensions
|
||||
|
|
|
@ -28,6 +28,11 @@
|
|||
ServicePorts = servicePorts;
|
||||
}
|
||||
|
||||
public string GetName()
|
||||
{
|
||||
return $"<{Recipe.Name}>";
|
||||
}
|
||||
|
||||
public RunningPod Pod { get; }
|
||||
public ContainerRecipe Recipe { get; }
|
||||
public Port[] ServicePorts { get; }
|
||||
|
|
|
@ -61,10 +61,7 @@ namespace NethereumWorkflow
|
|||
};
|
||||
|
||||
var handler = web3.Eth.GetContractQueryHandler<GetTokenBalanceFunction>();
|
||||
var result = ToDecimal(Time.Wait(handler.QueryAsync<BigInteger>(tokenAddress, function)));
|
||||
|
||||
Log($"Balance of {account} is {result} TestTokens.");
|
||||
return result;
|
||||
return ToDecimal(Time.Wait(handler.QueryAsync<BigInteger>(tokenAddress, function)));
|
||||
}
|
||||
|
||||
public void WaitForAllTransactions()
|
||||
|
@ -87,20 +84,10 @@ namespace NethereumWorkflow
|
|||
return new BigInteger(amount);
|
||||
}
|
||||
|
||||
private decimal ToDecimal(HexBigInteger hexBigInteger)
|
||||
{
|
||||
return (decimal)hexBigInteger.Value;
|
||||
}
|
||||
|
||||
private decimal ToDecimal(BigInteger bigInteger)
|
||||
{
|
||||
return (decimal)bigInteger;
|
||||
}
|
||||
|
||||
private void Log(string msg)
|
||||
{
|
||||
log.Log(msg);
|
||||
}
|
||||
}
|
||||
|
||||
[Function("token", "address")]
|
||||
|
|
|
@ -63,7 +63,6 @@ namespace Tests.BasicTests
|
|||
|
||||
primary.ConnectToPeer(secondary);
|
||||
|
||||
// Gives 503 - Persistance not enabled in current codex image.
|
||||
primary.Marketplace.MakeStorageAvailable(
|
||||
size: 10.GB(),
|
||||
minPricePerBytePerSecond: 1.TestTokens(),
|
||||
|
@ -73,7 +72,6 @@ namespace Tests.BasicTests
|
|||
var testFile = GenerateTestFile(10.MB());
|
||||
var contentId = secondary.UploadFile(testFile);
|
||||
|
||||
// Gives 500 - Persistance not enabled in current codex image.
|
||||
secondary.Marketplace.RequestStorage(contentId,
|
||||
pricePerBytePerSecond: 2.TestTokens(),
|
||||
requiredCollateral: 10.TestTokens(),
|
||||
|
|
Loading…
Reference in New Issue