Exemplo n.º 1
0
        public static string GetStorageAccountName(this IAzureSubscription subscription)
        {
            if (subscription == null || !subscription.IsPropertySet(AzureSubscription.Property.StorageAccount))
            {
                return(null);
            }

            var result = subscription.GetProperty(AzureSubscription.Property.StorageAccount);

            if (!string.IsNullOrWhiteSpace(result))
            {
                try
                {
                    var pairs = result.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
                    foreach (var pair in pairs)
                    {
                        var sides = pair.Split(new char[] { '=' }, 2, StringSplitOptions.RemoveEmptyEntries);
                        if (string.Equals("AccountName", sides[0].Trim(), StringComparison.OrdinalIgnoreCase))
                        {
                            result = sides[1].Trim();
                            break;
                        }
                    }
                }
                catch
                {
                    // if there are any errors, return the unchanged account name
                }
            }

            return(result);
        }
Exemplo n.º 2
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();
 }
Exemplo n.º 3
0
        public IAzureSubscription SetSubscriptionAsDefault(Guid id, string accountName)
        {
            IAzureSubscription subscription = GetSubscription(id);

            if (subscription != null)
            {
                if (subscription.IsPropertySet(AzureSubscription.Property.StorageAccount))
                {
                    GeneralUtilities.ClearCurrentStorageAccount();
                }

                Profile.DefaultSubscription = subscription;
                Profile.DefaultSubscription.SetAccount(accountName);
            }

            return(subscription);
        }
Exemplo n.º 4
0
        private IAzureSubscription MergeSubscriptionProperties(IAzureSubscription subscription1, IAzureSubscription subscription2)
        {
            if (subscription1 == null || subscription2 == null)
            {
                throw new ArgumentNullException("subscription1");
            }
            if (subscription1.Id != subscription2.Id)
            {
                throw new ArgumentException("Subscription Ids do not match.");
            }
            AzureSubscription mergedSubscription = new AzureSubscription
            {
                Id    = subscription1.Id,
                Name  = subscription1.Name,
                State = (subscription1.State != null &&
                         subscription1.State.Equals(subscription2.State, StringComparison.OrdinalIgnoreCase)) ?
                        subscription1.State : null,
            };

            foreach (var property in subscription1.ExtendedProperties.Keys.Union(subscription2.ExtendedProperties.Keys))
            {
                mergedSubscription.SetProperty(property, subscription1.IsPropertySet(property) ?
                                               subscription1.GetProperty(property) : subscription2.GetProperty(property));
            }

            // Merge RegisteredResourceProviders
            var registeredProviders = subscription1.GetPropertyAsArray(AzureSubscription.Property.RegisteredResourceProviders)
                                      .Union(subscription2.GetPropertyAsArray(AzureSubscription.Property.RegisteredResourceProviders), StringComparer.CurrentCultureIgnoreCase);

            mergedSubscription.SetProperty(AzureSubscription.Property.RegisteredResourceProviders, registeredProviders.ToArray());

            // Merge Tenants
            var tenants = subscription1.GetPropertyAsArray(AzureSubscription.Property.Tenants)
                          .Union(subscription2.GetPropertyAsArray(AzureSubscription.Property.Tenants), StringComparer.CurrentCultureIgnoreCase);

            mergedSubscription.SetProperty(AzureSubscription.Property.Tenants, tenants.ToArray());

            return(mergedSubscription);
        }
 /// <summary>
 /// RDFE only: determines if this subscription is the default
 /// </summary>
 /// <param name="subscription">The subscription to check</param>
 /// <returns>True if it is the default subscription, false otherwise</returns>
 public static bool IsDefault(this IAzureSubscription subscription)
 {
     return(subscription.IsPropertySet(AzureSubscription.Property.Default) &&
            string.Equals("True", subscription.GetProperty(AzureSubscription.Property.Default), System.StringComparison.OrdinalIgnoreCase));
 }