Skip to content

Commit 5c47299

Browse files
authored
Merge 1429191 into 6f4e693
2 parents 6f4e693 + 1429191 commit 5c47299

51 files changed

Lines changed: 1896 additions & 2297 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,4 +336,5 @@ coverage.cobertura.xml
336336
# VS Code config files
337337
/.vscode
338338

339-
appsettings.json
339+
appsettings.json
340+
*.feature.cs

GitVersion.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,5 @@ branches:
2020
- feature
2121
- support
2222
- hotfix
23-
next-version: "1.2"
23+
next-version: "2.0"
2424

Solutions/Common.GitHub.proj

Lines changed: 0 additions & 6 deletions
This file was deleted.

Solutions/Common.NuGet.proj

Lines changed: 0 additions & 23 deletions
This file was deleted.

Solutions/Marain.Operations.Abstractions/Marain.Operations.Abstractions.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<Import Project="$(EndjinProjectPropsPath)" Condition="$(EndjinProjectPropsPath) != ''" />
33

44
<PropertyGroup>
5-
<TargetFramework>netcoreapp3.1</TargetFramework>
5+
<TargetFramework>net6.0</TargetFramework>
66

77
<Nullable>enable</Nullable>
88
</PropertyGroup>
@@ -15,13 +15,13 @@
1515
</PropertyGroup>
1616

1717
<ItemGroup>
18-
<PackageReference Include="Corvus.Tenancy.Abstractions" Version="2.0.13" />
18+
<PackageReference Include="Corvus.Tenancy.Abstractions" Version="3.0.0" />
1919
<PackageReference Include="Endjin.RecommendedPractices" Version="1.2.0">
2020
<PrivateAssets>all</PrivateAssets>
2121
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2222
</PackageReference>
23-
<PackageReference Include="Menes.Abstractions" Version="2.0.1" />
24-
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
23+
<PackageReference Include="Menes.Abstractions" Version="3.1.2" />
24+
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
2525
</ItemGroup>
2626

2727
</Project>

Solutions/Marain.Operations.Api.Specs/Bindings/ApiBindings.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public static class ApiBindings
2525
public static readonly string ControlApiBaseUrl = $"http://localhost:{ControlApiPort}";
2626

2727
[BeforeFeature(Order = BindingSequence.FunctionStartup)]
28-
public static Task StartApis(FeatureContext featureContext)
28+
public static async Task StartApis(FeatureContext featureContext)
2929
{
3030
FunctionsController functionsController = FunctionsBindings.GetFunctionsController(featureContext);
3131
FunctionConfiguration functionConfiguration = FunctionsBindings.GetFunctionConfiguration(featureContext);
@@ -34,16 +34,16 @@ public static Task StartApis(FeatureContext featureContext)
3434
functionConfiguration.CopyToEnvironmentVariables(configuration.AsEnumerable());
3535
functionConfiguration.EnvironmentVariables.Add("ExternalServices:OperationsStatus", StatusApiBaseUrl);
3636

37-
return Task.WhenAll(
37+
await Task.WhenAll(
3838
functionsController.StartFunctionsInstance(
3939
"Marain.Operations.ControlHost.Functions",
4040
ControlApiPort,
41-
"netcoreapp3.1",
41+
"net6.0",
4242
configuration: functionConfiguration),
4343
functionsController.StartFunctionsInstance(
4444
"Marain.Operations.StatusHost.Functions",
4545
StatusApiPort,
46-
"netcoreapp3.1",
46+
"net6.0",
4747
configuration: functionConfiguration));
4848
}
4949

Solutions/Marain.Operations.Api.Specs/Bindings/OperationsContainerBindings.cs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,21 @@
55
namespace Marain.Operations.Api.Specs.Bindings
66
{
77
using System;
8+
89
using Corvus.Configuration;
9-
using Corvus.Identity.ManagedServiceIdentity.ClientAuthentication;
1010
using Corvus.Testing.SpecFlow;
11+
1112
using Marain.Operations.Client.OperationsControl;
1213
using Marain.Tenancy.Client;
14+
1315
using Microsoft.Extensions.Configuration;
1416
using Microsoft.Extensions.DependencyInjection;
1517
using Microsoft.Extensions.Logging;
18+
1619
using Newtonsoft.Json;
1720
using Newtonsoft.Json.Converters;
21+
using Newtonsoft.Json.Serialization;
22+
1823
using TechTalk.SpecFlow;
1924

2025
[Binding]
@@ -37,7 +42,8 @@ public static void PerFeatureContainerSetup(FeatureContext featureContext)
3742
services.AddJsonNetSerializerSettingsProvider();
3843
services.AddJsonNetPropertyBag();
3944
services.AddJsonNetCultureInfoConverter();
40-
services.AddSingleton<JsonConverter>(new StringEnumConverter(true));
45+
services.AddJsonNetDateTimeOffsetToIso8601AndUnixTimeConverter();
46+
services.AddSingleton<JsonConverter>(new StringEnumConverter(new CamelCaseNamingStrategy()));
4147

4248
// Tenancy service client.
4349
TenancyClientOptions tenancyConfiguration = config.GetSection("TenancyClient").Get<TenancyClientOptions>();
@@ -53,10 +59,9 @@ public static void PerFeatureContainerSetup(FeatureContext featureContext)
5359
services.AddTenantProviderServiceClient(false);
5460

5561
// Token source, to provide authentication when accessing external services.
56-
services.AddAzureManagedIdentityBasedTokenSource(new AzureManagedIdentityTokenSourceOptions
57-
{
58-
AzureServicesAuthConnectionString = config["AzureServicesAuthConnectionString"],
59-
});
62+
string azureServicesAuthConnectionString = config["AzureServicesAuthConnectionString"];
63+
services.AddServiceIdentityAzureTokenCredentialSourceFromLegacyConnectionString(azureServicesAuthConnectionString);
64+
services.AddMicrosoftRestAdapterForServiceIdentityAccessTokenSource();
6065

6166
// Marain tenancy management, required to create transient client/service tenants.
6267
services.AddMarainTenantManagement();

Solutions/Marain.Operations.Api.Specs/Bindings/TransientTenantBindings.cs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,25 @@ namespace Marain.Operations.Api.Specs.Bindings
66
{
77
using System;
88
using System.Threading.Tasks;
9+
10+
using Azure.Storage.Blobs;
11+
912
using Corvus.Azure.Cosmos.Tenancy;
1013
using Corvus.Azure.Storage.Tenancy;
14+
using Corvus.Storage.Azure.BlobStorage.Tenancy;
1115
using Corvus.Tenancy;
1216
using Corvus.Testing.AzureFunctions;
1317
using Corvus.Testing.AzureFunctions.SpecFlow;
1418
using Corvus.Testing.SpecFlow;
19+
1520
using Marain.Operations.Storage.Blob;
1621
using Marain.TenantManagement.EnrollmentConfiguration;
1722
using Marain.TenantManagement.Testing;
18-
using Microsoft.Azure.Storage.Blob;
23+
1924
using Microsoft.Extensions.Configuration;
2025
using Microsoft.Extensions.DependencyInjection;
2126
using Microsoft.Extensions.Logging;
27+
2228
using TechTalk.SpecFlow;
2329

2430
/// <summary>
@@ -75,8 +81,11 @@ public static async Task TearDownTenants(FeatureContext featureContext)
7581

7682
await featureContext.RunAndStoreExceptionsAsync(async () =>
7783
{
78-
ITenantCloudBlobContainerFactory cloudBlobContainerFactory = ContainerBindings.GetServiceProvider(featureContext).GetRequiredService<ITenantCloudBlobContainerFactory>();
79-
CloudBlobContainer testContainer = await cloudBlobContainerFactory.GetBlobContainerForTenantAsync(tenantManager.PrimaryTransientClient, OperationsRepository.ContainerDefinition).ConfigureAwait(false);
84+
IBlobContainerSourceWithTenantLegacyTransition cloudBlobContainerFactory = ContainerBindings.GetServiceProvider(featureContext).GetRequiredService<IBlobContainerSourceWithTenantLegacyTransition>();
85+
BlobContainerClient testContainer = await cloudBlobContainerFactory.GetBlobContainerClientFromTenantAsync(
86+
tenantManager.PrimaryTransientClient,
87+
OperationsRepository.OperationsV2ConfigKey,
88+
OperationsRepository.OperationsV3ConfigKey).ConfigureAwait(false);
8089
await testContainer.DeleteIfExistsAsync().ConfigureAwait(false);
8190
}).ConfigureAwait(false);
8291

0 commit comments

Comments
 (0)