public IAzureSubscription AddOrSetSubscription(IAzureSubscription subscription) { if (subscription == null) { throw new ArgumentNullException("subscription", Resources.SubscriptionNeedsToBeSpecified); } if (subscription.GetEnvironment() == null) { throw new ArgumentNullException("subscription.Environment", Resources.EnvironmentNeedsToBeSpecified); } // Validate environment GetEnvironmentOrDefault(subscription.GetEnvironment()); if (Profile.SubscriptionTable.ContainsKey(subscription.GetId())) { Profile.SubscriptionTable[subscription.GetId()] = MergeSubscriptionProperties(subscription, Profile.SubscriptionTable[subscription.GetId()]); } else { Debug.Assert(!string.IsNullOrEmpty(subscription.GetAccount())); if (!Profile.AccountTable.ContainsKey(subscription.GetAccount())) { throw new KeyNotFoundException(string.Format("The specified account {0} does not exist in profile accounts", subscription.GetAccount())); } Profile.SubscriptionTable[subscription.GetId()] = subscription; } return(Profile.SubscriptionTable[subscription.GetId()]); }
public static IHDInsightSubscriptionCredentials GetSubscriptionCertificateCredentials(this IAzureHDInsightCommonCommandBase command, IAzureSubscription currentSubscription, IAzureAccount azureAccount, IAzureEnvironment environment) { return(new HDInsightCertificateCredential { SubscriptionId = currentSubscription.GetId(), Certificate = AzureSession.Instance.DataStore.GetCertificate(currentSubscription.GetAccount()), Endpoint = environment.GetEndpointAsUri(AzureEnvironment.Endpoint.ServiceManagement), }); }
public static IHDInsightSubscriptionCredentials GetAccessTokenCredentials(this IAzureHDInsightCommonCommandBase command, IAzureSubscription currentSubscription, IAzureAccount azureAccount, IAzureEnvironment environment) { ProfileClient profileClient = new ProfileClient(new AzureSMProfile(Path.Combine(AzureSession.Instance.ProfileDirectory, AzureSession.Instance.ProfileFile))); AzureContext azureContext = new AzureContext(currentSubscription, azureAccount, environment); var cloudCredentials = AzureSession.Instance.AuthenticationFactory.GetSubscriptionCloudCredentials(azureContext) as AccessTokenCredential; if (cloudCredentials != null) { var field = typeof(AccessTokenCredential).GetField("token", BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance); var accessToken = field.GetValue(cloudCredentials) as IAccessToken; if (accessToken != null) { return(new HDInsightAccessTokenCredential() { SubscriptionId = currentSubscription.GetId(), AccessToken = accessToken.AccessToken }); } } return(null); }
public PSAzureSubscription(IAzureSubscription subscription, AzureSMProfile profile) { SubscriptionId = subscription.Id.ToString(); SubscriptionName = subscription.Name; Environment = subscription.GetEnvironment(); DefaultAccount = subscription.GetAccount(); Accounts = profile.AccountTable.Values.Where(a => a.HasSubscription(subscription.GetId())).ToArray(); IsDefault = subscription.IsPropertySet(AzureSubscription.Property.Default); IsCurrent = profile.Context != null && profile.Context.Subscription.Id == subscription.Id; CurrentStorageAccountName = subscription.GetProperty(AzureSubscription.Property.StorageAccount); TenantId = subscription.GetTenant(); }