Revert Tenant Isolation /modelDistributions API 08/79908/2
authorBenjamin, Max (mb388a) <mb388a@us.att.com>
Thu, 7 Mar 2019 13:42:28 +0000 (08:42 -0500)
committerBenjamin, Max (mb388a) <mb388a@us.att.com>
Thu, 7 Mar 2019 14:14:52 +0000 (09:14 -0500)
Tenant Isolation support PATCH again per AID.
Added ModelDistributionRequest class to Jersey Configuration.
PATCH JUnit generating 404 - Resource Not Present.
Revert Tenant Isolation /modelDistributions API to support PATCH again
per AID.

Change-Id: I08b4c2b0e080bb4615ebae435ecf18e5c438035d
Issue-ID: SO-1603
Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/JerseyConfiguration.java
mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/ModelDistributionRequest.java
mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/helpers/SDCClientHelper.java
mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tenantisolation/ModelDistributionRequestTest.java

index e6bbc4d..182e398 100644 (file)
@@ -29,6 +29,7 @@ import org.onap.so.apihandler.filters.RequestUriFilter;
 import org.onap.so.apihandlerinfra.exceptions.ApiExceptionMapper;
 import org.onap.so.apihandlerinfra.tenantisolation.CloudOrchestration;
 import org.onap.so.apihandlerinfra.tenantisolation.CloudResourcesOrchestration;
+import org.onap.so.apihandlerinfra.tenantisolation.ModelDistributionRequest;
 import org.onap.so.logging.jaxrs.filter.JaxRsFilterLogging;
 import org.onap.so.web.exceptions.RuntimeExceptionMapper;
 import org.springframework.context.annotation.Configuration;
@@ -64,6 +65,7 @@ public class JerseyConfiguration extends ResourceConfig {
                // this registration seems to be needed to get predictable
                // execution behavior for the above JSON Exception Mappers
                register(com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider.class);
+               register(ModelDistributionRequest.class);
                property(ServletProperties.FILTER_FORWARD_ON_404, true);
                BeanConfig beanConfig = new BeanConfig();
                beanConfig.setVersion("1.0.2");
index ace0fb6..3ec3ade 100644 (file)
@@ -28,7 +28,7 @@ import java.util.List;
 import javax.inject.Provider;
 import javax.transaction.Transactional;
 import javax.ws.rs.Consumes;
-import javax.ws.rs.POST;
+import javax.ws.rs.PATCH;
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
@@ -53,6 +53,7 @@ import org.onap.so.serviceinstancebeans.ServiceException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -61,7 +62,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
-
+@Component
 @Path("/onap/so/infra/modelDistributions")
 @Api(value="/onap/so/infra/modelDistributions",description="API Requests for Model Distributions")
 public class ModelDistributionRequest {
@@ -70,7 +71,7 @@ public class ModelDistributionRequest {
        @Autowired
        private Provider<TenantIsolationRunnable> tenantIsolationRunnable;
        
-       @POST
+       @PATCH
        @Path("/{version:[vV][1]}/distributions/{distributionId}")
        @Consumes(MediaType.APPLICATION_JSON)
        @Produces(MediaType.APPLICATION_JSON)
index 9303e12..31c65e1 100644 (file)
@@ -82,6 +82,7 @@ public class SDCClientHelper {
 
                try {
                        String urlString = this.buildUriBuilder(serviceModelVersionId, operationalEnvironmentId);
+                       logger.debug("Url ASDC Activate request: {}", urlString);
                        String jsonPayload = this.buildJsonWorkloadContext(workloadContext);
                        String basicAuthCred = getBasicAuth();
 
@@ -157,6 +158,7 @@ public class SDCClientHelper {
                        enhancedAsdcResponseJsonObj.put("statusCode", Integer.toString(statusCode));
                        enhancedAsdcResponseJsonObj.put("messageId", "");
                        enhancedAsdcResponseJsonObj.put("message", "Success");
+                       logger.debug("Url ASDC Activate response: {} {}", "distributionId ", sdcResponseJsonObj.get("distributionId"));
 
                } else {  // error
                        if (sdcResponseJsonObj.has("requestError") ) {
index 9a8f488..4e5cfab 100644 (file)
@@ -24,13 +24,15 @@ import static org.hamcrest.Matchers.hasProperty;
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.startsWith;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.contains;
 import static org.mockito.Mockito.doNothing;
 
+import java.io.IOException;
+
 import javax.inject.Provider;
+import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
 import org.apache.http.HttpStatus;
@@ -38,21 +40,23 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.Spy;
-import org.mockito.junit.MockitoJUnitRunner;
 import org.onap.so.apihandler.common.ErrorNumbers;
-import org.onap.so.apihandlerinfra.ApiHandlerApplication;
 import org.onap.so.apihandlerinfra.BaseTest;
 import org.onap.so.apihandlerinfra.exceptions.ApiException;
 import org.onap.so.apihandlerinfra.exceptions.ValidateException;
 import org.onap.so.apihandlerinfra.tenantisolationbeans.Action;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.ActiveProfiles;
+import org.onap.so.apihandlerinfra.tenantisolationbeans.Distribution;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.util.UriComponentsBuilder;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
 
 public class ModelDistributionRequestTest extends BaseTest{
 
@@ -111,4 +115,22 @@ public class ModelDistributionRequestTest extends BaseTest{
                assertEquals(200, response.getStatus());
        }
 
+       @Test
+       public void testSuccess_PATCH() throws ApiException, IOException{
+               String path = "/onap/so/infra/modelDistributions/v1/distributions/ff3514e3-5a33-55df-13ab-12abad84e7fa";
+               ObjectMapper mapper = new ObjectMapper();
+               Distribution distRequest = mapper.readValue(requestJSON, Distribution.class);
+               HttpHeaders headers = new HttpHeaders();
+               headers.set("Accept", MediaType.APPLICATION_JSON);
+               headers.set("Content-Type", MediaType.APPLICATION_JSON);
+               HttpEntity<Distribution>  entity = new HttpEntity<Distribution>(distRequest, headers);
+       
+               UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(createURLWithPort(path));
+               ResponseEntity<String> response = restTemplate.exchange(
+                               builder.toUriString(),
+                               HttpMethod.PATCH, entity, String.class);                
+               assertEquals(200, response.getStatusCodeValue());
+               
+       }
+       
 }