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 }); }
/// <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); }
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); }
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); }
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)); }
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()); }
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); } }