Search in sources :

Example 46 with AwsParamsDto

use of org.finra.herd.model.dto.AwsParamsDto in project herd by FINRAOS.

the class EmrDaoTest method createEmrClusterAssertCallRunEmrJobFlowRequiredParamsOnly.

@Test
public void createEmrClusterAssertCallRunEmrJobFlowRequiredParamsOnly() throws Exception {
    String clusterName = "clusterName";
    EmrClusterDefinition emrClusterDefinition = new EmrClusterDefinition();
    InstanceDefinitions instanceDefinitions = new InstanceDefinitions();
    instanceDefinitions.setMasterInstances(new MasterInstanceDefinition(10, "masterInstanceType", NO_EMR_CLUSTER_DEFINITION_EBS_CONFIGURATION, NO_INSTANCE_SPOT_PRICE, NO_INSTANCE_MAX_SEARCH_PRICE, NO_INSTANCE_ON_DEMAND_THRESHOLD));
    instanceDefinitions.setCoreInstances(new InstanceDefinition(20, "coreInstanceType", NO_EMR_CLUSTER_DEFINITION_EBS_CONFIGURATION, NO_INSTANCE_SPOT_PRICE, NO_INSTANCE_MAX_SEARCH_PRICE, NO_INSTANCE_ON_DEMAND_THRESHOLD));
    emrClusterDefinition.setInstanceDefinitions(instanceDefinitions);
    emrClusterDefinition.setNodeTags(Arrays.asList(new NodeTag("tagName", "tagValue")));
    String clusterId = "clusterId";
    when(mockEmrOperations.runEmrJobFlow(any(), any())).then(new Answer<String>() {

        @Override
        public String answer(InvocationOnMock invocation) throws Throwable {
            /*
                 * Assert that the given EMR cluster definition produced the correct RunJobFlowRequest
                 */
            RunJobFlowRequest runJobFlowRequest = invocation.getArgument(1);
            JobFlowInstancesConfig jobFlowInstancesConfig = runJobFlowRequest.getInstances();
            List<InstanceGroupConfig> instanceGroupConfigs = jobFlowInstancesConfig.getInstanceGroups();
            assertEquals(2, instanceGroupConfigs.size());
            {
                InstanceGroupConfig instanceGroupConfig = instanceGroupConfigs.get(0);
                assertEquals(10, instanceGroupConfig.getInstanceCount().intValue());
                assertEquals("masterInstanceType", instanceGroupConfig.getInstanceType());
            }
            {
                InstanceGroupConfig instanceGroupConfig = instanceGroupConfigs.get(1);
                assertEquals(20, instanceGroupConfig.getInstanceCount().intValue());
                assertEquals("coreInstanceType", instanceGroupConfig.getInstanceType());
            }
            assertEquals(herdStringHelper.getRequiredConfigurationValue(ConfigurationValue.EMR_DEFAULT_EC2_NODE_IAM_PROFILE_NAME), runJobFlowRequest.getJobFlowRole());
            assertEquals(herdStringHelper.getRequiredConfigurationValue(ConfigurationValue.EMR_DEFAULT_SERVICE_IAM_ROLE_NAME), runJobFlowRequest.getServiceRole());
            List<StepConfig> stepConfigs = runJobFlowRequest.getSteps();
            assertEquals(0, stepConfigs.size());
            List<Tag> tags = runJobFlowRequest.getTags();
            assertEquals(1, tags.size());
            {
                Tag tag = tags.get(0);
                assertEquals("tagName", tag.getKey());
                assertEquals("tagValue", tag.getValue());
            }
            return clusterId;
        }
    });
    assertEquals(clusterId, emrDao.createEmrCluster(clusterName, emrClusterDefinition, new AwsParamsDto()));
}
Also used : MasterInstanceDefinition(org.finra.herd.model.api.xml.MasterInstanceDefinition) InstanceDefinition(org.finra.herd.model.api.xml.InstanceDefinition) AwsParamsDto(org.finra.herd.model.dto.AwsParamsDto) RunJobFlowRequest(com.amazonaws.services.elasticmapreduce.model.RunJobFlowRequest) JobFlowInstancesConfig(com.amazonaws.services.elasticmapreduce.model.JobFlowInstancesConfig) MasterInstanceDefinition(org.finra.herd.model.api.xml.MasterInstanceDefinition) InstanceDefinitions(org.finra.herd.model.api.xml.InstanceDefinitions) EmrClusterDefinition(org.finra.herd.model.api.xml.EmrClusterDefinition) InvocationOnMock(org.mockito.invocation.InvocationOnMock) NodeTag(org.finra.herd.model.api.xml.NodeTag) List(java.util.List) ArrayList(java.util.ArrayList) Tag(com.amazonaws.services.elasticmapreduce.model.Tag) NodeTag(org.finra.herd.model.api.xml.NodeTag) InstanceGroupConfig(com.amazonaws.services.elasticmapreduce.model.InstanceGroupConfig) Test(org.junit.Test)

Example 47 with AwsParamsDto

use of org.finra.herd.model.dto.AwsParamsDto in project herd by FINRAOS.

the class EmrDaoTest method createEmrClusterAssertCallRunEmrJobFlowOptionalParams.

@Test
public void createEmrClusterAssertCallRunEmrJobFlowOptionalParams() throws Exception {
    String clusterName = "clusterName";
    EmrClusterDefinition emrClusterDefinition = new EmrClusterDefinition();
    InstanceDefinitions instanceDefinitions = new InstanceDefinitions();
    instanceDefinitions.setMasterInstances(new MasterInstanceDefinition(10, "masterInstanceType", NO_EMR_CLUSTER_DEFINITION_EBS_CONFIGURATION, NO_INSTANCE_SPOT_PRICE, NO_INSTANCE_MAX_SEARCH_PRICE, NO_INSTANCE_ON_DEMAND_THRESHOLD));
    instanceDefinitions.setCoreInstances(new InstanceDefinition(20, "coreInstanceType", NO_EMR_CLUSTER_DEFINITION_EBS_CONFIGURATION, BigDecimal.ONE, NO_INSTANCE_MAX_SEARCH_PRICE, NO_INSTANCE_ON_DEMAND_THRESHOLD));
    instanceDefinitions.setTaskInstances(new InstanceDefinition(30, "taskInstanceType", NO_EMR_CLUSTER_DEFINITION_EBS_CONFIGURATION, NO_INSTANCE_SPOT_PRICE, NO_INSTANCE_MAX_SEARCH_PRICE, NO_INSTANCE_ON_DEMAND_THRESHOLD));
    emrClusterDefinition.setInstanceDefinitions(instanceDefinitions);
    emrClusterDefinition.setNodeTags(Arrays.asList(new NodeTag("tagName", "tagValue"), new NodeTag("", "tagValue"), new NodeTag("tagName", "")));
    emrClusterDefinition.setSshKeyPairName("sshKeyPairName");
    emrClusterDefinition.setSubnetId("subnetId");
    emrClusterDefinition.setKeepAlive(true);
    emrClusterDefinition.setTerminationProtection(true);
    emrClusterDefinition.setHadoopVersion("hadoopVersion");
    emrClusterDefinition.setReleaseLabel("releaseLabel");
    emrClusterDefinition.setApplications(new ArrayList<>());
    {
        EmrClusterDefinitionApplication emrClusterDefinitionApplication = new EmrClusterDefinitionApplication();
        emrClusterDefinitionApplication.setName("applicationName1");
        emrClusterDefinitionApplication.setVersion("applicationVersion1");
        emrClusterDefinitionApplication.setArgs(Arrays.asList("applicationArg1"));
        emrClusterDefinition.getApplications().add(emrClusterDefinitionApplication);
    }
    {
        EmrClusterDefinitionApplication emrClusterDefinitionApplication = new EmrClusterDefinitionApplication();
        emrClusterDefinitionApplication.setName("applicationName2");
        emrClusterDefinitionApplication.setVersion("applicationVersion2");
        emrClusterDefinitionApplication.setArgs(Arrays.asList("applicationArg2"));
        emrClusterDefinitionApplication.setAdditionalInfoList(Arrays.asList(new Parameter("applicationAdditionalInfoName2", "applicationAdditionalInfoValue2")));
        emrClusterDefinition.getApplications().add(emrClusterDefinitionApplication);
    }
    emrClusterDefinition.setConfigurations(new ArrayList<>());
    {
        EmrClusterDefinitionConfiguration emrClusterDefinitionConfiguration = new EmrClusterDefinitionConfiguration();
        emrClusterDefinitionConfiguration.setClassification("classification");
        EmrClusterDefinitionConfiguration emrClusterDefinitionConfigurationInner = new EmrClusterDefinitionConfiguration();
        emrClusterDefinitionConfigurationInner.setClassification("classificationInner");
        emrClusterDefinitionConfiguration.setConfigurations(Arrays.asList(emrClusterDefinitionConfigurationInner));
        emrClusterDefinitionConfiguration.setProperties(Arrays.asList(new Parameter("propertyKey", "propertyValue")));
        emrClusterDefinition.getConfigurations().add(emrClusterDefinitionConfiguration);
    }
    emrClusterDefinition.setLogBucket("logBucket");
    emrClusterDefinition.setVisibleToAll(true);
    emrClusterDefinition.setEc2NodeIamProfileName("ec2NodeIamProfileName");
    emrClusterDefinition.setServiceIamRole("serviceIamRole");
    emrClusterDefinition.setAmiVersion("amiVersion");
    emrClusterDefinition.setAdditionalInfo("additionalInfo");
    emrClusterDefinition.setEncryptionEnabled(true);
    emrClusterDefinition.setDaemonConfigurations(Arrays.asList(new Parameter("daemonConfigurationsKey", "daemonConfigurationsValue")));
    ConfigurationFiles configurationFiles = new ConfigurationFiles();
    configurationFiles.getConfigurationFiles().add(new ConfigurationFile("fileNameShortcut", "configFileLocation"));
    KeyValuePairConfigurations keyValuePairConfigurations = new KeyValuePairConfigurations();
    keyValuePairConfigurations.getKeyValuePairConfigurations().add(new KeyValuePairConfiguration("keyValueShortcut", "attribKey", "attribVal"));
    emrClusterDefinition.setHadoopConfigurations(Arrays.asList(configurationFiles, keyValuePairConfigurations));
    emrClusterDefinition.setCustomBootstrapActionAll(new ArrayList<>());
    {
        ScriptDefinition scriptDefinitionAll = new ScriptDefinition();
        scriptDefinitionAll.setScriptName("scriptDefinitionAllName1");
        scriptDefinitionAll.setScriptLocation("scriptDefinitionAllLocation1");
        scriptDefinitionAll.setScriptArguments(Arrays.asList("scriptDefinitionAllArg1"));
        emrClusterDefinition.getCustomBootstrapActionAll().add(scriptDefinitionAll);
    }
    {
        ScriptDefinition scriptDefinitionAll = new ScriptDefinition();
        scriptDefinitionAll.setScriptName("scriptDefinitionAllName2");
        scriptDefinitionAll.setScriptLocation("scriptDefinitionAllLocation2");
        emrClusterDefinition.getCustomBootstrapActionAll().add(scriptDefinitionAll);
    }
    emrClusterDefinition.setCustomBootstrapActionMaster(new ArrayList<>());
    {
        ScriptDefinition scriptDefinitionMaster = new ScriptDefinition();
        scriptDefinitionMaster.setScriptName("scriptDefinitionMasterName1");
        scriptDefinitionMaster.setScriptLocation("scriptDefinitionMasterLocation1");
        scriptDefinitionMaster.setScriptArguments(Arrays.asList("scriptDefinitionMasterArg1"));
        emrClusterDefinition.getCustomBootstrapActionMaster().add(scriptDefinitionMaster);
    }
    {
        ScriptDefinition scriptDefinitionMaster = new ScriptDefinition();
        scriptDefinitionMaster.setScriptName("scriptDefinitionMasterName2");
        scriptDefinitionMaster.setScriptLocation("scriptDefinitionMasterLocation2");
        emrClusterDefinition.getCustomBootstrapActionMaster().add(scriptDefinitionMaster);
    }
    emrClusterDefinition.setHiveVersion("hiveVersion");
    emrClusterDefinition.setPigVersion("pigVersion");
    emrClusterDefinition.setInstallOozie(true);
    emrClusterDefinition.setHadoopJarSteps(Arrays.asList(new HadoopJarStep("stepName", "jarLocation", "mainClass", null, true)));
    emrClusterDefinition.setSupportedProduct("supportedProduct");
    emrClusterDefinition.setSecurityConfiguration("securityConfiguration");
    emrClusterDefinition.setScaleDownBehavior("scaleDownBehavior");
    emrClusterDefinition.setMasterSecurityGroup(EMR_MASTER_SECURITY_GROUP);
    emrClusterDefinition.setSlaveSecurityGroup(EMR_SLAVE_SECURITY_GROUP);
    String clusterId = "clusterId";
    when(mockEmrOperations.runEmrJobFlow(any(), any())).then(new Answer<String>() {

        @Override
        public String answer(InvocationOnMock invocation) throws Throwable {
            /*
                 * Assert that the given EMR cluster definition produced the correct RunJobFlowRequest
                 */
            RunJobFlowRequest runJobFlowRequest = invocation.getArgument(1);
            assertEquals(3, runJobFlowRequest.getInstances().getInstanceGroups().size());
            {
                InstanceGroupConfig instanceGroupConfig = runJobFlowRequest.getInstances().getInstanceGroups().get(1);
                assertEquals("1", instanceGroupConfig.getBidPrice());
            }
            {
                InstanceGroupConfig instanceGroupConfig = runJobFlowRequest.getInstances().getInstanceGroups().get(2);
                assertEquals("taskInstanceType", instanceGroupConfig.getInstanceType());
                assertEquals(30, instanceGroupConfig.getInstanceCount().intValue());
            }
            assertEquals("sshKeyPairName", runJobFlowRequest.getInstances().getEc2KeyName());
            assertEquals("subnetId", runJobFlowRequest.getInstances().getEc2SubnetId());
            assertEquals(true, runJobFlowRequest.getInstances().getKeepJobFlowAliveWhenNoSteps());
            assertEquals(true, runJobFlowRequest.getInstances().getTerminationProtected());
            assertEquals("hadoopVersion", runJobFlowRequest.getInstances().getHadoopVersion());
            assertEquals("releaseLabel", runJobFlowRequest.getReleaseLabel());
            assertEquals(2, runJobFlowRequest.getApplications().size());
            {
                Application application = runJobFlowRequest.getApplications().get(0);
                assertEquals("applicationName1", application.getName());
                assertEquals("applicationVersion1", application.getVersion());
                assertEquals(Arrays.asList("applicationArg1"), application.getArgs());
            }
            {
                Application application = runJobFlowRequest.getApplications().get(1);
                Map<String, String> additionalInfo = application.getAdditionalInfo();
                assertEquals(1, additionalInfo.size());
                assertEquals("applicationAdditionalInfoValue2", additionalInfo.get("applicationAdditionalInfoName2"));
            }
            assertEquals(1, runJobFlowRequest.getConfigurations().size());
            {
                Configuration configuration = runJobFlowRequest.getConfigurations().get(0);
                assertEquals("classification", configuration.getClassification());
                assertEquals(1, configuration.getConfigurations().size());
                {
                    Configuration configurationInner = configuration.getConfigurations().get(0);
                    assertEquals("classificationInner", configurationInner.getClassification());
                }
                assertEquals(1, configuration.getProperties().size());
                assertEquals("propertyValue", configuration.getProperties().get("propertyKey"));
            }
            assertEquals("logBucket", runJobFlowRequest.getLogUri());
            assertEquals(true, runJobFlowRequest.getVisibleToAllUsers());
            assertEquals("ec2NodeIamProfileName", runJobFlowRequest.getJobFlowRole());
            assertEquals("serviceIamRole", runJobFlowRequest.getServiceRole());
            assertEquals("amiVersion", runJobFlowRequest.getAmiVersion());
            assertEquals("additionalInfo", runJobFlowRequest.getAdditionalInfo());
            assertEquals(7, runJobFlowRequest.getBootstrapActions().size());
            {
                BootstrapActionConfig bootstrapActionConfig = runJobFlowRequest.getBootstrapActions().get(0);
                assertEquals("emr.encryption.script", bootstrapActionConfig.getName());
                ScriptBootstrapActionConfig scriptBootstrapAction = bootstrapActionConfig.getScriptBootstrapAction();
                assertEquals("s3:////herd_SCRIPTS/encrypt_disks.sh", scriptBootstrapAction.getPath());
                assertEquals(0, scriptBootstrapAction.getArgs().size());
            }
            {
                BootstrapActionConfig bootstrapActionConfig = runJobFlowRequest.getBootstrapActions().get(1);
                assertEquals("emr.aws.configure.daemon", bootstrapActionConfig.getName());
                ScriptBootstrapActionConfig scriptBootstrapAction = bootstrapActionConfig.getScriptBootstrapAction();
                assertEquals("s3://elasticmapreduce/bootstrap-actions/configure-daemons", scriptBootstrapAction.getPath());
                assertEquals(Arrays.asList("daemonConfigurationsKey=daemonConfigurationsValue"), scriptBootstrapAction.getArgs());
            }
            {
                BootstrapActionConfig bootstrapActionConfig = runJobFlowRequest.getBootstrapActions().get(2);
                assertEquals("emr.aws.configure.hadoop", bootstrapActionConfig.getName());
                ScriptBootstrapActionConfig scriptBootstrapAction = bootstrapActionConfig.getScriptBootstrapAction();
                assertEquals("s3://us-east-1.elasticmapreduce/bootstrap-actions/configure-hadoop", scriptBootstrapAction.getPath());
                assertEquals(Arrays.asList("fileNameShortcut", "configFileLocation", "keyValueShortcut", "attribKey=attribVal"), scriptBootstrapAction.getArgs());
            }
            {
                BootstrapActionConfig bootstrapActionConfig = runJobFlowRequest.getBootstrapActions().get(3);
                assertEquals("scriptDefinitionAllName1", bootstrapActionConfig.getName());
                ScriptBootstrapActionConfig scriptBootstrapAction = bootstrapActionConfig.getScriptBootstrapAction();
                assertEquals("scriptDefinitionAllLocation1", scriptBootstrapAction.getPath());
                assertEquals(Arrays.asList("scriptDefinitionAllArg1"), scriptBootstrapAction.getArgs());
            }
            {
                BootstrapActionConfig bootstrapActionConfig = runJobFlowRequest.getBootstrapActions().get(4);
                ScriptBootstrapActionConfig scriptBootstrapAction = bootstrapActionConfig.getScriptBootstrapAction();
                assertEquals(0, scriptBootstrapAction.getArgs().size());
            }
            {
                BootstrapActionConfig bootstrapActionConfig = runJobFlowRequest.getBootstrapActions().get(5);
                assertEquals("scriptDefinitionMasterName1", bootstrapActionConfig.getName());
                ScriptBootstrapActionConfig scriptBootstrapAction = bootstrapActionConfig.getScriptBootstrapAction();
                assertEquals("s3://elasticmapreduce/bootstrap-actions/run-if", scriptBootstrapAction.getPath());
                assertEquals(Arrays.asList("instance.isMaster=true", "scriptDefinitionMasterLocation1", "scriptDefinitionMasterArg1"), scriptBootstrapAction.getArgs());
            }
            {
                BootstrapActionConfig bootstrapActionConfig = runJobFlowRequest.getBootstrapActions().get(6);
                ScriptBootstrapActionConfig scriptBootstrapAction = bootstrapActionConfig.getScriptBootstrapAction();
                assertEquals(Arrays.asList("instance.isMaster=true", "scriptDefinitionMasterLocation2"), scriptBootstrapAction.getArgs());
            }
            assertEquals(Arrays.asList("supportedProduct"), runJobFlowRequest.getSupportedProducts());
            assertEquals("securityConfiguration", runJobFlowRequest.getSecurityConfiguration());
            assertEquals("scaleDownBehavior", runJobFlowRequest.getScaleDownBehavior());
            assertEquals(EMR_MASTER_SECURITY_GROUP, runJobFlowRequest.getInstances().getEmrManagedMasterSecurityGroup());
            assertEquals(EMR_SLAVE_SECURITY_GROUP, runJobFlowRequest.getInstances().getEmrManagedSlaveSecurityGroup());
            return clusterId;
        }
    });
    assertEquals(clusterId, emrDao.createEmrCluster(clusterName, emrClusterDefinition, new AwsParamsDto()));
}
Also used : MasterInstanceDefinition(org.finra.herd.model.api.xml.MasterInstanceDefinition) InstanceDefinition(org.finra.herd.model.api.xml.InstanceDefinition) AwsParamsDto(org.finra.herd.model.dto.AwsParamsDto) ScriptDefinition(org.finra.herd.model.api.xml.ScriptDefinition) EmrClusterDefinitionConfiguration(org.finra.herd.model.api.xml.EmrClusterDefinitionConfiguration) Configuration(com.amazonaws.services.elasticmapreduce.model.Configuration) KeyValuePairConfiguration(org.finra.herd.model.api.xml.KeyValuePairConfiguration) ClientConfiguration(com.amazonaws.ClientConfiguration) KeyValuePairConfigurations(org.finra.herd.model.api.xml.KeyValuePairConfigurations) HadoopJarStep(org.finra.herd.model.api.xml.HadoopJarStep) EmrClusterDefinition(org.finra.herd.model.api.xml.EmrClusterDefinition) KeyValuePairConfiguration(org.finra.herd.model.api.xml.KeyValuePairConfiguration) ScriptBootstrapActionConfig(com.amazonaws.services.elasticmapreduce.model.ScriptBootstrapActionConfig) NodeTag(org.finra.herd.model.api.xml.NodeTag) EmrClusterDefinitionConfiguration(org.finra.herd.model.api.xml.EmrClusterDefinitionConfiguration) EmrClusterDefinitionApplication(org.finra.herd.model.api.xml.EmrClusterDefinitionApplication) InstanceGroupConfig(com.amazonaws.services.elasticmapreduce.model.InstanceGroupConfig) RunJobFlowRequest(com.amazonaws.services.elasticmapreduce.model.RunJobFlowRequest) MasterInstanceDefinition(org.finra.herd.model.api.xml.MasterInstanceDefinition) ConfigurationFiles(org.finra.herd.model.api.xml.ConfigurationFiles) InstanceDefinitions(org.finra.herd.model.api.xml.InstanceDefinitions) BootstrapActionConfig(com.amazonaws.services.elasticmapreduce.model.BootstrapActionConfig) ScriptBootstrapActionConfig(com.amazonaws.services.elasticmapreduce.model.ScriptBootstrapActionConfig) InvocationOnMock(org.mockito.invocation.InvocationOnMock) Parameter(org.finra.herd.model.api.xml.Parameter) ConfigurationFile(org.finra.herd.model.api.xml.ConfigurationFile) Application(com.amazonaws.services.elasticmapreduce.model.Application) EmrClusterDefinitionApplication(org.finra.herd.model.api.xml.EmrClusterDefinitionApplication) Test(org.junit.Test)

Example 48 with AwsParamsDto

use of org.finra.herd.model.dto.AwsParamsDto in project herd by FINRAOS.

the class EmrDaoTest method getActiveEmrClusterByNameAssertOnlyReturnClusterWithMatchingName.

@Test
public void getActiveEmrClusterByNameAssertOnlyReturnClusterWithMatchingName() throws Exception {
    String clusterName = "clusterName";
    String expectedClusterId = "clusterId3";
    ListClustersResult listClustersResult = new ListClustersResult();
    listClustersResult.setClusters(new ArrayList<>());
    {
        ClusterSummary clusterSummary = new ClusterSummary();
        clusterSummary.setId("clusterId1");
        clusterSummary.setName("not_matching");
        listClustersResult.getClusters().add(clusterSummary);
    }
    {
        ClusterSummary clusterSummary = new ClusterSummary();
        clusterSummary.setId("clusterId2");
        clusterSummary.setName("");
        listClustersResult.getClusters().add(clusterSummary);
    }
    {
        ClusterSummary clusterSummary = new ClusterSummary();
        clusterSummary.setId(expectedClusterId);
        clusterSummary.setName(clusterName);
        listClustersResult.getClusters().add(clusterSummary);
    }
    when(mockEmrOperations.listEmrClusters(any(), any())).thenReturn(listClustersResult);
    ClusterSummary result = emrDao.getActiveEmrClusterByName(clusterName, new AwsParamsDto());
    assertNotNull(result);
    assertEquals(expectedClusterId, result.getId());
}
Also used : AwsParamsDto(org.finra.herd.model.dto.AwsParamsDto) ClusterSummary(com.amazonaws.services.elasticmapreduce.model.ClusterSummary) ListClustersResult(com.amazonaws.services.elasticmapreduce.model.ListClustersResult) Test(org.junit.Test)

Example 49 with AwsParamsDto

use of org.finra.herd.model.dto.AwsParamsDto in project herd by FINRAOS.

the class EmrDaoTest method getEmrClusterStatusByIdAssertReturnClusterState.

@Test
public void getEmrClusterStatusByIdAssertReturnClusterState() throws Exception {
    String clusterId = "clusterId";
    ClusterState expectedState = ClusterState.BOOTSTRAPPING;
    when(mockEmrOperations.describeClusterRequest(any(), any())).then(new Answer<DescribeClusterResult>() {

        @Override
        public DescribeClusterResult answer(InvocationOnMock invocation) throws Throwable {
            DescribeClusterRequest describeClusterRequest = invocation.getArgument(1);
            assertEquals(clusterId, describeClusterRequest.getClusterId());
            DescribeClusterResult describeClusterResult = new DescribeClusterResult();
            Cluster cluster = new Cluster();
            ClusterStatus status = new ClusterStatus();
            status.setState(expectedState);
            cluster.setStatus(status);
            describeClusterResult.setCluster(cluster);
            return describeClusterResult;
        }
    });
    assertEquals(expectedState.toString(), emrDao.getEmrClusterStatusById(clusterId, new AwsParamsDto()));
}
Also used : ClusterState(com.amazonaws.services.elasticmapreduce.model.ClusterState) AwsParamsDto(org.finra.herd.model.dto.AwsParamsDto) DescribeClusterRequest(com.amazonaws.services.elasticmapreduce.model.DescribeClusterRequest) DescribeClusterResult(com.amazonaws.services.elasticmapreduce.model.DescribeClusterResult) InvocationOnMock(org.mockito.invocation.InvocationOnMock) Cluster(com.amazonaws.services.elasticmapreduce.model.Cluster) ClusterStatus(com.amazonaws.services.elasticmapreduce.model.ClusterStatus) Test(org.junit.Test)

Example 50 with AwsParamsDto

use of org.finra.herd.model.dto.AwsParamsDto in project herd by FINRAOS.

the class Ec2DaoTest method testGetEc2Client.

@Test
public void testGetEc2Client() throws Exception {
    // Get the EMR client with proxy configuration.
    AwsParamsDto awsParamsDto = awsHelper.getAwsParamsDto();
    awsParamsDto.setHttpProxyHost(HTTP_PROXY_HOST);
    awsParamsDto.setHttpProxyPort(HTTP_PROXY_PORT);
    assertNotNull(ec2Dao.getEc2Client(awsParamsDto));
    // Set the proxy host as blank to get the EMR client without proxy.
    awsParamsDto.setHttpProxyHost(BLANK_TEXT);
    awsParamsDto.setHttpProxyPort(HTTP_PROXY_PORT);
    assertNotNull(ec2Dao.getEc2Client(awsParamsDto));
    // Set the proxy port as null to get the EMR client without proxy.
    awsParamsDto.setHttpProxyHost(HTTP_PROXY_HOST);
    awsParamsDto.setHttpProxyPort(null);
    assertNotNull(ec2Dao.getEc2Client(awsParamsDto));
    // Set the proxy host as blank and proxy port as null to get the EMR client without proxy.
    awsParamsDto.setHttpProxyHost(BLANK_TEXT);
    awsParamsDto.setHttpProxyPort(null);
    assertNotNull(ec2Dao.getEc2Client(awsParamsDto));
}
Also used : AwsParamsDto(org.finra.herd.model.dto.AwsParamsDto) Test(org.junit.Test)

Aggregations

AwsParamsDto (org.finra.herd.model.dto.AwsParamsDto)67 Test (org.junit.Test)52 InvocationOnMock (org.mockito.invocation.InvocationOnMock)13 ClusterSummary (com.amazonaws.services.elasticmapreduce.model.ClusterSummary)11 ClientConfiguration (com.amazonaws.ClientConfiguration)9 ArrayList (java.util.ArrayList)9 ListClustersResult (com.amazonaws.services.elasticmapreduce.model.ListClustersResult)8 AbstractDaoTest (org.finra.herd.dao.AbstractDaoTest)8 EmrClusterDefinition (org.finra.herd.model.api.xml.EmrClusterDefinition)7 AmazonElasticMapReduceClient (com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClient)6 AmazonServiceException (com.amazonaws.AmazonServiceException)5 RunJobFlowRequest (com.amazonaws.services.elasticmapreduce.model.RunJobFlowRequest)5 NodeTag (org.finra.herd.model.api.xml.NodeTag)5 EmrClusterDefinitionEntity (org.finra.herd.model.jpa.EmrClusterDefinitionEntity)5 NamespaceEntity (org.finra.herd.model.jpa.NamespaceEntity)5 Cluster (com.amazonaws.services.elasticmapreduce.model.Cluster)4 DescribeClusterResult (com.amazonaws.services.elasticmapreduce.model.DescribeClusterResult)4 ListInstancesResult (com.amazonaws.services.elasticmapreduce.model.ListInstancesResult)4 List (java.util.List)4 InstanceDefinitions (org.finra.herd.model.api.xml.InstanceDefinitions)4