aboutsummaryrefslogtreecommitdiffstats
path: root/sdc-distribution-client/src/main/java/org/onap/sdc/http/SdcConnectorClient.java
diff options
context:
space:
mode:
Diffstat (limited to 'sdc-distribution-client/src/main/java/org/onap/sdc/http/SdcConnectorClient.java')
-rw-r--r--sdc-distribution-client/src/main/java/org/onap/sdc/http/SdcConnectorClient.java222
1 files changed, 82 insertions, 140 deletions
diff --git a/sdc-distribution-client/src/main/java/org/onap/sdc/http/SdcConnectorClient.java b/sdc-distribution-client/src/main/java/org/onap/sdc/http/SdcConnectorClient.java
index 7aac780..18aba95 100644
--- a/sdc-distribution-client/src/main/java/org/onap/sdc/http/SdcConnectorClient.java
+++ b/sdc-distribution-client/src/main/java/org/onap/sdc/http/SdcConnectorClient.java
@@ -21,6 +21,10 @@
package org.onap.sdc.http;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.reflect.TypeToken;
+import fj.data.Either;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Type;
@@ -30,7 +34,6 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.UUID;
-
import org.apache.commons.io.IOUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHeaders;
@@ -38,33 +41,26 @@ import org.apache.http.HttpStatus;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
+import org.onap.sdc.api.consumer.IConfiguration;
import org.onap.sdc.api.notification.IArtifactInfo;
import org.onap.sdc.api.results.IDistributionClientResult;
+import org.onap.sdc.impl.DistributionClientDownloadResultImpl;
import org.onap.sdc.impl.DistributionClientResultImpl;
import org.onap.sdc.utils.DistributionActionResultEnum;
-import org.onap.sdc.api.asdc.RegistrationRequest;
-import org.onap.sdc.api.consumer.IConfiguration;
-import org.onap.sdc.impl.DistributionClientDownloadResultImpl;
import org.onap.sdc.utils.DistributionClientConstants;
import org.onap.sdc.utils.Pair;
+import org.onap.sdc.utils.kafka.KafkaDataResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.att.nsa.apiClient.credentials.ApiCredential;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.reflect.TypeToken;
-
-import fj.data.Either;
-
public class SdcConnectorClient {
private static final Logger log = LoggerFactory.getLogger(SdcConnectorClient.class.getName());
static final String CONTENT_DISPOSITION_HEADER = "Content-Disposition";
private final IConfiguration configuration;
- private final HttpAsdcClient httpClient;
+ private final HttpSdcClient httpClient;
- public SdcConnectorClient(IConfiguration configuration, HttpAsdcClient httpClient) {
+ public SdcConnectorClient(IConfiguration configuration, HttpSdcClient httpClient) {
Objects.requireNonNull(configuration);
Objects.requireNonNull(httpClient);
this.configuration = configuration;
@@ -76,23 +72,37 @@ public class SdcConnectorClient {
}
public Either<List<String>, IDistributionClientResult> getValidArtifactTypesList() {
- Pair<HttpAsdcResponse, CloseableHttpResponse> getServersResponsePair = performAsdcServerRequest();
- HttpAsdcResponse getArtifactTypeResponse = getServersResponsePair.getFirst();
+ Pair<HttpSdcResponse, CloseableHttpResponse> getServersResponsePair = performSdcServerRequest(SdcUrls.GET_VALID_ARTIFACT_TYPES);
+ HttpSdcResponse getArtifactTypeResponse = getServersResponsePair.getFirst();
Either<List<String>, IDistributionClientResult> response;
if (getArtifactTypeResponse.getStatus() == HttpStatus.SC_OK) {
response = parseGetValidArtifactTypesResponse(getArtifactTypeResponse);
} else {
- IDistributionClientResult asdcError = handleAsdcError(getArtifactTypeResponse);
- response = Either.right(asdcError);
+ IDistributionClientResult sdcError = handleSdcError(getArtifactTypeResponse);
+ response = Either.right(sdcError);
}
- handeAsdcConnectionClose(getServersResponsePair);
+ handeSdcConnectionClose(getServersResponsePair);
return response;
}
- private void handeAsdcConnectionClose(Pair<HttpAsdcResponse, CloseableHttpResponse> getServersResponsePair) {
+ public Either<KafkaDataResponse, IDistributionClientResult> getKafkaDistData() {
+ Pair<HttpSdcResponse, CloseableHttpResponse> getServersResponsePair = performSdcServerRequest(SdcUrls.GET_KAFKA_DIST_DATA);
+ HttpSdcResponse getKafkaDistDataResponse = getServersResponsePair.getFirst();
+ Either<KafkaDataResponse, IDistributionClientResult> response;
+ if (getKafkaDistDataResponse.getStatus() == HttpStatus.SC_OK) {
+ response = parseGetKafkaDistDataResponse(getKafkaDistDataResponse);
+ } else {
+ IDistributionClientResult sdcError = handleSdcError(getKafkaDistDataResponse);
+ response = Either.right(sdcError);
+ }
+ handeSdcConnectionClose(getServersResponsePair);
+ return response;
+ }
+
+ private void handeSdcConnectionClose(Pair<HttpSdcResponse, CloseableHttpResponse> getServersResponsePair) {
if (getServersResponsePair.getSecond() != null) {
try {
getServersResponsePair.getSecond().close();
@@ -104,79 +114,17 @@ public class SdcConnectorClient {
}
}
- private Pair<HttpAsdcResponse, CloseableHttpResponse> performAsdcServerRequest() {
+ private Pair<HttpSdcResponse, CloseableHttpResponse> performSdcServerRequest(String sdcUrl) {
String requestId = generateRequestId();
Map<String, String> requestHeaders = addHeadersToHttpRequest(requestId);
- log.debug("about to perform getServerList. requestId= {} url= {}", requestId, AsdcUrls.GET_VALID_ARTIFACT_TYPES);
- return httpClient.getRequest(AsdcUrls.GET_VALID_ARTIFACT_TYPES, requestHeaders, false);
- }
-
- public Either<TopicRegistrationResponse, DistributionClientResultImpl> registerAsdcTopics(ApiCredential credential) {
-
- Either<TopicRegistrationResponse, DistributionClientResultImpl> response;
-
- String requestId = generateRequestId();
- Map<String, String> requestHeaders = addHeadersToHttpRequest(requestId);
-
- RegistrationRequest registrationRequest = new RegistrationRequest(credential.getApiKey(), configuration.getEnvironmentName(), configuration.isConsumeProduceStatusTopic(), configuration.getMsgBusAddress());
- Gson gson = new GsonBuilder().setPrettyPrinting().create();
- String jsonRequest = gson.toJson(registrationRequest);
- StringEntity body = new StringEntity(jsonRequest, ContentType.APPLICATION_JSON);
-
- log.debug("about to perform registerAsdcTopics. requestId= {} url= {}", requestId, AsdcUrls.POST_FOR_TOPIC_REGISTRATION);
- Pair<HttpAsdcResponse, CloseableHttpResponse> registerResponsePair = httpClient.postRequest(AsdcUrls.POST_FOR_TOPIC_REGISTRATION, body, requestHeaders, false);
- HttpAsdcResponse registerResponse = registerResponsePair.getFirst();
- int status = registerResponse.getStatus();
-
- if (status == HttpStatus.SC_OK) {
- response = parseRegistrationResponse(registerResponse);
-
- } else {
- DistributionClientResultImpl asdcError = handleAsdcError(registerResponse);
- return Either.right(asdcError);
- }
- handeAsdcConnectionClose(registerResponsePair);
-
- log.debug("registerAsdcTopics response= {}. requestId= {} url= {}", status, requestId, AsdcUrls.POST_FOR_TOPIC_REGISTRATION);
- return response;
-
+ log.debug("about to perform get on SDC. requestId= {} url= {}", requestId, sdcUrl);
+ return httpClient.getRequest(sdcUrl, requestHeaders, false);
}
private String generateRequestId() {
return UUID.randomUUID().toString();
}
- public IDistributionClientResult unregisterTopics(ApiCredential credential) {
-
- DistributionClientResultImpl response;
-
- String requestId = generateRequestId();
- Map<String, String> requestHeaders = addHeadersToHttpRequest(requestId);
-
- RegistrationRequest registrationRequest = new RegistrationRequest(credential.getApiKey(), configuration.getEnvironmentName(), configuration.isConsumeProduceStatusTopic(), configuration.getMsgBusAddress());
- Gson gson = new GsonBuilder().setPrettyPrinting().create();
- String jsonRequest = gson.toJson(registrationRequest);
- StringEntity body = new StringEntity(jsonRequest, ContentType.APPLICATION_JSON);
-
- log.debug("about to perform unregisterTopics. requestId= {} url= {}", requestId, AsdcUrls.POST_FOR_UNREGISTER);
- Pair<HttpAsdcResponse, CloseableHttpResponse> unRegisterResponsePair = httpClient.postRequest(AsdcUrls.POST_FOR_UNREGISTER, body, requestHeaders, false);
- HttpAsdcResponse unRegisterResponse = unRegisterResponsePair.getFirst();
- int status = unRegisterResponse.getStatus();
- if (status == HttpStatus.SC_NO_CONTENT || status == HttpStatus.SC_OK) {
- response = new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS, "unregistration successful");
-
- } else {
- response = handleAsdcError(unRegisterResponse);
- }
-
- handeAsdcConnectionClose(unRegisterResponsePair);
-
- log.debug("unregisterTopics response = {}. requestId= {} url= {}", status, requestId, AsdcUrls.POST_FOR_UNREGISTER);
-
- return response;
-
- }
-
public DistributionClientDownloadResultImpl downloadArtifact(IArtifactInfo artifactInfo) {
DistributionClientDownloadResultImpl response;
@@ -186,23 +134,23 @@ public class SdcConnectorClient {
requestHeaders.put(DistributionClientConstants.HEADER_INSTANCE_ID, configuration.getConsumerID());
requestHeaders.put(HttpHeaders.ACCEPT, ContentType.APPLICATION_OCTET_STREAM.toString());
String requestUrl = artifactInfo.getArtifactURL();
- Pair<HttpAsdcResponse, CloseableHttpResponse> downloadPair = httpClient.getRequest(requestUrl, requestHeaders, false);
- HttpAsdcResponse downloadResponse = downloadPair.getFirst();
+ Pair<HttpSdcResponse, CloseableHttpResponse> downloadPair = httpClient.getRequest(requestUrl, requestHeaders, false);
+ HttpSdcResponse downloadResponse = downloadPair.getFirst();
int status = downloadResponse.getStatus();
if (status == HttpStatus.SC_OK) {
response = parseDownloadArtifactResponse(artifactInfo, downloadResponse);
} else {
- response = handleAsdcDownloadArtifactError(downloadResponse);
+ response = handleSdcDownloadArtifactError(downloadResponse);
}
- handeAsdcConnectionClose(downloadPair);
+ handeSdcConnectionClose(downloadPair);
return response;
}
/* **************************** private methods ********************************************/
- private Either<List<String>, IDistributionClientResult> parseGetValidArtifactTypesResponse(HttpAsdcResponse getArtifactTypesResponse) {
+ private Either<List<String>, IDistributionClientResult> parseGetValidArtifactTypesResponse(HttpSdcResponse getArtifactTypesResponse) {
Either<List<String>, IDistributionClientResult> result;
try {
String jsonMessage = IOUtils.toString(getArtifactTypesResponse.getMessage().getContent());
@@ -219,39 +167,33 @@ public class SdcConnectorClient {
return result;
}
- private Either<List<String>, IDistributionClientResult> handleParsingError(Exception e) {
- Either<List<String>, IDistributionClientResult> result;
- log.error("failed to parse response from ASDC. error: ", e);
- IDistributionClientResult response = new DistributionClientResultImpl(DistributionActionResultEnum.GENERAL_ERROR, "failed to parse response from ASDC");
- result = Either.right(response);
- return result;
- }
-
- Either<TopicRegistrationResponse, DistributionClientResultImpl> parseRegistrationResponse(HttpAsdcResponse registerResponse) {
-
- String jsonMessage;
+ private Either<KafkaDataResponse, IDistributionClientResult> parseGetKafkaDistDataResponse(HttpSdcResponse getKafkaDistDataResponse) {
+ Either<KafkaDataResponse, IDistributionClientResult> result;
try {
- jsonMessage = IOUtils.toString(registerResponse.getMessage().getContent());
-
+ String jsonMessage = IOUtils.toString(getKafkaDistDataResponse.getMessage().getContent());
Gson gson = new GsonBuilder().create();
- TopicRegistrationResponse registrationResponse = gson.fromJson(jsonMessage, TopicRegistrationResponse.class);
-
- if (registrationResponse.getDistrNotificationTopicName() == null) {
- DistributionClientResultImpl response = new DistributionClientResultImpl(DistributionActionResultEnum.FAIL, "failed to receive notification topic from ASDC");
- return Either.right(response);
- }
-
- if (registrationResponse.getDistrStatusTopicName() == null) {
- DistributionClientResultImpl response = new DistributionClientResultImpl(DistributionActionResultEnum.FAIL, "failed to receive status topic from ASDC");
- return Either.right(response);
- }
- return Either.left(registrationResponse);
-
+ KafkaDataResponse kafkaData = gson.fromJson(jsonMessage, KafkaDataResponse.class);
+ result = Either.left(kafkaData);
} catch (UnsupportedOperationException | IOException e) {
- log.error("failed to parse response from ASDC. error: ", e);
- DistributionClientResultImpl response = new DistributionClientResultImpl(DistributionActionResultEnum.GENERAL_ERROR, "failed to parse response from ASDC");
- return Either.right(response);
+ result = handleKafkaParsingError(e);
}
+ return result;
+ }
+
+ private Either<KafkaDataResponse, IDistributionClientResult> handleKafkaParsingError(Exception e) {
+ Either<KafkaDataResponse, IDistributionClientResult> result;
+ log.error("failed to parse kafka data response from SDC. error: ", e);
+ IDistributionClientResult response = new DistributionClientResultImpl(DistributionActionResultEnum.GENERAL_ERROR, "failed to parse kafka data response from SDC");
+ result = Either.right(response);
+ return result;
+ }
+
+ private Either<List<String>, IDistributionClientResult> handleParsingError(Exception e) {
+ Either<List<String>, IDistributionClientResult> result;
+ log.error("failed to parse response from SDC. error: ", e);
+ IDistributionClientResult response = new DistributionClientResultImpl(DistributionActionResultEnum.GENERAL_ERROR, "failed to parse response from SDC");
+ result = Either.right(response);
+ return result;
}
protected Map<String, String> addHeadersToHttpRequest(String requestId) {
@@ -263,29 +205,29 @@ public class SdcConnectorClient {
return requestHeaders;
}
- private DistributionClientResultImpl handleAsdcError(HttpAsdcResponse registerResponse) {
+ private DistributionClientResultImpl handleSdcError(HttpSdcResponse registerResponse) {
int status = registerResponse.getStatus();
- DistributionClientResultImpl errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.GENERAL_ERROR, "failed to send request to ASDC");
+ DistributionClientResultImpl errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.GENERAL_ERROR, "failed to send request to SDC");
if (status == HttpStatus.SC_UNAUTHORIZED) {
- errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.ASDC_AUTHENTICATION_FAILED, "authentication to ASDC failed for user " + configuration.getUser());
+ errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.SDC_AUTHENTICATION_FAILED, "authentication to SDC failed for user " + configuration.getUser());
} else if (status == HttpStatus.SC_FORBIDDEN) {
- errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.ASDC_AUTHORIZATION_FAILED, "authorization failure for user " + configuration.getUser());
+ errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.SDC_AUTHORIZATION_FAILED, "authorization failure for user " + configuration.getUser());
} else if (status == HttpStatus.SC_BAD_REQUEST) {
- errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.BAD_REQUEST, "ASDC call failed due to missing information");
+ errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.BAD_REQUEST, "SDC call failed due to missing information");
} else if (status == HttpStatus.SC_NOT_FOUND) {
- errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.ASDC_NOT_FOUND, "ASDC not found");
+ errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.SDC_NOT_FOUND, "SDC not found");
} else if (status == HttpStatus.SC_INTERNAL_SERVER_ERROR) {
- errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.ASDC_SERVER_PROBLEM, "ASDC server problem");
+ errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.SDC_SERVER_PROBLEM, "SDC server problem");
} else if (status == HttpStatus.SC_BAD_GATEWAY) {
- errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.ASDC_CONNECTION_FAILED, "ASDC server problem");
+ errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.SDC_CONNECTION_FAILED, "SDC server problem");
} else if (status == HttpStatus.SC_GATEWAY_TIMEOUT) {
- errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.ASDC_SERVER_TIMEOUT, "ASDC server problem");
+ errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.SDC_SERVER_TIMEOUT, "SDC server problem");
}
- log.error("status from ASDC is {}", registerResponse);
+ log.error("status from SDC is {}", registerResponse);
log.error(errorResponse.toString());
try {
String errorString = IOUtils.toString(registerResponse.getMessage().getContent());
- log.debug("error from ASDC is: {}", errorString);
+ log.debug("error from SDC is: {}", errorString);
} catch (UnsupportedOperationException | IOException e) {
log.error("During error handling another exception occurred: ", e);
}
@@ -293,27 +235,27 @@ public class SdcConnectorClient {
}
- private DistributionClientDownloadResultImpl handleAsdcDownloadArtifactError(HttpAsdcResponse registerResponse) {
+ private DistributionClientDownloadResultImpl handleSdcDownloadArtifactError(HttpSdcResponse registerResponse) {
int status = registerResponse.getStatus();
- DistributionClientDownloadResultImpl errorResponse = new DistributionClientDownloadResultImpl(DistributionActionResultEnum.GENERAL_ERROR, "failed to send request to ASDC");
+ DistributionClientDownloadResultImpl errorResponse = new DistributionClientDownloadResultImpl(DistributionActionResultEnum.GENERAL_ERROR, "failed to send request to SDC");
if (status == HttpStatus.SC_UNAUTHORIZED) {
- errorResponse = new DistributionClientDownloadResultImpl(DistributionActionResultEnum.ASDC_AUTHENTICATION_FAILED, "authentication to ASDC failed for user " + configuration.getUser());
+ errorResponse = new DistributionClientDownloadResultImpl(DistributionActionResultEnum.SDC_AUTHENTICATION_FAILED, "authentication to SDC failed for user " + configuration.getUser());
} else if (status == HttpStatus.SC_FORBIDDEN) {
- errorResponse = new DistributionClientDownloadResultImpl(DistributionActionResultEnum.ASDC_AUTHORIZATION_FAILED, "authorization failure for user " + configuration.getUser());
+ errorResponse = new DistributionClientDownloadResultImpl(DistributionActionResultEnum.SDC_AUTHORIZATION_FAILED, "authorization failure for user " + configuration.getUser());
} else if (status == HttpStatus.SC_BAD_REQUEST || status == HttpStatus.SC_NOT_FOUND) {
errorResponse = new DistributionClientDownloadResultImpl(DistributionActionResultEnum.ARTIFACT_NOT_FOUND, "Specified artifact is not found");
// } else if (status == 404){
// errorResponse = new DistributionClientDownloadResultImpl(
- // DistributionActionResultEnum.ASDC_NOT_FOUND,
- // "ASDC not found");
+ // DistributionActionResultEnum.SDC_NOT_FOUND,
+ // "SDC not found");
} else if (status == HttpStatus.SC_INTERNAL_SERVER_ERROR) {
- errorResponse = new DistributionClientDownloadResultImpl(DistributionActionResultEnum.ASDC_SERVER_PROBLEM, "ASDC server problem");
+ errorResponse = new DistributionClientDownloadResultImpl(DistributionActionResultEnum.SDC_SERVER_PROBLEM, "SDC server problem");
}
- log.error("status from ASDC is {}", registerResponse);
+ log.error("status from SDC is {}", registerResponse);
log.error(errorResponse.toString());
try {
String errorString = IOUtils.toString(registerResponse.getMessage().getContent());
- log.debug("error from ASDC is: {}", errorString);
+ log.debug("error from SDC is: {}", errorString);
} catch (UnsupportedOperationException | IOException e) {
log.error("During error handling another exception occurred: ", e);
}
@@ -321,7 +263,7 @@ public class SdcConnectorClient {
}
- private DistributionClientDownloadResultImpl parseDownloadArtifactResponse(IArtifactInfo artifactInfo, HttpAsdcResponse getServersResponse) {
+ private DistributionClientDownloadResultImpl parseDownloadArtifactResponse(IArtifactInfo artifactInfo, HttpSdcResponse getServersResponse) {
HttpEntity entity = getServersResponse.getMessage();
InputStream is;
try {
@@ -333,7 +275,7 @@ public class SdcConnectorClient {
byte[] payload = IOUtils.toByteArray(is);
if (artifactInfo.getArtifactChecksum() == null || artifactInfo.getArtifactChecksum().isEmpty()) {
- return new DistributionClientDownloadResultImpl(DistributionActionResultEnum.DATA_INTEGRITY_PROBLEM, "failed to get artifact from ASDC. Empty checksum");
+ return new DistributionClientDownloadResultImpl(DistributionActionResultEnum.DATA_INTEGRITY_PROBLEM, "failed to get artifact from SDC. Empty checksum");
}
return new DistributionClientDownloadResultImpl(DistributionActionResultEnum.SUCCESS, "success", artifactName, payload);