public void CanCreateNewHDInsightCluster_LinuxComponentVersion() { string sparkClusterType = "Spark"; var componentVersion = new Dictionary <string, string> { { "Spark", "2.0" } }; var componentVersionResponse = "[Spark, 2.0]"; cmdlet.ClusterName = ClusterName; cmdlet.ResourceGroupName = ResourceGroupName; cmdlet.ClusterSizeInNodes = ClusterSize; cmdlet.Location = Location; cmdlet.HttpCredential = _httpCred; cmdlet.DefaultStorageAccountName = StorageName; cmdlet.DefaultStorageAccountKey = StorageKey; cmdlet.ClusterType = "Spark"; cmdlet.SshCredential = _sshCred; cmdlet.OSType = OSType.Linux; cmdlet.ComponentVersion = componentVersion; var cluster = new Cluster { Id = "id", Name = ClusterName, Location = Location, Properties = new ClusterGetProperties { ClusterVersion = "3.5", ClusterState = "Running", ClusterDefinition = new ClusterDefinition { ClusterType = sparkClusterType }, QuotaInfo = new QuotaInfo { CoresUsed = 24 }, OperatingSystemType = OSType.Linux } }; cluster.Properties.ClusterDefinition.ComponentVersion = componentVersion; 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.DefaultStorageInfo as AzureStorageInfo != null && ((AzureStorageInfo)parameters.DefaultStorageInfo).StorageAccountName == StorageName && ((AzureStorageInfo)parameters.DefaultStorageInfo).StorageAccountKey == StorageKey && parameters.Location == Location && parameters.UserName == _httpCred.UserName && parameters.Password == _httpCred.Password.ConvertToString() && parameters.ClusterType == sparkClusterType && parameters.OSType == OSType.Linux && parameters.SshUserName == _sshCred.UserName && parameters.SshPassword == _sshCred.Password.ConvertToString() && parameters.ComponentVersion["Spark"] == componentVersion["Spark"]))) .Returns(getresponse) .Verifiable(); hdinsightManagementMock.Setup( c => c.CreateNewCluster(ResourceGroupName, ClusterName, It.Is <ClusterCreateParameters>( parameters => parameters.ClusterSizeInNodes == ClusterSize && parameters.DefaultStorageInfo as AzureStorageInfo != null && ((AzureStorageInfo)parameters.DefaultStorageInfo).StorageAccountName == StorageName && ((AzureStorageInfo)parameters.DefaultStorageInfo).StorageAccountKey == 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 == sparkClusterType && clusterout.ClusterVersion == "3.5" && clusterout.CoresUsed == 24 && clusterout.Location == Location && clusterout.Name == ClusterName && clusterout.OperatingSystemType == OSType.Linux && clusterout.ComponentVersion[0] == componentVersionResponse)), Times.Once); }
public void CanCreateNewHDInsightDataLakeStoreCluster() { cmdlet.ClusterName = ClusterName; cmdlet.ResourceGroupName = ResourceGroupName; cmdlet.ClusterSizeInNodes = ClusterSize; cmdlet.Location = Location; cmdlet.HttpCredential = _httpCred; cmdlet.DefaultStorageAccountName = StorageName; cmdlet.DefaultStorageAccountKey = StorageKey; cmdlet.AadTenantId = AadTenantId; cmdlet.ObjectId = ObjectId; cmdlet.CertificateFilePath = Certificate; cmdlet.CertificatePassword = CertificatePassword; var cluster = new Cluster { Id = "id", Name = ClusterName, Location = Location, Properties = new ClusterGetProperties { ClusterVersion = "3.2", ClusterState = "Running", ClusterDefinition = new ClusterDefinition { ClusterType = "Hadoop" }, QuotaInfo = new QuotaInfo { CoresUsed = 24 }, OperatingSystemType = OSType.Windows } }; var coreConfigs = new Dictionary <string, string> { { "fs.defaultFS", "wasb://dummycsmv2@" + 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 datalakeStoreConfigs = new Dictionary <string, string> { { "clusterIdentity.applicationId", ObjectId.ToString() }, { "clusterIdentity.certificate", Certificate }, { "clusterIdentity.certificatePassword", CertificatePassword }, { "clusterIdentity.aadTenantId", AadTenantId.ToString() } }; var configurations = new Dictionary <string, Dictionary <string, string> > { { "core-site", coreConfigs }, { "gateway", gatewayConfigs }, { "clusterIdentity", datalakeStoreConfigs } }; 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 == HDInsightClusterType.Hadoop && parameters.OSType == OSType.Windows))) .Returns(getresponse) .Verifiable(); cmdlet.ExecuteCmdlet(); commandRuntimeMock.VerifyAll(); commandRuntimeMock.Verify(f => f.WriteObject(It.Is <AzureHDInsightCluster>( clusterout => clusterout.ClusterState == "Running" && clusterout.ClusterType == HDInsightClusterType.Hadoop && clusterout.ClusterVersion == "3.2" && clusterout.CoresUsed == 24 && clusterout.Location == Location && clusterout.Name == ClusterName && clusterout.OperatingSystemType == OSType.Windows)), Times.Once); }
private void CreateNewHDInsightCluster( bool addSecurityProfileInresponse = false, bool setEdgeNodeVmSize = false, int workerNodeDataDisks = 0) { // Assign cmdlet parameters 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; cmdlet.DisksPerWorkerNode = workerNodeDataDisks; if (setEdgeNodeVmSize) { cmdlet.EdgeNodeSize = "edgeNodeVmSizeSetTest"; } // Construct cluster Object var cluster = new Cluster { Id = "id", Name = ClusterName, Location = Location, Properties = new ClusterGetProperties { ClusterVersion = HdiVersion, ClusterState = "Running", ClusterDefinition = new ClusterDefinition { ClusterType = ClusterType }, QuotaInfo = new QuotaInfo { CoresUsed = 24 }, OperatingSystemType = OSType.Linux, ComputeProfile = new ComputeProfile() { Roles = new List <Role>() } } }; if (workerNodeDataDisks > 0) { cluster.Properties.ComputeProfile.Roles.Add(new Role() { Name = "workernode", DataDisksGroups = new List <DataDisksGroupProperties>() { new DataDisksGroupProperties() { DisksPerNode = workerNodeDataDisks } } }); } 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 }; // Setup Mocks and verify successfull GET response hdinsightManagementMock.Setup( c => c.CreateNewCluster(ResourceGroupName, ClusterName, It.Is <ClusterCreateParameters>( parameters => parameters.ClusterSizeInNodes == ClusterSize && parameters.DefaultStorageInfo as AzureStorageInfo != null && ((AzureStorageInfo)parameters.DefaultStorageInfo).StorageAccountName == StorageName && ((AzureStorageInfo)parameters.DefaultStorageInfo).StorageAccountKey == 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() && ((!setEdgeNodeVmSize && parameters.EdgeNodeSize == null) || (setEdgeNodeVmSize && parameters.EdgeNodeSize == "edgeNodeVmSizeSetTest")) && (workerNodeDataDisks == 0) || (workerNodeDataDisks > 0 && parameters.WorkerNodeDataDisksGroups.First().DisksPerNode == workerNodeDataDisks)))) .Returns(getresponse) .Verifiable(); // Execute Cmdlet and verify output cmdlet.ExecuteCmdlet(); commandRuntimeMock.VerifyAll(); commandRuntimeMock.Verify(f => f.WriteObject(It.Is <AzureHDInsightCluster>( clusterout => clusterout.ClusterState == "Running" && clusterout.ClusterType == ClusterType && clusterout.ClusterVersion == HdiVersion && clusterout.CoresUsed == 24 && clusterout.Location == Location && clusterout.Name == ClusterName && clusterout.OperatingSystemType == OSType.Linux && (workerNodeDataDisks == 0) || (clusterout.WorkerNodeDataDisksGroups.First().DisksPerNode == workerNodeDataDisks))), Times.Once); }