e2etest/GuestProxyAgentTest/Settings/TestSetting.cs (94 lines of code) (raw):
// Copyright (c) Microsoft Corporation
// SPDX-License-Identifier: MIT
using Azure.Core;
using GuestProxyAgentTest.Models;
using GuestProxyAgentTest.Utilities;
using Newtonsoft.Json;
using System.Reflection;
using System.Runtime.Serialization;
using System.Text.Json.Serialization;
namespace GuestProxyAgentTest.Settings
{
/// <summary>
/// E2ETestSetting related azure resource
/// </summary>
public class TestSetting
{
private static TestSetting _instance = null!;
public static TestSetting Instance
{
get
{
return _instance;
}
}
internal string tenantId = "";
internal string appClientId = "";
internal string certThumbprint = "";
internal string subscriptionId = "";
internal AzureLocation location = AzureLocation.WestUS;
internal string vmSize = "Standard_B4as_v2";
internal string scriptsFolder = null!;
internal string resourcesFolder = null!;
internal string zipFilePath = null!;
internal string sharedStorageAccountUrl = null!;
internal string testResultFolder = null!;
internal int testMapTimeoutMilliseconds = 1000 * 60 * 180;
internal string windowsInVmWireServerAccessControlProfileReferenceId = null!;
internal string windowsInVmIMDSAccessControlProfileReferenceId = null!;
internal string linuxInVmWireServerAccessControlProfileReferenceId = null!;
internal string linuxInVmIMDSAccessControlProfileReferenceId = null!;
internal string InVmWireServerAccessControlProfileReferenceId
{
get => Constants.IS_WINDOWS() ? windowsInVmWireServerAccessControlProfileReferenceId : linuxInVmWireServerAccessControlProfileReferenceId;
}
internal string InVmIMDSAccessControlProfileReferenceId
{
get => Constants.IS_WINDOWS() ? windowsInVmIMDSAccessControlProfileReferenceId : linuxInVmIMDSAccessControlProfileReferenceId;
}
private TestSetting() { }
public static void Init(TestConfig testConfig, string zipFilePath, string testResultFolder)
{
var scriptsFolder = Constants.IS_WINDOWS() ? "Scripts" : "LinuxScripts";
if (_instance != null)
{
return;
}
_instance = new TestSetting()
{
tenantId = testConfig.TenantId,
appClientId = testConfig.AppClientId,
location = new AzureLocation(testConfig.Location),
subscriptionId = testConfig.SubscriptionId,
vmSize = testConfig.VmSize,
scriptsFolder = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)!, scriptsFolder),
resourcesFolder = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)!, "Resources"),
sharedStorageAccountUrl = testConfig.SharedStorageAccountUrl,
windowsInVmWireServerAccessControlProfileReferenceId = testConfig.WindowsInVmWireServerAccessControlProfileReferenceId,
windowsInVmIMDSAccessControlProfileReferenceId = testConfig.WindowsInVmIMDSAccessControlProfileReferenceId,
linuxInVmWireServerAccessControlProfileReferenceId = testConfig.LinuxInVmWireServerAccessControlProfileReferenceId,
linuxInVmIMDSAccessControlProfileReferenceId = testConfig.LinuxInVmIMDSAccessControlProfileReferenceId,
zipFilePath = zipFilePath,
testResultFolder = testResultFolder,
};
}
}
public class GuestProxyAgentE2ETokenCredential : TokenCredential
{
public override AccessToken GetToken(TokenRequestContext requestContext, CancellationToken cancellationToken)
{
return TestCommonUtilities.GetAccessTokenFromEnv(Constants.GUEST_PROXY_AGENT_E2E_ACCESS_TOKEN_ENV);
}
public override ValueTask<AccessToken> GetTokenAsync(TokenRequestContext requestContext, CancellationToken cancellationToken)
{
return ValueTask.FromResult(GetToken(requestContext, cancellationToken));
}
}
public class GuestProxyAgentE2EStorageAccountTokenCredential : TokenCredential
{
public override AccessToken GetToken(TokenRequestContext requestContext, CancellationToken cancellationToken)
{
return TestCommonUtilities.GetAccessTokenFromEnv(Constants.GUEST_PROXY_AGENT_E2E_ACCESS_TOKEN_STORAGE_ACCOUNT_ENV);
}
public override ValueTask<AccessToken> GetTokenAsync(TokenRequestContext requestContext, CancellationToken cancellationToken)
{
return ValueTask.FromResult(GetToken(requestContext, cancellationToken));
}
}
}