public async Task RemoteApplicationGroupList0AG() { string hostPoolName = "testRemoteApplicationGroupList0AGHP"; string resourceGroupName = Recording.GetVariable("DESKTOPVIRTUALIZATION_RESOURCE_GROUP", DefaultResourceGroupName); ResourceGroupResource rg = (ResourceGroupResource)await ResourceGroups.GetAsync(resourceGroupName); Assert.IsNotNull(rg); HostPoolCollection hostPoolCollection = rg.GetHostPools(); HostPoolData hostPoolData = new HostPoolData( DefaultLocation, HostPoolType.Pooled, LoadBalancerType.BreadthFirst, PreferredAppGroupType.Desktop); ArmOperation <HostPoolResource> opHostPoolCreate = await hostPoolCollection.CreateOrUpdateAsync( WaitUntil.Completed, hostPoolName, hostPoolData); VirtualApplicationGroupCollection agCollection = rg.GetVirtualApplicationGroups(); AsyncPageable <VirtualApplicationGroupResource> agListPaged = agCollection.GetAllAsync(); List <VirtualApplicationGroupResource> agList = await agListPaged.ToEnumerableAsync <VirtualApplicationGroupResource>(); Assert.AreEqual(0, agList.Count); await opHostPoolCreate.Value.DeleteAsync(WaitUntil.Completed); }
public async Task RemoteApplicationGroupList( int numberOfApplicationGroups) { string hostPoolName = "RemoteApplicationGroupListHP"; string applicationGroupName = "RemoteApplicationGroupListAG"; List <string> applicationGroupNameList = new List <string>(); for (int i = 0; i < numberOfApplicationGroups; i++) { applicationGroupNameList.Add($"{applicationGroupName}{i}"); } string resourceGroupName = Recording.GetVariable("DESKTOPVIRTUALIZATION_RESOURCE_GROUP", DefaultResourceGroupName); ResourceGroupResource rg = (ResourceGroupResource)await ResourceGroups.GetAsync(resourceGroupName); Assert.IsNotNull(rg); HostPoolCollection hostPoolCollection = rg.GetHostPools(); HostPoolData hostPoolData = new HostPoolData( DefaultLocation, HostPoolType.Pooled, LoadBalancerType.BreadthFirst, PreferredAppGroupType.Desktop); ArmOperation <HostPoolResource> opHostPoolCreate = await hostPoolCollection.CreateOrUpdateAsync( WaitUntil.Completed, hostPoolName, hostPoolData); VirtualApplicationGroupCollection agCollection = rg.GetVirtualApplicationGroups(); VirtualApplicationGroupData agData = new VirtualApplicationGroupData( DefaultLocation, opHostPoolCreate.Value.Data.Id, ApplicationGroupType.RemoteApp); List <Task <ArmOperation <VirtualApplicationGroupResource> > > createTaskList = new List <Task <ArmOperation <VirtualApplicationGroupResource> > >(); for (int i = 0; i < numberOfApplicationGroups; i++) { createTaskList.Add(agCollection.CreateOrUpdateAsync( WaitUntil.Started, applicationGroupNameList[i], agData)); } if (createTaskList.Count > 0) { Task.WaitAll(createTaskList.ToArray()); } AsyncPageable <VirtualApplicationGroupResource> agListPaged = agCollection.GetAllAsync(); IAsyncEnumerable <Page <VirtualApplicationGroupResource> > f = agListPaged.AsPages(); var pageEnumerator = f.GetAsyncEnumerator(); await pageEnumerator.MoveNextAsync(); Assert.IsNull(pageEnumerator.Current.ContinuationToken); Assert.AreEqual(numberOfApplicationGroups, pageEnumerator.Current.Values.Count); }
public async Task RemoteApplicationGroupList1AG() { string hostPoolName = "testRemoteApplicationGroupList1AGHP"; string applicationGroupName = "testRemoteApplicationGroupList1AGAG"; string resourceGroupName = Recording.GetVariable("DESKTOPVIRTUALIZATION_RESOURCE_GROUP", DefaultResourceGroupName); ResourceGroupResource rg = (ResourceGroupResource)await ResourceGroups.GetAsync(resourceGroupName); Assert.IsNotNull(rg); HostPoolCollection hostPoolCollection = rg.GetHostPools(); HostPoolData hostPoolData = new HostPoolData( DefaultLocation, HostPoolType.Pooled, LoadBalancerType.BreadthFirst, PreferredAppGroupType.Desktop); ArmOperation <HostPoolResource> opHostPoolCreate = await hostPoolCollection.CreateOrUpdateAsync( WaitUntil.Completed, hostPoolName, hostPoolData); VirtualApplicationGroupCollection agCollection = rg.GetVirtualApplicationGroups(); VirtualApplicationGroupData agData = new VirtualApplicationGroupData(DefaultLocation, opHostPoolCreate.Value.Data.Id, ApplicationGroupType.RemoteApp); ArmOperation <VirtualApplicationGroupResource> op = await agCollection.CreateOrUpdateAsync( WaitUntil.Completed, applicationGroupName, agData); AsyncPageable <VirtualApplicationGroupResource> agListPaged = agCollection.GetAllAsync(); IAsyncEnumerable <Page <VirtualApplicationGroupResource> > f = agListPaged.AsPages(); var pageEnumerator = f.GetAsyncEnumerator(); var b = await pageEnumerator.MoveNextAsync(); Assert.IsTrue(b); Assert.AreEqual(1, pageEnumerator.Current.Values.Count); Assert.AreEqual(null, pageEnumerator.Current.ContinuationToken); await pageEnumerator.Current.Values[0].DeleteAsync(WaitUntil.Completed); await opHostPoolCreate.Value.DeleteAsync(WaitUntil.Completed); }
public async Task DesktopApplicationCrud() { string hostPoolName = "testDesktopApplicationCrudHP"; string applicationGroupName = "testDesktopApplicationCrudAG"; string resourceGroupName = Recording.GetVariable("DESKTOPVIRTUALIZATION_RESOURCE_GROUP", DefaultResourceGroupName); ResourceGroupResource rg = (ResourceGroupResource)await ResourceGroups.GetAsync(resourceGroupName); Assert.IsNotNull(rg); HostPoolCollection hostPoolCollection = rg.GetHostPools(); HostPoolData hostPoolData = new HostPoolData( DefaultLocation, HostPoolType.Pooled, LoadBalancerType.BreadthFirst, PreferredAppGroupType.Desktop); ArmOperation <HostPoolResource> opHostPoolCreate = await hostPoolCollection.CreateOrUpdateAsync( WaitUntil.Completed, hostPoolName, hostPoolData); VirtualApplicationGroupCollection agCollection = rg.GetVirtualApplicationGroups(); VirtualApplicationGroupData agData = new VirtualApplicationGroupData(DefaultLocation, opHostPoolCreate.Value.Data.Id, ApplicationGroupType.Desktop); ArmOperation <VirtualApplicationGroupResource> opApplicationGroupCreate = await agCollection.CreateOrUpdateAsync( WaitUntil.Completed, applicationGroupName, agData); Assert.IsNotNull(opApplicationGroupCreate); Assert.IsTrue(opApplicationGroupCreate.HasCompleted); Assert.AreEqual(opApplicationGroupCreate.Value.Data.Name, applicationGroupName); VirtualApplicationGroupResource desktopApplicationGroup = opApplicationGroupCreate.Value; VirtualDesktopCollection desktopCollection = desktopApplicationGroup.GetVirtualDesktops(); AsyncPageable <VirtualDesktopResource> desktops = desktopCollection.GetAllAsync(); Assert.IsNotNull(desktops); List <VirtualDesktopResource> desktopList = await desktops.ToEnumerableAsync(); Assert.AreEqual(1, desktopList.Count); VirtualDesktopResource desktop = desktopList[0]; await desktop.UpdateAsync(new VirtualDesktopPatch { Description = "Updated", FriendlyName = "UpdatedFriendlyName" }); Response <VirtualDesktopResource> updatedDesktop = await desktopCollection.GetAsync(desktop.Id.Name); Assert.IsNotNull(updatedDesktop); Assert.AreEqual("Updated", updatedDesktop.Value.Data.Description); Assert.AreEqual("UpdatedFriendlyName", updatedDesktop.Value.Data.FriendlyName); Response <VirtualApplicationGroupResource> getOp = await agCollection.GetAsync( applicationGroupName); Assert.AreEqual(applicationGroupName, getOp.Value.Data.Name); VirtualApplicationGroupResource applicationGroup = getOp.Value; ArmOperation deleteOp = await applicationGroup.DeleteAsync(WaitUntil.Completed); Assert.IsNotNull(deleteOp); Assert.AreEqual(200, deleteOp.GetRawResponse().Status); deleteOp = await applicationGroup.DeleteAsync(WaitUntil.Completed); Assert.IsNotNull(deleteOp); Assert.AreEqual(204, deleteOp.GetRawResponse().Status); try { getOp = await agCollection.GetAsync( applicationGroupName); } catch (RequestFailedException ex) { Assert.AreEqual(404, ex.Status); } await opHostPoolCreate.Value.DeleteAsync(WaitUntil.Completed); }
public async Task WebAppWebPubSubConnectionCRUD() { string resourceGroupName = Recording.GenerateAssetName("SdkRg"); string webAppName = Recording.GenerateAssetName("SdkWeb"); string webpubsubName = Recording.GenerateAssetName("SdkWebPubSub"); string linkerName = Recording.GenerateAssetName("SdkLinker"); // create resource group await ResourceGroups.CreateOrUpdateAsync(WaitUntil.Completed, resourceGroupName, new Resources.ResourceGroupData(DefaultLocation)); ResourceGroupResource resourceGroup = await ResourceGroups.GetAsync(resourceGroupName); // create web app WebSiteCollection webSites = resourceGroup.GetWebSites(); await webSites.CreateOrUpdateAsync(WaitUntil.Completed, webAppName, new WebSiteData(DefaultLocation)); WebSiteResource webapp = await webSites.GetAsync(webAppName); // create webpubsub WebPubSubCollection webPubSubs = resourceGroup.GetWebPubSubs(); WebPubSubData webPubSubData = new WebPubSubData(DefaultLocation) { Sku = new WebPubSub.Models.WebPubSubSku("Standard_S1"), LiveTraceConfiguration = new WebPubSub.Models.LiveTraceConfiguration(), NetworkAcls = new WebPubSub.Models.WebPubSubNetworkAcls { PublicNetwork = new WebPubSub.Models.NetworkAcl(), }, }; webPubSubData.LiveTraceConfiguration.Categories.Clear(); webPubSubData.NetworkAcls.PublicNetwork.Allow.Clear(); webPubSubData.NetworkAcls.PublicNetwork.Deny.Clear(); webPubSubData.ResourceLogCategories.Clear(); await webPubSubs.CreateOrUpdateAsync(WaitUntil.Completed, webpubsubName, webPubSubData); WebPubSubResource webPubSub = await webPubSubs.GetAsync(webpubsubName); // create service linker LinkerResourceCollection linkers = webapp.GetLinkerResources(); var linkerData = new LinkerResourceData { TargetService = new Models.AzureResource { Id = webPubSub.Id, }, AuthInfo = new SecretAuthInfo(), ClientType = ClientType.Dotnet, }; await linkers.CreateOrUpdateAsync(WaitUntil.Completed, linkerName, linkerData); // list service linker var linkerResources = await linkers.GetAllAsync().ToEnumerableAsync(); Assert.AreEqual(1, linkerResources.Count); Assert.AreEqual(linkerName, linkerResources[0].Data.Name); // get service linker LinkerResource linker = await linkers.GetAsync(linkerName); Assert.IsTrue(linker.Id.ToString().StartsWith(webapp.Id.ToString(), StringComparison.InvariantCultureIgnoreCase)); Assert.AreEqual(webPubSub.Id.ToString(), (linker.Data.TargetService as AzureResource).Id); Assert.AreEqual(AuthType.Secret, linker.Data.AuthInfo.AuthType); // get service linker configurations SourceConfigurationResult configurations = await linker.GetConfigurationsAsync(); foreach (var configuration in configurations.Configurations) { Assert.IsNotNull(configuration.Name); Assert.IsNotNull(configuration.Value); } // delete service linker var operation = await linker.DeleteAsync(WaitUntil.Completed); Assert.IsTrue(operation.HasCompleted); }
public async Task RemoteApplicationCrud() { string hostPoolName = "testRemoteApplicationCrudHP"; string applicationGroupName = "testRemoteApplicationCrudAG"; string resourceGroupName = Recording.GetVariable("DESKTOPVIRTUALIZATION_RESOURCE_GROUP", DefaultResourceGroupName); ResourceGroupResource rg = (ResourceGroupResource)await ResourceGroups.GetAsync(resourceGroupName); Assert.IsNotNull(rg); HostPoolCollection hostPoolCollection = rg.GetHostPools(); HostPoolData hostPoolData = new HostPoolData( DefaultLocation, HostPoolType.Pooled, LoadBalancerType.BreadthFirst, PreferredAppGroupType.Desktop); ArmOperation <HostPoolResource> opHostPoolCreate = await hostPoolCollection.CreateOrUpdateAsync( WaitUntil.Completed, hostPoolName, hostPoolData); VirtualApplicationGroupCollection agCollection = rg.GetVirtualApplicationGroups(); VirtualApplicationGroupData agData = new VirtualApplicationGroupData(DefaultLocation, opHostPoolCreate.Value.Data.Id, ApplicationGroupType.RemoteApp); ArmOperation <VirtualApplicationGroupResource> opApplicationGroupCreate = await agCollection.CreateOrUpdateAsync( WaitUntil.Completed, applicationGroupName, agData); Assert.IsNotNull(opApplicationGroupCreate); Assert.IsTrue(opApplicationGroupCreate.HasCompleted); Assert.AreEqual(opApplicationGroupCreate.Value.Data.Name, applicationGroupName); VirtualApplicationGroupResource railApplicationGroup = opApplicationGroupCreate.Value; VirtualApplicationCollection railApplications = railApplicationGroup.GetVirtualApplications(); AsyncPageable <VirtualApplicationResource> applications = railApplications.GetAllAsync(); Assert.IsNotNull(applications); VirtualApplicationData applicationData = new VirtualApplicationData(CommandLineSetting.DoNotAllow); applicationData.FilePath = "c:\\notepad.exe"; applicationData.IconPath = "c:\\notepad.exe"; applicationData.Description = "Note Pad"; applicationData.ShowInPortal = true; ArmOperation <VirtualApplicationResource> opCreate = await railApplications.CreateOrUpdateAsync(WaitUntil.Completed, "notepad", applicationData); Assert.IsNotNull(opCreate); Assert.AreEqual("testRemoteApplicationCrudAG/notepad", opCreate.Value.Data.Name); Assert.AreEqual("Note Pad", opCreate.Value.Data.Description); Response <VirtualApplicationResource> opGet = await railApplications.GetAsync("notepad"); Assert.IsNotNull(opGet); Assert.AreEqual("c:\\notepad.exe", opGet.Value.Data.FilePath); Assert.AreEqual("c:\\notepad.exe", opGet.Value.Data.IconPath); Assert.AreEqual("Note Pad", opGet.Value.Data.Description); applicationData.Description = "NotePad"; ArmOperation <VirtualApplicationResource> opUpdate = await railApplications.CreateOrUpdateAsync(WaitUntil.Completed, "notepad", applicationData); Assert.IsNotNull(opUpdate); Assert.AreEqual("testRemoteApplicationCrudAG/notepad", opUpdate.Value.Data.Name); Assert.AreEqual("NotePad", opUpdate.Value.Data.Description); ArmOperation opDelete = await opUpdate.Value.DeleteAsync(WaitUntil.Completed); Assert.IsNotNull(opDelete); Assert.AreEqual(200, opDelete.GetRawResponse().Status); opDelete = await opUpdate.Value.DeleteAsync(WaitUntil.Completed); Assert.IsNotNull(opDelete); Assert.AreEqual(204, opDelete.GetRawResponse().Status); try { await railApplications.GetAsync("notepad"); } catch (RequestFailedException ex) { Assert.AreEqual(404, ex.Status); } await opApplicationGroupCreate.Value.DeleteAsync(WaitUntil.Completed); await opHostPoolCreate.Value.DeleteAsync(WaitUntil.Completed); }
public async Task HostPoolCrud( int caseNumber, HostPoolType hostPoolType, LoadBalancerType loadBalancerType, LoadBalancerType expectedLoadBalancerType, PreferredAppGroupType preferredAppGroupType) { string hostPoolName = $"testHostPoolCrud{caseNumber}"; string resourceGroupName = Recording.GetVariable("DESKTOPVIRTUALIZATION_RESOURCE_GROUP", DefaultResourceGroupName); ResourceGroupResource rg = (ResourceGroupResource)await ResourceGroups.GetAsync(resourceGroupName); Assert.IsNotNull(rg); HostPoolCollection hostPoolCollection = rg.GetHostPools(); HostPoolData hostPoolData = new HostPoolData( DefaultLocation, hostPoolType, loadBalancerType, preferredAppGroupType); ArmOperation <HostPoolResource> op = await hostPoolCollection.CreateOrUpdateAsync( WaitUntil.Completed, hostPoolName, hostPoolData); Assert.IsNotNull(op); Assert.IsTrue(op.HasCompleted); Assert.AreEqual(op.Value.Data.Name, hostPoolName); Response <HostPoolResource> getOp = await hostPoolCollection.GetAsync( hostPoolName); Assert.AreEqual(hostPoolName, getOp.Value.Data.Name); Assert.AreEqual(hostPoolType, getOp.Value.Data.HostPoolType); Assert.AreEqual(expectedLoadBalancerType, getOp.Value.Data.LoadBalancerType); Assert.AreEqual(preferredAppGroupType, getOp.Value.Data.PreferredAppGroupType); hostPoolData.FriendlyName = "Friendly Name"; op = await hostPoolCollection.CreateOrUpdateAsync( WaitUntil.Completed, hostPoolName, hostPoolData); Assert.IsNotNull(op); Assert.IsTrue(op.HasCompleted); Assert.AreEqual(op.Value.Data.Name, hostPoolName); Assert.AreEqual(op.Value.Data.FriendlyName, "Friendly Name"); Assert.AreEqual(hostPoolName, getOp.Value.Data.Name); Assert.AreEqual(hostPoolType, getOp.Value.Data.HostPoolType); Assert.AreEqual(expectedLoadBalancerType, getOp.Value.Data.LoadBalancerType); Assert.AreEqual(preferredAppGroupType, getOp.Value.Data.PreferredAppGroupType); getOp = await hostPoolCollection.GetAsync( hostPoolName); HostPoolResource hostPool = getOp.Value; ArmOperation deleteOp = await hostPool.DeleteAsync(WaitUntil.Completed); Assert.IsNotNull(deleteOp); Assert.AreEqual(200, deleteOp.GetRawResponse().Status); deleteOp = await hostPool.DeleteAsync(WaitUntil.Completed); Assert.IsNotNull(deleteOp); Assert.AreEqual(204, deleteOp.GetRawResponse().Status); try { getOp = await hostPoolCollection.GetAsync( hostPoolName); } catch (RequestFailedException ex) { Assert.AreEqual(404, ex.Status); } }
public async Task RemoteApplicationGroupCrud() { string hostPoolName = "testRemoteApplicationGroupCrudHP"; string applicationGroupName = "testRemoteApplicationGroupCrudAG"; string resourceGroupName = Recording.GetVariable("DESKTOPVIRTUALIZATION_RESOURCE_GROUP", DefaultResourceGroupName); ResourceGroupResource rg = (ResourceGroupResource)await ResourceGroups.GetAsync(resourceGroupName); Assert.IsNotNull(rg); HostPoolCollection hostPoolCollection = rg.GetHostPools(); HostPoolData hostPoolData = new HostPoolData( DefaultLocation, HostPoolType.Pooled, LoadBalancerType.BreadthFirst, PreferredAppGroupType.Desktop); ArmOperation <HostPoolResource> opHostPoolCreate = await hostPoolCollection.CreateOrUpdateAsync( WaitUntil.Completed, hostPoolName, hostPoolData); VirtualApplicationGroupCollection agCollection = rg.GetVirtualApplicationGroups(); VirtualApplicationGroupData agData = new VirtualApplicationGroupData(DefaultLocation, opHostPoolCreate.Value.Data.Id, ApplicationGroupType.RemoteApp); ArmOperation <VirtualApplicationGroupResource> op = await agCollection.CreateOrUpdateAsync( WaitUntil.Completed, applicationGroupName, agData); Assert.IsNotNull(op); Assert.IsTrue(op.HasCompleted); Assert.AreEqual(op.Value.Data.Name, applicationGroupName); Response <VirtualApplicationGroupResource> getOp = await agCollection.GetAsync( applicationGroupName); Assert.AreEqual(applicationGroupName, getOp.Value.Data.Name); agData.FriendlyName = "Friendly Name"; op = await agCollection.CreateOrUpdateAsync( WaitUntil.Completed, applicationGroupName, agData); Assert.IsNotNull(op); Assert.IsTrue(op.HasCompleted); Assert.AreEqual(op.Value.Data.Name, applicationGroupName); Assert.AreEqual(op.Value.Data.FriendlyName, "Friendly Name"); getOp = await agCollection.GetAsync( applicationGroupName); VirtualApplicationGroupResource applicationGroup = getOp.Value; ArmOperation deleteOp = await applicationGroup.DeleteAsync(WaitUntil.Completed); Assert.IsNotNull(deleteOp); Assert.AreEqual(200, deleteOp.GetRawResponse().Status); deleteOp = await applicationGroup.DeleteAsync(WaitUntil.Completed); Assert.IsNotNull(deleteOp); Assert.AreEqual(204, deleteOp.GetRawResponse().Status); try { getOp = await agCollection.GetAsync( applicationGroupName); } catch (RequestFailedException ex) { Assert.AreEqual(404, ex.Status); } await opHostPoolCreate.Value.DeleteAsync(WaitUntil.Completed); }
public async Task WorkspaceCrud() { string workspaceName = "testWorkspaceCrudWS"; string resourceGroupName = Recording.GetVariable("DESKTOPVIRTUALIZATION_RESOURCE_GROUP", DefaultResourceGroupName); ResourceGroupResource rg = (ResourceGroupResource)await ResourceGroups.GetAsync(resourceGroupName); Assert.IsNotNull(rg); VirtualWorkspaceCollection workspaceCollection = rg.GetVirtualWorkspaces(); VirtualWorkspaceData workspaceData = new VirtualWorkspaceData( DefaultLocation); ArmOperation <VirtualWorkspaceResource> opWorkspaceCreate = await workspaceCollection.CreateOrUpdateAsync( WaitUntil.Completed, workspaceName, workspaceData); Assert.IsNotNull(opWorkspaceCreate); Assert.IsTrue(opWorkspaceCreate.HasCompleted); Assert.AreEqual(opWorkspaceCreate.Value.Data.Name, workspaceName); Response <VirtualWorkspaceResource> getOp = await workspaceCollection.GetAsync( workspaceName); Assert.AreEqual(workspaceName, getOp.Value.Data.Name); workspaceData.FriendlyName = "Friendly Name"; opWorkspaceCreate = await workspaceCollection.CreateOrUpdateAsync( WaitUntil.Completed, workspaceName, workspaceData); Assert.IsNotNull(opWorkspaceCreate); Assert.IsTrue(opWorkspaceCreate.HasCompleted); Assert.AreEqual(opWorkspaceCreate.Value.Data.Name, workspaceName); Assert.AreEqual(opWorkspaceCreate.Value.Data.FriendlyName, "Friendly Name"); getOp = await workspaceCollection.GetAsync( workspaceName); VirtualWorkspaceResource workspace = getOp.Value; ArmOperation deleteOp = await workspace.DeleteAsync(WaitUntil.Completed); Assert.IsNotNull(deleteOp); Assert.AreEqual(200, deleteOp.GetRawResponse().Status); deleteOp = await workspace.DeleteAsync(WaitUntil.Completed); Assert.IsNotNull(deleteOp); Assert.AreEqual(204, deleteOp.GetRawResponse().Status); try { getOp = await workspaceCollection.GetAsync( workspaceName); } catch (Azure.RequestFailedException ex) { Assert.AreEqual(404, ex.Status); } }
public async Task WebAppSqlConnectionCRUD() { string resourceGroupName = Recording.GenerateAssetName("SdkRg"); string webAppName = Recording.GenerateAssetName("SdkWeb"); string sqlServerName = Recording.GenerateAssetName("SdkSql"); string sqlDatabaseName = Recording.GenerateAssetName("SdkSql"); string sqlUserName = Recording.GenerateAssetName("SdkSql"); string sqlPassword = Recording.GenerateAssetName("SdkPa5$"); string linkerName = Recording.GenerateAssetName("SdkLinker"); // create resource group await ResourceGroups.CreateOrUpdateAsync(WaitUntil.Completed, resourceGroupName, new Resources.ResourceGroupData(DefaultLocation)); ResourceGroupResource resourceGroup = await ResourceGroups.GetAsync(resourceGroupName); // // create web app WebSiteCollection webSites = resourceGroup.GetWebSites(); await webSites.CreateOrUpdateAsync(WaitUntil.Completed, webAppName, new WebSiteData(DefaultLocation)); WebSiteResource webapp = await webSites.GetAsync(webAppName); // create sql database SqlServerCollection sqlServers = resourceGroup.GetSqlServers(); SqlServerData sqlServerData = new SqlServerData(DefaultLocation) { AdministratorLogin = sqlUserName, AdministratorLoginPassword = sqlPassword, }; await sqlServers.CreateOrUpdateAsync(WaitUntil.Completed, sqlServerName, sqlServerData); SqlServerResource sqlServer = await sqlServers.GetAsync(sqlServerName); SqlDatabaseCollection sqlDatabases = sqlServer.GetSqlDatabases(); await sqlDatabases.CreateOrUpdateAsync(WaitUntil.Completed, sqlDatabaseName, new SqlDatabaseData(DefaultLocation)); SqlDatabaseResource sqlDatabase = await sqlDatabases.GetAsync(sqlDatabaseName); // create service linker LinkerResourceCollection linkers = webapp.GetLinkerResources(); var linkerData = new LinkerResourceData { TargetService = new Models.AzureResource { Id = sqlDatabase.Id, }, AuthInfo = new SecretAuthInfo { Name = sqlUserName, SecretInfo = new ValueSecretInfo { Value = sqlPassword, }, }, ClientType = ClientType.Dotnet, }; await linkers.CreateOrUpdateAsync(WaitUntil.Completed, linkerName, linkerData); // list service linker var linkerResources = await linkers.GetAllAsync().ToEnumerableAsync(); Assert.AreEqual(1, linkerResources.Count); Assert.AreEqual(linkerName, linkerResources[0].Data.Name); // get service linker LinkerResource linker = await linkers.GetAsync(linkerName); Assert.IsTrue(linker.Id.ToString().StartsWith(webapp.Id.ToString(), StringComparison.InvariantCultureIgnoreCase)); Assert.AreEqual(sqlDatabase.Id.ToString(), (linker.Data.TargetService as AzureResource).Id); Assert.AreEqual(AuthType.Secret, linker.Data.AuthInfo.AuthType); // get service linker configurations SourceConfigurationResult configurations = await linker.GetConfigurationsAsync(); foreach (var configuration in configurations.Configurations) { Assert.IsNotNull(configuration.Name); Assert.IsNotNull(configuration.Value); } // delete service linker var operation = await linker.DeleteAsync(WaitUntil.Completed); Assert.IsTrue(operation.HasCompleted); }
public async Task WebAppKeyVaultConnectionCRUD() { string resourceGroupName = Recording.GenerateAssetName("SdkRg"); string webAppName = Recording.GenerateAssetName("SdkWeb"); string vaultName = Recording.GenerateAssetName("SdkVault"); string linkerName = Recording.GenerateAssetName("SdkLinker"); // create resource group await ResourceGroups.CreateOrUpdateAsync(WaitUntil.Completed, resourceGroupName, new Resources.ResourceGroupData(DefaultLocation)); ResourceGroupResource resourceGroup = await ResourceGroups.GetAsync(resourceGroupName); // create web app WebSiteCollection webSites = resourceGroup.GetWebSites(); await webSites.CreateOrUpdateAsync(WaitUntil.Completed, webAppName, new WebSiteData(DefaultLocation)); WebSiteResource webapp = await webSites.GetAsync(webAppName); // create key vault VaultCollection vaults = resourceGroup.GetVaults(); var vaultProperties = new VaultProperties(new Guid(TestEnvironment.TenantId), new KeyVaultSku(KeyVaultSkuFamily.A, KeyVaultSkuName.Standard)); vaultProperties.AccessPolicies.Clear(); await vaults.CreateOrUpdateAsync(WaitUntil.Completed, vaultName, new VaultCreateOrUpdateContent(DefaultLocation, vaultProperties)); VaultResource vault = await vaults.GetAsync(vaultName); // create service linker LinkerResourceCollection linkers = webapp.GetLinkerResources(); var linkerData = new LinkerResourceData { TargetService = new Models.AzureResource { Id = vault.Id, }, AuthInfo = new SystemAssignedIdentityAuthInfo(), ClientType = ClientType.Dotnet, }; await linkers.CreateOrUpdateAsync(WaitUntil.Completed, linkerName, linkerData); // list service linker var linkerResources = await linkers.GetAllAsync().ToEnumerableAsync(); Assert.AreEqual(1, linkerResources.Count); Assert.AreEqual(linkerName, linkerResources[0].Data.Name); // get service linker LinkerResource linker = await linkers.GetAsync(linkerName); Assert.IsTrue(linker.Id.ToString().StartsWith(webapp.Id.ToString(), StringComparison.InvariantCultureIgnoreCase)); Assert.AreEqual(vault.Id.ToString(), (linker.Data.TargetService as AzureResource).Id); Assert.AreEqual(AuthType.SystemAssignedIdentity, linker.Data.AuthInfo.AuthType); // get service linker configurations SourceConfigurationResult configurations = await linker.GetConfigurationsAsync(); foreach (var configuration in configurations.Configurations) { Assert.IsNotNull(configuration.Name); Assert.IsNotNull(configuration.Value); } // delete service linker var operation = await linker.DeleteAsync(WaitUntil.Completed); Assert.IsTrue(operation.HasCompleted); }