public AzureSubscription(Microsoft.WindowsAzure.Subscriptions.Models.SubscriptionListOperationResponse.Subscription subscription) : this() { AccountAdminLiveEmailId = subscription.AccountAdminLiveEmailId; ActiveDirectoryTenantId = subscription.ActiveDirectoryTenantId; Created = subscription.Created; CurrentCoreCount = subscription.CurrentCoreCount; CurrentHostedServices = subscription.CurrentHostedServices; CurrentStorageAccounts = subscription.CurrentStorageAccounts; MaximumCoreCount = subscription.MaximumCoreCount; MaximumDnsServers = subscription.MaximumDnsServers; MaximumExtraVirtualIPCount = subscription.MaximumExtraVirtualIPCount; MaximumHostedServices = subscription.MaximumHostedServices; MaximumStorageAccounts = subscription.MaximumStorageAccounts; MaximumVirtualNetworkSites = subscription.MaximumVirtualNetworkSites; ServiceAdminLiveEmailId = subscription.ServiceAdminLiveEmailId; Name = subscription.SubscriptionName; Status = subscription.SubscriptionStatus.ToString(); Id = subscription.SubscriptionId; }
public void AddAzureAccountFiltersEmptyAdClientsInRdfeMode() { var emptyTenantIdrdfeSubscription = new RDFESubscription { SubscriptionId = "16E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1E", SubscriptionName = "RdfeSub1", SubscriptionStatus = Microsoft.WindowsAzure.Subscriptions.Models.SubscriptionStatus.Active, ActiveDirectoryTenantId = "" }; var disabledTenantIdrdfeSubscription = new RDFESubscription { SubscriptionId = "16E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1E", SubscriptionName = "RdfeSub1", SubscriptionStatus = Microsoft.WindowsAzure.Subscriptions.Models.SubscriptionStatus.Disabled, ActiveDirectoryTenantId = "B59BE059-5E3F-463B-8C1A-831A29819B52" }; var deletedTenantIdrdfeSubscription = new RDFESubscription { SubscriptionId = "16E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1E", SubscriptionName = "RdfeSub1", SubscriptionStatus = Microsoft.WindowsAzure.Subscriptions.Models.SubscriptionStatus.Deleted, ActiveDirectoryTenantId = "B59BE059-5E3F-463B-8C1A-831A29819B52" }; var deletingTenantIdrdfeSubscription = new RDFESubscription { SubscriptionId = "16E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1E", SubscriptionName = "RdfeSub1", SubscriptionStatus = Microsoft.WindowsAzure.Subscriptions.Models.SubscriptionStatus.Deleting, ActiveDirectoryTenantId = "B59BE059-5E3F-463B-8C1A-831A29819B52" }; SetMocks( new[] { rdfeSubscription1, emptyTenantIdrdfeSubscription, disabledTenantIdrdfeSubscription, deletedTenantIdrdfeSubscription, deletingTenantIdrdfeSubscription }.ToList(), new[] { csmSubscription1 }.ToList()); MemoryDataStore dataStore = new MemoryDataStore(); dataStore.VirtualStore[oldProfileDataPath] = oldProfileData; AzureSession.DataStore = dataStore; currentProfile = new AzureSMProfile(Path.Combine(AzureSession.ProfileDirectory, AzureSession.ProfileFile)); ProfileClient client = new ProfileClient(currentProfile); var account = client.AddAccountAndLoadSubscriptions( new AzureAccount { Id = "test", Type = AzureAccount.AccountType.User }, AzureEnvironment.PublicEnvironments[EnvironmentName.AzureCloud], null); Assert.Equal("test", account.Id); Assert.Equal(1, account.GetSubscriptions(client.Profile).Count); Assert.True(account.GetSubscriptions(client.Profile).Any(s => s.Id == new Guid(rdfeSubscription1.SubscriptionId))); Assert.False(account.GetSubscriptions(client.Profile).Any(s => s.Id == new Guid(csmSubscription1.SubscriptionId))); }
private void SetMockData() { commonTenant = new TenantIdDescription { Id = "Common", TenantId = "Common" }; guestTenant = new TenantIdDescription { Id = "Guest", TenantId = "Guest" }; rdfeSubscription1 = new RDFESubscription { SubscriptionId = "16E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1E", SubscriptionName = "RdfeSub1", SubscriptionStatus = Microsoft.WindowsAzure.Subscriptions.Models.SubscriptionStatus.Active, ActiveDirectoryTenantId = "Common" }; rdfeSubscription2 = new RDFESubscription { SubscriptionId = "26E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1E", SubscriptionName = "RdfeSub2", SubscriptionStatus = Microsoft.WindowsAzure.Subscriptions.Models.SubscriptionStatus.Warned, ActiveDirectoryTenantId = "Common" }; guestRdfeSubscription = new RDFESubscription { SubscriptionId = "26E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1C", SubscriptionName = "RdfeSub2", SubscriptionStatus = Microsoft.WindowsAzure.Subscriptions.Models.SubscriptionStatus.Active, ActiveDirectoryTenantId = "Guest" }; csmSubscription1 = new CSMSubscription { Id = "Subscriptions/36E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1E", DisplayName = "CsmSub1", State = "Active", SubscriptionId = "36E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1E" }; csmSubscription1withDuplicateId = new CSMSubscription { Id = "Subscriptions/16E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1E", DisplayName = "RdfeSub1", State = "Active", SubscriptionId = "16E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1E" }; csmSubscription2 = new CSMSubscription { Id = "Subscriptions/46E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1E", DisplayName = "CsmSub2", State = "Active", SubscriptionId = "46E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1E" }; guestCsmSubscription = new CSMSubscription { Id = "Subscriptions/76E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1D", DisplayName = "CsmGuestSub", State = "Active", SubscriptionId = "76E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1D" }; azureSubscription1 = new AzureSubscription { Id = new Guid("56E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1E"), Name = "LocalSub1", Environment = "Test", Account = "test", Properties = new Dictionary<AzureSubscription.Property, string> { { AzureSubscription.Property.Default, "True" } } }; azureSubscription2 = new AzureSubscription { Id = new Guid("66E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1E"), Name = "LocalSub2", Environment = "Test", Account = "test" }; azureSubscription3withoutUser = new AzureSubscription { Id = new Guid("76E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1E"), Name = "LocalSub3", Environment = "Test", }; azureEnvironment = new AzureEnvironment { Name = "Test", Endpoints = new Dictionary<AzureEnvironment.Endpoint, string> { { AzureEnvironment.Endpoint.ServiceManagement, "https://umapi.rdfetest.dnsdemo4.com:8443/" }, { AzureEnvironment.Endpoint.ManagementPortalUrl, "https://windows.azure-test.net" }, { AzureEnvironment.Endpoint.AdTenant, "https://login.windows-ppe.net/" }, { AzureEnvironment.Endpoint.ActiveDirectory, "https://login.windows-ppe.net/" }, { AzureEnvironment.Endpoint.Gallery, "https://current.gallery.azure-test.net" }, { AzureEnvironment.Endpoint.ResourceManager, "https://api-current.resources.windows-int.net/" }, } }; azureAccount = new AzureAccount { Id = "test", Type = AzureAccount.AccountType.User, Properties = new Dictionary<AzureAccount.Property, string> { { AzureAccount.Property.Subscriptions, azureSubscription1.Id + "," + azureSubscription2.Id } } }; newProfileDataPath = Path.Combine(AzureSession.ProfileDirectory, AzureSession.ProfileFile); oldProfileDataPath = Path.Combine(AzureSession.ProfileDirectory, AzureSession.OldProfileFile); oldProfileDataPathError = Path.Combine(AzureSession.ProfileDirectory, AzureSession.OldProfileFileBackup); oldProfileData = @"<?xml version=""1.0"" encoding=""utf-8""?> <ProfileData xmlns:i=""http://www.w3.org/2001/XMLSchema-instance"" xmlns=""http://schemas.datacontract.org/2004/07/Microsoft.Azure.Common.Authentication""> <DefaultEnvironmentName>AzureCloud</DefaultEnvironmentName> <Environments> <AzureEnvironmentData> <ActiveDirectoryServiceEndpointResourceId>https://management.core.windows.net/</ActiveDirectoryServiceEndpointResourceId> <AdTenantUrl>https://login.windows-ppe.net/</AdTenantUrl> <CommonTenantId>Common</CommonTenantId> <GalleryEndpoint>https://current.gallery.azure-test.net</GalleryEndpoint> <ManagementPortalUrl>http://go.microsoft.com/fwlink/?LinkId=254433</ManagementPortalUrl> <Name>Current</Name> <PublishSettingsFileUrl>d:\Code\azure.publishsettings</PublishSettingsFileUrl> <ResourceManagerEndpoint>https://api-current.resources.windows-int.net/</ResourceManagerEndpoint> <ServiceEndpoint>https://umapi.rdfetest.dnsdemo4.com:8443/</ServiceEndpoint> <SqlDatabaseDnsSuffix>.database.windows.net</SqlDatabaseDnsSuffix> <StorageEndpointSuffix i:nil=""true"" /> <TrafficManagerDnsSuffix>trafficmanager.net</TrafficManagerDnsSuffix> </AzureEnvironmentData> <AzureEnvironmentData> <ActiveDirectoryServiceEndpointResourceId>https://management.core.windows.net/</ActiveDirectoryServiceEndpointResourceId> <AdTenantUrl>https://login.windows-ppe.net/</AdTenantUrl> <CommonTenantId>Common</CommonTenantId> <GalleryEndpoint>https://df.gallery.azure-test.net</GalleryEndpoint> <ManagementPortalUrl>https://windows.azure-test.net</ManagementPortalUrl> <Name>Dogfood</Name> <PublishSettingsFileUrl>https://auxnext.windows.azure-test.net/publishsettings/index</PublishSettingsFileUrl> <ResourceManagerEndpoint>https://api-dogfood.resources.windows-int.net</ResourceManagerEndpoint> <ServiceEndpoint>https://management-preview.core.windows-int.net/</ServiceEndpoint> <SqlDatabaseDnsSuffix>.database.windows.net</SqlDatabaseDnsSuffix> <StorageEndpointSuffix i:nil=""true"" /> <TrafficManagerDnsSuffix>trafficmanager.net</TrafficManagerDnsSuffix> </AzureEnvironmentData> </Environments> <Subscriptions> <AzureSubscriptionData> <ActiveDirectoryEndpoint i:nil=""true"" /> <ActiveDirectoryServiceEndpointResourceId i:nil=""true"" /> <ActiveDirectoryTenantId i:nil=""true"" /> <ActiveDirectoryUserId i:nil=""true"" /> <CloudStorageAccount i:nil=""true"" /> <GalleryEndpoint i:nil=""true"" /> <IsDefault>true</IsDefault> <LoginType i:nil=""true"" /> <ManagementCertificate i:nil=""true""/> <ManagementEndpoint>https://management.core.windows.net/</ManagementEndpoint> <Name>Test</Name> <RegisteredResourceProviders xmlns:d4p1=""http://schemas.microsoft.com/2003/10/Serialization/Arrays"" /> <ResourceManagerEndpoint i:nil=""true"" /> <SqlDatabaseDnsSuffix>.database.windows.net</SqlDatabaseDnsSuffix> <SubscriptionId>06E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1E</SubscriptionId> <TrafficManagerDnsSuffix>trafficmanager.net</TrafficManagerDnsSuffix> </AzureSubscriptionData> <AzureSubscriptionData> <ActiveDirectoryEndpoint i:nil=""true"" /> <ActiveDirectoryServiceEndpointResourceId i:nil=""true"" /> <ActiveDirectoryTenantId>123</ActiveDirectoryTenantId> <ActiveDirectoryUserId>[email protected]</ActiveDirectoryUserId> <CloudStorageAccount i:nil=""true"" /> <GalleryEndpoint i:nil=""true"" /> <IsDefault>true</IsDefault> <LoginType i:nil=""true"" /> <ManagementCertificate i:nil=""true""/> <ManagementEndpoint>https://management-preview.core.windows-int.net/</ManagementEndpoint> <Name>Test 2</Name> <RegisteredResourceProviders xmlns:d4p1=""http://schemas.microsoft.com/2003/10/Serialization/Arrays"" /> <ResourceManagerEndpoint i:nil=""true"" /> <SqlDatabaseDnsSuffix>.database.windows.net</SqlDatabaseDnsSuffix> <SubscriptionId>06E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1F</SubscriptionId> <TrafficManagerDnsSuffix>trafficmanager.net</TrafficManagerDnsSuffix> </AzureSubscriptionData> <AzureSubscriptionData> <ActiveDirectoryEndpoint>https://login.windows.net/</ActiveDirectoryEndpoint> <ActiveDirectoryServiceEndpointResourceId>https://management.core.windows.net/</ActiveDirectoryServiceEndpointResourceId> <ActiveDirectoryTenantId>72f988bf-86f1-41af-91ab-2d7cd011db47</ActiveDirectoryTenantId> <ActiveDirectoryUserId>[email protected]</ActiveDirectoryUserId> <CloudStorageAccount i:nil=""true"" /> <GalleryEndpoint i:nil=""true"" /> <IsDefault>false</IsDefault> <LoginType i:nil=""true"" /> <ManagementCertificate>3AF24D48B97730E5C4C9CCB12397B5E046F79E09</ManagementCertificate> <ManagementEndpoint>https://management.core.windows.net/</ManagementEndpoint> <Name>Test 3</Name> <RegisteredResourceProviders xmlns:d4p1=""http://schemas.microsoft.com/2003/10/Serialization/Arrays"" /> <ResourceManagerEndpoint i:nil=""true"" /> <SqlDatabaseDnsSuffix>.database.windows.net</SqlDatabaseDnsSuffix> <SubscriptionId>d1e52cbc-b073-42e2-a0a0-c2f547118a6f</SubscriptionId> <TrafficManagerDnsSuffix>trafficmanager.net</TrafficManagerDnsSuffix> </AzureSubscriptionData> <AzureSubscriptionData> <ActiveDirectoryEndpoint i:nil=""true"" /> <ActiveDirectoryServiceEndpointResourceId i:nil=""true"" /> <ActiveDirectoryTenantId i:nil=""true"" /> <ActiveDirectoryUserId i:nil=""true"" /> <CloudStorageAccount i:nil=""true"" /> <GalleryEndpoint i:nil=""true"" /> <IsDefault>false</IsDefault> <LoginType i:nil=""true"" /> <ManagementCertificate>3AF24D48B97730E5C4C9CCB12397B5E046F79E09</ManagementCertificate> <ManagementEndpoint>https://management.core.chinacloudapi.cn/</ManagementEndpoint> <Name>Mooncake Test</Name> <RegisteredResourceProviders xmlns:d4p1=""http://schemas.microsoft.com/2003/10/Serialization/Arrays"" /> <ResourceManagerEndpoint i:nil=""true"" /> <SqlDatabaseDnsSuffix>.database.windows.net</SqlDatabaseDnsSuffix> <SubscriptionId>c14d7dc5-ed4d-4346-a02f-9f1bcf78fb66</SubscriptionId> <TrafficManagerDnsSuffix>trafficmanager.net</TrafficManagerDnsSuffix> </AzureSubscriptionData> </Subscriptions> </ProfileData>"; oldProfileDataBadSubscription = @"<?xml version=""1.0"" encoding=""utf-8""?> <ProfileData xmlns:i=""http://www.w3.org/2001/XMLSchema-instance"" xmlns=""http://schemas.datacontract.org/2004/07/Microsoft.Azure.Common.Authentication""> <DefaultEnvironmentName>AzureCloud</DefaultEnvironmentName> <Environments> </Environments> <Subscriptions> <AzureSubscriptionData> <ActiveDirectoryEndpoint i:nil=""true"" /> <ActiveDirectoryServiceEndpointResourceId i:nil=""true"" /> <ActiveDirectoryTenantId i:nil=""true"" /> <ActiveDirectoryUserId i:nil=""true"" /> <CloudStorageAccount i:nil=""true"" /> <GalleryEndpoint i:nil=""true"" /> <IsDefault>true</IsDefault> <LoginType i:nil=""true"" /> <ManagementCertificate i:nil=""true""/> <ManagementEndpoint>https://management.core.windows.net/</ManagementEndpoint> <Name>Test Nill ID</Name> <RegisteredResourceProviders xmlns:d4p1=""http://schemas.microsoft.com/2003/10/Serialization/Arrays"" /> <ResourceManagerEndpoint i:nil=""true"" /> <SqlDatabaseDnsSuffix>.database.windows.net</SqlDatabaseDnsSuffix> <SubscriptionId i:nil=""true"" /> <TrafficManagerDnsSuffix>trafficmanager.net</TrafficManagerDnsSuffix> </AzureSubscriptionData> <AzureSubscriptionData> <ActiveDirectoryEndpoint i:nil=""true"" /> <ActiveDirectoryServiceEndpointResourceId i:nil=""true"" /> <ActiveDirectoryTenantId i:nil=""true"" /> <ActiveDirectoryUserId>[email protected]</ActiveDirectoryUserId> <CloudStorageAccount i:nil=""true"" /> <GalleryEndpoint i:nil=""true"" /> <IsDefault>true</IsDefault> <LoginType i:nil=""true"" /> <ManagementCertificate i:nil=""true""/> <ManagementEndpoint>Bad Data</ManagementEndpoint> <Name>Test Bad Management Endpoint</Name> <RegisteredResourceProviders xmlns:d4p1=""http://schemas.microsoft.com/2003/10/Serialization/Arrays"" /> <ResourceManagerEndpoint i:nil=""true"" /> <SqlDatabaseDnsSuffix>.database.windows.net</SqlDatabaseDnsSuffix> <SubscriptionId>06E3F6FD-A3AA-439A-8FC4-1F5C41D2AD1F</SubscriptionId> <TrafficManagerDnsSuffix>trafficmanager.net</TrafficManagerDnsSuffix> </AzureSubscriptionData> <AzureSubscriptionData> <ActiveDirectoryEndpoint i:nil=""true"" /> <ActiveDirectoryServiceEndpointResourceId i:nil=""true"" /> <ActiveDirectoryTenantId i:nil=""true"" /> <ActiveDirectoryUserId>[email protected]</ActiveDirectoryUserId> <CloudStorageAccount i:nil=""true"" /> <GalleryEndpoint i:nil=""true"" /> <IsDefault>true</IsDefault> <LoginType i:nil=""true"" /> <ManagementCertificate i:nil=""true""/> <ManagementEndpoint i:nil=""true""/> <Name>Test Null Management Endpoint</Name> <RegisteredResourceProviders xmlns:d4p1=""http://schemas.microsoft.com/2003/10/Serialization/Arrays"" /> <ResourceManagerEndpoint i:nil=""true"" /> <SqlDatabaseDnsSuffix>.database.windows.net</SqlDatabaseDnsSuffix> <SubscriptionId>06E3F6FD-A3AA-439A-8FC4-1F5C41D2ADFF</SubscriptionId> <TrafficManagerDnsSuffix>trafficmanager.net</TrafficManagerDnsSuffix> </AzureSubscriptionData> <AzureSubscriptionData> <ActiveDirectoryEndpoint>https://login.windows.net/</ActiveDirectoryEndpoint> <ActiveDirectoryServiceEndpointResourceId>https://management.core.windows.net/</ActiveDirectoryServiceEndpointResourceId> <ActiveDirectoryTenantId>72f988bf-86f1-41af-91ab-2d7cd011db47</ActiveDirectoryTenantId> <ActiveDirectoryUserId>[email protected]</ActiveDirectoryUserId> <CloudStorageAccount i:nil=""true"" /> <GalleryEndpoint i:nil=""true"" /> <IsDefault>false</IsDefault> <LoginType i:nil=""true"" /> <ManagementCertificate>3AF24D48B97730E5C4C9CCB12397B5E046F79E99</ManagementCertificate> <ManagementEndpoint>https://management.core.windows.net/</ManagementEndpoint> <Name>Test Bad Cert</Name> <RegisteredResourceProviders xmlns:d4p1=""http://schemas.microsoft.com/2003/10/Serialization/Arrays"" /> <ResourceManagerEndpoint i:nil=""true"" /> <SqlDatabaseDnsSuffix>.database.windows.net</SqlDatabaseDnsSuffix> <SubscriptionId>d1e52cbc-b073-42e2-a0a0-c2f547118a6f</SubscriptionId> <TrafficManagerDnsSuffix>trafficmanager.net</TrafficManagerDnsSuffix> </AzureSubscriptionData> </Subscriptions> </ProfileData>"; oldProfileDataCorruptedFile = @"<?xml version=""1.0"" encoding=""utf-8""?> <ProfileData xmlns:i=""http://www.w3.org/2001/XMLSchema-instance"" xmlns=""http://schemas.datacontract.org/2004/07/Microsoft.Azure.Common.Authentication""> <DefaultEnvironmentName>AzureCloud</DefaultEnvironmentName> <Environments bad> <AzureEnvironmentData> <ActiveDirectoryServiceEndpointResourceId>https://management.core.windows.net/</ActiveDirectoryServiceEndpointResourceId> <AdTenantUrl>https://login.windows-ppe.net/</AdTenantUrl> <CommonTenantId>Common</CommonTenantId> <GalleryEndpoint>https://current.gallery.azure-test.net</GalleryEndpoint> <ManagementPortalUrl>http://go.microsoft.com/fwlink/?LinkId=254433</ManagementPortalUrl> <Name>Current</Name> <PublishSettingsFileUrl>d:\Code\azure.publishsettings</PublishSettingsFileUrl> <ResourceManagerEndpoint>https://api-current.resources.windows-int.net/</ResourceManagerEndpoint> <ServiceEndpoint>https://umapi.rdfetest.dnsdemo4.com:8443/</ServiceEndpoint> <SqlDatabaseDnsSuffix>.database.windows.net</SqlDatabaseDnsSuffix> <StorageEndpointSuffix i:nil=""true"" /> <TrafficManagerDnsSuffix>trafficmanager.net</TrafficManagerDnsSuffix> </AzureEnvironmentData> <Subscriptions> </Subscriptions> </ProfileData>"; }