summaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution')
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/CambriaHandler.java190
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngine.java1
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngineClusterHealth.java10
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/INotificationData.java4
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/NotificationDataImpl.java20
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/ServiceDistributionArtifactsBuilder.java16
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/VfModuleArtifactPayload.java2
7 files changed, 57 insertions, 186 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/CambriaHandler.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/CambriaHandler.java
index e6d15b8d5e..c496715a02 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/CambriaHandler.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/CambriaHandler.java
@@ -25,14 +25,12 @@ import java.net.MalformedURLException;
import java.security.GeneralSecurityException;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import com.att.nsa.cambria.client.*;
import org.apache.http.HttpStatus;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
import org.openecomp.sdc.be.config.ConfigurationManager;
@@ -43,189 +41,34 @@ import org.slf4j.LoggerFactory;
import com.att.nsa.apiClient.http.HttpException;
import com.att.nsa.apiClient.http.HttpObjectNotFoundException;
+import com.att.nsa.cambria.client.CambriaBatchingPublisher;
+import com.att.nsa.cambria.client.CambriaClient;
import com.att.nsa.cambria.client.CambriaClient.CambriaApiException;
-import com.att.nsa.cambria.client.CambriaClientBuilders.TopicManagerBuilder;
-import com.att.nsa.cambria.client.CambriaClientBuilders.PublisherBuilder;
+import com.att.nsa.cambria.client.CambriaClientBuilders;
import com.att.nsa.cambria.client.CambriaClientBuilders.ConsumerBuilder;
import com.att.nsa.cambria.client.CambriaClientBuilders.IdentityManagerBuilder;
+import com.att.nsa.cambria.client.CambriaClientBuilders.PublisherBuilder;
+import com.att.nsa.cambria.client.CambriaClientBuilders.TopicManagerBuilder;
+import com.att.nsa.cambria.client.CambriaConsumer;
+import com.att.nsa.cambria.client.CambriaIdentityManager;
import com.att.nsa.cambria.client.CambriaPublisher.message;
+import com.att.nsa.cambria.client.CambriaTopicManager;
import com.google.gson.Gson;
import fj.data.Either;
-import jline.internal.Log;
public class CambriaHandler {
private static Logger logger = LoggerFactory.getLogger(CambriaHandler.class.getName());
- public static String PARTITION_KEY = "asdc" + "aa";
+ private static final String PARTITION_KEY = "asdc" + "aa";
+
+ private final String SEND_NOTIFICATION = "send notification";
private Gson gson = new Gson();
public static boolean useHttpsWithDmaap = ConfigurationManager.getConfigurationManager().getDistributionEngineConfiguration().isUseHttpsWithDmaap();
- public static void main(String[] args) {
-
- // String userBodyJson ="{\"artifactName\":\"myartifact\",
- // \"artifactType\":\"MURANO-PKG\",
- // \"artifactDescription\":\"description\",
- // \"payloadData\":\"UEsDBAoAAAAIAAeLb0bDQz\", \"Content-MD5\":
- // \"YTg2Mjg4MWJhNmI5NzBiNzdDFkMWI=\" }";
- // System.out.println(userBodyJson);
- // String encodeBase64Str = GeneralUtililty.calculateMD5 (userBodyJson);
- // System.out.println(encodeBase64Str);
-
- CambriaTopicManager createTopicManager = null;
- try {
- List<String> servers = new ArrayList<String>();
- // servers.add("uebsb91kcdc.it.sdc.com:3904");
- // servers.add("uebsb92kcdc.it.sdc.com:3904");
- // servers.add("uebsb93kcdc.it.sdc.com:3904");
- servers.add("uebsb91sfdc.it.att.com:3904");
- servers.add("uebsb92sfdc.it.att.com:3904");
-
- String key = "sSJc5qiBnKy2qrlc";
- String secret = "4ZRPzNJfEUK0sSNBvccd2m7X";
-
- createTopicManager = buildCambriaClient(new TopicManagerBuilder().usingHosts(servers).authenticatedBy(key, secret));
-
- String topicName = "ASDC-DISTR-NOTIF-TOPIC-PRODesofer";
-
- String clientKey1 = "CGGoorrGPXPx2B1C";
- String clientSecret1 = "OTHk2mcCSbskEtHhDw8h5oUa";
-
- CambriaTopicManager createStatusTopicManager = buildCambriaClient(new TopicManagerBuilder().usingHosts(servers).authenticatedBy(key, secret));
- String reportTopic = "ASDC-DISTR-STATUS-TOPIC-PRODESOFER";
- createStatusTopicManager.allowProducer(reportTopic, clientKey1);
-
- CambriaBatchingPublisher createSimplePublisher = new PublisherBuilder().onTopic(reportTopic).usingHttps(useHttpsWithDmaap).usingHosts(servers).build();
- createSimplePublisher.setApiCredentials(clientKey1, clientSecret1);
-
- DistributionStatusNotification distributionStatusNotification = new DistributionStatusNotification();
- distributionStatusNotification.setStatus(DistributionStatusNotificationEnum.DEPLOY_OK);
- distributionStatusNotification.setArtifactURL("Ssssssss url");
- distributionStatusNotification.setDistributionID("idddddddddddddd");
- distributionStatusNotification.setTimestamp(System.currentTimeMillis());
- distributionStatusNotification.setConsumerID("my consumer id");
-
- Gson gson = new Gson();
- int result = createSimplePublisher.send(PARTITION_KEY, gson.toJson(distributionStatusNotification));
-
- List<message> messagesInQ = createSimplePublisher.close(20, TimeUnit.SECONDS);
- System.out.println(messagesInQ == null ? 0 : messagesInQ.size());
-
- // createTopicManager.createTopic(topicName, "my test topic", 1, 1);
-
- /*
- *
- * { "secret": "OTHk2mcCSbskEtHhDw8h5oUa", "aux": { "email": "esofer@intl.sdc.com", "description": "test-keys" }, "key": "CGGoorrGPXPx2B1C" }
- *
- *
- * { "secret": "FSlNJbmGWWBvBLJetQMYxPP6", "aux": { "email": "esofer@intl.sdc.com", "description": "test-keys" }, "key": "TAIEPO0aDU4VzM0G" }
- *
- */
-
- String clientKey2 = "TAIEPO0aDU4VzM0G";
-
- CambriaConsumer createConsumer1 = new ConsumerBuilder().authenticatedBy("asdc1", "consumerId1").onTopic(topicName).usingHttps(useHttpsWithDmaap).usingHosts(servers).build();
- createConsumer1.setApiCredentials(clientKey1, "OTHk2mcCSbskEtHhDw8h5oUa");
-
- createTopicManager.allowConsumer(topicName, clientKey1);
-
- CambriaConsumer createConsumer2 = null;
- if (true) {
- createConsumer2 = new ConsumerBuilder().authenticatedBy("asdc2", "consumerId3").onTopic(topicName).usingHttps(useHttpsWithDmaap).usingHosts(servers).build();
- createConsumer2.setApiCredentials(clientKey2, "FSlNJbmGWWBvBLJetQMYxPP6");
-
- createTopicManager.allowConsumer(topicName, clientKey2);
- }
-
- createSimplePublisher = new PublisherBuilder().onTopic(topicName).usingHttps(useHttpsWithDmaap).usingHosts(servers).build();
- createSimplePublisher.setApiCredentials(key, secret);
- createTopicManager.allowProducer(topicName, key);
-
- createSimplePublisher.send("aaaa", "{ my testttttttttttttttt }");
-
- while (true) {
-
- Iterable<String> fetch1 = createConsumer1.fetch();
-
- Iterator<String> iterator1 = fetch1.iterator();
- while (iterator1.hasNext()) {
- System.out.println("***********************************************");
- System.out.println("client 1" + iterator1.next());
- System.out.println("***********************************************");
- }
-
- if (createConsumer2 != null) {
- Iterable<String> fetch2 = createConsumer2.fetch();
-
- Iterator<String> iterator2 = fetch2.iterator();
- while (iterator2.hasNext()) {
- System.out.println("***********************************************");
- System.out.println("client 2" + iterator2.next());
- System.out.println("***********************************************");
- }
- }
- Thread.sleep(1000 * 20);
- }
-
- // createTopicManager = CambriaClientFactory.createTopicManager(
- // servers, "8F3MDAtMSBwwpSMy", "gzFmsTxSCtO5RQfAccM6PqqX");
-
- // createTopicManager.deleteTopic("ASDC-DISTR-NOTIF-TOPIC-PROD");
- // createTopicManager.deleteTopic("ASDC-DISTR-NOTIF-TOPIC-PROD1");
-
- // CambriaIdentityManager createIdentityManager =
- // CambriaClientFactory.createIdentityManager(null, null, null);
- // createIdentityManager.setApiCredentials(arg0, arg1);
- // createIdentityManager.cl
-
- // String topicName = " ";
- // createTopicManager.createTopic(topicName,
- // "ASDC distribution notification topic", 1, 1);
- //
- // Thread.sleep(10 * 1000);
- //
- // for (int i = 0; i < 5; i++) {
- // try {
- // boolean openForProducing = createTopicManager
- // .isOpenForProducing(topicName);
- //
- // System.out.println("openForProducing=" + openForProducing);
- // createTopicManager.allowProducer(topicName,
- // "8F3MDAtMSBwwpSMy");
- // Set<String> allowedProducers = createTopicManager
- // .getAllowedProducers(topicName);
- // System.out.println(allowedProducers);
- //
- // } catch (Exception e) {
- // e.printStackTrace();
- // }
- // }
-
- // createTopicManager.createTopic("", "", 0, 0);
- // createTopicManager.allowProducer(arg0, arg1);
- // createTopicManager.getTopics();
- // createTopicManager.close();
- // CambriaClientFactory.
- // CambriaBatchingPublisher createSimplePublisher =
- // CambriaClientFactory.createSimplePublisher("hostlist", "topic");
-
- // CambriaIdentityManager createIdentityManager =
- // CambriaClientFactory.createIdentityManager(null, "apiKey",
- // "apiSecret");
- // createIdentityManager.
-
- } catch (Exception e) {
- Log.debug("Exception in main test of Cambria Handler: {}", e.getMessage(), e);
- e.printStackTrace();
- } finally {
- if (createTopicManager != null) {
- createTopicManager.close();
- }
- }
- }
/**
* process the response error from Cambria client
@@ -403,7 +246,8 @@ public class CambriaHandler {
BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeUebSystemError, methodName, operationDesc);
BeEcompErrorManager.getInstance().logBeUebSystemError(methodName, operationDesc);
break;
-
+ default:
+ break;
}
}
@@ -661,7 +505,7 @@ public class CambriaHandler {
CambriaErrorResponse cambriaErrorResponse = processError(e);
- writeErrorToLog(cambriaErrorResponse, e.getMessage(), methodName, "send notification");
+ writeErrorToLog(cambriaErrorResponse, e.getMessage(), methodName, SEND_NOTIFICATION);
return cambriaErrorResponse;
} finally {
@@ -719,7 +563,7 @@ public class CambriaHandler {
response = processError(e);
- writeErrorToLog(response, e.getMessage(), methodName, "send notification");
+ writeErrorToLog(response, e.getMessage(), methodName, SEND_NOTIFICATION);
return response;
@@ -733,7 +577,7 @@ public class CambriaHandler {
response = new CambriaErrorResponse(CambriaOperationStatus.INTERNAL_SERVER_ERROR, 500);
String methodName = new Object() {
}.getClass().getEnclosingMethod().getName();
- writeErrorToLog(response, "closing publisher returned non sent messages", methodName, "send notification");
+ writeErrorToLog(response, "closing publisher returned non sent messages", methodName, SEND_NOTIFICATION);
} else {
logger.debug("No message left in the queue after closing cambria publisher");
response = new CambriaErrorResponse(CambriaOperationStatus.OK, 200);
@@ -743,7 +587,7 @@ public class CambriaHandler {
response = new CambriaErrorResponse(CambriaOperationStatus.INTERNAL_SERVER_ERROR, 500);
String methodName = new Object() {
}.getClass().getEnclosingMethod().getName();
- writeErrorToLog(response, "closing publisher returned non sent messages", methodName, "send notification");
+ writeErrorToLog(response, "closing publisher returned non sent messages", methodName, SEND_NOTIFICATION);
}
logger.debug("After closing publisher");
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngine.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngine.java
index d3d04ea735..bd3d74e323 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngine.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngine.java
@@ -34,7 +34,6 @@ import javax.annotation.PreDestroy;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
import org.openecomp.sdc.be.config.ConfigurationManager;
import org.openecomp.sdc.be.config.DistributionEngineConfiguration;
-import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.impl.ComponentsUtils;
import org.openecomp.sdc.be.model.Service;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngineClusterHealth.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngineClusterHealth.java
index 1b868951c5..85a868f156 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngineClusterHealth.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngineClusterHealth.java
@@ -39,8 +39,8 @@ import javax.annotation.PreDestroy;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
import org.openecomp.sdc.be.config.ConfigurationManager;
import org.openecomp.sdc.be.config.DistributionEngineConfiguration;
+import org.openecomp.sdc.common.api.Constants;
import org.openecomp.sdc.common.api.HealthCheckInfo;
-import org.openecomp.sdc.common.api.HealthCheckInfo.HealthCheckComponent;
import org.openecomp.sdc.common.api.HealthCheckInfo.HealthCheckStatus;
import org.openecomp.sdc.common.config.EcompErrorName;
import org.slf4j.Logger;
@@ -72,10 +72,10 @@ public class DistributionEngineClusterHealth {
public enum HealthCheckInfoResult {
- OK(new HealthCheckInfo(HealthCheckComponent.DE, HealthCheckStatus.UP, null, ClusterStatusDescription.OK.getDescription())),
- UNAVAILABLE(new HealthCheckInfo(HealthCheckComponent.DE, HealthCheckStatus.DOWN, null, ClusterStatusDescription.UNAVAILABLE.getDescription())),
- NOT_CONFIGURED(new HealthCheckInfo(HealthCheckComponent.DE, HealthCheckStatus.DOWN, null, ClusterStatusDescription.NOT_CONFIGURED.getDescription())),
- DISABLED(new HealthCheckInfo(HealthCheckComponent.DE, HealthCheckStatus.DOWN, null, ClusterStatusDescription.DISABLED.getDescription()));
+ OK(new HealthCheckInfo(Constants.HC_COMPONENT_DISTRIBUTION_ENGINE, HealthCheckStatus.UP, null, ClusterStatusDescription.OK.getDescription())),
+ UNAVAILABLE(new HealthCheckInfo(Constants.HC_COMPONENT_DISTRIBUTION_ENGINE, HealthCheckStatus.DOWN, null, ClusterStatusDescription.UNAVAILABLE.getDescription())),
+ NOT_CONFIGURED(new HealthCheckInfo(Constants.HC_COMPONENT_DISTRIBUTION_ENGINE, HealthCheckStatus.DOWN, null, ClusterStatusDescription.NOT_CONFIGURED.getDescription())),
+ DISABLED(new HealthCheckInfo(Constants.HC_COMPONENT_DISTRIBUTION_ENGINE, HealthCheckStatus.DOWN, null, ClusterStatusDescription.DISABLED.getDescription()));
private HealthCheckInfo healthCheckInfo;
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/INotificationData.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/INotificationData.java
index 48f6c42823..d631724701 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/INotificationData.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/INotificationData.java
@@ -64,6 +64,8 @@ public interface INotificationData {
/** List of the artifacts */
List<ArtifactInfoImpl> getServiceArtifacts();
+ String getWorkloadContext();
+
void setDistributionID(String distributionId);
/** Logical Service Name. */
@@ -99,4 +101,6 @@ public interface INotificationData {
/** List of the Resource Instances */
void setServiceArtifacts(List<ArtifactInfoImpl> artifacts);
+ void setWorkloadContext(String workloadContext);
+
}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/NotificationDataImpl.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/NotificationDataImpl.java
index 149499811f..353039647d 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/NotificationDataImpl.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/NotificationDataImpl.java
@@ -32,6 +32,7 @@ public class NotificationDataImpl implements INotificationData {
private String serviceInvariantUUID;
private List<JsonContainerResourceInstance> resources;
private List<ArtifactInfoImpl> serviceArtifacts;
+ private String workloadContext;
@Override
public String getDistributionID() {
@@ -76,12 +77,25 @@ public class NotificationDataImpl implements INotificationData {
public void setServiceDescription(String serviceDescription) {
this.serviceDescription = serviceDescription;
}
+ @Override
+ public String getWorkloadContext() { return workloadContext; }
+
+ @Override
+ public void setWorkloadContext(String workloadContext) { this.workloadContext = workloadContext; }
-
@Override
public String toString() {
- return "NotificationDataImpl [distributionID=" + distributionID + ", serviceName=" + serviceName + ", serviceVersion=" + serviceVersion + ", serviceUUID=" + serviceUUID + ", serviceDescription=" + serviceDescription
- + ", serviceInvariantUUID=" + serviceInvariantUUID + ", resources=" + resources + ", serviceArtifacts=" + serviceArtifacts + "]";
+ return "NotificationDataImpl{" +
+ "distributionID='" + distributionID + '\'' +
+ ", serviceName='" + serviceName + '\'' +
+ ", serviceVersion='" + serviceVersion + '\'' +
+ ", serviceUUID='" + serviceUUID + '\'' +
+ ", serviceDescription='" + serviceDescription + '\'' +
+ ", serviceInvariantUUID='" + serviceInvariantUUID + '\'' +
+ ", resources=" + resources +
+ ", serviceArtifacts=" + serviceArtifacts +
+ ", workloadContext='" + workloadContext + '\'' +
+ '}';
}
@Override
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/ServiceDistributionArtifactsBuilder.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/ServiceDistributionArtifactsBuilder.java
index 90120288bc..0330a756c6 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/ServiceDistributionArtifactsBuilder.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/ServiceDistributionArtifactsBuilder.java
@@ -101,7 +101,10 @@ public class ServiceDistributionArtifactsBuilder {
notificationData.setServiceUUID(service.getUUID());
notificationData.setServiceDescription(service.getDescription());
notificationData.setServiceInvariantUUID(service.getInvariantUUID());
-
+ String workloadContext= ConfigurationManager.getConfigurationManager().getConfiguration().getWorkloadContext();
+ if(workloadContext!=null){
+ notificationData.setWorkloadContext(workloadContext);
+ }
logger.debug("Before returning notification data object {}", notificationData);
return notificationData;
@@ -198,7 +201,7 @@ public class ServiceDistributionArtifactsBuilder {
}
JsonContainerResourceInstance jsonContainer = new JsonContainerResourceInstance(resourceInstance, resoucreType,
- artifacts);
+ rebuildArtifactswith120TimeoutInsteadOf60(artifacts)/*TODO used to send artifacts, the function is a fix to the short timeout bug in distribution*/);
jsonContainer.setResourceInvariantUUID(resourceInvariantUUID);
jsonContainer.setCategory(resourceCategory);
jsonContainer.setSubcategory(resourceSubcategory);
@@ -208,6 +211,15 @@ public class ServiceDistributionArtifactsBuilder {
return ret;
}
+ private List<ArtifactInfoImpl> rebuildArtifactswith120TimeoutInsteadOf60(List<ArtifactInfoImpl> artifacts) {
+ for(ArtifactInfoImpl artifact : artifacts){
+ if(artifact.getArtifactTimeout().equals(60)){
+ artifact.setArtifactTimeout(120);
+ }
+ }
+ return artifacts;
+ }
+
private List<ArtifactDefinition> getArtifactsWithPayload(ComponentInstance resourceInstance) {
List<ArtifactDefinition> ret = new ArrayList<ArtifactDefinition>();
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/VfModuleArtifactPayload.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/VfModuleArtifactPayload.java
index 2bcaa4f54a..d706e40f5c 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/VfModuleArtifactPayload.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/VfModuleArtifactPayload.java
@@ -20,13 +20,11 @@
package org.openecomp.sdc.be.components.distribution.engine;
-import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
-import org.apache.commons.collections.CollectionUtils;
import org.openecomp.sdc.be.model.GroupDefinition;
import org.openecomp.sdc.be.model.GroupInstance;
import org.openecomp.sdc.be.model.GroupInstanceProperty;