Skip to content

Commit c9fedac

Browse files
committed
Adds call to get availabilities
1 parent cedec0d commit c9fedac

File tree

12 files changed

+66
-10
lines changed

12 files changed

+66
-10
lines changed

Framework/KubernetesWorkflow/Types/RunningContainer.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,12 @@ public RunningContainer(string id, string name, ContainerRecipe recipe, Containe
2424
[JsonIgnore]
2525
public RunningPod RunningPod { get; internal set; } = null!;
2626

27-
public Address GetAddress(ILog log, string portTag)
27+
public Address GetAddress(string portTag)
2828
{
2929
var addresses = Addresses.Where(a => a.PortTag == portTag).ToArray();
3030
if (!addresses.Any()) throw new Exception("No addresses found for portTag: " + portTag);
3131

3232
var select = SelectAddress(addresses);
33-
log.Debug($"Container '{Name}' selected for tag '{portTag}' address: '{select}'");
3433
return select.Address;
3534
}
3635

ProjectPlugins/CodexContractsPlugin/CodexContractsContainerRecipe.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ protected override void Initialize(StartupConfig startupConfig)
1919
{
2020
var config = startupConfig.Get<CodexContractsContainerConfig>();
2121

22-
var address = config.GethNode.StartResult.Container.GetAddress(new NullLog(), GethContainerRecipe.HttpPortTag);
22+
var address = config.GethNode.StartResult.Container.GetAddress(GethContainerRecipe.HttpPortTag);
2323

2424
SetSchedulingAffinity(notIn: "false");
2525

ProjectPlugins/CodexPlugin/CodexAccess.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,12 @@ public StorageAvailability SalesAvailability(StorageAvailability request)
9292
return mapper.Map(read);
9393
}
9494

95+
public StorageAvailability[] GetAvailabilities()
96+
{
97+
var collection = OnCodex<ICollection<SalesAvailability>>(api => api.GetOfferedStorageAsync());
98+
return mapper.Map(collection);
99+
}
100+
95101
public string RequestStorage(StoragePurchaseRequest request)
96102
{
97103
var body = mapper.Map(request);
@@ -189,7 +195,7 @@ private IEndpoint GetEndpoint()
189195

190196
private Address GetAddress()
191197
{
192-
return Container.Containers.Single().GetAddress(log, CodexContainerRecipe.ApiPortTag);
198+
return Container.Containers.Single().GetAddress(CodexContainerRecipe.ApiPortTag);
193199
}
194200

195201
private string GetHttpId()

ProjectPlugins/CodexPlugin/Mapper.cs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,25 @@ public CodexOpenApi.StorageRequestCreation Map(StoragePurchaseRequest purchase)
6363
};
6464
}
6565

66+
public StorageAvailability[] Map(ICollection<SalesAvailability> availabilities)
67+
{
68+
return availabilities.Select(a => Map(a)).ToArray();
69+
}
70+
71+
public StorageAvailability Map(SalesAvailability availability)
72+
{
73+
return new StorageAvailability
74+
(
75+
ToByteSize(availability.TotalSize),
76+
ToTimespan(availability.Duration),
77+
new TestToken(ToBigIng(availability.MinPrice)),
78+
new TestToken(ToBigIng(availability.MaxCollateral))
79+
)
80+
{
81+
Id = availability.Id,
82+
};
83+
}
84+
6685
// TODO: Fix openapi spec for this call.
6786
//public StoragePurchase Map(CodexOpenApi.Purchase purchase)
6887
//{
@@ -222,5 +241,20 @@ private string ToDecInt(TestToken t)
222241
{
223242
return t.TstWei.ToString("D");
224243
}
244+
245+
private BigInteger ToBigIng(string tokens)
246+
{
247+
return BigInteger.Parse(tokens);
248+
}
249+
250+
private TimeSpan ToTimespan(string duration)
251+
{
252+
return TimeSpan.FromSeconds(Convert.ToInt32(duration));
253+
}
254+
255+
private ByteSize ToByteSize(string size)
256+
{
257+
return new ByteSize(Convert.ToInt64(size));
258+
}
225259
}
226260
}

ProjectPlugins/CodexPlugin/MarketplaceAccess.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ namespace CodexPlugin
77
public interface IMarketplaceAccess
88
{
99
string MakeStorageAvailable(StorageAvailability availability);
10+
StorageAvailability[] GetAvailabilities();
1011
IStoragePurchaseContract RequestStorage(StoragePurchaseRequest purchase);
1112
}
1213

@@ -61,6 +62,14 @@ public string MakeStorageAvailable(StorageAvailability availability)
6162
return response.Id;
6263
}
6364

65+
public StorageAvailability[] GetAvailabilities()
66+
{
67+
var result = codexAccess.GetAvailabilities();
68+
Log($"Got {result.Length} availabilities:");
69+
foreach (var a in result) a.Log(log);
70+
return result;
71+
}
72+
6473
private void Log(string msg)
6574
{
6675
log.Log($"{codexAccess.Container.Containers.Single().Name} {msg}");
@@ -81,6 +90,12 @@ public IStoragePurchaseContract RequestStorage(StoragePurchaseRequest purchase)
8190
throw new NotImplementedException();
8291
}
8392

93+
public StorageAvailability[] GetAvailabilities()
94+
{
95+
Unavailable();
96+
throw new NotImplementedException();
97+
}
98+
8499
private void Unavailable()
85100
{
86101
FrameworkAssert.Fail("Incorrect test setup: Marketplace was not enabled for this group of Codex nodes. Add 'EnableMarketplace(...)' after 'SetupCodexNodes()' to enable it.");

ProjectPlugins/CodexPlugin/MarketplaceTypes.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public StorageAvailability(ByteSize totalSpace, TimeSpan maxDuration, TestToken
8787

8888
public void Log(ILog log)
8989
{
90-
log.Log($"Making storage available... (" +
90+
log.Log($"Storage Availability: (" +
9191
$"totalSize: {TotalSpace}, " +
9292
$"maxDuration: {Time.FormatDuration(MaxDuration)}, " +
9393
$"minPriceForTotalSpace: {MinPriceForTotalSpace}, " +

ProjectPlugins/GethPlugin/GethNode.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public GethBootstrapNode GetBootstrapRecord()
5757

5858
protected override NethereumInteraction StartInteraction()
5959
{
60-
var address = StartResult.Container.GetAddress(log, GethContainerRecipe.HttpPortTag);
60+
var address = StartResult.Container.GetAddress(GethContainerRecipe.HttpPortTag);
6161
var account = StartResult.Account;
6262

6363
var creator = new NethereumInteractionCreator(log, address.Host, address.Port, account.PrivateKey);

ProjectPlugins/MetricsPlugin/MetricsQuery.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public MetricsQuery(IPluginTools tools, RunningContainer runningContainer)
1515
{
1616
RunningContainer = runningContainer;
1717
log = tools.GetLog();
18-
var address = RunningContainer.GetAddress(log, PrometheusContainerRecipe.PortTag);
18+
var address = RunningContainer.GetAddress(PrometheusContainerRecipe.PortTag);
1919
endpoint = tools
2020
.CreateHttp(address.ToString())
2121
.CreateEndpoint(address, "/api/v1/");

ProjectPlugins/MetricsPlugin/PrometheusStarter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public static class ScrapeTargetHelper
8080
{
8181
public static string FormatTarget(ILog log, IMetricsScrapeTarget target)
8282
{
83-
var a = target.Container.GetAddress(log, target.MetricsPortTag);
83+
var a = target.Container.GetAddress(target.MetricsPortTag);
8484
var host = a.Host.Replace("http://", "").Replace("https://", "");
8585
return $"{host}:{a.Port}";
8686
}

Tests/CodexContinuousTests/StartupChecker.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ private void CheckCodexNodes(BaseLog log, Configuration config)
9898
{
9999
cancelToken.ThrowIfCancellationRequested();
100100

101-
var address = n.Container.GetAddress(log, CodexContainerRecipe.ApiPortTag);
101+
var address = n.Container.GetAddress(CodexContainerRecipe.ApiPortTag);
102102
log.Log($"Checking {n.Container.Name} @ '{address}'...");
103103

104104
if (EnsureOnline(log, n))

Tests/CodexTests/BasicTests/MarketplaceTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ public void MarketplaceExample(
9797

9898
purchaseContract.WaitForStorageContractStarted();
9999

100+
var availabilities = hosts.Select(h => h.Marketplace.GetAvailabilities());
101+
100102
var request = GetOnChainStorageRequest(contracts, geth);
101103
AssertStorageRequest(request, purchase, contracts, client);
102104
AssertContractSlot(contracts, request, 0);

Tools/AutoClient/Purchaser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ private async Task<string> GetEncodedCid(string pid)
151151
{
152152
try
153153
{
154-
var sp = await GetStoragePurchase(pid)!;
154+
var sp = (await GetStoragePurchase(pid))!;
155155
return sp.Request.Content.Cid;
156156
}
157157
catch (Exception ex)

0 commit comments

Comments
 (0)