/** * Creates a new EMR cluster definition. <p>Requires WRITE permission on namespace</p> * * @param request the information needed to create an EMR cluster definition * * @return the newly created EMR cluster definition */ @RequestMapping(value = EMR_CLUSTER_DEFINITIONS_URI_PREFIX, method = RequestMethod.POST, consumes = {"application/xml", "application/json"}) @Secured(SecurityFunctions.FN_EMR_CLUSTER_DEFINITIONS_POST) public EmrClusterDefinitionInformation createEmrClusterDefinition(@RequestBody EmrClusterDefinitionCreateRequest request) throws Exception { return emrClusterDefinitionService.createEmrClusterDefinition(request); }
/** * Deletes an existing EMR cluster definition by namespace and name. <p>Requires WRITE permission on namespace</p> * * @param namespace the namespace * @param emrClusterDefinitionName the EMR cluster definition name * * @return the EMR cluster definition that got deleted */ @RequestMapping(value = EMR_CLUSTER_DEFINITIONS_URI_PREFIX + "/namespaces/{namespace}/emrClusterDefinitionNames/{emrClusterDefinitionName}", method = RequestMethod.DELETE) @Secured(SecurityFunctions.FN_EMR_CLUSTER_DEFINITIONS_DELETE) public EmrClusterDefinitionInformation deleteEmrClusterDefinition(@PathVariable("namespace") String namespace, @PathVariable("emrClusterDefinitionName") String emrClusterDefinitionName) throws Exception { return emrClusterDefinitionService.deleteEmrClusterDefinition(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)); }
/** * Updates an existing EMR cluster definition by namespace and name. <p>Requires WRITE permission on namespace</p> * * @param namespace the namespace * @param emrClusterDefinitionName the EMR cluster definition name * @param request the information needed to update the EMR cluster definition * * @return the updated EMR cluster definition */ @RequestMapping( value = EMR_CLUSTER_DEFINITIONS_URI_PREFIX + "/namespaces/{namespace}/emrClusterDefinitionNames/{emrClusterDefinitionName}", method = RequestMethod.PUT, consumes = {"application/xml", "application/json"}) @Secured(SecurityFunctions.FN_EMR_CLUSTER_DEFINITIONS_PUT) public EmrClusterDefinitionInformation updateEmrClusterDefinition(@PathVariable("namespace") String namespace, @PathVariable("emrClusterDefinitionName") String emrClusterDefinitionName, @RequestBody EmrClusterDefinitionUpdateRequest request) throws Exception { return emrClusterDefinitionService.updateEmrClusterDefinition(new EmrClusterDefinitionKey(namespace, emrClusterDefinitionName), request); }
/** * Gets a list of keys for all EMR cluster definitions defined in the system for the specified namespace. <p>Requires READ permission on namespace</p> * * @param namespace the namespace * * @return the EMR cluster definition keys */ @RequestMapping(value = EMR_CLUSTER_DEFINITIONS_URI_PREFIX + "/namespaces/{namespace}", method = RequestMethod.GET) @Secured(SecurityFunctions.FN_EMR_CLUSTER_DEFINITIONS_ALL_GET) public EmrClusterDefinitionKeys getEmrClusterDefinitions(@PathVariable("namespace") String namespace) throws Exception { return emrClusterDefinitionService.getEmrClusterDefinitions(namespace); } }
/** * Updates an existing EMR cluster definition by namespace and name. <p>Requires WRITE permission on namespace</p> * * @param namespace the namespace * @param emrClusterDefinitionName the EMR cluster definition name * @param request the information needed to update the EMR cluster definition * * @return the updated EMR cluster definition */ @RequestMapping( value = EMR_CLUSTER_DEFINITIONS_URI_PREFIX + "/namespaces/{namespace}/emrClusterDefinitionNames/{emrClusterDefinitionName}", method = RequestMethod.PUT, consumes = {"application/xml", "application/json"}) @Secured(SecurityFunctions.FN_EMR_CLUSTER_DEFINITIONS_PUT) public EmrClusterDefinitionInformation updateEmrClusterDefinition(@PathVariable("namespace") String namespace, @PathVariable("emrClusterDefinitionName") String emrClusterDefinitionName, @RequestBody EmrClusterDefinitionUpdateRequest request) throws Exception { return emrClusterDefinitionService.updateEmrClusterDefinition(new EmrClusterDefinitionKey(namespace, emrClusterDefinitionName), request); }
/** * Gets a list of keys for all EMR cluster definitions defined in the system for the specified namespace. <p>Requires READ permission on namespace</p> * * @param namespace the namespace * * @return the EMR cluster definition keys */ @RequestMapping(value = EMR_CLUSTER_DEFINITIONS_URI_PREFIX + "/namespaces/{namespace}", method = RequestMethod.GET) @Secured(SecurityFunctions.FN_EMR_CLUSTER_DEFINITIONS_ALL_GET) public EmrClusterDefinitionKeys getEmrClusterDefinitions(@PathVariable("namespace") String namespace) throws Exception { return emrClusterDefinitionService.getEmrClusterDefinitions(namespace); } }
/** * Creates a new EMR cluster definition. <p>Requires WRITE permission on namespace</p> * * @param request the information needed to create an EMR cluster definition * * @return the newly created EMR cluster definition */ @RequestMapping(value = EMR_CLUSTER_DEFINITIONS_URI_PREFIX, method = RequestMethod.POST, consumes = {"application/xml", "application/json"}) @Secured(SecurityFunctions.FN_EMR_CLUSTER_DEFINITIONS_POST) public EmrClusterDefinitionInformation createEmrClusterDefinition(@RequestBody EmrClusterDefinitionCreateRequest request) throws Exception { return emrClusterDefinitionService.createEmrClusterDefinition(request); }
@Test public void testUpdateEmrClusterDefinition() 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 EMR cluster definition update request. EmrClusterDefinitionUpdateRequest emrClusterDefinitionUpdateRequest = new EmrClusterDefinitionUpdateRequest(emrClusterDefinition); // Create an object that holds EMR cluster definition information. EmrClusterDefinitionInformation emrClusterDefinitionInformation = new EmrClusterDefinitionInformation(ID, emrClusterDefinitionKey, emrClusterDefinition); // Mock the external calls. when(emrClusterDefinitionService.updateEmrClusterDefinition(emrClusterDefinitionKey, emrClusterDefinitionUpdateRequest)) .thenReturn(emrClusterDefinitionInformation); // Call the method under test. EmrClusterDefinitionInformation result = emrClusterDefinitionRestController.updateEmrClusterDefinition(NAMESPACE, EMR_CLUSTER_DEFINITION_NAME, emrClusterDefinitionUpdateRequest); // Verify the external calls. verify(emrClusterDefinitionService).updateEmrClusterDefinition(emrClusterDefinitionKey, emrClusterDefinitionUpdateRequest); verifyNoMoreInteractionsHelper(); // Validate the results. assertEquals(emrClusterDefinitionInformation, result); }
@Test public void testGetEmrClusterDefinitionsNamespaceNoExists() throws Exception { // Try to get all EMR cluster definition for a non-existing namespace. assertEquals(new EmrClusterDefinitionKeys(new ArrayList<>()), emrClusterDefinitionService.getEmrClusterDefinitions("I_DO_NOT_EXIST")); }
/** * 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)); }
/** * Deletes an existing EMR cluster definition by namespace and name. <p>Requires WRITE permission on namespace</p> * * @param namespace the namespace * @param emrClusterDefinitionName the EMR cluster definition name * * @return the EMR cluster definition that got deleted */ @RequestMapping(value = EMR_CLUSTER_DEFINITIONS_URI_PREFIX + "/namespaces/{namespace}/emrClusterDefinitionNames/{emrClusterDefinitionName}", method = RequestMethod.DELETE) @Secured(SecurityFunctions.FN_EMR_CLUSTER_DEFINITIONS_DELETE) public EmrClusterDefinitionInformation deleteEmrClusterDefinition(@PathVariable("namespace") String namespace, @PathVariable("emrClusterDefinitionName") String emrClusterDefinitionName) throws Exception { return emrClusterDefinitionService.deleteEmrClusterDefinition(new EmrClusterDefinitionKey(namespace, emrClusterDefinitionName)); }
@Test public void testCreateEmrClusterDefinitionLowerCaseParameters() throws Exception { // Create and persist the namespace entity with an uppercase name. namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE.toUpperCase()); // Create an EMR cluster definition create request by passing the EMR cluster definition name key parameters in lower case. EmrClusterDefinitionCreateRequest request = createEmrClusterDefinitionCreateRequest(NAMESPACE.toLowerCase(), EMR_CLUSTER_DEFINITION_NAME.toLowerCase(), getTestEmrClusterDefinitionConfiguration(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH)); // Create an EMR cluster definition. EmrClusterDefinitionInformation resultEmrClusterDefinition = emrClusterDefinitionService.createEmrClusterDefinition(request); // Validate the returned object. validateEmrClusterDefinition(null, NAMESPACE.toUpperCase(), EMR_CLUSTER_DEFINITION_NAME.toLowerCase(), getTestEmrClusterDefinitionConfiguration(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH), resultEmrClusterDefinition); }
@Test public void testUpdateEmrClusterDefinitionUpperCaseParameters() 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 using minimal test XML configuration. EmrClusterDefinitionEntity emrClusterDefinitionEntity = emrClusterDefinitionDaoTestHelper .createEmrClusterDefinitionEntity(namespaceEntity, EMR_CLUSTER_DEFINITION_NAME.toLowerCase(), getTestEmrClusterDefinitionConfigurationXml(EMR_CLUSTER_DEFINITION_XML_FILE_MINIMAL_CLASSPATH)); executeWithoutLogging(EmrClusterDefinitionServiceImpl.class, () -> { // Update an EMR cluster definition with the normal test XML configuration by passing the EMR cluster definition name key parameters in upper case. EmrClusterDefinitionInformation updatedEmrClusterDefinition = emrClusterDefinitionService .updateEmrClusterDefinition(new EmrClusterDefinitionKey(NAMESPACE.toUpperCase(), EMR_CLUSTER_DEFINITION_NAME.toUpperCase()), createEmrClusterDefinitionUpdateRequest(getTestEmrClusterDefinitionConfiguration(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH))); // Validate the returned object. validateEmrClusterDefinition(emrClusterDefinitionEntity.getId(), NAMESPACE.toLowerCase(), EMR_CLUSTER_DEFINITION_NAME.toLowerCase(), getTestEmrClusterDefinitionConfiguration(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH), updatedEmrClusterDefinition); }); }
@Test public void testGetEmrClusterDefinitionsLowerCaseParameters() throws Exception { // Create and persist an EMR cluster definition entity. emrClusterDefinitionDaoTestHelper.createEmrClusterDefinitionEntity(namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE), EMR_CLUSTER_DEFINITION_NAME, IOUtils.toString(resourceLoader.getResource(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH).getInputStream())); // Create an EMR cluster definition key. EmrClusterDefinitionKey emrClusterDefinitionKey = new EmrClusterDefinitionKey(NAMESPACE, EMR_CLUSTER_DEFINITION_NAME); // Retrieve EMR cluster definition keys by passing namespace parameter value in lowercase. assertEquals(new EmrClusterDefinitionKeys(Arrays.asList(emrClusterDefinitionKey)), emrClusterDefinitionService.getEmrClusterDefinitions(NAMESPACE.toLowerCase())); }
@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 testDeleteEmrClusterDefinition() 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.deleteEmrClusterDefinition(emrClusterDefinitionKey)).thenReturn(emrClusterDefinitionInformation); // Call the method under test. EmrClusterDefinitionInformation result = emrClusterDefinitionRestController.deleteEmrClusterDefinition(NAMESPACE, EMR_CLUSTER_DEFINITION_NAME); // Verify the external calls. verify(emrClusterDefinitionService).deleteEmrClusterDefinition(emrClusterDefinitionKey); verifyNoMoreInteractionsHelper(); // Validate the results. assertEquals(emrClusterDefinitionInformation, result); }
@Test public void testCreateEmrClusterDefinitionUpperCaseParameters() throws Exception { // Create and persist the namespace entity with a lowercase name. namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE.toLowerCase()); // Create an EMR cluster definition create request by passing the EMR cluster definition name key parameters in upper case. EmrClusterDefinitionCreateRequest request = createEmrClusterDefinitionCreateRequest(NAMESPACE.toUpperCase(), EMR_CLUSTER_DEFINITION_NAME.toUpperCase(), getTestEmrClusterDefinitionConfiguration(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH)); // Create an EMR cluster definition. EmrClusterDefinitionInformation resultEmrClusterDefinition = emrClusterDefinitionService.createEmrClusterDefinition(request); // Validate the returned object. validateEmrClusterDefinition(null, NAMESPACE.toLowerCase(), EMR_CLUSTER_DEFINITION_NAME.toUpperCase(), getTestEmrClusterDefinitionConfiguration(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH), resultEmrClusterDefinition); }
@Test public void testUpdateEmrClusterDefinitionLowerCaseParameters() 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 using minimal test XML configuration. EmrClusterDefinitionEntity emrClusterDefinitionEntity = emrClusterDefinitionDaoTestHelper .createEmrClusterDefinitionEntity(namespaceEntity, EMR_CLUSTER_DEFINITION_NAME.toUpperCase(), getTestEmrClusterDefinitionConfigurationXml(EMR_CLUSTER_DEFINITION_XML_FILE_MINIMAL_CLASSPATH)); executeWithoutLogging(EmrClusterDefinitionServiceImpl.class, () -> { // Update an EMR cluster definition with the normal test XML configuration by passing the EMR cluster definition name key parameters in lower case. EmrClusterDefinitionInformation updatedEmrClusterDefinition = emrClusterDefinitionService .updateEmrClusterDefinition(new EmrClusterDefinitionKey(NAMESPACE.toLowerCase(), EMR_CLUSTER_DEFINITION_NAME.toLowerCase()), createEmrClusterDefinitionUpdateRequest(getTestEmrClusterDefinitionConfiguration(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH))); // Validate the returned object. validateEmrClusterDefinition(emrClusterDefinitionEntity.getId(), NAMESPACE.toUpperCase(), EMR_CLUSTER_DEFINITION_NAME.toUpperCase(), getTestEmrClusterDefinitionConfiguration(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH), updatedEmrClusterDefinition); }); }
@Test public void testGetEmrClusterDefinitionsUpperCaseParameters() throws Exception { // Create and persist an EMR cluster definition entity. emrClusterDefinitionDaoTestHelper.createEmrClusterDefinitionEntity(namespaceDaoTestHelper.createNamespaceEntity(NAMESPACE), EMR_CLUSTER_DEFINITION_NAME, IOUtils.toString(resourceLoader.getResource(EMR_CLUSTER_DEFINITION_XML_FILE_WITH_CLASSPATH).getInputStream())); // Create an EMR cluster definition key. EmrClusterDefinitionKey emrClusterDefinitionKey = new EmrClusterDefinitionKey(NAMESPACE, EMR_CLUSTER_DEFINITION_NAME); // Retrieve EMR cluster definition keys by passing namespace parameter value in uppercase. assertEquals(new EmrClusterDefinitionKeys(Arrays.asList(emrClusterDefinitionKey)), emrClusterDefinitionService.getEmrClusterDefinitions(NAMESPACE.toUpperCase())); }