Example #1
0
        public async Task CanCreateIaasClusterWithD12Headnode()
        {
            var restClient = ServiceLocator.Instance.Locate <IRdfeClustersResourceRestClientFactory>()
                             .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
            var clustersPocoClient      = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient);
            var clusterCreateParameters = new HDInsight.ClusterCreateParametersV2
            {
                Name = "D12HeadnodeCreationTest",
                DefaultStorageAccountKey  = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Key,
                DefaultStorageAccountName = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Name,
                DefaultStorageContainer   = "D12HeadnodeCreationTest",
                ClusterSizeInNodes        = 2,
                Location     = "East US",
                UserName     = "******",
                Password     = "******",
                OSType       = OSType.Linux,
                Version      = "3.2",
                ClusterType  = ClusterProvisioning.Data.ClusterType.Hadoop,
                HeadNodeSize = "Standard_D12"
            };

            await clustersPocoClient.CreateContainer(clusterCreateParameters);

            var containersList = clustersPocoClient.ListContainers().Result;

            Assert.AreEqual(containersList.Count, 1);
            Assert.IsNotNull(containersList.SingleOrDefault(cluster => cluster.Name.Equals("D12HeadnodeCreationTest")));
        }
Example #2
0
        public async Task ICanCreateACluster_WithOldVmSizes_All_Specified()
        {
            var restClient = ServiceLocator.Instance.Locate <IRdfeClustersResourceRestClientFactory>()
                             .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
            var clustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient);

            try
            {
                var clusterCreateParameters = new HDInsight.ClusterCreateParametersV2
                {
                    Name = "ConfigActionTest",
                    DefaultStorageAccountKey  = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Key,
                    DefaultStorageAccountName = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Name,
                    DefaultStorageContainer   = "ConfigActionTest",
                    ClusterSizeInNodes        = 2,
                    Location          = "East US",
                    UserName          = "******",
                    Password          = "******",
                    Version           = "3.1",
                    HeadNodeSize      = "ExtraLarge",
                    DataNodeSize      = "Large",
                    ZookeeperNodeSize = "Medium",
                    ClusterType       = ClusterType.HBase,
                };

                // Add in valid config action.
                clusterCreateParameters.ConfigActions.Add(new ScriptAction("TestScriptAction", new ClusterNodeType[] { ClusterNodeType.HeadNode }, new Uri("http://www.microsoft.com"), null));

                await clustersPocoClient.CreateContainer(clusterCreateParameters);
            }
            catch (NotSupportedException ex)
            {
                Assert.IsNotNull(ex);
            }
        }
Example #3
0
        public async Task CanCreateClusterWithHwxPrivateVersion()
        {
            Capabilities.Add("CAPABILITY_FEATURE_CLUSTERS_CONTRACT_1_SDK");
            Capabilities.Add("CAPABILITY_FEATURE_CLUSTERS_CONTRACT_VERSION_3_SDK");
            var restClient = ServiceLocator.Instance.Locate <IRdfeClustersResourceRestClientFactory>()
                             .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
            var clustersPocoClient      = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient);
            var clusterCreateParameters = new HDInsight.ClusterCreateParametersV2
            {
                Name = "HwxVersionTest",
                DefaultStorageAccountKey  = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Key,
                DefaultStorageAccountName = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Name,
                DefaultStorageContainer   = "HwxVersionTest",
                ClusterSizeInNodes        = 2,
                Location    = "East US",
                UserName    = "******",
                Password    = "******",
                Version     = "3.2-hwx-trunk",
                ClusterType = ClusterType.Hadoop,
            };

            await clustersPocoClient.CreateContainer(clusterCreateParameters);

            var containersList = clustersPocoClient.ListContainers().Result;

            Assert.AreEqual(containersList.Count, 1);
            Assert.IsNotNull(containersList.SingleOrDefault(cluster => cluster.Name.Equals("HwxVersionTest")));
        }
Example #4
0
        public void CanDeleteCloudServicesWithDuplicateNames()
        {
            var restClient = ServiceLocator.Instance.Locate <IRdfeClustersResourceRestClientFactory>()
                             .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));

            using (var paasClustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient))
            {
                CreateCluster("testcluster1", "West US");
                CreateCluster("testcluster1", "East US");
                var containersList = paasClustersPocoClient.ListContainers().Result;
                Assert.AreEqual(containersList.Count, 2);
                // Now delete cluster without region name and both should be deleted
                try
                {
                    paasClustersPocoClient.DeleteContainer("testcluster1").Wait();
                    Assert.Fail("Exception not thrown");
                }
                catch (AggregateException age)
                {
                    Assert.IsTrue(age.InnerException != null, "Inner exception is not null");
                    Assert.IsTrue(age.InnerException is InvalidOperationException, "Exception is not InvalidOperationException");
                    Assert.AreEqual("Multiple clusters found with dnsname 'testcluster1'. Please specify dnsname and location", age.InnerException.Message, "Message not as expected");
                }
                containersList = paasClustersPocoClient.ListContainers().Result;
                Assert.AreEqual(containersList.Count, 2);
            }
        }
 public void CanListCloudServicesEmpty()
 {
     var restClient = ServiceLocator.Instance.Locate<IRdfeClustersResourceRestClientFactory>()
                                               .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
     using (var paasClustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient))
     {
         var containersList = paasClustersPocoClient.ListContainers().Result;
         Assert.AreEqual(containersList.Count, 0);
     }
 }
Example #6
0
        public void CanListCloudServicesEmpty()
        {
            var restClient = ServiceLocator.Instance.Locate <IRdfeClustersResourceRestClientFactory>()
                             .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));

            using (var paasClustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient))
            {
                var containersList = paasClustersPocoClient.ListContainers().Result;
                Assert.AreEqual(containersList.Count, 0);
            }
        }
        public void CanCreatePocoClient()
        {
            var restClient = ServiceLocator.Instance.Locate<IRdfeClustersResourceRestClientFactory>()
                                                      .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));

            Assert.IsNotNull(restClient);

            using (var paasClustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient))
            {
                Assert.IsNotNull(paasClustersPocoClient);
            }
        }
Example #8
0
        public void CanCreatePocoClient()
        {
            var restClient = ServiceLocator.Instance.Locate <IRdfeClustersResourceRestClientFactory>()
                             .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));

            Assert.IsNotNull(restClient);

            using (var paasClustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient))
            {
                Assert.IsNotNull(paasClustersPocoClient);
            }
        }
Example #9
0
        public async Task ResizeToSameSizeReturnsEmptyGuidOperationId()
        {
            var restClient = ServiceLocator.Instance.Locate <IRdfeClustersResourceRestClientFactory>()
                             .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
            var paasClustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient);

            CreateCluster("testcluster", "West US");
            var cluster = paasClustersPocoClient.ListContainer("testcluster").Result;
            var originalInstanceCount = cluster.ClusterSizeInNodes;

            var operationId = await paasClustersPocoClient.ChangeClusterSize("testcluster", cluster.Location, originalInstanceCount);

            Assert.AreEqual(operationId, Guid.Empty);
        }
 public void CanListCloudServicesWithDuplicateNames()
 {
     var restClient = ServiceLocator.Instance.Locate<IRdfeClustersResourceRestClientFactory>()
                                               .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
     using (var paasClustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient))
     {
         CreateCluster("testcluster1", "West US");
         CreateCluster("testcluster1", "East US");
         var containersList = paasClustersPocoClient.ListContainers().Result;
         Assert.AreEqual(containersList.Count, 2);
         Assert.IsNotNull(containersList.SingleOrDefault(cluster => cluster.Name.Equals("testcluster1") && cluster.Location.Equals("West US")));
         Assert.IsNotNull(containersList.SingleOrDefault(cluster => cluster.Name.Equals("testcluster1") && cluster.Location.Equals("East US")));
     }
 }
Example #11
0
        public void CanListCloudServicesWithDuplicateNames()
        {
            var restClient = ServiceLocator.Instance.Locate <IRdfeClustersResourceRestClientFactory>()
                             .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));

            using (var paasClustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient))
            {
                CreateCluster("testcluster1", "West US");
                CreateCluster("testcluster1", "East US");
                var containersList = paasClustersPocoClient.ListContainers().Result;
                Assert.AreEqual(containersList.Count, 2);
                Assert.IsNotNull(containersList.SingleOrDefault(cluster => cluster.Name.Equals("testcluster1") && cluster.Location.Equals("West US")));
                Assert.IsNotNull(containersList.SingleOrDefault(cluster => cluster.Name.Equals("testcluster1") && cluster.Location.Equals("East US")));
            }
        }
Example #12
0
        public async Task CannotResizeClusterWithoutCapability()
        {
            var capabilities = new List <string>();

            capabilities.Add("CAPABILITY_FEATURE_CLUSTERS_CONTRACT_1_SDK");
            var restClient = ServiceLocator.Instance.Locate <IRdfeClustersResourceRestClientFactory>()
                             .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(capabilities));
            var paasClustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, capabilities, restClient);

            CreateCluster("testcluster", "West US");
            try
            {
                await paasClustersPocoClient.ChangeClusterSize("testcluster", "West US", 100);
            }
            catch (NotSupportedException ex)
            {
                Assert.IsNotNull(ex);
            }
        }
Example #13
0
        public void CanDeleteCloudServiceWithRegionWithDuplicateNames()
        {
            var restClient = ServiceLocator.Instance.Locate <IRdfeClustersResourceRestClientFactory>()
                             .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));

            using (var paasClustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient))
            {
                CreateCluster("testcluster1", "West US");
                CreateCluster("testcluster1", "East US");
                var containersList = paasClustersPocoClient.ListContainers().Result;
                Assert.AreEqual(containersList.Count, 2);
                // Now delete cluster without region name and both should be deleted
                paasClustersPocoClient.DeleteContainer("testcluster1", "West US");
                containersList = paasClustersPocoClient.ListContainers().Result;
                Assert.AreEqual(containersList.Count, 1);
                Assert.IsNotNull(paasClustersPocoClient.ListContainer("testcluster1", "East US"));
                Assert.IsNotNull(paasClustersPocoClient.ListContainer("testcluster1", "East US").Result.Location.Equals("East US"));
            }
        }
Example #14
0
        public async Task CanResizeCluster()
        {
            var restClient = ServiceLocator.Instance.Locate <IRdfeClustersResourceRestClientFactory>()
                             .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
            var paasClustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient);

            CreateCluster("testcluster", "West US");
            var cluster = paasClustersPocoClient.ListContainer("testcluster").Result;
            var originalInstanceCount = cluster.ClusterSizeInNodes;
            var expectedNewCount      = originalInstanceCount * 2;

            Assert.AreEqual(cluster.ClusterSizeInNodes, originalInstanceCount);
            await paasClustersPocoClient.ChangeClusterSize("testcluster", cluster.Location, expectedNewCount);

            cluster = paasClustersPocoClient.ListContainer("testcluster").Result;
            var actualNewCount = cluster.ClusterSizeInNodes;

            Assert.AreEqual(expectedNewCount, actualNewCount);
        }
Example #15
0
        public async Task CannotResizeClusterToLessThanOne()
        {
            var restClient = ServiceLocator.Instance.Locate <IRdfeClustersResourceRestClientFactory>()
                             .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
            var paasClustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient);

            CreateCluster("testcluster", "West US");
            var cluster = paasClustersPocoClient.ListContainer("testcluster").Result;
            var originalInstanceCount = cluster.ClusterSizeInNodes;

            Assert.AreEqual(cluster.ClusterSizeInNodes, originalInstanceCount);
            try
            {
                await paasClustersPocoClient.ChangeClusterSize("testcluster", cluster.Location, 0);
            }
            catch (ArgumentOutOfRangeException ex)
            {
                Assert.IsNotNull(ex);
                Assert.AreEqual(ex.ParamName, "newSize");
            }
        }
Example #16
0
        public async Task ICanCreateACluster_WithVmSizes_All_Specified_NonHBase_Negative()
        {
            var restClient = ServiceLocator.Instance.Locate <IRdfeClustersResourceRestClientFactory>()
                             .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
            var clustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient);

            try
            {
                var clusterCreateParameters = new HDInsight.ClusterCreateParametersV2
                {
                    Name = "ConfigActionTest",
                    DefaultStorageAccountKey  = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Key,
                    DefaultStorageAccountName = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Name,
                    DefaultStorageContainer   = "ConfigActionTest",
                    ClusterSizeInNodes        = 2,
                    Location          = "East US",
                    UserName          = "******",
                    Password          = "******",
                    Version           = "3.1",
                    HeadNodeSize      = "ExtraLarge",
                    DataNodeSize      = "Large",
                    ZookeeperNodeSize = "Medium",
                    ClusterType       = ClusterType.Spark,
                };

                // Add in valid config action.
                clusterCreateParameters.ConfigActions.Add(new ScriptAction("TestScriptAction", new ClusterNodeType[] { ClusterNodeType.HeadNode }, new Uri("http://www.microsoft.com"), null));

                await clustersPocoClient.CreateContainer(clusterCreateParameters);

                //this should not work for non hbase clusters
                Assert.Fail("Zookeeper node size should not be settable for non-hbase clusters");
            }
            catch (ArgumentException aex)
            {
                Assert.AreEqual(aex.Message,
                                "clusterCreateParameters.ZookeeperNodeSize must be null for Spark clusters.");
            }
        }
Example #17
0
        public async Task CanEnableAndDisableRdpUser()
        {
            Capabilities.Add("CAPABILITY_FEATURE_CLUSTERS_CONTRACT_1_SDK");
            Capabilities.Add("CAPABILITY_FEATURE_CLUSTERS_CONTRACT_VERSION_3_SDK");
            var restClient = ServiceLocator.Instance.Locate <IRdfeClustersResourceRestClientFactory>()
                             .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
            var clusterDnsName          = "rdpTestCluster";
            var clustersPocoClient      = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient);
            var clusterCreateParameters = new HDInsight.ClusterCreateParametersV2
            {
                Name = clusterDnsName,
                DefaultStorageAccountKey  = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Key,
                DefaultStorageAccountName = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Name,
                DefaultStorageContainer   = "EnableDisableRdpTest",
                ClusterSizeInNodes        = 2,
                Location    = "East US",
                UserName    = "******",
                Password    = "******",
                Version     = "3.1",
                ClusterType = ClusterType.Hadoop,
            };

            await clustersPocoClient.CreateContainer(clusterCreateParameters);

            var cluster     = clustersPocoClient.ListContainer(clusterDnsName).Result;
            var rdpUsername = "******";
            await clustersPocoClient.EnableRdp(clusterDnsName, cluster.Location, rdpUsername, "Had00p!123", DateTime.Now.AddHours(1));

            cluster = clustersPocoClient.ListContainer(clusterDnsName).Result;
            var actualRdpUserName = cluster.RdpUserName;

            Assert.AreEqual(rdpUsername, actualRdpUserName);
            await clustersPocoClient.DisableRdp(clusterDnsName, cluster.Location);

            cluster = clustersPocoClient.ListContainer(clusterDnsName).Result;
            Assert.IsNull(cluster.RdpUserName);
            await clustersPocoClient.DeleteContainer(cluster.Name, cluster.Location);
        }
        public async Task CanCreateIaasClusterWithD12Headnode()
        {
            var restClient = ServiceLocator.Instance.Locate<IRdfeClustersResourceRestClientFactory>()
                                                      .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
            var clustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient);
            var clusterCreateParameters = new HDInsight.ClusterCreateParametersV2
            {
                Name = "D12HeadnodeCreationTest",
                DefaultStorageAccountKey = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Key,
                DefaultStorageAccountName = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Name,
                DefaultStorageContainer = "D12HeadnodeCreationTest",
                ClusterSizeInNodes = 2,
                Location = "East US",
                UserName = "******",
                Password = "******",
                OSType = OSType.Linux,
                Version = "3.2",
                ClusterType = ClusterProvisioning.Data.ClusterType.Hadoop,
                HeadNodeSize = "Standard_D12"
            };

            await clustersPocoClient.CreateContainer(clusterCreateParameters);

            var containersList = clustersPocoClient.ListContainers().Result;
            Assert.AreEqual(containersList.Count, 1);
            Assert.IsNotNull(containersList.SingleOrDefault(cluster => cluster.Name.Equals("D12HeadnodeCreationTest")));
        }
        public async Task ICanCreateACluster_WithVmSizes_All_Specified_NonHBase_Negative()
        {
            var restClient = ServiceLocator.Instance.Locate<IRdfeClustersResourceRestClientFactory>()
                                                     .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
            var clustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient);
            try
            {
                var clusterCreateParameters = new HDInsight.ClusterCreateParametersV2
                {
                    Name = "ConfigActionTest",
                    DefaultStorageAccountKey = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Key,
                    DefaultStorageAccountName = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Name,
                    DefaultStorageContainer = "ConfigActionTest",
                    ClusterSizeInNodes = 2,
                    Location = "East US",
                    UserName = "******",
                    Password = "******",
                    Version = "3.1",
                    HeadNodeSize = "ExtraLarge",
                    DataNodeSize = "Large",
                    ZookeeperNodeSize = "Medium",
                    ClusterType = ClusterType.Spark,
                };

                // Add in valid config action.
                clusterCreateParameters.ConfigActions.Add(new ScriptAction("TestScriptAction", new ClusterNodeType[] { ClusterNodeType.HeadNode }, new Uri("http://www.microsoft.com"), null));

                await clustersPocoClient.CreateContainer(clusterCreateParameters);

                //this should not work for non hbase clusters
                Assert.Fail("Zookeeper node size should not be settable for non-hbase clusters");
            }
            catch (ArgumentException aex)
            {
                Assert.AreEqual(aex.Message,
                    "clusterCreateParameters.ZookeeperNodeSize must be null for Spark clusters.");
            }
        }
        public async Task ICanCreateACluster_WithOldVmSizes_All_Specified()
        {
            var restClient = ServiceLocator.Instance.Locate<IRdfeClustersResourceRestClientFactory>()
                                                     .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
            var clustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient);
            try
            {
                var clusterCreateParameters = new HDInsight.ClusterCreateParametersV2
                {
                    Name = "ConfigActionTest",
                    DefaultStorageAccountKey = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Key,
                    DefaultStorageAccountName = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Name,
                    DefaultStorageContainer = "ConfigActionTest",
                    ClusterSizeInNodes = 2,
                    Location = "East US",
                    UserName = "******",
                    Password = "******",
                    Version = "3.1",
                    HeadNodeSize = "ExtraLarge",
                    DataNodeSize = "Large",
                    ZookeeperNodeSize = "Medium",
                    ClusterType = ClusterType.HBase,
                };

                // Add in valid config action.
                clusterCreateParameters.ConfigActions.Add(new ScriptAction("TestScriptAction", new ClusterNodeType[] { ClusterNodeType.HeadNode }, new Uri("http://www.microsoft.com"), null));

                await clustersPocoClient.CreateContainer(clusterCreateParameters);
            }
            catch (NotSupportedException ex)
            {
                Assert.IsNotNull(ex);
            }
        }
Example #21
0
        public async Task CanCannotClusterCreateWithInvalidRdpCredentials()
        {
            var restClient = ServiceLocator.Instance.Locate <IRdfeClustersResourceRestClientFactory>()
                             .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
            var clusterDnsName          = "rdpTestCluster";
            var clustersPocoClient      = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient);
            var clusterCreateParameters = new HDInsight.ClusterCreateParametersV2
            {
                Name = clusterDnsName,
                DefaultStorageAccountKey  = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Key,
                DefaultStorageAccountName = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Name,
                DefaultStorageContainer   = "EnableDisableRdpTest",
                ClusterSizeInNodes        = 2,
                Location        = "East US",
                UserName        = "******",
                Password        = "******",
                Version         = "3.1",
                ClusterType     = ClusterType.Hadoop,
                RdpUsername     = "",
                RdpPassword     = "******",
                RdpAccessExpiry = DateTime.Now.AddDays(6)
            };

            try
            {
                await clustersPocoClient.CreateContainer(clusterCreateParameters);

                throw new Exception("CreateContainer should have thrown an ArgumentException");
            }
            catch (ArgumentException exp)
            {
                Assert.AreEqual(exp.Message,
                                @"clusterCreateParameters.RdpUsername cannot be null or empty in case either RdpPassword or RdpAccessExpiry is specified
Parameter name: clusterCreateParameters");
            }
            clusterCreateParameters.RdpUsername = "******";
            clusterCreateParameters.RdpPassword = "";
            try
            {
                await clustersPocoClient.CreateContainer(clusterCreateParameters);

                throw new Exception("CreateContainer should have thrown an ArgumentException");
            }
            catch (ArgumentException exp)
            {
                Assert.AreEqual(exp.Message,
                                @"clusterCreateParameters.RdpPassword cannot be null or empty in case either RdpUsername or RdpAccessExpiry is specified
Parameter name: clusterCreateParameters");
            }
            clusterCreateParameters.RdpPassword     = "******";
            clusterCreateParameters.RdpAccessExpiry = null;
            try
            {
                await clustersPocoClient.CreateContainer(clusterCreateParameters);

                throw new Exception("CreateContainer should have thrown an ArgumentException");
            }
            catch (ArgumentException exp)
            {
                Assert.AreEqual(exp.Message,
                                @"clusterCreateParameters.RdpAccessExpiry cannot be null or empty in case either RdpUsername or RdpPassword is specified
Parameter name: clusterCreateParameters");
            }
            clusterCreateParameters.RdpAccessExpiry = DateTime.MinValue;
            try
            {
                await clustersPocoClient.CreateContainer(clusterCreateParameters);

                throw new Exception("CreateContainer should have thrown an ArgumentException");
            }
            catch (ArgumentException exp)
            {
                Assert.AreEqual(exp.Message,
                                @"clusterCreateParameters.RdpAccessExpiry should be a time in future.
Parameter name: clusterCreateParameters");
            }
        }
        public async Task CanCreateClusterWithHwxPrivateVersion()
        {
            Capabilities.Add("CAPABILITY_FEATURE_CLUSTERS_CONTRACT_1_SDK");
            Capabilities.Add("CAPABILITY_FEATURE_CLUSTERS_CONTRACT_VERSION_3_SDK");
            var restClient = ServiceLocator.Instance.Locate<IRdfeClustersResourceRestClientFactory>()
                                                      .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
            var clustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient);
            var clusterCreateParameters = new HDInsight.ClusterCreateParametersV2
            {
                Name = "HwxVersionTest",
                DefaultStorageAccountKey = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Key,
                DefaultStorageAccountName = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Name,
                DefaultStorageContainer = "HwxVersionTest",
                ClusterSizeInNodes = 2,
                Location = "East US",
                UserName = "******",
                Password = "******",
                Version = "3.2-hwx-trunk",
                ClusterType = ClusterType.Hadoop,
            };

            await clustersPocoClient.CreateContainer(clusterCreateParameters);

            var containersList = clustersPocoClient.ListContainers().Result;
            Assert.AreEqual(containersList.Count, 1);
            Assert.IsNotNull(containersList.SingleOrDefault(cluster => cluster.Name.Equals("HwxVersionTest")));
        }
 public async Task CannotResizeClusterToLessThanOne()
 {
     var restClient = ServiceLocator.Instance.Locate<IRdfeClustersResourceRestClientFactory>()
                                               .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
     var paasClustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient);
     CreateCluster("testcluster", "West US");
     var cluster = paasClustersPocoClient.ListContainer("testcluster").Result;
     var originalInstanceCount = cluster.ClusterSizeInNodes;
     Assert.AreEqual(cluster.ClusterSizeInNodes, originalInstanceCount);
     try
     {
         await paasClustersPocoClient.ChangeClusterSize("testcluster", cluster.Location, 0);
     }
     catch (ArgumentOutOfRangeException ex)
     {
         Assert.IsNotNull(ex);
         Assert.AreEqual(ex.ParamName, "newSize");
     }
 }
Example #24
0
        public void ShouldNotSendClusterConfigActionWithoutSchemaVersion2()
        {
            var capabilities = new[] { "CAPABILITY_FEATURE_CLUSTERS_CONTRACT_1_SDK", "CAPABILITY_FEATURE_POWERSHELL_SCRIPT_ACTION_SDK" };

            Assert.IsFalse(PaasClustersPocoClient.HasCorrectSchemaVersionForConfigAction(capabilities));
        }
        public async Task ResizeToSameSizeReturnsEmptyGuidOperationId()
        {
            var restClient = ServiceLocator.Instance.Locate<IRdfeClustersResourceRestClientFactory>()
                                                      .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
            var paasClustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient);
            CreateCluster("testcluster", "West US");
            var cluster = paasClustersPocoClient.ListContainer("testcluster").Result;
            var originalInstanceCount = cluster.ClusterSizeInNodes;

            var operationId = await paasClustersPocoClient.ChangeClusterSize("testcluster", cluster.Location, originalInstanceCount);
            Assert.AreEqual(operationId, Guid.Empty);
        }
 public async Task CanResizeCluster()
 {
     var restClient = ServiceLocator.Instance.Locate<IRdfeClustersResourceRestClientFactory>()
                                               .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
     var paasClustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient);
     CreateCluster("testcluster", "West US");
     var cluster = paasClustersPocoClient.ListContainer("testcluster").Result;
     var originalInstanceCount = cluster.ClusterSizeInNodes;
     var expectedNewCount = originalInstanceCount * 2;
     Assert.AreEqual(cluster.ClusterSizeInNodes, originalInstanceCount);
     await paasClustersPocoClient.ChangeClusterSize("testcluster", cluster.Location, expectedNewCount);
     cluster = paasClustersPocoClient.ListContainer("testcluster").Result;
     var actualNewCount = cluster.ClusterSizeInNodes;
     Assert.AreEqual(expectedNewCount, actualNewCount);
 }
        public async Task CanCannotClusterCreateWithInvalidRdpCredentials()
        {
            var restClient = ServiceLocator.Instance.Locate<IRdfeClustersResourceRestClientFactory>()
                                                      .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
            var clusterDnsName = "rdpTestCluster";
            var clustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient);
            var clusterCreateParameters = new HDInsight.ClusterCreateParametersV2
            {
                Name = clusterDnsName,
                DefaultStorageAccountKey = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Key,
                DefaultStorageAccountName = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Name,
                DefaultStorageContainer = "EnableDisableRdpTest",
                ClusterSizeInNodes = 2,
                Location = "East US",
                UserName = "******",
                Password = "******",
                Version = "3.1",
                ClusterType = ClusterType.Hadoop,
                RdpUsername = "",
                RdpPassword = "******",
                RdpAccessExpiry = DateTime.Now.AddDays(6)
            };
            try
            {
                await clustersPocoClient.CreateContainer(clusterCreateParameters);
                throw new Exception("CreateContainer should have thrown an ArgumentException");
            }
            catch (ArgumentException exp)
            {
                Assert.AreEqual(exp.Message,
                    @"clusterCreateParameters.RdpUsername cannot be null or empty in case either RdpPassword or RdpAccessExpiry is specified
Parameter name: clusterCreateParameters");
            }
            clusterCreateParameters.RdpUsername = "******";
            clusterCreateParameters.RdpPassword = "";
            try
            {
                await clustersPocoClient.CreateContainer(clusterCreateParameters);
                throw new Exception("CreateContainer should have thrown an ArgumentException");
            }
            catch (ArgumentException exp)
            {
                Assert.AreEqual(exp.Message,
                    @"clusterCreateParameters.RdpPassword cannot be null or empty in case either RdpUsername or RdpAccessExpiry is specified
Parameter name: clusterCreateParameters");
            }
            clusterCreateParameters.RdpPassword = "******";
            clusterCreateParameters.RdpAccessExpiry = null;
            try
            {
                await clustersPocoClient.CreateContainer(clusterCreateParameters);
                throw new Exception("CreateContainer should have thrown an ArgumentException");
            }
            catch (ArgumentException exp)
            {
                Assert.AreEqual(exp.Message,
                    @"clusterCreateParameters.RdpAccessExpiry cannot be null or empty in case either RdpUsername or RdpPassword is specified
Parameter name: clusterCreateParameters");
            }
            clusterCreateParameters.RdpAccessExpiry = DateTime.MinValue;
            try
            {
                await clustersPocoClient.CreateContainer(clusterCreateParameters);
                throw new Exception("CreateContainer should have thrown an ArgumentException");
            }
            catch (ArgumentException exp)
            {
                Assert.AreEqual(exp.Message,
                    @"clusterCreateParameters.RdpAccessExpiry should be a time in future.
Parameter name: clusterCreateParameters");
            }
        }
 public async Task CanCreateRdpUserDuringClusterCreate()
 {
     Capabilities.Add("CAPABILITY_FEATURE_CLUSTERS_CONTRACT_1_SDK");
     Capabilities.Add("CAPABILITY_FEATURE_CLUSTERS_CONTRACT_VERSION_3_SDK");
     var restClient = ServiceLocator.Instance.Locate<IRdfeClustersResourceRestClientFactory>()
                                               .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
     var clusterDnsName = "rdpTestCluster";
     var clustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient);
     var clusterCreateParameters = new HDInsight.ClusterCreateParametersV2
     {
         Name = clusterDnsName,
         DefaultStorageAccountKey = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Key,
         DefaultStorageAccountName = IntegrationTestBase.TestCredentials.Environments[0].DefaultStorageAccount.Name,
         DefaultStorageContainer = "EnableDisableRdpTest",
         ClusterSizeInNodes = 2,
         Location = "East US",
         UserName = "******",
         Password = "******",
         Version = "3.1",
         ClusterType = ClusterType.Hadoop,
         RdpUsername = "******",
         RdpPassword = "******",
         RdpAccessExpiry = DateTime.Now.AddDays(6)
     };
     await clustersPocoClient.CreateContainer(clusterCreateParameters);
     var cluster = clustersPocoClient.ListContainer(clusterDnsName).Result;
     var rdpUsername = "******";
     var actualRdpUserName = cluster.RdpUserName;
     Assert.AreEqual(rdpUsername, actualRdpUserName);
     await clustersPocoClient.DisableRdp(clusterDnsName, cluster.Location);
     cluster = clustersPocoClient.ListContainer(clusterDnsName).Result;
     Assert.IsNull(cluster.RdpUserName);
     await clustersPocoClient.DeleteContainer(cluster.Name, cluster.Location);
 }
 public void CanDeleteCloudServicesWithDuplicateNames()
 {
     var restClient = ServiceLocator.Instance.Locate<IRdfeClustersResourceRestClientFactory>()
                                               .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
     using (var paasClustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient))
     {
         CreateCluster("testcluster1", "West US");
         CreateCluster("testcluster1", "East US");
         var containersList = paasClustersPocoClient.ListContainers().Result;
         Assert.AreEqual(containersList.Count, 2);
         // Now delete cluster without region name and both should be deleted
         try
         {
             paasClustersPocoClient.DeleteContainer("testcluster1").Wait();
             Assert.Fail("Exception not thrown");
         }
         catch (AggregateException age)
         {
             Assert.IsTrue(age.InnerException != null, "Inner exception is not null");
             Assert.IsTrue(age.InnerException is InvalidOperationException, "Exception is not InvalidOperationException");
             Assert.AreEqual("Multiple clusters found with dnsname 'testcluster1'. Please specify dnsname and location", age.InnerException.Message, "Message not as expected");
         }
         containersList = paasClustersPocoClient.ListContainers().Result;
         Assert.AreEqual(containersList.Count, 2);
     }
 }
 public async Task CannotResizeClusterWithoutCapability()
 {
     var capabilities = new List<string>();
     capabilities.Add("CAPABILITY_FEATURE_CLUSTERS_CONTRACT_1_SDK");
     var restClient = ServiceLocator.Instance.Locate<IRdfeClustersResourceRestClientFactory>()
                                               .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(capabilities));
     var paasClustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, capabilities, restClient);
     CreateCluster("testcluster", "West US");
     try
     {
         await paasClustersPocoClient.ChangeClusterSize("testcluster", "West US", 100);
     }
     catch (NotSupportedException ex)
     {
         Assert.IsNotNull(ex);
     }
 }
 public void CanGetCloudServicesWithDuplicateNames()
 {
     var restClient = ServiceLocator.Instance.Locate<IRdfeClustersResourceRestClientFactory>()
                                               .Create(this.DefaultHandler, this.HdInsightCertCred, this.Context, false, SchemaVersionUtils.GetSchemaVersion(Capabilities));
     using (var paasClustersPocoClient = new PaasClustersPocoClient(this.HdInsightCertCred, false, this.Context, Capabilities, restClient))
     {
         CreateCluster("testcluster1", "West US");
         CreateCluster("testcluster1", "East US");
         var containersList = paasClustersPocoClient.ListContainers().Result;
         Assert.AreEqual(containersList.Count, 2);
         // Now list cluster without region name and the first one should always be returned
         Assert.IsNotNull(paasClustersPocoClient.ListContainer("testcluster1"));
         Assert.IsNotNull(paasClustersPocoClient.ListContainer("testcluster1").Result.Location.Equals("West US"));
         // Now list cluster with region name 
         Assert.IsNotNull(paasClustersPocoClient.ListContainer("testcluster1", "West US"));
         Assert.IsNotNull(paasClustersPocoClient.ListContainer("testcluster1", "West US").Result.Location.Equals("West US"));
         Assert.IsNotNull(paasClustersPocoClient.ListContainer("testcluster1", "East US"));
         Assert.IsNotNull(paasClustersPocoClient.ListContainer("testcluster1", "East US").Result.Location.Equals("East US"));
     }
 }
Example #32
0
        public void ShouldNotSendClusterConfigActionWithoutConfigActionCapability()
        {
            var capabilities = new[] { "CAPABILITY_FEATURE_CLUSTERS_CONTRACT_1_SDK", "CAPABILITY_FEATURE_CLUSTERS_CONTRACT_2_SDK" };

            Assert.IsFalse(PaasClustersPocoClient.HasClusterConfigActionCapability(capabilities));
        }