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_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); } }
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 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); } }
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); } }
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); } }
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"))); } }
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"))); } }
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 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")); } }
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 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"); } }
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 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); } }
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"); } }
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")); } }
public void ShouldNotSendClusterConfigActionWithoutConfigActionCapability() { var capabilities = new[] { "CAPABILITY_FEATURE_CLUSTERS_CONTRACT_1_SDK", "CAPABILITY_FEATURE_CLUSTERS_CONTRACT_2_SDK" }; Assert.IsFalse(PaasClustersPocoClient.HasClusterConfigActionCapability(capabilities)); }