/** * Builds the cluster alternate key and returns. * * @param execution the DelegateExecution * * @return the cluster alternate key. */ protected EmrClusterAlternateKeyDto getClusterAlternateKey(DelegateExecution execution) { // Create the alternate key. EmrClusterAlternateKeyDto emrClusterAlternateKeyDto = new EmrClusterAlternateKeyDto(); emrClusterAlternateKeyDto.setNamespace(activitiHelper.getExpressionVariableAsString(namespace, execution)); emrClusterAlternateKeyDto.setEmrClusterDefinitionName(activitiHelper.getExpressionVariableAsString(emrClusterDefinitionName, execution)); emrClusterAlternateKeyDto.setEmrClusterName(activitiHelper.getExpressionVariableAsString(emrClusterName, execution)); return emrClusterAlternateKeyDto; }
public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy2 strategy) { { String theNamespace; theNamespace = this.getNamespace(); strategy.appendField(locator, this, "namespace", buffer, theNamespace, (this.namespace!= null)); } { String theEmrClusterDefinitionName; theEmrClusterDefinitionName = this.getEmrClusterDefinitionName(); strategy.appendField(locator, this, "emrClusterDefinitionName", buffer, theEmrClusterDefinitionName, (this.emrClusterDefinitionName!= null)); } { String theEmrClusterName; theEmrClusterName = this.getEmrClusterName(); strategy.appendField(locator, this, "emrClusterName", buffer, theEmrClusterName, (this.emrClusterName!= null)); } return buffer; }
/** * Gets an existing EMR cluster details. <p>Requires READ permission on namespace</p> * * @param namespace the namespace * @param emrClusterDefinitionName the EMR cluster definition name * @param emrClusterName the EMR cluster name * @param emrClusterId the cluster id of the cluster to get details * @param emrStepId the step id of the step to get details * @param verbose parameter for whether to return detailed information * @param accountId the account Id * @param retrieveInstanceFleets parameter for whether to retrieve instance fleets * * @return the EMR Cluster object with details. * @throws Exception if there was an error getting the EMR cluster. */ @RequestMapping(value = "/emrClusters/namespaces/{namespace}/emrClusterDefinitionNames/{emrClusterDefinitionName}/emrClusterNames/{emrClusterName}", method = RequestMethod.GET) @Secured(SecurityFunctions.FN_EMR_CLUSTERS_GET) public EmrCluster getEmrCluster(@PathVariable("namespace") String namespace, @PathVariable("emrClusterDefinitionName") String emrClusterDefinitionName, @PathVariable("emrClusterName") String emrClusterName, @RequestParam(value = "emrClusterId", required = false) String emrClusterId, @RequestParam(value = "emrStepId", required = false) String emrStepId, @RequestParam(value = "verbose", required = false, defaultValue = "false") Boolean verbose, @RequestParam(value = "accountId", required = false) String accountId, @RequestParam(value = "retrieveInstanceFleets", required = false, defaultValue = "false") Boolean retrieveInstanceFleets) throws Exception { EmrClusterAlternateKeyDto alternateKey = EmrClusterAlternateKeyDto.builder().withNamespace(namespace).withEmrClusterDefinitionName(emrClusterDefinitionName) .withEmrClusterName(emrClusterName).build(); return emrService.getCluster(alternateKey, emrClusterId, emrStepId, verbose, accountId, retrieveInstanceFleets); }
/** * Validates the EMR cluster create request. This method also trims request parameters. * * @param key the ERM cluster alternate key * * @throws IllegalArgumentException if any validation errors were found */ private void validateEmrClusterKey(EmrClusterAlternateKeyDto key) throws IllegalArgumentException { Assert.notNull(key, "An EMR cluster key must be specified."); key.setNamespace(alternateKeyHelper.validateStringParameter("namespace", key.getNamespace())); key.setEmrClusterDefinitionName(alternateKeyHelper.validateStringParameter("An", "EMR cluster definition name", key.getEmrClusterDefinitionName())); key.setEmrClusterName(alternateKeyHelper.validateStringParameter("An", "EMR cluster name", key.getEmrClusterName())); }
EmrClusterAlternateKeyDto emrClusterAlternateKeyDto = new EmrClusterAlternateKeyDto(NAMESPACE, EMR_CLUSTER_DEFINITION_NAME, EMR_CLUSTER_NAME); when(emrHelper.buildEmrClusterName(emrClusterAlternateKeyDto.getNamespace(), emrClusterAlternateKeyDto.getEmrClusterDefinitionName(), emrClusterAlternateKeyDto.getEmrClusterName())).thenReturn(EMR_CLUSTER_NAME); when(emrDao.getActiveEmrClusterByName(EMR_CLUSTER_NAME, awsParamsDto)).thenReturn(null); when(emrDao.createEmrCluster(EMR_CLUSTER_NAME, emrClusterDefinition, awsParamsDto)).thenReturn(EMR_CLUSTER_ID); verify(emrHelper).isInstanceDefinitionsEmpty(emrClusterDefinition.getInstanceDefinitions()); verify(emrPricingHelper).updateEmrClusterDefinitionWithBestPrice(emrClusterAlternateKeyDto, emrClusterDefinition, awsParamsDto); verify(emrHelper).buildEmrClusterName(emrClusterAlternateKeyDto.getNamespace(), emrClusterAlternateKeyDto.getEmrClusterDefinitionName(), emrClusterAlternateKeyDto.getEmrClusterName()); verify(emrDao).getActiveEmrClusterByName(EMR_CLUSTER_NAME, awsParamsDto); verify(emrDao).createEmrCluster(EMR_CLUSTER_NAME, emrClusterDefinition, awsParamsDto);
/** * Create an instance of {@link EmrClusterAlternateKeyDto } * */ public EmrClusterAlternateKeyDto createEmrClusterAlternateKeyDto() { return new EmrClusterAlternateKeyDto(); }
/** * The implementation of the EMR pre cluster steps. * * @param emrClusterAlternateKeyDto the EMR cluster alternate key data transfer object * @param request the EMR cluster create request * * @return the EMR cluster definition * @throws Exception Exception when the original EMR cluster definition XML is malformed */ EmrClusterDefinition emrPreCreateClusterStepsImpl(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterCreateRequest request) throws Exception { // Get the EMR cluster definition and ensure it exists. EmrClusterDefinitionEntity emrClusterDefinitionEntity = emrClusterDefinitionDaoHelper.getEmrClusterDefinitionEntity( new EmrClusterDefinitionKey(emrClusterAlternateKeyDto.getNamespace(), emrClusterAlternateKeyDto.getEmrClusterDefinitionName())); // Replace all S3 managed location variables in xml String toReplace = getS3ManagedReplaceString(); String replacedConfigXml = emrClusterDefinitionEntity.getConfiguration().replaceAll(toReplace, emrHelper.getS3StagingLocation()); // Unmarshal definition xml into JAXB object. EmrClusterDefinition emrClusterDefinition = xmlHelper.unmarshallXmlToObject(EmrClusterDefinition.class, replacedConfigXml); // Perform override if override is set. overrideEmrClusterDefinition(emrClusterDefinition, request.getEmrClusterDefinitionOverride()); // Perform the EMR cluster definition configuration validation. emrClusterDefinitionHelper.validateEmrClusterDefinitionConfiguration(emrClusterDefinition); // Check permissions. namespaceIamRoleAuthorizationHelper.checkPermissions(emrClusterDefinitionEntity.getNamespace(), emrClusterDefinition.getServiceIamRole(), emrClusterDefinition.getEc2NodeIamProfileName()); return emrClusterDefinition; }
/** * Validates the EMR cluster create request. This method also trims request parameters. * * @param key the ERM cluster alternate key * * @throws IllegalArgumentException if any validation errors were found */ private void validateEmrClusterKey(EmrClusterAlternateKeyDto key) throws IllegalArgumentException { Assert.notNull(key, "An EMR cluster key must be specified."); key.setNamespace(alternateKeyHelper.validateStringParameter("namespace", key.getNamespace())); key.setEmrClusterDefinitionName(alternateKeyHelper.validateStringParameter("An", "EMR cluster definition name", key.getEmrClusterDefinitionName())); key.setEmrClusterName(alternateKeyHelper.validateStringParameter("An", "EMR cluster name", key.getEmrClusterName())); }
EmrClusterAlternateKeyDto emrClusterAlternateKeyDto = new EmrClusterAlternateKeyDto(NAMESPACE, EMR_CLUSTER_DEFINITION_NAME, EMR_CLUSTER_NAME); when(emrHelper.buildEmrClusterName(emrClusterAlternateKeyDto.getNamespace(), emrClusterAlternateKeyDto.getEmrClusterDefinitionName(), emrClusterAlternateKeyDto.getEmrClusterName())).thenReturn(EMR_CLUSTER_NAME); when(emrDao.getActiveEmrClusterByName(EMR_CLUSTER_NAME, awsParamsDto)).thenReturn(clusterSummary); when(emrDao.getEmrClusterStatusById(EMR_CLUSTER_ID, awsParamsDto)).thenReturn(EMR_CLUSTER_STATUS); verify(emrHelper).isInstanceDefinitionsEmpty(emrClusterDefinition.getInstanceDefinitions()); verify(emrPricingHelper).updateEmrClusterDefinitionWithBestPrice(emrClusterAlternateKeyDto, emrClusterDefinition, awsParamsDto); verify(emrHelper).buildEmrClusterName(emrClusterAlternateKeyDto.getNamespace(), emrClusterAlternateKeyDto.getEmrClusterDefinitionName(), emrClusterAlternateKeyDto.getEmrClusterName()); verify(emrDao).getActiveEmrClusterByName(EMR_CLUSTER_NAME, awsParamsDto); verify(emrDao).getEmrClusterStatusById(EMR_CLUSTER_ID, awsParamsDto);
public Object createNewInstance() { return new EmrClusterAlternateKeyDto(); }
/** * The implementation of the EMR pre cluster steps. * * @param emrClusterAlternateKeyDto the EMR cluster alternate key data transfer object * @param request the EMR cluster create request * * @return the EMR cluster definition * @throws Exception Exception when the original EMR cluster definition XML is malformed */ EmrClusterDefinition emrPreCreateClusterStepsImpl(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterCreateRequest request) throws Exception { // Get the EMR cluster definition and ensure it exists. EmrClusterDefinitionEntity emrClusterDefinitionEntity = emrClusterDefinitionDaoHelper.getEmrClusterDefinitionEntity( new EmrClusterDefinitionKey(emrClusterAlternateKeyDto.getNamespace(), emrClusterAlternateKeyDto.getEmrClusterDefinitionName())); // Replace all S3 managed location variables in xml String toReplace = getS3ManagedReplaceString(); String replacedConfigXml = emrClusterDefinitionEntity.getConfiguration().replaceAll(toReplace, emrHelper.getS3StagingLocation()); // Unmarshal definition xml into JAXB object. EmrClusterDefinition emrClusterDefinition = xmlHelper.unmarshallXmlToObject(EmrClusterDefinition.class, replacedConfigXml); // Perform override if override is set. overrideEmrClusterDefinition(emrClusterDefinition, request.getEmrClusterDefinitionOverride()); // Perform the EMR cluster definition configuration validation. emrClusterDefinitionHelper.validateEmrClusterDefinitionConfiguration(emrClusterDefinition); // Check permissions. namespaceIamRoleAuthorizationHelper.checkPermissions(emrClusterDefinitionEntity.getNamespace(), emrClusterDefinition.getServiceIamRole(), emrClusterDefinition.getEc2NodeIamProfileName()); return emrClusterDefinition; }
public int hashCode(ObjectLocator locator, HashCodeStrategy2 strategy) { int currentHashCode = 1; { String theNamespace; theNamespace = this.getNamespace(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "namespace", theNamespace), currentHashCode, theNamespace, (this.namespace!= null)); } { String theEmrClusterDefinitionName; theEmrClusterDefinitionName = this.getEmrClusterDefinitionName(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "emrClusterDefinitionName", theEmrClusterDefinitionName), currentHashCode, theEmrClusterDefinitionName, (this.emrClusterDefinitionName!= null)); } { String theEmrClusterName; theEmrClusterName = this.getEmrClusterName(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "emrClusterName", theEmrClusterName), currentHashCode, theEmrClusterName, (this.emrClusterName!= null)); } return currentHashCode; }
public Object copyTo(ObjectLocator locator, Object target, CopyStrategy2 strategy) { final Object draftCopy = ((target == null)?createNewInstance():target); if (draftCopy instanceof EmrClusterAlternateKeyDto) { final EmrClusterAlternateKeyDto copy = ((EmrClusterAlternateKeyDto) draftCopy); if (namespaceShouldBeCopiedAndSet == Boolean.TRUE) { String sourceNamespace; sourceNamespace = this.getNamespace(); String copyNamespace = ((String) strategy.copy(LocatorUtils.property(locator, "namespace", sourceNamespace), sourceNamespace, (this.namespace!= null))); copy.setNamespace(copyNamespace); } else { if (namespaceShouldBeCopiedAndSet == Boolean.FALSE) { if (emrClusterDefinitionNameShouldBeCopiedAndSet == Boolean.TRUE) { String sourceEmrClusterDefinitionName; sourceEmrClusterDefinitionName = this.getEmrClusterDefinitionName(); String copyEmrClusterDefinitionName = ((String) strategy.copy(LocatorUtils.property(locator, "emrClusterDefinitionName", sourceEmrClusterDefinitionName), sourceEmrClusterDefinitionName, (this.emrClusterDefinitionName!= null))); copy.setEmrClusterDefinitionName(copyEmrClusterDefinitionName); } else { if (emrClusterDefinitionNameShouldBeCopiedAndSet == Boolean.FALSE) { if (emrClusterNameShouldBeCopiedAndSet == Boolean.TRUE) { String sourceEmrClusterName; sourceEmrClusterName = this.getEmrClusterName(); String copyEmrClusterName = ((String) strategy.copy(LocatorUtils.property(locator, "emrClusterName", sourceEmrClusterName), sourceEmrClusterName, (this.emrClusterName!= null))); copy.setEmrClusterName(copyEmrClusterName); } else { if (emrClusterNameShouldBeCopiedAndSet == Boolean.FALSE) {
EmrClusterAlternateKeyDto emrClusterAlternateKeyDto = new EmrClusterAlternateKeyDto(NAMESPACE, EMR_CLUSTER_DEFINITION_NAME, EMR_CLUSTER_NAME); when(emrHelper.buildEmrClusterName(emrClusterAlternateKeyDto.getNamespace(), emrClusterAlternateKeyDto.getEmrClusterDefinitionName(), emrClusterAlternateKeyDto.getEmrClusterName())).thenReturn(EMR_CLUSTER_NAME); when(emrDao.getActiveEmrClusterByName(EMR_CLUSTER_NAME, awsParamsDto)).thenReturn(null); when(emrDao.createEmrCluster(EMR_CLUSTER_NAME, emrClusterDefinition, awsParamsDto)).thenThrow(amazonServiceException); verify(emrHelper).isInstanceDefinitionsEmpty(emrClusterDefinition.getInstanceDefinitions()); verify(emrPricingHelper).updateEmrClusterDefinitionWithBestPrice(emrClusterAlternateKeyDto, emrClusterDefinition, awsParamsDto); verify(emrHelper).buildEmrClusterName(emrClusterAlternateKeyDto.getNamespace(), emrClusterAlternateKeyDto.getEmrClusterDefinitionName(), emrClusterAlternateKeyDto.getEmrClusterName()); verify(emrDao).getActiveEmrClusterByName(EMR_CLUSTER_NAME, awsParamsDto); verify(emrDao).createEmrCluster(EMR_CLUSTER_NAME, emrClusterDefinition, awsParamsDto);
/** * Builds the cluster alternate key and returns. * * @param execution the DelegateExecution * * @return the cluster alternate key. */ protected EmrClusterAlternateKeyDto getClusterAlternateKey(DelegateExecution execution) { // Create the alternate key. EmrClusterAlternateKeyDto emrClusterAlternateKeyDto = new EmrClusterAlternateKeyDto(); emrClusterAlternateKeyDto.setNamespace(activitiHelper.getExpressionVariableAsString(namespace, execution)); emrClusterAlternateKeyDto.setEmrClusterDefinitionName(activitiHelper.getExpressionVariableAsString(emrClusterDefinitionName, execution)); emrClusterAlternateKeyDto.setEmrClusterName(activitiHelper.getExpressionVariableAsString(emrClusterName, execution)); return emrClusterAlternateKeyDto; }
@Override public EmrClusterAlternateKeyDto build() { if (_storedValue == null) { return this.init(new EmrClusterAlternateKeyDto()); } else { return ((EmrClusterAlternateKeyDto) _storedValue); } }
/** * Gets an existing EMR cluster details. <p>Requires READ permission on namespace</p> * * @param namespace the namespace * @param emrClusterDefinitionName the EMR cluster definition name * @param emrClusterName the EMR cluster name * @param emrClusterId the cluster id of the cluster to get details * @param emrStepId the step id of the step to get details * @param verbose parameter for whether to return detailed information * @param accountId the account Id * @param retrieveInstanceFleets parameter for whether to retrieve instance fleets * * @return the EMR Cluster object with details. * @throws Exception if there was an error getting the EMR cluster. */ @RequestMapping(value = "/emrClusters/namespaces/{namespace}/emrClusterDefinitionNames/{emrClusterDefinitionName}/emrClusterNames/{emrClusterName}", method = RequestMethod.GET) @Secured(SecurityFunctions.FN_EMR_CLUSTERS_GET) public EmrCluster getEmrCluster(@PathVariable("namespace") String namespace, @PathVariable("emrClusterDefinitionName") String emrClusterDefinitionName, @PathVariable("emrClusterName") String emrClusterName, @RequestParam(value = "emrClusterId", required = false) String emrClusterId, @RequestParam(value = "emrStepId", required = false) String emrStepId, @RequestParam(value = "verbose", required = false, defaultValue = "false") Boolean verbose, @RequestParam(value = "accountId", required = false) String accountId, @RequestParam(value = "retrieveInstanceFleets", required = false, defaultValue = "false") Boolean retrieveInstanceFleets) throws Exception { EmrClusterAlternateKeyDto alternateKey = EmrClusterAlternateKeyDto.builder().withNamespace(namespace).withEmrClusterDefinitionName(emrClusterDefinitionName) .withEmrClusterName(emrClusterName).build(); return emrService.getCluster(alternateKey, emrClusterId, emrStepId, verbose, accountId, retrieveInstanceFleets); }
lhsNamespace = this.getNamespace(); String rhsNamespace; rhsNamespace = that.getNamespace(); if (!strategy.equals(LocatorUtils.property(thisLocator, "namespace", lhsNamespace), LocatorUtils.property(thatLocator, "namespace", rhsNamespace), lhsNamespace, rhsNamespace, (this.namespace!= null), (that.namespace!= null))) { return false; lhsEmrClusterDefinitionName = this.getEmrClusterDefinitionName(); String rhsEmrClusterDefinitionName; rhsEmrClusterDefinitionName = that.getEmrClusterDefinitionName(); if (!strategy.equals(LocatorUtils.property(thisLocator, "emrClusterDefinitionName", lhsEmrClusterDefinitionName), LocatorUtils.property(thatLocator, "emrClusterDefinitionName", rhsEmrClusterDefinitionName), lhsEmrClusterDefinitionName, rhsEmrClusterDefinitionName, (this.emrClusterDefinitionName!= null), (that.emrClusterDefinitionName!= null))) { return false; lhsEmrClusterName = this.getEmrClusterName(); String rhsEmrClusterName; rhsEmrClusterName = that.getEmrClusterName(); if (!strategy.equals(LocatorUtils.property(thisLocator, "emrClusterName", lhsEmrClusterName), LocatorUtils.property(thatLocator, "emrClusterName", rhsEmrClusterName), lhsEmrClusterName, rhsEmrClusterName, (this.emrClusterName!= null), (that.emrClusterName!= null))) { return false;
String emrClusterId = "emrClusterId"; EmrClusterAlternateKeyDto emrClusterAlternateKeyDto = new EmrClusterAlternateKeyDto(); emrClusterAlternateKeyDto.setNamespace(namespace); emrClusterAlternateKeyDto.setEmrClusterDefinitionName(emrClusterDefinitionName); emrClusterAlternateKeyDto.setEmrClusterName(emrClusterName); verify(mockAlternateKeyHelper).validateStringParameter("An", "EMR cluster name", emrClusterName); verify(mockEmrClusterDefinitionDaoHelper).getEmrClusterDefinitionEntity( new EmrClusterDefinitionKey(emrClusterAlternateKeyDto.getNamespace(), emrClusterAlternateKeyDto.getEmrClusterDefinitionName())); verify(mockEmrHelper) .buildEmrClusterName(namespaceEntity.getCode(), emrClusterDefinitionEntity.getName(), emrClusterAlternateKeyDto.getEmrClusterName()); verify(mockEmrHelper).getActiveEmrClusterId(emrClusterId, buildEmrClusterNameResult, null); verify(mockEmrDao).terminateEmrCluster(buildEmrClusterNameResult, overrideTerminationProtection, awsParamsDto);
@Test public void testLogEmrClusterCreationImpl() throws Exception { // Create a namespace entity. NamespaceEntity namespaceEntity = new NamespaceEntity(); namespaceEntity.setCode(NAMESPACE); // Create an EMR cluster alternate key DTO EmrClusterAlternateKeyDto emrClusterAlternateKeyDto = new EmrClusterAlternateKeyDto(NAMESPACE, EMR_CLUSTER_DEFINITION_NAME, EMR_CLUSTER_NAME); // Create an EMR cluster definition object EmrClusterDefinition emrClusterDefinition = new EmrClusterDefinition(); // Mock the external calls. when(namespaceDaoHelper.getNamespaceEntity(NAMESPACE)).thenReturn(namespaceEntity); when(xmlHelper.objectToXml(emrClusterDefinition)).thenReturn(EMR_CLUSTER_DEFINITION_XML_FILE_MINIMAL_CLASSPATH); // Call the method under test. emrHelperServiceImpl.logEmrClusterCreation(emrClusterAlternateKeyDto, emrClusterDefinition, EMR_CLUSTER_ID); // Verify the external calls. verify(namespaceDaoHelper).getNamespaceEntity(NAMESPACE); verify(xmlHelper).objectToXml(emrClusterDefinition); verify(herdDao).saveAndRefresh(any(EmrClusterCreationLogEntity.class)); verifyNoMoreInteractionsHelper(); }