public override void ExecuteCmdlet() { switch (ParameterSetName) { case "ByName": IEnumerable <AzureSubscription> subscriptions = new AzureSubscription[0]; if (Profile.Context != null && Profile.Context.Environment != null) { subscriptions = ProfileClient.RefreshSubscriptions(Profile.Context.Environment) .Where( s => SubscriptionName == null || s.Name.Equals(SubscriptionName, StringComparison.InvariantCultureIgnoreCase)); } WriteSubscriptions(subscriptions); break; case "ById": WriteSubscriptions(ProfileClient.GetSubscription(new Guid(SubscriptionId))); break; case "Default": GetDefault(); break; case "Current": GetCurrent(); break; } }
public void GetAzureSubscriptionByIdChecksAndReturnsOnlyLocal() { SetMocks(new[] { rdfeSubscription1, rdfeSubscription2 }.ToList(), new[] { csmSubscription1, csmSubscription1withDuplicateId }.ToList()); MockDataStore dataStore = new MockDataStore(); ProfileClient.DataStore = dataStore; ProfileClient client = new ProfileClient(); client.AddOrSetAccount(azureAccount); PowerShellUtilities.GetCurrentModeOverride = () => AzureModule.AzureResourceManager; client.AddOrSetEnvironment(azureEnvironment); client.AddOrSetSubscription(azureSubscription1); client.AddOrSetSubscription(azureSubscription2); var subscriptions = client.GetSubscription(azureSubscription1.Id); Assert.Equal(azureSubscription1.Id, subscriptions.Id); Assert.Throws<ArgumentException>(() => client.GetSubscription(new Guid())); }
public void ImportPublishSettingsWorksForCustomProfile() { ImportAzurePublishSettingsCommand cmdlt = new ImportAzurePublishSettingsCommand(); var oldAzureDataStore = AzureSession.DataStore; AzureSession.DataStore = new MemoryDataStore(); // Setup AzureSession.DataStore.WriteFile("ImportPublishSettingsFileSelectsCorrectEnvironment.publishsettings", Commands.Common.Test.Properties.Resources.ValidProfileChina); var oldProfile = new AzureProfile(); AzurePSCmdlet.CurrentProfile = oldProfile; var profile = new AzureProfile(); ProfileClient client = new ProfileClient(profile); var oldDataStore = FileUtilities.DataStore; FileUtilities.DataStore = AzureSession.DataStore; var expectedEnv = "AzureCloud"; var expected = client.ImportPublishSettings("ImportPublishSettingsFileSelectsCorrectEnvironment.publishsettings", expectedEnv); AzurePSCmdlet.CurrentProfile = new AzureProfile(); cmdlt.Profile = profile; cmdlt.CommandRuntime = commandRuntimeMock; cmdlt.ProfileClient = new ProfileClient(new AzureProfile(Path.Combine(AzureSession.ProfileDirectory, AzureSession.ProfileFile))); cmdlt.PublishSettingsFile = "ImportPublishSettingsFileSelectsCorrectEnvironment.publishsettings"; cmdlt.Environment = expectedEnv; try { // Act cmdlt.InvokeBeginProcessing(); cmdlt.ExecuteCmdlet(); cmdlt.InvokeEndProcessing(); // Verify foreach (var subscription in expected) { Assert.Equal(client.GetSubscription(subscription.Id).Environment, expectedEnv); } Assert.Equal(1, commandRuntimeMock.OutputPipeline.Count); Assert.Equal(oldProfile.Subscriptions.Count, 0); Assert.Equal(oldProfile.Accounts.Count, 0); } finally { // Cleanup FileUtilities.DataStore = oldDataStore; AzureSession.DataStore = oldAzureDataStore; } }
public void GetAzureSubscriptionByIdChecksAndReturnsOnlyLocal() { SetMocks(new[] { rdfeSubscription1, rdfeSubscription2 }.ToList(), new[] { csmSubscription1, csmSubscription1withDuplicateId }.ToList()); MemoryDataStore dataStore = new MemoryDataStore(); AzureSession.DataStore = dataStore; currentProfile = new AzureSMProfile(Path.Combine(AzureSession.ProfileDirectory, AzureSession.ProfileFile)); ProfileClient client = new ProfileClient(currentProfile); client.AddOrSetAccount(azureAccount); client.AddOrSetEnvironment(azureEnvironment); client.AddOrSetSubscription(azureSubscription1); client.AddOrSetSubscription(azureSubscription2); var subscriptions = client.GetSubscription(azureSubscription1.Id); Assert.Equal(azureSubscription1.Id, subscriptions.Id); Assert.Throws<ArgumentException>(() => client.GetSubscription(new Guid())); }
/// <summary> /// Executes the set subscription cmdlet operation. /// </summary> public override void ExecuteCmdlet() { AzureSubscription subscription = null; if (!string.IsNullOrEmpty(SubscriptionId) && string.IsNullOrEmpty(SubscriptionName)) { subscription = ProfileClient.GetSubscription(new Guid(SubscriptionId)); Environment = subscription.Environment; } else if (string.IsNullOrEmpty(SubscriptionId) && !string.IsNullOrEmpty(SubscriptionName)) { subscription = ProfileClient.GetSubscription(SubscriptionName); Environment = subscription.Environment; } else { subscription = new AzureSubscription(); subscription.Id = new Guid(SubscriptionId); subscription.Name = SubscriptionName; } AzureEnvironment environment = ProfileClient.GetEnvironment(Environment, ServiceEndpoint, ResourceManagerEndpoint); if (environment == null) { var profileClient = new ProfileClient(Profile); environment = profileClient.GetEnvironment(Environment, ServiceEndpoint, ResourceManagerEndpoint); } if (environment == null) { throw new ArgumentException("ServiceEndpoint and ResourceManagerEndpoint values do not " + "match existing environment. Please use Environment parameter."); } else { subscription.Environment = environment.Name; } if (ServiceEndpoint != null || ResourceManagerEndpoint != null) { WriteWarning("Please use Environment parameter to specify subscription environment. This " + "warning will be converted into an error in the upcoming release."); } if (Certificate != null) { ProfileClient.ImportCertificate(Certificate); subscription.Account = Certificate.Thumbprint; AzureAccount account = new AzureAccount { Id = Certificate.Thumbprint, Type = AzureAccount.AccountType.Certificate }; account.SetOrAppendProperty(AzureAccount.Property.Subscriptions, subscription.Id.ToString()); ProfileClient.AddOrSetAccount(account); if (subscription.Account == null) { subscription.Account = account.Id; } } if (subscription.Account == null) { throw new ArgumentException("Certificate is required for creating a new subscription."); } if (!string.IsNullOrEmpty(CurrentStorageAccountName) || Context != null) { ProfileClient.GetAccount(subscription.Account); if (Profile.Context != null && Profile.Context.Subscription != null && Profile.Context.Subscription.Id == subscription.Id) { GeneralUtilities.ClearCurrentStorageAccount(); } var context = new AzureContext(subscription, ProfileClient.GetAccount(subscription.Account), ProfileClient.GetEnvironmentOrDefault(subscription.Environment)); if (Context != null) { context.SetCurrentStorageAccount(this); } else { var client = AzureSession.ClientFactory.CreateClient <StorageManagementClient>(context, AzureEnvironment.Endpoint.ServiceManagement); var account = StorageUtilities.GenerateCloudStorageAccount(client, CurrentStorageAccountName); context.SetCurrentStorageAccount(account.ToString(true)); } } subscription = ProfileClient.AddOrSetSubscription(subscription); if (PassThru) { WriteObject(subscription); } }
/// <summary> /// Executes the set subscription cmdlet operation. /// </summary> public override void ExecuteCmdlet() { AzureSubscription subscription = null; if (!string.IsNullOrEmpty(SubscriptionId) && string.IsNullOrEmpty(SubscriptionName)) { subscription = ProfileClient.GetSubscription(new Guid(SubscriptionId)); Environment = subscription.Environment; } else if (string.IsNullOrEmpty(SubscriptionId) && !string.IsNullOrEmpty(SubscriptionName)) { subscription = ProfileClient.GetSubscription(SubscriptionName); Environment = subscription.Environment; } else { subscription = new AzureSubscription(); subscription.Id = new Guid(SubscriptionId); subscription.Name = SubscriptionName; } AzureEnvironment environment = ProfileClient.GetEnvironment(Environment, ServiceEndpoint, ResourceManagerEndpoint); if (environment == null) { environment = DefaultProfileClient.GetEnvironment(Environment, ServiceEndpoint, ResourceManagerEndpoint); } if (environment == null) { throw new ArgumentException("ServiceEndpoint and ResourceManagerEndpoint values do not " + "match existing environment. Please use Environment parameter."); } else { subscription.Environment = environment.Name; } if (ServiceEndpoint != null || ResourceManagerEndpoint != null) { WriteWarning("Please use Environment parameter to specify subscription environment. This " + "warning will be converted into an error in the upcoming release."); } if (Certificate != null) { ProfileClient.ImportCertificate(Certificate); subscription.Account = Certificate.Thumbprint; AzureAccount account = new AzureAccount { Id = Certificate.Thumbprint, Type = AzureAccount.AccountType.Certificate }; account.SetOrAppendProperty(AzureAccount.Property.Subscriptions, subscription.Id.ToString()); ProfileClient.AddOrSetAccount(account); if (subscription.Account == null) { subscription.Account = account.Id; } } if (subscription.Account == null) { throw new ArgumentException("Certificate is required for creating a new subscription."); } if (!string.IsNullOrEmpty(CurrentStorageAccountName)) { subscription.Properties[AzureSubscription.Property.StorageAccount] = CurrentStorageAccountName; } subscription = ProfileClient.AddOrSetSubscription(subscription); if (PassThru) { WriteObject(subscription); } }
public void GetAzureSubscriptionByNameChecksAndReturnsOnlyLocal() { SetMocks(new[] { rdfeSubscription1, rdfeSubscription2 }.ToList(), new[] { csmSubscription1, csmSubscription1withDuplicateId }.ToList()); MockDataStore dataStore = new MockDataStore(); ProfileClient.DataStore = dataStore; ProfileClient client = new ProfileClient(); client.AddOrSetAccount(azureAccount); client.AddOrSetEnvironment(azureEnvironment); client.AddOrSetSubscription(azureSubscription1); client.AddOrSetSubscription(azureSubscription2); var subscriptions = client.GetSubscription(azureSubscription1.Name); Assert.Equal(azureSubscription1.Id, subscriptions.Id); Assert.Throws<ArgumentException>(() => client.GetSubscription(new Guid())); }