diff options
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution')
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; |