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;
}
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
}
+ @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);
+ }
+ }
+
}