コード例 #1
0
        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()]);
        }
コード例 #2
0
 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),
     });
 }
コード例 #3
0
        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);
        }
コード例 #4
0
 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();
 }