CLEANED UP IMPORTS IN MSO-VFNM-ETSI Adapter
[so.git] / adapters / mso-vnfm-adapter / mso-vnfm-etsi-adapter / src / main / java / org / onap / so / adapters / vnfmadapter / extclients / vnfm / VnfmServiceProviderImpl.java
index 246444f..951c6f1 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,28 @@ 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) {
+        final String url = urlProvider.getSubscriptionsUrl(vnfmId);
+        ResponseEntity<InlineResponse2001> response = null;
+        try {
+            response = httpServiceProvider.postHttpRequest(subscriptionRequest, url, InlineResponse2001.class);
+        } 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
@@ -113,11 +137,23 @@ public class VnfmServiceProviderImpl implements VnfmServiceProvider {
         }
     }
 
-
     @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);
+        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);
+        }
+    }
+
 }