public AzureHDInsightCluster(Cluster cluster) { Id = cluster.Id; Name = cluster.Name; Location = cluster.Location; ClusterVersion = cluster.Properties.ClusterVersion; OperatingSystemType = cluster.Properties.OperatingSystemType; ClusterTier = cluster.Properties.ClusterTier; ClusterState = cluster.Properties.ClusterState; ClusterType = cluster.Properties.ClusterDefinition.ClusterType; CoresUsed = cluster.Properties.QuotaInfo.CoresUsed; var httpEndpoint = cluster.Properties.ConnectivityEndpoints.FirstOrDefault(c => c.Name.Equals("HTTPS", StringComparison.OrdinalIgnoreCase)); HttpEndpoint = httpEndpoint != null ? httpEndpoint.Location : null; Error = cluster.Properties.ErrorInfos.Select(s => s.Message).FirstOrDefault(); ResourceGroup = ClusterConfigurationUtils.GetResourceGroupFromClusterId(cluster.Id); ComponentVersion = new List<string>(); foreach(var componentVersion in cluster.Properties.ClusterDefinition.ComponentVersion) { ComponentVersion.Add(componentVersion.ToString()); } var clusterSecurityProfile = cluster.Properties.SecurityProfile; SecurityProfile = clusterSecurityProfile != null ? new AzureHDInsightSecurityProfile() { Domain = clusterSecurityProfile.Domain, //We should not be returning the actual password to the user DomainUserCredential = new PSCredential(clusterSecurityProfile.DomainUsername, "***".ConvertToSecureString()), OrganizationalUnitDN = clusterSecurityProfile.OrganizationalUnitDN, LdapsUrls = clusterSecurityProfile.LdapsUrls != null ? clusterSecurityProfile.LdapsUrls.ToArray() : null, ClusterUsersGroupDNs = clusterSecurityProfile.ClusterUsersGroupDNs != null ? clusterSecurityProfile.ClusterUsersGroupDNs.ToArray() : null, } : null; }
public void CanResizeCluster() { var cluster = new Cluster { Id = "id", Name = ClusterName + "1", Location = Location, Properties = new ClusterGetProperties { ClusterVersion = "3.1", ClusterState = "Running", ClusterDefinition = new ClusterDefinition { ClusterType = "Hadoop" }, QuotaInfo = new QuotaInfo { CoresUsed = 24 }, OperatingSystemType = OSType.Windows }, }; var getresponse = new ClusterGetResponse { Cluster = cluster }; hdinsightManagementMock.Setup(c => c.Get(ResourceGroupName, ClusterName)) .Returns(getresponse) .Verifiable(); hdinsightManagementMock.Setup(c => c.GetCluster(It.IsAny<string>(), It.IsAny<string>())) .CallBase() .Verifiable(); hdinsightManagementMock.Setup( c => c.ResizeCluster(ResourceGroupName, ClusterName, It.Is<ClusterResizeParameters>( param => param.TargetInstanceCount == targetcount))) .Returns(new HDInsightLongRunningOperationResponse { Error = null, StatusCode = HttpStatusCode.OK, Status = OperationStatus.Succeeded }) .Verifiable(); cmdlet.ExecuteCmdlet(); commandRuntimeMock.VerifyAll(); commandRuntimeMock.Verify(f => f.WriteObject(It.Is<AzureHDInsightCluster>(c => c.Name == cluster.Name)), Times.Once); }
public AzureHDInsightCluster(Cluster cluster, IDictionary<string, string> clusterConfiguration) : this(cluster) { if (clusterConfiguration != null) { var defaultAccount = ClusterConfigurationUtils.GetDefaultStorageAccountDetails( clusterConfiguration, cluster.Properties.ClusterVersion); DefaultStorageAccount = defaultAccount.StorageAccountName; DefaultStorageContainer = defaultAccount.StorageContainerName; AdditionalStorageAccounts = ClusterConfigurationUtils.GetAdditionStorageAccounts(clusterConfiguration, DefaultStorageAccount); } }
public AzureHDInsightCluster(Cluster cluster) { Id = cluster.Id; Name = cluster.Name; Location = cluster.Location; ClusterVersion = cluster.Properties.ClusterVersion; OperatingSystemType = cluster.Properties.OperatingSystemType; ClusterState = cluster.Properties.ClusterState; ClusterType = cluster.Properties.ClusterDefinition.ClusterType; CoresUsed = cluster.Properties.QuotaInfo.CoresUsed; var httpEndpoint = cluster.Properties.ConnectivityEndpoints.FirstOrDefault(c => c.Name.Equals("HTTPS", StringComparison.OrdinalIgnoreCase)); HttpEndpoint = httpEndpoint != null ? httpEndpoint.Location : null; }
public AzureHDInsightCluster(Cluster cluster) { Id = cluster.Id; Name = cluster.Name; Location = cluster.Location; ClusterVersion = cluster.Properties.ClusterVersion; OperatingSystemType = cluster.Properties.OperatingSystemType; ClusterState = cluster.Properties.ClusterState; ClusterType = cluster.Properties.ClusterDefinition.ClusterType; CoresUsed = cluster.Properties.QuotaInfo.CoresUsed; var httpEndpoint = cluster.Properties.ConnectivityEndpoints.FirstOrDefault(c => c.Name.Equals("HTTPS", StringComparison.OrdinalIgnoreCase)); HttpEndpoint = httpEndpoint != null ? httpEndpoint.Location : null; Error = cluster.Properties.ErrorInfos.Select(s => s.Message).FirstOrDefault(); ResourceGroup = ClusterConfigurationUtils.GetResourceGroupFromClusterId(cluster.Id); }
public virtual void SetupManagementClientForJobTests() { // Update HDInsight Management properties for Job. var cluster1 = new Cluster { Id = "/subscriptions/" + Guid.NewGuid() + "/resourceGroups/" + ResourceGroupName + "/providers/Microsoft.HDInsight/clusters/" + ClusterName, Name = ClusterName, Location = Location, Properties = new ClusterGetProperties { ClusterVersion = "3.2", ClusterState = "Running", ClusterDefinition = new ClusterDefinition { ClusterType = ClusterType }, QuotaInfo = new QuotaInfo { CoresUsed = 24 }, OperatingSystemType = OSType.Windows, ConnectivityEndpoints = new List<ConnectivityEndpoint> { new ConnectivityEndpoint { Location = ClusterName, Name = "HTTPS" } } } }; var listresponse = new ClusterListResponse { Clusters = new[] { cluster1 } }; hdinsightManagementMock.Setup(c => c.ListClusters()) .Returns(listresponse) .Verifiable(); hdinsightManagementMock.Setup(c => c.GetCluster(It.IsAny<string>(), It.IsAny<string>())) .Returns(new List<Cluster> { cluster1 }) .Verifiable(); var configurationResponse = new Dictionary<string, string>(); hdinsightManagementMock.Setup(c => c.GetClusterConfigurations(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())) .Returns(configurationResponse) .Verifiable(); }
public void CanGetHDInsightCluster() { cmdlet.ClusterName = ClusterName; cmdlet.ResourceGroupName = ResourceGroupName; var cluster = new Cluster { Id = "id", Name = ClusterName, Location = Location, Properties = new ClusterGetProperties { ClusterVersion = "3.1", ClusterState = "Running", ClusterDefinition = new ClusterDefinition { ClusterType = ClusterType }, QuotaInfo = new QuotaInfo { CoresUsed = 24 }, OperatingSystemType = OSType.Windows } }; var getresponse = new ClusterGetResponse { Cluster = cluster }; hdinsightManagementMock.Setup(c => c.Get(ResourceGroupName, ClusterName)) .Returns(getresponse) .Verifiable(); hdinsightManagementMock.Setup(c => c.GetCluster(It.IsAny<string>(), It.IsAny<string>())) .CallBase() .Verifiable(); cmdlet.ExecuteCmdlet(); commandRuntimeMock.VerifyAll(); commandRuntimeMock.Verify(f => f.WriteObject(It.IsAny<List<AzureHDInsightCluster>>(), true), Times.Once); }
public void CanCreateNewPremiumHDInsightCluster() { cmdlet.ClusterName = ClusterName; cmdlet.ResourceGroupName = ResourceGroupName; cmdlet.ClusterSizeInNodes = ClusterSize; cmdlet.Location = Location; cmdlet.HttpCredential = _httpCred; cmdlet.DefaultStorageAccountName = StorageName; cmdlet.DefaultStorageAccountKey = StorageKey; cmdlet.ClusterType = ClusterType; cmdlet.OSType = OSType.Linux; cmdlet.ClusterTier = Tier.Premium; cmdlet.SshCredential = _httpCred; var cluster = new Cluster { Id = "id", Name = ClusterName, Location = Location, Properties = new ClusterGetProperties { ClusterVersion = "3.2", ClusterState = "Running", ClusterDefinition = new ClusterDefinition { ClusterType = ClusterType }, QuotaInfo = new QuotaInfo { CoresUsed = 24 }, OperatingSystemType = OSType.Linux, ClusterTier = Tier.Premium } }; var coreConfigs = new Dictionary<string, string> { {"fs.defaultFS", "wasb://giyertestcsmv2@" + StorageName}, { "fs.azure.account.key." + StorageName, StorageKey } }; var gatewayConfigs = new Dictionary<string, string> { {"restAuthCredential.isEnabled", "true"}, {"restAuthCredential.username", _httpCred.UserName}, {"restAuthCredential.password", _httpCred.Password.ConvertToString()} }; var configurations = new Dictionary<string, Dictionary<string, string>> { {"core-site", coreConfigs}, {"gateway", gatewayConfigs} }; var serializedConfig = JsonConvert.SerializeObject(configurations); cluster.Properties.ClusterDefinition.Configurations = serializedConfig; var getresponse = new ClusterGetResponse {Cluster = cluster}; hdinsightManagementMock.Setup(c => c.CreateNewCluster(ResourceGroupName, ClusterName, It.Is<ClusterCreateParameters>( parameters => parameters.ClusterSizeInNodes == ClusterSize && parameters.DefaultStorageAccountName == StorageName && parameters.DefaultStorageAccountKey == StorageKey && parameters.Location == Location && parameters.UserName == _httpCred.UserName && parameters.Password == _httpCred.Password.ConvertToString() && parameters.SshUserName == _httpCred.UserName && parameters.SshPassword == _httpCred.Password.ConvertToString() && parameters.ClusterType == ClusterType && parameters.OSType == OSType.Linux && parameters.ClusterTier == Tier.Premium))) .Returns(getresponse) .Verifiable(); cmdlet.ExecuteCmdlet(); commandRuntimeMock.VerifyAll(); commandRuntimeMock.Verify(f => f.WriteObject(It.Is<AzureHDInsightCluster>( clusterout => clusterout.ClusterState == "Running" && clusterout.ClusterType == ClusterType && clusterout.ClusterVersion == "3.2" && clusterout.CoresUsed == 24 && clusterout.Location == Location && clusterout.Name == ClusterName && clusterout.OperatingSystemType == OSType.Linux && clusterout.ClusterTier == Tier.Premium)), Times.Once); }
private void CreateNewHDInsightCluster(bool addSecurityProfileInresponse = false) { cmdlet.ClusterName = ClusterName; cmdlet.ResourceGroupName = ResourceGroupName; cmdlet.ClusterSizeInNodes = ClusterSize; cmdlet.Location = Location; cmdlet.HttpCredential = _httpCred; cmdlet.DefaultStorageAccountName = StorageName; cmdlet.DefaultStorageAccountKey = StorageKey; cmdlet.ClusterType = ClusterType; cmdlet.SshCredential = _sshCred; cmdlet.OSType = OSType.Linux; var cluster = new Cluster { Id = "id", Name = ClusterName, Location = Location, Properties = new ClusterGetProperties { ClusterVersion = "3.1", ClusterState = "Running", ClusterDefinition = new ClusterDefinition { ClusterType = ClusterType }, QuotaInfo = new QuotaInfo { CoresUsed = 24 }, OperatingSystemType = OSType.Linux } }; if (addSecurityProfileInresponse) { cluster.Properties.SecurityProfile = new SecurityProfile() { Domain = "domain.com", DomainUsername = "******", DomainUserPassword = "******", OrganizationalUnitDN = "OUDN", LdapsUrls = new[] { "ldapsurl" }, ClusterUsersGroupDNs = new[] { "userGroupDn" } }; } var coreConfigs = new Dictionary<string, string> { {"fs.defaultFS", "wasb://giyertestcsmv2@" + StorageName}, { "fs.azure.account.key." + StorageName, StorageKey } }; var gatewayConfigs = new Dictionary<string, string> { {"restAuthCredential.isEnabled", "true"}, {"restAuthCredential.username", _httpCred.UserName}, {"restAuthCredential.password", _httpCred.Password.ConvertToString()} }; var configurations = new Dictionary<string, Dictionary<string, string>> { {"core-site", coreConfigs}, {"gateway", gatewayConfigs} }; var serializedConfig = JsonConvert.SerializeObject(configurations); cluster.Properties.ClusterDefinition.Configurations = serializedConfig; var getresponse = new ClusterGetResponse {Cluster = cluster}; hdinsightManagementMock.Setup( c => c.CreateNewCluster(ResourceGroupName, ClusterName, It.Is<ClusterCreateParameters>( parameters => parameters.ClusterSizeInNodes == ClusterSize && parameters.DefaultStorageAccountName == StorageName && parameters.DefaultStorageAccountKey == StorageKey && parameters.Location == Location && parameters.UserName == _httpCred.UserName && parameters.Password == _httpCred.Password.ConvertToString() && parameters.ClusterType == ClusterType && parameters.OSType == OSType.Linux && parameters.SshUserName == _sshCred.UserName && parameters.SshPassword == _sshCred.Password.ConvertToString()))) .Returns(getresponse) .Verifiable(); cmdlet.ExecuteCmdlet(); commandRuntimeMock.VerifyAll(); commandRuntimeMock.Verify(f => f.WriteObject(It.Is<AzureHDInsightCluster>( clusterout => clusterout.ClusterState == "Running" && clusterout.ClusterType == ClusterType && clusterout.ClusterVersion == "3.1" && clusterout.CoresUsed == 24 && clusterout.Location == Location && clusterout.Name == ClusterName && clusterout.OperatingSystemType == OSType.Linux)), Times.Once); }
private static string ClusterToString(Cluster cluster) { var sb = new StringBuilder(); sb.AppendFormat("\r\n\tResourceGroup: {0}\r\n", HDInsightManagementCLIHelpers.GetResourceGroupNameFromClusterId(cluster.Id)); sb.AppendFormat("\t{0}\r\n", cluster.ToDisplayString().Replace("\n", "\n\t")); sb.AppendFormat("\tUserClusterTablePrefix: {0}\r\n", HDInsightManagementCLIHelpers.GetUserClusterTablePrefix(cluster)); return sb.ToString(); }
public void CanListHDInsightClustersInRG() { cmdlet.ResourceGroupName = ResourceGroupName; var cluster1 = new Cluster { Id = "id", Name = ClusterName + "1", Location = Location, Properties = new ClusterGetProperties { ClusterVersion = "3.1", ClusterState = "Running", ClusterDefinition = new ClusterDefinition { ClusterType = ClusterType }, QuotaInfo = new QuotaInfo { CoresUsed = 24 }, OperatingSystemType = OSType.Windows } }; var cluster2 = new Cluster { Id = "id", Name = ClusterName + "2", Location = Location, Properties = new ClusterGetProperties { ClusterVersion = "3.1", ClusterState = "Running", ClusterDefinition = new ClusterDefinition { ClusterType = ClusterType }, QuotaInfo = new QuotaInfo { CoresUsed = 24 }, OperatingSystemType = OSType.Windows } }; var listresponse = new ClusterListResponse {Clusters = new[] {cluster1, cluster2}}; hdinsightManagementMock.Setup(c => c.ListClusters(ResourceGroupName)) .Returns(listresponse) .Verifiable(); hdinsightManagementMock.Setup(c => c.GetCluster(It.IsAny<string>(), It.IsAny<string>())) .CallBase() .Verifiable(); cmdlet.ExecuteCmdlet(); commandRuntimeMock.VerifyAll(); commandRuntimeMock.Verify( f => f.WriteObject( It.Is<List<AzureHDInsightCluster>>( list => list.Count == 2 && list.Any(c => c.Name == cluster1.Name) && list.Any(c => c.Name == cluster2.Name)), true), Times.Once); }