Exemplo n.º 1
0
 private static ResourceManagementClient GetResourceManagementClient(MockContext context)
 {
     return(context.GetServiceClient <ResourceManagementClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
Exemplo n.º 2
0
 private StorageMgmtNS.StorageManagementClient GetStorageManagementClient(MockContext context)
 {
     return(context.GetServiceClient <StorageMgmtNS.StorageManagementClient>(
                TestEnvironmentFactory.GetTestEnvironment()));
 }
 private static NetworkManagementClient GetNetworkManagementClientRestClient(MockContext context)
 {
     return(context.GetServiceClient <NetworkManagementClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
 private static SiteRecoveryManagementClient GetSiteRecoveryManagementClient(MockContext context)
 {
     return(context.GetServiceClient <SiteRecoveryManagementClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
Exemplo n.º 5
0
 protected NetworkManagementClient GetNetworkClient(MockContext context)
 {
     return(context.GetServiceClient <NetworkManagementClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
 private static IotCentralClient GetIotCentralClient(MockContext context)
 {
     return(context.GetServiceClient <IotCentralClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
Exemplo n.º 7
0
 private SubscriptionClient GetSubscriptionClient(MockContext context)
 {
     return(context.GetServiceClient <SubscriptionClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
Exemplo n.º 8
0
        protected GraphRbacManagementClient GetGraphClient(MockContext context)
        {
            GraphRbacManagementClient graphClient = context.GetServiceClient <GraphRbacManagementClient>(TestEnvironmentFactory.GetTestEnvironment());

            graphClient.BaseUri  = TestEnvironmentFactory.GetTestEnvironment().Endpoints.GraphUri;
            graphClient.TenantID = TestEnvironmentFactory.GetTestEnvironment().Tenant;
            return(graphClient);
        }
Exemplo n.º 9
0
 private static SecurityCenterClient GetSecurityCenterClient(MockContext context)
 {
     return(context.GetServiceClient <SecurityCenterClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
Exemplo n.º 10
0
 private static PowerBIEmbeddedManagementClient GetPowerBIClient(MockContext context)
 {
     return(context.GetServiceClient <PowerBIEmbeddedManagementClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
Exemplo n.º 11
0
 protected AksTestRunner(ITestOutputHelper output)
 {
     TestRunner = TestManager.CreateInstance(output)
                  .WithNewPsScriptFilename($"{GetType().Name}.ps1")
                  .WithProjectSubfolderForTests("ScenarioTests")
                  .WithCommonPsScripts(new[]
     {
         @"Common.ps1",
         @"../AzureRM.Resources.ps1"
     })
                  .WithNewRmModules(helper => new[]
     {
         helper.RMProfileModule,
         helper.GetRMModulePath("Az.Aks.psd1")
     })
                  .WithNewRecordMatcherArguments(
         userAgentsToIgnore: new Dictionary <string, string>
     {
         { "Microsoft.Azure.Management.Resources.ResourceManagementClient", "2017-05-10" },
         { "Microsoft.Azure.Management.ResourceManager.ResourceManagementClient", "2017-05-10" }
     },
         resourceProviders: new Dictionary <string, string>
     {
         { "Microsoft.Resources", null },
         { "Microsoft.Features", null },
         { "Microsoft.Authorization", null }
     }
         ).WithMockContextAction(() =>
     {
         if (HttpMockServer.GetCurrentMode() == HttpRecorderMode.Playback)
         {
             AzureSession.Instance.DataStore = new MemoryDataStore();
             var home         = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
             var dir          = Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).AbsolutePath);
             var subscription = HttpMockServer.Variables["SubscriptionId"];
             AzureSession.Instance.DataStore.WriteFile(Path.Combine(home, ".ssh", "id_rsa.pub"), File.ReadAllText(dir + "/Fixtures/id_rsa.pub"));
             var jsonOutput = @"{""" + subscription + @""":{ ""service_principal"":""foo"",""client_secret"":""bar""}}";
             AzureSession.Instance.DataStore.WriteFile(Path.Combine(home, ".azure", "acsServicePrincipal.json"), jsonOutput);
         }
         else if (HttpMockServer.GetCurrentMode() == HttpRecorderMode.Record)
         {
             AzureSession.Instance.DataStore = new MemoryDataStore();
             var home               = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
             var dir                = Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).AbsolutePath);
             var subscription       = HttpMockServer.Variables["SubscriptionId"];
             var currentEnvironment = TestEnvironmentFactory.GetTestEnvironment();
             string spn             = null;
             string spnSecret       = null;
             if (currentEnvironment.ConnectionString.KeyValuePairs.ContainsKey("ServicePrincipal"))
             {
                 spn = currentEnvironment.ConnectionString.KeyValuePairs["ServicePrincipal"];
             }
             if (currentEnvironment.ConnectionString.KeyValuePairs.ContainsKey("ServicePrincipalSecret"))
             {
                 spnSecret = currentEnvironment.ConnectionString.KeyValuePairs["ServicePrincipalSecret"];
             }
             AzureSession.Instance.DataStore.WriteFile(Path.Combine(home, ".ssh", "id_rsa.pub"), File.ReadAllText(dir + "/Fixtures/id_rsa.pub"));
             var jsonOutput = @"{""" + subscription + @""":{ ""service_principal"":""" + spn + @""",""client_secret"":""" + spnSecret + @"""}}";
             AzureSession.Instance.DataStore.WriteFile(Path.Combine(home, ".azure", "acsServicePrincipal.json"), jsonOutput);
         }
     }
                                 )
                  .Build();
 }
Exemplo n.º 12
0
 private static WebSiteManagementClient GetWebsitesManagementClient(MockContext context)
 {
     return(context.GetServiceClient <WebSiteManagementClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
Exemplo n.º 13
0
 private static AuthorizationManagementClient GetAuthorizationManagementClient(MockContext context)
 {
     return(context.GetServiceClient <AuthorizationManagementClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
 public static StorageManagementClient GetStorageManagementClient(TestEnvironmentFactory factory, RecordedDelegatingHandler handler)
 {
     handler.IsPassThrough = true;
     return TestBase.GetServiceClient<StorageManagementClient>(factory).WithHandler(handler);
 }
Exemplo n.º 15
0
 private HyakRmNS.ResourceManagementClient GetHyakRmClient(MockContext context)
 {
     return(context.GetServiceClient <HyakRmNS.ResourceManagementClient>(
                TestEnvironmentFactory.GetTestEnvironment()));
 }
 private static GraphRbacManagementClient GetGraphRBACManagementClient(MockContext context)
 {
     return(context.GetServiceClient <GraphRbacManagementClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
Exemplo n.º 17
0
 private RecoveryServicesBackupClient GetRsBackupClient(MockContext context)
 {
     return(context.GetServiceClient <RecoveryServicesBackupClient>(
                TestEnvironmentFactory.GetTestEnvironment()));
 }
Exemplo n.º 18
0
 protected KeyVaultManagementClient GetKeyVaultClient(MockContext context)
 {
     return(context.GetServiceClient <KeyVaultManagementClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
Exemplo n.º 19
0
 private static HDInsightManagementClient GetHDInsightManagementClient(MockContext context)
 {
     return(context.GetServiceClient <HDInsightManagementClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
Exemplo n.º 20
0
 protected static CommonStorage.StorageManagementClient GetStorageManagementClient(MockContext context)
 {
     return(context.GetServiceClient <CommonStorage.StorageManagementClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
        public void ResetPreCreatedVault()
        {
            if (mode == HttpRecorderMode.Record)
            {
                using (MockContext context = MockContext.Start(TestUtilities.GetCallingClass(), TestUtilities.GetCurrentMethodName(1)))
                {
                    var testFactory     = new LegacyTest.CSMTestEnvironmentFactory();
                    var testEnv         = testFactory.GetTestEnvironment();
                    var resourcesClient = LegacyTest.TestBase.GetServiceClient <ResourceManagementClient>(testFactory);
                    var mgmtClient      = context.GetServiceClient <KeyVaultManagementClient>(TestEnvironmentFactory.GetTestEnvironment());
                    var tenantId        = Guid.Parse(testEnv.AuthorizationContext.TenantId);

                    var policies = new AccessPolicyEntry[] { };

                    mgmtClient.Vaults.CreateOrUpdate(
                        resourceGroupName: resourceGroupName,
                        vaultName: preCreatedVault,
                        parameters: new VaultCreateOrUpdateParameters
                    {
                        Location = location,
                        Tags     = new Dictionary <string, string> {
                            { tagName, tagValue }
                        },
                        Properties = new VaultProperties
                        {
                            EnabledForDeployment = false,
                            Sku = new Sku {
                                Name = SkuName.Premium
                            },
                            TenantId       = tenantId,
                            VaultUri       = "",
                            AccessPolicies = policies
                        }
                    }
                        );
                }
            }
        }
Exemplo n.º 22
0
        public void RunPowerShellTest(XunitTracingInterceptor logger, params string[] scripts)
        {
            var sf = new StackTrace().GetFrame(1);
            var callingClassType = sf.GetMethod().ReflectedType?.ToString();
            var mockName         = sf.GetMethod().Name;

            _helper.TracingInterceptor = logger;

            var d = new Dictionary <string, string>
            {
                { "Microsoft.Resources", null },
                { "Microsoft.Features", null },
                { "Microsoft.Authorization", null }
            };
            var providersToIgnore = new Dictionary <string, string>
            {
                { "Microsoft.Azure.Management.Resources.ResourceManagementClient", "2017-05-10" },
                { "Microsoft.Azure.Management.ResourceManager.ResourceManagementClient", "2017-05-10" }
            };

            HttpMockServer.Matcher          = new PermissiveRecordMatcherWithApiExclusion(false, d, providersToIgnore);
            HttpMockServer.RecordsDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SessionRecords");

            using (var context = MockContext.Start(callingClassType, mockName))
            {
                SetupManagementClients(context);
                var callingClassName = callingClassType?.Split(new[] { "." }, StringSplitOptions.RemoveEmptyEntries).Last();

                _helper.SetupEnvironment(AzureModule.AzureResourceManager);
                _helper.SetupModules(AzureModule.AzureResourceManager,
                                     _helper.RMProfileModule,
                                     _helper.GetRMModulePath(@"AzureRM.Aks.psd1"),
                                     "ScenarioTests\\Common.ps1",
                                     "ScenarioTests\\" + callingClassName + ".ps1",
                                     "AzureRM.Resources.ps1");

                if (HttpMockServer.GetCurrentMode() == HttpRecorderMode.Playback)
                {
                    AzureSession.Instance.DataStore = new MemoryDataStore();
                    var home         = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
                    var dir          = Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).AbsolutePath);
                    var subscription = HttpMockServer.Variables["SubscriptionId"];
                    AzureSession.Instance.DataStore.WriteFile(Path.Combine(home, ".ssh", "id_rsa.pub"), File.ReadAllText(dir + "/Fixtures/id_rsa.pub"));
                    var jsonOutput = @"{""" + subscription + @""":{ ""service_principal"":""foo"",""client_secret"":""bar""}}";
                    AzureSession.Instance.DataStore.WriteFile(Path.Combine(home, ".azure", "acsServicePrincipal.json"), jsonOutput);
                }
                else if (HttpMockServer.GetCurrentMode() == HttpRecorderMode.Record)
                {
                    AzureSession.Instance.DataStore = new MemoryDataStore();
                    var    home               = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
                    var    dir                = Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).AbsolutePath);
                    var    subscription       = HttpMockServer.Variables["SubscriptionId"];
                    var    currentEnvironment = TestEnvironmentFactory.GetTestEnvironment();
                    string spn                = null;
                    string spnSecret          = null;
                    if (currentEnvironment.ConnectionString.KeyValuePairs.ContainsKey("ServicePrincipal"))
                    {
                        spn = currentEnvironment.ConnectionString.KeyValuePairs["ServicePrincipal"];
                    }
                    if (currentEnvironment.ConnectionString.KeyValuePairs.ContainsKey("ServicePrincipalSecret"))
                    {
                        spnSecret = currentEnvironment.ConnectionString.KeyValuePairs["ServicePrincipalSecret"];
                    }
                    AzureSession.Instance.DataStore.WriteFile(Path.Combine(home, ".ssh", "id_rsa.pub"), File.ReadAllText(dir + "/Fixtures/id_rsa.pub"));
                    var jsonOutput = @"{""" + subscription + @""":{ ""service_principal"":""" + spn + @""",""client_secret"":""" + spnSecret + @"""}}";
                    AzureSession.Instance.DataStore.WriteFile(Path.Combine(home, ".azure", "acsServicePrincipal.json"), jsonOutput);
                }

                _helper.RunPowerShellTest(scripts);
            }
        }
        public void Initialize(string className)
        {
            if (initialized)
            {
                return;
            }

            if (mode == HttpRecorderMode.Record)
            {
                using (MockContext context = MockContext.Start(TestUtilities.GetCallingClass(), TestUtilities.GetCurrentMethodName(1)))
                {
                    var testFactory     = new LegacyTest.CSMTestEnvironmentFactory();
                    var testEnv         = testFactory.GetTestEnvironment();
                    var resourcesClient = LegacyTest.TestBase.GetServiceClient <ResourceManagementClient>(testFactory);
                    var mgmtClient      = context.GetServiceClient <KeyVaultManagementClient>(TestEnvironmentFactory.GetTestEnvironment());
                    var tenantId        = testEnv.AuthorizationContext.TenantId;

                    //Figure out which locations are available for Key Vault
                    location = GetKeyVaultLocation(resourcesClient);

                    //Create a resource group in that location
                    preCreatedVault   = TestUtilities.GenerateName("pshtestvault");
                    resourceGroupName = TestUtilities.GenerateName("pshtestrg");

                    resourcesClient.ResourceGroups.CreateOrUpdate(resourceGroupName, new ResourceGroup {
                        Location = location
                    });
                    var createResponse = CreateVault(mgmtClient, location, tenantId);
                }
            }

            initialized = true;
        }
Exemplo n.º 24
0
 private static ComputeManagementClient GetComputeManagementClientRestClient(MockContext context)
 {
     return(context.GetServiceClient <ComputeManagementClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
Exemplo n.º 25
0
 protected SqlManagementClient GetSqlClient(MockContext context)
 {
     return(context.GetServiceClient <SqlManagementClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
        public void SetupAzureEnvironmentFromEnvironmentVariables(AzureModule mode)
        {
            TestEnvironment currentEnvironment = null;

            if (mode == AzureModule.AzureResourceManager)
            {
#if !NETSTANDARD
                currentEnvironment = new CSMTestEnvironmentFactory().GetTestEnvironment();
#else
                currentEnvironment = TestEnvironmentFactory.GetTestEnvironment();
#endif
            }
            else
            {
#if !NETSTANDARD
                currentEnvironment = new RDFETestEnvironmentFactory().GetTestEnvironment();
#else
                throw new NotSupportedException("RDFE environment is not supported in .Net Core");
#endif
            }

            if (currentEnvironment.UserName == null)
            {
                currentEnvironment.UserName = "******";
            }

            SetAuthenticationFactory(mode, currentEnvironment);

            AzureEnvironment environment = new AzureEnvironment {
                Name = testEnvironmentName
            };

            Debug.Assert(currentEnvironment != null);
            environment.ActiveDirectoryAuthority = currentEnvironment.Endpoints.AADAuthUri.AbsoluteUri;
            environment.GalleryUrl           = currentEnvironment.Endpoints.GalleryUri.AbsoluteUri;
            environment.ServiceManagementUrl = currentEnvironment.BaseUri.AbsoluteUri;
            environment.ResourceManagerUrl   = currentEnvironment.Endpoints.ResourceManagementUri.AbsoluteUri;
            environment.GraphUrl             = currentEnvironment.Endpoints.GraphUri.AbsoluteUri;
            environment.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix = currentEnvironment.Endpoints.DataLakeAnalyticsJobAndCatalogServiceUri.OriginalString.Replace("https://", ""); // because it is just a sufix
            environment.AzureDataLakeStoreFileSystemEndpointSuffix        = currentEnvironment.Endpoints.DataLakeStoreServiceUri.OriginalString.Replace("https://", "");                  // because it is just a sufix
            environment.StorageEndpointSuffix = AzureEnvironmentConstants.AzureStorageEndpointSuffix;

#if !NETSTANDARD
            if (!ProfileClient.Profile.EnvironmentTable.ContainsKey(testEnvironmentName))
            {
                ProfileClient.AddOrSetEnvironment(environment);
            }
#endif
            if (!AzureRmProfileProvider.Instance.GetProfile <AzureRmProfile>().EnvironmentTable.ContainsKey(testEnvironmentName))
            {
                AzureRmProfileProvider.Instance.GetProfile <AzureRmProfile>().EnvironmentTable[testEnvironmentName] = environment;
            }

            if (currentEnvironment.SubscriptionId != null)
            {
                testSubscription = new AzureSubscription()
                {
                    Id   = currentEnvironment.SubscriptionId,
                    Name = testSubscriptionName,
                };

                testSubscription.SetEnvironment(testEnvironmentName);
                testSubscription.SetAccount(currentEnvironment.UserName);
                testSubscription.SetDefault();
                testSubscription.SetStorageAccount(Environment.GetEnvironmentVariable("AZURE_STORAGE_ACCOUNT"));

                testAccount = new AzureAccount()
                {
                    Id   = currentEnvironment.UserName,
                    Type = AzureAccount.AccountType.User,
                };

                testAccount.SetSubscriptions(currentEnvironment.SubscriptionId);
#if !NETSTANDARD
                ProfileClient.Profile.SubscriptionTable[testSubscription.GetId()] = testSubscription;
                ProfileClient.Profile.AccountTable[testAccount.Id] = testAccount;
                ProfileClient.SetSubscriptionAsDefault(testSubscription.Name, testSubscription.GetAccount());
#endif
                var testTenant = new AzureTenant()
                {
                    Id = Guid.NewGuid().ToString()
                };
                if (!string.IsNullOrEmpty(currentEnvironment.Tenant))
                {
                    Guid tenant;
                    if (Guid.TryParse(currentEnvironment.Tenant, out tenant))
                    {
                        testTenant.Id = currentEnvironment.Tenant;
                    }
                }
                AzureRmProfileProvider.Instance.Profile.DefaultContext = new AzureContext(testSubscription, testAccount, environment, testTenant);
            }
        }
Exemplo n.º 27
0
 protected CommonMonitor.IMonitorManagementClient GetCommonMonitorManagementClient(MockContext context)
 {
     return(context.GetServiceClient <CommonMonitor.MonitorManagementClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
Exemplo n.º 28
0
 private static SearchManagementClient GetAzureSearchManagementClient(MockContext context)
 {
     return(context.GetServiceClient <SearchManagementClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
Exemplo n.º 29
0
 protected IEventHubManagementClient GetEventHubManagementClient(MockContext context)
 {
     return(context.GetServiceClient <EventHubManagementClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
 public static NetworkResourceProviderClient GetNetworkResourceProviderClient(TestEnvironmentFactory factory, RecordedDelegatingHandler handler)
 {
     handler.IsPassThrough = true;
     return TestBase.GetServiceClient<NetworkResourceProviderClient>(factory).WithHandler(handler);
 }
Exemplo n.º 31
0
 protected IOperationalInsightsManagementClient GetOperationalInsightsManagementClient(MockContext context)
 {
     return(context.GetServiceClient <OperationalInsightsManagementClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }
Exemplo n.º 32
0
        public void RunPsTestWorkflow(
            Func<string[]> scriptBuilder, 
            Action<TestEnvironmentFactory> initialize, 
            Action cleanup,
            string callingClassType,
            string mockName)
        {
            HttpMockServer.Matcher = new PermissiveRecordMatcher();
            using (UndoContext context = UndoContext.Current)
            {
                context.Start(callingClassType, mockName);

                this.testFactory = GetFactory();

                if(initialize != null)
                {
                    initialize(this.testFactory);
                }

                SetupManagementClients();

                helper.SetupEnvironment(this.Module);
                
                var callingClassName = callingClassType
                                        .Split(new[] { "." }, StringSplitOptions.RemoveEmptyEntries)
                                        .Last();
                helper.SetupModules(
                    this.Module, 
                    "Profile\\" + callingClassName + ".ps1");

                try
                {
                    if (scriptBuilder != null)
                    {
                        var psScripts = scriptBuilder();

                        if (psScripts != null)
                        {
                            helper.RunPowerShellTest(psScripts);
                        }
                    }
                }
                finally
                {
                    if(cleanup !=null)
                    {
                        cleanup();
                    }
                }
            }
        }
 private static HealthcareApisManagementClient GetHealthcareApisManagementClient(MockContext context)
 {
     return(context.GetServiceClient <HealthcareApisManagementClient>(TestEnvironmentFactory.GetTestEnvironment()));
 }