Fixed issues found in delete integration testing
[so.git] / adapters / mso-vnfm-adapter / mso-vnfm-etsi-adapter / src / main / java / org / onap / so / adapters / vnfmadapter / extclients / vnfm / VnfmServiceProviderImpl.java
index d447bef..e66f86b 100644 (file)
 package org.onap.so.adapters.vnfmadapter.extclients.vnfm;
 
 import com.google.common.base.Optional;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse2001;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InstantiateVnfRequest;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.LccnSubscriptionRequest;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.TerminateVnfRequest;
 import org.onap.so.adapters.vnfmadapter.rest.exceptions.VnfmRequestFailureException;
 import org.onap.so.rest.service.HttpRestServiceProvider;
@@ -76,7 +79,30 @@ public class VnfmServiceProviderImpl implements VnfmServiceProvider {
         }
         final String locationHeader = response.getHeaders().get("Location").iterator().next();
         return locationHeader.substring(locationHeader.lastIndexOf("/") + 1);
+    }
 
+    @Override
+    public InlineResponse2001 subscribeForNotifications(final String vnfmId,
+            final LccnSubscriptionRequest subscriptionRequest) {
+        logger.info("Subscribing for notifications {}", subscriptionRequest);
+        final String url = urlProvider.getSubscriptionsUrl(vnfmId);
+        ResponseEntity<InlineResponse2001> response = null;
+        try {
+            response = httpServiceProvider.postHttpRequest(subscriptionRequest, url, InlineResponse2001.class);
+            logger.info("Subscribing for notifications response {}", response);
+        } catch (final Exception exception) {
+            final String errorMessage =
+                    "Subscription to VNFM " + vnfmId + " resulted in exception" + subscriptionRequest;
+            logger.error(errorMessage, exception);
+            throw new VnfmRequestFailureException(errorMessage, exception);
+        }
+        if (response.getStatusCode() != HttpStatus.OK) {
+            final String errorMessage = "Subscription to VNFM " + vnfmId + " returned status code: "
+                    + response.getStatusCode() + ", request: " + subscriptionRequest;
+            logger.error(errorMessage);
+            throw new VnfmRequestFailureException(errorMessage);
+        }
+        return response.getBody();
     }
 
     @Override
@@ -103,10 +129,34 @@ public class VnfmServiceProviderImpl implements VnfmServiceProvider {
 
     }
 
+    @Override
+    public void deleteVnf(final String vnfSelfLink) {
+        logger.debug("Sending delete request to : " + vnfSelfLink);
+        final ResponseEntity<Void> response = httpServiceProvider.deleteHttpRequest(vnfSelfLink, Void.class);
+        if (response.getStatusCode() != HttpStatus.NO_CONTENT) {
+            throw new VnfmRequestFailureException(
+                    "Delete request to " + vnfSelfLink + " return status code: " + response.getStatusCode());
+        }
+    }
+
     @Override
     public Optional<InlineResponse200> getOperation(final String vnfmId, final String operationId) {
         final String url = urlProvider.getOperationUrl(vnfmId, operationId);
         return httpServiceProvider.get(url, InlineResponse200.class);
     }
 
+    @Override
+    public Optional<InlineResponse201> createVnf(final String vnfmId, final CreateVnfRequest createVnfRequest) {
+        final String url = urlProvider.getCreationUrl(vnfmId);
+        logger.debug("Sending create request {} to : {}", createVnfRequest, url);
+        try {
+            return httpServiceProvider.post(createVnfRequest, url, InlineResponse201.class);
+        } catch (final Exception exception) {
+            final String errorMessage =
+                    "Create request to vnfm:" + vnfmId + " resulted in exception" + createVnfRequest;
+            logger.error(errorMessage, exception);
+            throw new VnfmRequestFailureException(errorMessage, exception);
+        }
+    }
+
 }