test_class.declarator: awsServiceHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private AwsServiceHelper awsServiceHelper;
test_class.type: AwsServiceHelper
test_class.var_name: awsServiceHelper
test_class.declarator: configurationHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private ConfigurationHelper configurationHelper;
test_class.type: ConfigurationHelper
test_class.var_name: configurationHelper
test_class.declarator: emrClusterDefinitionDaoHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private EmrClusterDefinitionDaoHelper emrClusterDefinitionDaoHelper;
test_class.type: EmrClusterDefinitionDaoHelper
test_class.var_name: emrClusterDefinitionDaoHelper
test_class.declarator: emrClusterDefinitionHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private EmrClusterDefinitionHelper emrClusterDefinitionHelper;
test_class.type: EmrClusterDefinitionHelper
test_class.var_name: emrClusterDefinitionHelper
test_class.declarator: emrDao
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private EmrDao emrDao;
test_class.type: EmrDao
test_class.var_name: emrDao
test_class.declarator: emrHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private EmrHelper emrHelper;
test_class.type: EmrHelper
test_class.var_name: emrHelper
test_class.declarator: emrHelperServiceImpl
test_class.modifier: @InjectMocks
      private
test_class.original_string: @InjectMocks
      private EmrHelperServiceImpl emrHelperServiceImpl;
test_class.type: EmrHelperServiceImpl
test_class.var_name: emrHelperServiceImpl
test_class.declarator: emrPricingHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private EmrPricingHelper emrPricingHelper;
test_class.type: EmrPricingHelper
test_class.var_name: emrPricingHelper
test_class.declarator: herdDao
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private HerdDao herdDao;
test_class.type: HerdDao
test_class.var_name: herdDao
test_class.declarator: namespaceDaoHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private NamespaceDaoHelper namespaceDaoHelper;
test_class.type: NamespaceDaoHelper
test_class.var_name: namespaceDaoHelper
test_class.declarator: namespaceIamRoleAuthorizationHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private NamespaceIamRoleAuthorizationHelper namespaceIamRoleAuthorizationHelper;
test_class.type: NamespaceIamRoleAuthorizationHelper
test_class.var_name: namespaceIamRoleAuthorizationHelper
test_class.declarator: xmlHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private XmlHelper xmlHelper;
test_class.type: XmlHelper
test_class.var_name: xmlHelper
test_class.declarator: jsonHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private JsonHelper jsonHelper;
test_class.type: JsonHelper
test_class.var_name: jsonHelper
test_class.file: herd-code/herd-service/src/test/java/org/finra/herd/service/impl/EmrHelperServiceImplTest.java
test_class.identifier: EmrHelperServiceImplTest
test_class.superclass: extends AbstractServiceTest
test_case.body: @Test
      public void testEmrCreateClusterAwsSpecificStepsImpl()
      {
          // Create an EMR cluster definition object.
          EmrClusterDefinition emrClusterDefinition = new EmrClusterDefinition();
          emrClusterDefinition.setAccountId(AWS_ACCOUNT_ID);
          emrClusterDefinition.setInstanceDefinitions(new InstanceDefinitions());
  
          // Create an EMR cluster create request.
          EmrClusterCreateRequest emrClusterCreateRequest =
              new EmrClusterCreateRequest(NAMESPACE, EMR_CLUSTER_DEFINITION_NAME, EMR_CLUSTER_NAME, NO_DRY_RUN, emrClusterDefinition);
          emrClusterCreateRequest.setEmrClusterDefinitionOverride(emrClusterDefinition);
  
          // Create an EMR cluster alternate key DTO.
          EmrClusterAlternateKeyDto emrClusterAlternateKeyDto = new EmrClusterAlternateKeyDto(NAMESPACE, EMR_CLUSTER_DEFINITION_NAME, EMR_CLUSTER_NAME);
  
          // Create an EMR parameters DTO.
          EmrParamsDto emrParamsDto =
              new EmrParamsDto(NO_AWS_ACCESS_KEY, NO_AWS_SECRET_KEY, NO_SESSION_TOKEN, HTTP_PROXY_HOST, HTTP_PROXY_PORT, AWS_REGION_NAME_US_EAST_1,
                  NO_S3_TRUSTING_ACCOUNT_STAGING_BUCKET_NAME);
  
          // Create a cluster summary object.
          ClusterSummary clusterSummary = new ClusterSummary();
          clusterSummary.setId(EMR_CLUSTER_ID);
          clusterSummary.setStatus(new ClusterStatus().withState(EMR_CLUSTER_STATUS));
  
          // Mock the external calls.
          when(emrHelper.isInstanceDefinitionsEmpty(emrClusterDefinition.getInstanceDefinitions())).thenReturn(false);
          when(emrHelper.buildEmrClusterName(emrClusterAlternateKeyDto.getNamespace(), emrClusterAlternateKeyDto.getEmrClusterDefinitionName(),
              emrClusterAlternateKeyDto.getEmrClusterName())).thenReturn(EMR_CLUSTER_NAME);
          when(emrDao.getActiveEmrClusterByNameAndAccountId(EMR_CLUSTER_NAME, emrClusterDefinition.getAccountId(), emrParamsDto)).thenReturn(clusterSummary);
  
          // Call the method under test.
          emrHelperServiceImpl.emrCreateClusterAwsSpecificSteps(emrClusterCreateRequest, emrClusterDefinition, emrClusterAlternateKeyDto, emrParamsDto);
  
          // Verify the external calls.
          verify(emrHelper).isInstanceDefinitionsEmpty(emrClusterDefinition.getInstanceDefinitions());
          verify(emrPricingHelper).updateEmrClusterDefinitionWithBestPrice(emrClusterAlternateKeyDto, emrClusterDefinition, emrParamsDto);
          verify(emrHelper).buildEmrClusterName(emrClusterAlternateKeyDto.getNamespace(), emrClusterAlternateKeyDto.getEmrClusterDefinitionName(),
              emrClusterAlternateKeyDto.getEmrClusterName());
          verify(emrDao).getActiveEmrClusterByNameAndAccountId(EMR_CLUSTER_NAME, emrClusterDefinition.getAccountId(), emrParamsDto);
          verifyNoMoreInteractionsHelper();
      }
test_case.class_method_signature: EmrHelperServiceImplTest.testEmrCreateClusterAwsSpecificStepsImpl()
test_case.full_signature: @Test public void testEmrCreateClusterAwsSpecificStepsImpl()
test_case.identifier: testEmrCreateClusterAwsSpecificStepsImpl
test_case.invocations: setAccountId setInstanceDefinitions setEmrClusterDefinitionOverride setId setStatus withState thenReturn when isInstanceDefinitionsEmpty getInstanceDefinitions thenReturn when buildEmrClusterName getNamespace getEmrClusterDefinitionName getEmrClusterName thenReturn when getActiveEmrClusterByNameAndAccountId getAccountId emrCreateClusterAwsSpecificSteps isInstanceDefinitionsEmpty verify getInstanceDefinitions updateEmrClusterDefinitionWithBestPrice verify buildEmrClusterName verify getNamespace getEmrClusterDefinitionName getEmrClusterName getActiveEmrClusterByNameAndAccountId verify getAccountId verifyNoMoreInteractionsHelper
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testEmrCreateClusterAwsSpecificStepsImpl()
focal_class.declarator: LOGGER = LoggerFactory.getLogger(EmrHelperServiceImpl.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger LOGGER = LoggerFactory.getLogger(EmrHelperServiceImpl.class);
focal_class.type: Logger
focal_class.var_name: LOGGER
focal_class.declarator: awsServiceHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private AwsServiceHelper awsServiceHelper;
focal_class.type: AwsServiceHelper
focal_class.var_name: awsServiceHelper
focal_class.declarator: configurationHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private ConfigurationHelper configurationHelper;
focal_class.type: ConfigurationHelper
focal_class.var_name: configurationHelper
focal_class.declarator: emrClusterDefinitionDaoHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private EmrClusterDefinitionDaoHelper emrClusterDefinitionDaoHelper;
focal_class.type: EmrClusterDefinitionDaoHelper
focal_class.var_name: emrClusterDefinitionDaoHelper
focal_class.declarator: emrClusterDefinitionHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private EmrClusterDefinitionHelper emrClusterDefinitionHelper;
focal_class.type: EmrClusterDefinitionHelper
focal_class.var_name: emrClusterDefinitionHelper
focal_class.declarator: emrDao
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private EmrDao emrDao;
focal_class.type: EmrDao
focal_class.var_name: emrDao
focal_class.declarator: emrHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private EmrHelper emrHelper;
focal_class.type: EmrHelper
focal_class.var_name: emrHelper
focal_class.declarator: emrPricingHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private EmrPricingHelper emrPricingHelper;
focal_class.type: EmrPricingHelper
focal_class.var_name: emrPricingHelper
focal_class.declarator: herdDao
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private HerdDao herdDao;
focal_class.type: HerdDao
focal_class.var_name: herdDao
focal_class.declarator: jsonHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private JsonHelper jsonHelper;
focal_class.type: JsonHelper
focal_class.var_name: jsonHelper
focal_class.declarator: namespaceDaoHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private NamespaceDaoHelper namespaceDaoHelper;
focal_class.type: NamespaceDaoHelper
focal_class.var_name: namespaceDaoHelper
focal_class.declarator: namespaceIamRoleAuthorizationHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private NamespaceIamRoleAuthorizationHelper namespaceIamRoleAuthorizationHelper;
focal_class.type: NamespaceIamRoleAuthorizationHelper
focal_class.var_name: namespaceIamRoleAuthorizationHelper
focal_class.declarator: xmlHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private XmlHelper xmlHelper;
focal_class.type: XmlHelper
focal_class.var_name: xmlHelper
focal_class.file: herd-code/herd-service/src/main/java/org/finra/herd/service/impl/EmrHelperServiceImpl.java
focal_class.identifier: EmrHelperServiceImpl
focal_class.interfaces: implements EmrHelperService
focal_class.class_method_signature: EmrHelperServiceImpl.emrCreateClusterAwsSpecificSteps(EmrClusterCreateRequest emrClusterCreateRequest, EmrClusterDefinition emrClusterDefinition,
          EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrParamsDto emrParamsDto)
focal_class.full_signature: @Override @Transactional(propagation = Propagation.NOT_SUPPORTED) public EmrClusterCreateDto emrCreateClusterAwsSpecificSteps(EmrClusterCreateRequest emrClusterCreateRequest, EmrClusterDefinition emrClusterDefinition,
          EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrParamsDto emrParamsDto)
focal_class.identifier: emrCreateClusterAwsSpecificSteps
focal_class.modifiers: @Override @Transactional(propagation = Propagation.NOT_SUPPORTED) public
focal_class.parameters: (EmrClusterCreateRequest emrClusterCreateRequest, EmrClusterDefinition emrClusterDefinition,
          EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrParamsDto emrParamsDto)
focal_class.return: EmrClusterCreateDto
focal_class.signature: EmrClusterCreateDto emrCreateClusterAwsSpecificSteps(EmrClusterCreateRequest emrClusterCreateRequest, EmrClusterDefinition emrClusterDefinition,
          EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrParamsDto emrParamsDto)
focal_class.class_method_signature: EmrHelperServiceImpl.emrPreCreateClusterSteps(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterCreateRequest emrClusterCreateRequest)
focal_class.full_signature: @Override @Transactional(propagation = Propagation.REQUIRES_NEW) public EmrClusterPreCreateDto emrPreCreateClusterSteps(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterCreateRequest emrClusterCreateRequest)
focal_class.identifier: emrPreCreateClusterSteps
focal_class.modifiers: @Override @Transactional(propagation = Propagation.REQUIRES_NEW) public
focal_class.parameters: (EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterCreateRequest emrClusterCreateRequest)
focal_class.return: EmrClusterPreCreateDto
focal_class.signature: EmrClusterPreCreateDto emrPreCreateClusterSteps(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterCreateRequest emrClusterCreateRequest)
focal_class.class_method_signature: EmrHelperServiceImpl.logEmrClusterCreation(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterDefinition emrClusterDefinition, String clusterId)
focal_class.full_signature: @Override @Transactional(propagation = Propagation.REQUIRES_NEW) public void logEmrClusterCreation(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterDefinition emrClusterDefinition, String clusterId)
focal_class.identifier: logEmrClusterCreation
focal_class.modifiers: @Override @Transactional(propagation = Propagation.REQUIRES_NEW) public
focal_class.parameters: (EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterDefinition emrClusterDefinition, String clusterId)
focal_class.return: void
focal_class.signature: void logEmrClusterCreation(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterDefinition emrClusterDefinition, String clusterId)
focal_class.class_method_signature: EmrHelperServiceImpl.emrCreateClusterAwsSpecificStepsImpl(EmrClusterCreateRequest request, EmrClusterDefinition emrClusterDefinition,
          EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrParamsDto emrParamsDto)
focal_class.full_signature:  EmrClusterCreateDto emrCreateClusterAwsSpecificStepsImpl(EmrClusterCreateRequest request, EmrClusterDefinition emrClusterDefinition,
          EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrParamsDto emrParamsDto)
focal_class.identifier: emrCreateClusterAwsSpecificStepsImpl
focal_class.parameters: (EmrClusterCreateRequest request, EmrClusterDefinition emrClusterDefinition,
          EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrParamsDto emrParamsDto)
focal_class.return: EmrClusterCreateDto
focal_class.signature: EmrClusterCreateDto emrCreateClusterAwsSpecificStepsImpl(EmrClusterCreateRequest request, EmrClusterDefinition emrClusterDefinition,
          EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrParamsDto emrParamsDto)
focal_class.class_method_signature: EmrHelperServiceImpl.emrPreCreateClusterStepsImpl(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterCreateRequest request)
focal_class.full_signature:  EmrClusterPreCreateDto emrPreCreateClusterStepsImpl(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterCreateRequest request)
focal_class.identifier: emrPreCreateClusterStepsImpl
focal_class.parameters: (EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterCreateRequest request)
focal_class.return: EmrClusterPreCreateDto
focal_class.signature: EmrClusterPreCreateDto emrPreCreateClusterStepsImpl(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterCreateRequest request)
focal_class.class_method_signature: EmrHelperServiceImpl.logEmrClusterCreationImpl(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterDefinition emrClusterDefinition, String clusterId)
focal_class.full_signature:  void logEmrClusterCreationImpl(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterDefinition emrClusterDefinition, String clusterId)
focal_class.identifier: logEmrClusterCreationImpl
focal_class.parameters: (EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterDefinition emrClusterDefinition, String clusterId)
focal_class.return: void
focal_class.signature: void logEmrClusterCreationImpl(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterDefinition emrClusterDefinition, String clusterId)
focal_class.class_method_signature: EmrHelperServiceImpl.getS3ManagedReplaceString()
focal_class.full_signature: private String getS3ManagedReplaceString()
focal_class.identifier: getS3ManagedReplaceString
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getS3ManagedReplaceString()
focal_class.class_method_signature: EmrHelperServiceImpl.overrideEmrClusterDefinition(EmrClusterDefinition emrClusterDefinition, EmrClusterDefinition emrClusterDefinitionOverride)
focal_class.full_signature: @SuppressWarnings("PMD.CyclomaticComplexity") // Method is not complex. It's just very repetitive. protected void overrideEmrClusterDefinition(EmrClusterDefinition emrClusterDefinition, EmrClusterDefinition emrClusterDefinitionOverride)
focal_class.identifier: overrideEmrClusterDefinition
focal_class.modifiers: @SuppressWarnings("PMD.CyclomaticComplexity") // Method is not complex. It's just very repetitive. protected
focal_class.parameters: (EmrClusterDefinition emrClusterDefinition, EmrClusterDefinition emrClusterDefinitionOverride)
focal_class.return: void
focal_class.signature: void overrideEmrClusterDefinition(EmrClusterDefinition emrClusterDefinition, EmrClusterDefinition emrClusterDefinitionOverride)
focal_class.class_method_signature: EmrHelperServiceImpl.updateEmrClusterDefinitionWithValidInstanceFleetSubnets(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterDefinition emrClusterDefinition,
          AwsParamsDto awsParamsDto)
focal_class.full_signature:  void updateEmrClusterDefinitionWithValidInstanceFleetSubnets(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterDefinition emrClusterDefinition,
          AwsParamsDto awsParamsDto)
focal_class.identifier: updateEmrClusterDefinitionWithValidInstanceFleetSubnets
focal_class.parameters: (EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterDefinition emrClusterDefinition,
          AwsParamsDto awsParamsDto)
focal_class.return: void
focal_class.signature: void updateEmrClusterDefinitionWithValidInstanceFleetSubnets(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterDefinition emrClusterDefinition,
          AwsParamsDto awsParamsDto)
focal_method.body: EmrClusterCreateDto emrCreateClusterAwsSpecificStepsImpl(EmrClusterCreateRequest request, EmrClusterDefinition emrClusterDefinition,
          EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrParamsDto emrParamsDto)
      {
          // RunJobFlow creates and starts running a new cluster
          // The RunJobFlow request can contain InstanceFleets parameters or InstanceGroups (InstanceDefinitions) parameters, but not both
          // If instance group definitions are specified, find best price and update definition.
          // Else instance fleet definitions are specified. If minimum ip filter is greater than 0, find valid subnets and update definition.
          if (!emrHelper.isInstanceDefinitionsEmpty(emrClusterDefinition.getInstanceDefinitions()))
          {
              emrPricingHelper.updateEmrClusterDefinitionWithBestPrice(emrClusterAlternateKeyDto, emrClusterDefinition, emrParamsDto);
          }
          else
          {
              updateEmrClusterDefinitionWithValidInstanceFleetSubnets(emrClusterAlternateKeyDto, emrClusterDefinition, emrParamsDto);
          }
  
          // The cluster ID record.
          String clusterId = null;
  
          // Is EMR cluster already existing.
          Boolean emrClusterAlreadyExists = null;
  
          // Is EMR cluster created.
          Boolean emrClusterCreated = null;
  
          // EMR cluster status string.
          String emrClusterStatus = null;
  
          // If the dryRun flag is null or false. This is the default option if no flag is given.
          if (!Boolean.TRUE.equals(request.isDryRun()))
          {
              /*
               * Create the cluster only if the cluster does not already exist.
               * If the cluster is created, record the newly created cluster ID.
               * If the cluster already exists, record the existing cluster ID.
               * If there is any error while attempting to check for existing cluster or create a new one, handle the exception to throw appropriate exception.
               */
              String clusterName = emrHelper
                  .buildEmrClusterName(emrClusterAlternateKeyDto.getNamespace(), emrClusterAlternateKeyDto.getEmrClusterDefinitionName(),
                      emrClusterAlternateKeyDto.getEmrClusterName());
              try
              {
                  // Synchronizing this block of code to prevent duplicate cluster creation.
                  synchronized (this)
                  {
                      LOGGER.info("Entering synchronized block.");
  
                      // Try to get an active EMR cluster by its name.
                      ClusterSummary clusterSummary =
                          emrDao.getActiveEmrClusterByNameAndAccountId(clusterName, emrClusterDefinition.getAccountId(), emrParamsDto);
  
                      // If cluster does not already exist.
                      if (clusterSummary == null)
                      {
                          clusterId = emrDao.createEmrCluster(clusterName, emrClusterDefinition, emrParamsDto);
                          emrClusterCreated = true;
                          emrClusterStatus = emrDao.getEmrClusterStatusById(clusterId, emrParamsDto);
  
                      }
                      // If the cluster already exists.
                      else
                      {
                          clusterId = clusterSummary.getId();
                          emrClusterCreated = false;
                          emrClusterAlreadyExists = true;
  
                          // If the cluster already exists use the status from the get active EMR cluster by name and account id method call.
                          emrClusterStatus = clusterSummary.getStatus().getState();
                      }
  
                      LOGGER.info("Exiting synchronized block.");
                  }
              }
              catch (AmazonServiceException ex)
              {
                  awsServiceHelper.handleAmazonException(ex, "An Amazon exception occurred while creating EMR cluster with name \"" + clusterName + "\".");
              }
          }
          // If the dryRun flag is true and not null
          else
          {
              emrClusterCreated = false;
          }
  
          return new EmrClusterCreateDto(clusterId, emrClusterAlreadyExists, emrClusterCreated, emrClusterStatus);
      }
focal_method.class_method_signature: EmrHelperServiceImpl.emrCreateClusterAwsSpecificStepsImpl(EmrClusterCreateRequest request, EmrClusterDefinition emrClusterDefinition,
          EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrParamsDto emrParamsDto)
focal_method.full_signature:  EmrClusterCreateDto emrCreateClusterAwsSpecificStepsImpl(EmrClusterCreateRequest request, EmrClusterDefinition emrClusterDefinition,
          EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrParamsDto emrParamsDto)
focal_method.identifier: emrCreateClusterAwsSpecificStepsImpl
focal_method.invocations: isInstanceDefinitionsEmpty getInstanceDefinitions updateEmrClusterDefinitionWithBestPrice updateEmrClusterDefinitionWithValidInstanceFleetSubnets equals isDryRun buildEmrClusterName getNamespace getEmrClusterDefinitionName getEmrClusterName info getActiveEmrClusterByNameAndAccountId getAccountId createEmrCluster getEmrClusterStatusById getId getState getStatus info handleAmazonException
focal_method.parameters: (EmrClusterCreateRequest request, EmrClusterDefinition emrClusterDefinition,
          EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrParamsDto emrParamsDto)
focal_method.return: EmrClusterCreateDto
focal_method.signature: EmrClusterCreateDto emrCreateClusterAwsSpecificStepsImpl(EmrClusterCreateRequest request, EmrClusterDefinition emrClusterDefinition,
          EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrParamsDto emrParamsDto)