Ejemplo n.º 1
0
        public AzureFactory(Guid subscriptionId, string accountId, string authorizationToken)
        {
            location = "West US";
            profile  = new AzureProfile();
            var profileClient   = new ProfileClient(profile);
            var productionCloud = AzureEnvironment.PublicEnvironments["AzureCloud"];

            profileClient.InitializeProfile(productionCloud, subscriptionId, authorizationToken, accountId, null);
        }
Ejemplo n.º 2
0
 public void NewProfileFromCertificateWithNullsThrowsArgumentNullException()
 {
     MemoryDataStore dataStore = new MemoryDataStore();
     AzureSession.DataStore = dataStore;
     AzureSMProfile newProfile = new AzureSMProfile();
     ProfileClient client1 = new ProfileClient(newProfile);
     Assert.Throws<ArgumentNullException>(() =>
         client1.InitializeProfile(null, Guid.NewGuid(), new X509Certificate2(), "foo"));
     Assert.Throws<ArgumentNullException>(() =>
         client1.InitializeProfile(AzureEnvironment.PublicEnvironments["AzureCloud"], Guid.NewGuid(), null, "foo"));
 }
Ejemplo n.º 3
0
        private void InitializeAzureProfile(AzureProfile profile, string parameterSet, AzureProfileSettings settings)
        {
            var profileClient = new ProfileClient(profile);

            if (settings.Environment == null)
            {
                settings.Environment = AzureEnvironment.PublicEnvironments["AzureCloud"];
            }
            switch (parameterSet)
            {
            case CertificateParameterSet:
                profileClient.InitializeProfile(settings.Environment, new Guid(settings.SubscriptionId), settings.Certificate,
                                                settings.StorageAccount);
                break;

            case CredentialsParameterSet:
                var userAccount = new AzureAccount
                {
                    Id   = settings.Credential.UserName,
                    Type = AzureAccount.AccountType.User
                };
                profileClient.InitializeProfile(settings.Environment, new Guid(settings.SubscriptionId), userAccount,
                                                settings.Credential.Password, settings.StorageAccount);
                break;

            case AccessTokenParameterSet:
                profileClient.InitializeProfile(settings.Environment, new Guid(settings.SubscriptionId), settings.AccessToken,
                                                settings.AccountId, settings.StorageAccount);
                break;

            case ServicePrincipalParameterSet:
                var servicePrincipalAccount = new AzureAccount
                {
                    Id   = settings.Credential.UserName,
                    Type = AzureAccount.AccountType.ServicePrincipal
                };
                profileClient.InitializeProfile(settings.Environment, new Guid(settings.SubscriptionId), servicePrincipalAccount,
                                                settings.Credential.Password, settings.StorageAccount);
                break;
            }
        }
Ejemplo n.º 4
0
        public void NewProfileFromCertificateReturnsProfile()
        {
            MemoryDataStore dataStore = new MemoryDataStore();
            AzureSession.DataStore = dataStore;
            AzureSMProfile newProfile = new AzureSMProfile();
            ProfileClient client1 = new ProfileClient(newProfile);
            var subscriptionId = Guid.NewGuid();
            var certificate = new X509Certificate2(Convert.FromBase64String(dummyCertificate));

            client1.InitializeProfile(AzureEnvironment.PublicEnvironments["AzureCloud"],
                subscriptionId, certificate, null);

            Assert.Equal("AzureCloud", newProfile.DefaultSubscription.Environment);
            Assert.Equal(subscriptionId, newProfile.DefaultSubscription.Id);
            Assert.Equal(certificate.Thumbprint, newProfile.DefaultSubscription.Account);
            Assert.False(newProfile.DefaultSubscription.Properties.ContainsKey(AzureSubscription.Property.StorageAccount));
        }
Ejemplo n.º 5
0
        public void NewProfileFromADWithMismatchSubscriptionThrows()
        {
            SetMocks(new[] { rdfeSubscription1, rdfeSubscription2 }.ToList(), new[] { csmSubscription1 }.ToList());
            MemoryDataStore dataStore = new MemoryDataStore();
            AzureSession.DataStore = dataStore;
            AzureSMProfile newProfile = new AzureSMProfile();
            ProfileClient client1 = new ProfileClient(newProfile);
            var newAccount = new AzureAccount { Id = "foo" };
            newAccount.Properties[AzureAccount.Property.Tenants] = "123";

            Assert.Throws<ArgumentException>(() => client1.InitializeProfile(AzureEnvironment.PublicEnvironments["AzureCloud"],
                Guid.NewGuid(), newAccount, null, null));
        }
Ejemplo n.º 6
0
        public void NewProfileWithAccessTokenReturnsProfile()
        {
            //SetMocks(new[] { rdfeSubscription1, rdfeSubscription2 }.ToList(), new[] { csmSubscription1 }.ToList());
            MemoryDataStore dataStore = new MemoryDataStore();
            AzureSession.DataStore = dataStore;
            AzureSMProfile newProfile = new AzureSMProfile();
            ProfileClient client1 = new ProfileClient(newProfile);

            client1.InitializeProfile(AzureEnvironment.PublicEnvironments["AzureCloud"],
                new Guid(csmSubscription1.SubscriptionId), "accessToken", "accountId", null);

            Assert.Equal("AzureCloud", newProfile.DefaultSubscription.Environment);
            Assert.Equal(new Guid(csmSubscription1.SubscriptionId), newProfile.DefaultSubscription.Id);
            Assert.Equal("accountId", newProfile.DefaultSubscription.Account);
            Assert.Equal(AzureAccount.AccountType.AccessToken, newProfile.Context.Account.Type);
            Assert.Equal("accessToken", newProfile.Context.Account.Properties[AzureAccount.Property.AccessToken]);
            Assert.False(newProfile.DefaultSubscription.Properties.ContainsKey(AzureSubscription.Property.StorageAccount));
        }
Ejemplo n.º 7
0
        public void NewProfileFromADReturnsProfile()
        {
            SetMocks(new[] { rdfeSubscription1, rdfeSubscription2 }.ToList(), new List<CSMSubscription>());
            rdfeSubscription2.ActiveDirectoryTenantId = "123";
            MemoryDataStore dataStore = new MemoryDataStore();
            AzureSession.DataStore = dataStore;
            AzureSMProfile newProfile = new AzureSMProfile();
            ProfileClient client1 = new ProfileClient(newProfile);
            var newAccount = new AzureAccount { Id = "foo" };
            newAccount.Properties[AzureAccount.Property.Tenants] = "123";

            client1.InitializeProfile(AzureEnvironment.PublicEnvironments["AzureCloud"],
                new Guid(rdfeSubscription2.SubscriptionId), newAccount, null, null);

            Assert.Equal("AzureCloud", newProfile.DefaultSubscription.Environment);
            Assert.Equal(new Guid(rdfeSubscription2.SubscriptionId), newProfile.DefaultSubscription.Id);
            Assert.Equal(newAccount.Id, newProfile.DefaultSubscription.Account);
            Assert.False(newProfile.DefaultSubscription.Properties.ContainsKey(AzureSubscription.Property.StorageAccount));
        }
Ejemplo n.º 8
0
        private void InitializeAzureProfile(AzureSMProfile profile, string parameterSet, AzureProfileSettings settings)
        {
            var savedCache = AzureSession.TokenCache;

            AzureSession.TokenCache = TokenCache.DefaultShared;
            try
            {
                var profileClient = new ProfileClient(profile);
                if (settings.Environment == null)
                {
                    settings.Environment = AzureEnvironment.PublicEnvironments["AzureCloud"];
                }
                switch (parameterSet)
                {
                case CertificateParameterSet:
                    profileClient.InitializeProfile(settings.Environment, new Guid(settings.SubscriptionId),
                                                    settings.Certificate,
                                                    settings.StorageAccount);
                    break;

                case CredentialsParameterSet:
                    var userAccount = new AzureAccount
                    {
                        Id   = settings.Credential.UserName,
                        Type = AzureAccount.AccountType.User
                    };
                    profileClient.InitializeProfile(settings.Environment, new Guid(settings.SubscriptionId),
                                                    userAccount,
                                                    settings.Credential.Password, settings.StorageAccount);
                    break;

                case AccessTokenParameterSet:
                    profileClient.InitializeProfile(settings.Environment, new Guid(settings.SubscriptionId),
                                                    settings.AccessToken,
                                                    settings.AccountId, settings.StorageAccount);
                    break;

                case ServicePrincipalParameterSet:
                    var servicePrincipalAccount = new AzureAccount
                    {
                        Id   = settings.Credential.UserName,
                        Type = AzureAccount.AccountType.ServicePrincipal,
                    };
                    servicePrincipalAccount.SetOrAppendProperty(AzureAccount.Property.Tenants, settings.Tenant);
                    profileClient.InitializeProfile(settings.Environment, new Guid(settings.SubscriptionId),
                                                    servicePrincipalAccount,
                                                    settings.Credential.Password, settings.StorageAccount);
                    break;

                case EmptyParameterSet:
                    if (!profile.Environments.ContainsKey(settings.Environment.Name))
                    {
                        profile.Environments.Add(settings.Environment.Name, settings.Environment);
                    }
                    break;
                }
            }
            finally
            {
                AzureSession.TokenCache = savedCache;
            }
        }