コード例 #1
0
        public static AzureRMProfile CreateAzureRMProfile(string storageAccount)
        {
            var tenantId       = Guid.NewGuid();
            var subscriptionId = Guid.NewGuid();
            var domain         = "Contoso.com";
            var context        = new PSAzureContext()
            {
                Account = new PSAzureRmAccount
                {
                    Id          = "*****@*****.**",
                    AccountType = "User"
                },
                Environment  = (PSAzureEnvironment)AzureEnvironment.PublicEnvironments[EnvironmentName.AzureCloud],
                Subscription =
                    new PSAzureSubscription {
                    CurrentStorageAccount     = storageAccount,
                    CurrentStorageAccountName = PSAzureSubscription.GetAccountName(storageAccount),
                    SubscriptionId            = subscriptionId.ToString(),
                    SubscriptionName          = "Test Subscription 1",
                    TenantId = tenantId.ToString()
                },
                Tenant = new PSAzureTenant
                {
                    Domain   = domain,
                    TenantId = tenantId.ToString()
                }
            };

            return(new AzureRMProfile()
            {
                Context = context
            });
        }
コード例 #2
0
        /// <summary>
        /// Convert a context from a PSObject
        /// </summary>
        /// <param name="other"></param>
        public PSAzureContext(PSObject other)
        {
            if (other == null || other.Properties == null)
            {
                throw new ArgumentNullException(nameof(other));
            }
            PSObject property;

            if (other.TryGetProperty(nameof(Account), out property))
            {
                Account = new PSAzureRmAccount(property);
            }
            if (other.TryGetProperty(nameof(Environment), out property))
            {
                Environment = new PSAzureEnvironment(property);
            }
            if (other.TryGetProperty(nameof(Subscription), out property))
            {
                Subscription = new PSAzureSubscription(property);
            }
            if (other.TryGetProperty(nameof(Tenant), out property))
            {
                Tenant = new PSAzureTenant(property);
            }

            VersionProfile = other.GetProperty <string>(nameof(VersionProfile));
            this.PopulateExtensions(other);
        }
コード例 #3
0
        public void ConvertAzureSubscripitonToPSAzureSubscriptionWithoutTags()
        {
            string tenants = new Guid().ToString(), homeTenant = new Guid().ToString();
            var    subscription = new AzureSubscription()
            {
                Id    = new Guid().ToString(),
                Name  = "Playground-01",
                State = "Enabled",
                ExtendedProperties =
                {
                    { "SubscriptionPolices", @"{""locationPlacementId"":""Internal_2014-09-01"",""quotaId"":""Internal_2014-09-01"",""spendingLimit"":""Off""}" },
                    { "AuthorizationSource", "RoleBased"                                                                                                        },
                    { "Account",             "*****@*****.**"                                                                                           },
                    { "ManagedByTenants",    tenants                                                                                                            },
                    { "Tenants",             tenants                                                                                                            },
                    { "HomeTenant",          homeTenant                                                                                                         }
                }
            };

            var psSubscription = new PSAzureSubscription(subscription);

            Assert.Equal(subscription.Id, psSubscription.Id);
            Assert.Equal(subscription.Name, psSubscription.Name);
            Assert.Equal(subscription.State, psSubscription.State);
            Assert.Equal(homeTenant, psSubscription.TenantId);
            Assert.Equal(homeTenant, psSubscription.HomeTenantId);
            Assert.Equal("Internal_2014-09-01", psSubscription.SubscriptionPolicies.LocationPlacementId);
            Assert.Null(psSubscription.Tags);
        }
コード例 #4
0
        private PSAzureSubscription ConstructPsAzureSubscription(AzureSubscription subscription)
        {
            PSAzureSubscription psObject = new PSAzureSubscription();

            psObject.SubscriptionId            = subscription.Id.ToString();
            psObject.SubscriptionName          = subscription.Name;
            psObject.Environment               = subscription.Environment;
            psObject.SupportedModes            = subscription.GetProperty(AzureSubscription.Property.SupportedModes);
            psObject.DefaultAccount            = subscription.Account;
            psObject.Accounts                  = ProfileClient.Profile.Accounts.Values.Where(a => a.HasSubscription(subscription.Id)).ToArray();
            psObject.IsDefault                 = subscription.IsPropertySet(AzureSubscription.Property.Default);
            psObject.IsCurrent                 = AzureSession.CurrentContext.Subscription != null && AzureSession.CurrentContext.Subscription.Id == subscription.Id;
            psObject.CurrentStorageAccountName = subscription.GetProperty(AzureSubscription.Property.StorageAccount);
            return(psObject);
        }
コード例 #5
0
        public void CanConvertValidPSAzureSubscriptions(string name, string storageAccount)
        {
            var oldSubscription = new PSAzureSubscription()
            {
                CurrentStorageAccount = storageAccount,
                Id       = Guid.NewGuid().ToString(),
                Name     = name,
                TenantId = Guid.NewGuid().ToString()
            };
            var subscription = (AzureSubscription)oldSubscription;

            Assert.Equal(oldSubscription.Name, subscription.Name);
            Assert.Equal(oldSubscription.Id, subscription.Id.ToString());
            Assert.Equal(oldSubscription.TenantId, subscription.GetProperty(AzureSubscription.Property.Tenants));
            Assert.Equal(storageAccount, subscription.GetProperty(AzureSubscription.Property.StorageAccount));
        }
コード例 #6
0
        public void NewPSAzureSubscription()
        {
            string        locationPlacementId  = "Internal_2014-09-01";
            string        quotaId              = "Internal_2014-09-01";
            SpendingLimit spendingLimit        = SpendingLimit.Off;
            var           subscriptionPolicies = new SubscriptionPolicies(locationPlacementId, quotaId, spendingLimit);

            // test PSAzureSubscriptionPolicies' constructors
            var psAzureSubscriptionPolicies = new PSAzureSubscriptionPolicy(subscriptionPolicies);

            Assert.Equal(psAzureSubscriptionPolicies.LocationPlacementId, locationPlacementId);
            Assert.Equal(psAzureSubscriptionPolicies.QuotaId, quotaId);
            Assert.Equal(psAzureSubscriptionPolicies.SpendingLimit, spendingLimit.ToString());

            var psAzureSubscriptionPolicies2 = new PSAzureSubscriptionPolicy(JsonConvert.SerializeObject(subscriptionPolicies));

            Assert.Equal(psAzureSubscriptionPolicies2.LocationPlacementId, locationPlacementId);
            Assert.Equal(psAzureSubscriptionPolicies2.QuotaId, quotaId);
            Assert.Equal(psAzureSubscriptionPolicies2.SpendingLimit, spendingLimit.ToString());

            var sub = new AzureSubscription
            {
                Id    = new Guid().ToString(),
                Name  = "Contoso Test Subscription",
                State = "Enabled",
            };

            sub.SetAccount("*****@*****.**");
            sub.SetEnvironment("testCloud");
            sub.SetTenant(new Guid("3c0ff8a7-e8bb-40e8-ae66-271343379af6").ToString());
            sub.SetSubscriptionPolicies(JsonConvert.SerializeObject(subscriptionPolicies));

            // test PSAzureSubscription's constructor
            var psAzureSubscription = new PSAzureSubscription(sub);

            Assert.NotNull(psAzureSubscription.SubscriptionPolicies);
            Assert.Equal(psAzureSubscription.SubscriptionPolicies.LocationPlacementId, locationPlacementId);
            Assert.Equal(psAzureSubscription.SubscriptionPolicies.QuotaId, quotaId);
            Assert.Equal(psAzureSubscription.SubscriptionPolicies.SpendingLimit, spendingLimit.ToString());
        }
コード例 #7
0
        private PSAzureSubscriptionExtended ConstructPsAzureSubscriptionExtended(AzureSubscription subscription, IClientFactory clientFactory)
        {
            using (var client = clientFactory.CreateClient <ManagementClient>(Profile, subscription, AzureEnvironment.Endpoint.ServiceManagement))
            {
                var  response                      = client.Subscriptions.Get();
                var  environment                   = ProfileClient.GetEnvironmentOrDefault(subscription.Environment);
                var  account                       = ProfileClient.Profile.Accounts[subscription.Account];
                bool isCert                        = account.Type == AzureAccount.AccountType.Certificate;
                var  psAzureSubscription           = new PSAzureSubscription(subscription, ProfileClient.Profile);
                PSAzureSubscriptionExtended result = new PSAzureSubscriptionExtended(psAzureSubscription)
                {
                    AccountAdminLiveEmailId    = response.AccountAdminLiveEmailId,
                    ActiveDirectoryUserId      = subscription.Account,
                    CurrentCoreCount           = response.CurrentCoreCount,
                    CurrentHostedServices      = response.CurrentHostedServices,
                    CurrentDnsServers          = response.CurrentDnsServers,
                    CurrentLocalNetworkSites   = response.CurrentLocalNetworkSites,
                    CurrentStorageAccounts     = response.CurrentStorageAccounts,
                    CurrentVirtualNetworkSites = response.CurrentVirtualNetworkSites,
                    MaxCoreCount            = response.MaximumCoreCount,
                    MaxDnsServers           = response.MaximumDnsServers,
                    MaxHostedServices       = response.MaximumHostedServices,
                    MaxLocalNetworkSites    = response.MaximumLocalNetworkSites,
                    MaxStorageAccounts      = response.MaximumStorageAccounts,
                    MaxVirtualNetworkSites  = response.MaximumVirtualNetworkSites,
                    ServiceAdminLiveEmailId = response.ServiceAdminLiveEmailId,
                    SubscriptionRealName    = response.SubscriptionName,
                    SubscriptionStatus      = response.SubscriptionStatus.ToString(),
                    ServiceEndpoint         = environment.GetEndpoint(AzureEnvironment.Endpoint.ServiceManagement),
                    ResourceManagerEndpoint = environment.GetEndpoint(AzureEnvironment.Endpoint.ResourceManager),
                    IsDefault   = subscription.GetProperty(AzureSubscription.Property.Default) != null,
                    Account     = account,
                    Certificate = isCert ? AzureSession.DataStore.GetCertificate(subscription.Account) : null,
                    CurrentStorageAccountName = subscription.GetProperty(AzureSubscription.Property.StorageAccount)
                };

                return(result);
            }
        }