/** * Gets an existing EMR cluster definition by namespace and name. <p>Requires READ permission on namespace</p> * * @param namespace the namespace * @param emrClusterDefinitionName the EMR cluster definition name * * @return the EMR cluster definition */ @RequestMapping(value = EMR_CLUSTER_DEFINITIONS_URI_PREFIX + "/namespaces/{namespace}/emrClusterDefinitionNames/{emrClusterDefinitionName}", method = RequestMethod.GET) @Secured(SecurityFunctions.FN_EMR_CLUSTER_DEFINITIONS_GET) public EmrClusterDefinitionInformation getEmrClusterDefinition(@PathVariable("namespace") String namespace, @PathVariable("emrClusterDefinitionName") String emrClusterDefinitionName) throws Exception { return emrClusterDefinitionService.getEmrClusterDefinition(new EmrClusterDefinitionKey(namespace, emrClusterDefinitionName)); }
/** * Gets an existing EMR cluster definition by namespace and name. <p>Requires READ permission on namespace</p> * * @param namespace the namespace * @param emrClusterDefinitionName the EMR cluster definition name * * @return the EMR cluster definition */ @RequestMapping(value = EMR_CLUSTER_DEFINITIONS_URI_PREFIX + "/namespaces/{namespace}/emrClusterDefinitionNames/{emrClusterDefinitionName}", method = RequestMethod.GET) @Secured(SecurityFunctions.FN_EMR_CLUSTER_DEFINITIONS_GET) public EmrClusterDefinitionInformation getEmrClusterDefinition(@PathVariable("namespace") String namespace, @PathVariable("emrClusterDefinitionName") String emrClusterDefinitionName) throws Exception { return emrClusterDefinitionService.getEmrClusterDefinition(new EmrClusterDefinitionKey(namespace, emrClusterDefinitionName)); }
@Test public void testGetEmrClusterDefinition() throws Exception { // Create an EMR cluster definition key. EmrClusterDefinitionKey emrClusterDefinitionKey = new EmrClusterDefinitionKey(NAMESPACE, EMR_CLUSTER_DEFINITION_NAME); // Create an EMR cluster definition. EmrClusterDefinition emrClusterDefinition = new EmrClusterDefinition(); // Create an object that holds EMR cluster definition information. EmrClusterDefinitionInformation emrClusterDefinitionInformation = new EmrClusterDefinitionInformation(ID, emrClusterDefinitionKey, emrClusterDefinition); // Mock the external calls. when(emrClusterDefinitionService.getEmrClusterDefinition(emrClusterDefinitionKey)).thenReturn(emrClusterDefinitionInformation); // Call the method under test. EmrClusterDefinitionInformation result = emrClusterDefinitionRestController.getEmrClusterDefinition(NAMESPACE, EMR_CLUSTER_DEFINITION_NAME); // Verify the external calls. verify(emrClusterDefinitionService).getEmrClusterDefinition(emrClusterDefinitionKey); verifyNoMoreInteractionsHelper(); // Validate the results. assertEquals(emrClusterDefinitionInformation, result); }
@Test public void testGetEmrClusterDefinitionUpperCaseParameters() throws Exception { // Create and persist the namespace entity with a lowercase name. NamespaceEntity namespaceEntity = namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE.toLowerCase()); // Create and persist the EMR cluster definition entity with a lowercase name. EmrClusterDefinitionEntity emrClusterDefinitionEntity = emrClusterDefinitionDaoTestHelper .createEmrClusterDefinitionEntity(namespaceEntity, EMR_CLUSTER_DEFINITION_NAME.toLowerCase(), getTestEmrClusterDefinitionConfigurationXml(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH)); // Get an EMR cluster definition by passing the EMR cluster definition name key parameters in upper case. EmrClusterDefinitionInformation resultEmrClusterDefinition = emrClusterDefinitionService .getEmrClusterDefinition(new EmrClusterDefinitionKey(NAMESPACE.toUpperCase(), EMR_CLUSTER_DEFINITION_NAME.toUpperCase())); // Validate the returned object. validateEmrClusterDefinition(emrClusterDefinitionEntity.getId(), NAMESPACE.toLowerCase(), EMR_CLUSTER_DEFINITION_NAME.toLowerCase(), getTestEmrClusterDefinitionConfiguration(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH), resultEmrClusterDefinition); }
@Test public void testGetEmrClusterDefinitionLowerCaseParameters() throws Exception { // Create and persist the namespace entity with an uppercase name. NamespaceEntity namespaceEntity = namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE.toUpperCase()); // Create and persist the EMR cluster definition entity with an uppercase name. EmrClusterDefinitionEntity emrClusterDefinitionEntity = emrClusterDefinitionDaoTestHelper .createEmrClusterDefinitionEntity(namespaceEntity, EMR_CLUSTER_DEFINITION_NAME.toUpperCase(), getTestEmrClusterDefinitionConfigurationXml(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH)); // Get an EMR cluster definition by passing the EMR cluster definition name key parameters in lower case. EmrClusterDefinitionInformation resultEmrClusterDefinition = emrClusterDefinitionService .getEmrClusterDefinition(new EmrClusterDefinitionKey(NAMESPACE.toLowerCase(), EMR_CLUSTER_DEFINITION_NAME.toLowerCase())); // Validate the returned object. validateEmrClusterDefinition(emrClusterDefinitionEntity.getId(), NAMESPACE.toUpperCase(), EMR_CLUSTER_DEFINITION_NAME.toUpperCase(), getTestEmrClusterDefinitionConfiguration(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH), resultEmrClusterDefinition); }
@Test public void testGetEmrClusterDefinitionMissingRequiredParameters() throws Exception { // Try to perform a get without specifying a namespace. try { emrClusterDefinitionService.getEmrClusterDefinition(new EmrClusterDefinitionKey(BLANK_TEXT, EMR_CLUSTER_DEFINITION_NAME)); fail("Should throw an IllegalArgumentException when namespace is not specified."); } catch (IllegalArgumentException e) { assertEquals("A namespace must be specified.", e.getMessage()); } // Try to perform a get without specifying an EMR cluster definition name. try { emrClusterDefinitionService.getEmrClusterDefinition(new EmrClusterDefinitionKey(NAMESPACE, BLANK_TEXT)); fail("Should throw an IllegalArgumentException when EMR cluster definition name is not specified."); } catch (IllegalArgumentException e) { assertEquals("An EMR cluster definition name must be specified.", e.getMessage()); } }
@Test public void testGetEmrClusterDefinitionEmrClusterDefinitionNoExists() throws Exception { // Try to perform a get using a non-existing EMR cluster definition name. String testEmrClusterDefinitionName = "I_DO_NOT_EXIST"; try { emrClusterDefinitionService.getEmrClusterDefinition(new EmrClusterDefinitionKey(NAMESPACE, testEmrClusterDefinitionName)); fail("Should throw an ObjectNotFoundException when EMR cluster definition does not exist."); } catch (ObjectNotFoundException e) { assertEquals(String.format("EMR cluster definition with name \"%s\" doesn't exist for namespace \"%s\".", testEmrClusterDefinitionName, NAMESPACE), e.getMessage()); } }
@Test public void testGetEmrClusterDefinition() throws Exception { // Create and persist the namespace entity. NamespaceEntity namespaceEntity = namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE); // Create and persist the EMR cluster definition entity. EmrClusterDefinitionEntity emrClusterDefinitionEntity = emrClusterDefinitionDaoTestHelper .createEmrClusterDefinitionEntity(namespaceEntity, EMR_CLUSTER_DEFINITION_NAME, getTestEmrClusterDefinitionConfigurationXml(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH)); // Get the EMR cluster definition. EmrClusterDefinitionInformation resultEmrClusterDefinition = emrClusterDefinitionService.getEmrClusterDefinition(new EmrClusterDefinitionKey(NAMESPACE, EMR_CLUSTER_DEFINITION_NAME)); // Validate the returned object. validateEmrClusterDefinition(emrClusterDefinitionEntity.getId(), NAMESPACE, EMR_CLUSTER_DEFINITION_NAME, getTestEmrClusterDefinitionConfiguration(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH), resultEmrClusterDefinition); }
@Test public void testGetEmrClusterDefinitionTrimParameters() throws Exception { // Create and persist the namespace entity. NamespaceEntity namespaceEntity = namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE); // Create and persist the EMR cluster definition entity. EmrClusterDefinitionEntity emrClusterDefinitionEntity = emrClusterDefinitionDaoTestHelper .createEmrClusterDefinitionEntity(namespaceEntity, EMR_CLUSTER_DEFINITION_NAME, getTestEmrClusterDefinitionConfigurationXml(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH)); // Get an EMR cluster definition by passing namespace and EMR cluster definition name with leading and trailing whitespace characters. EmrClusterDefinitionInformation resultEmrClusterDefinition = emrClusterDefinitionService .getEmrClusterDefinition(new EmrClusterDefinitionKey(addWhitespace(NAMESPACE), addWhitespace(EMR_CLUSTER_DEFINITION_NAME))); // Validate the returned object. validateEmrClusterDefinition(emrClusterDefinitionEntity.getId(), NAMESPACE, EMR_CLUSTER_DEFINITION_NAME, getTestEmrClusterDefinitionConfiguration(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH), resultEmrClusterDefinition); }