aboutsummaryrefslogtreecommitdiffstats
path: root/ms/cds-sdc-listener/application/src/main/java/org/onap/ccsdk/apps/cdssdclistener/CdsSdcListenerNotificationCallback.java
diff options
context:
space:
mode:
Diffstat (limited to 'ms/cds-sdc-listener/application/src/main/java/org/onap/ccsdk/apps/cdssdclistener/CdsSdcListenerNotificationCallback.java')
-rw-r--r--ms/cds-sdc-listener/application/src/main/java/org/onap/ccsdk/apps/cdssdclistener/CdsSdcListenerNotificationCallback.java69
1 files changed, 69 insertions, 0 deletions
diff --git a/ms/cds-sdc-listener/application/src/main/java/org/onap/ccsdk/apps/cdssdclistener/CdsSdcListenerNotificationCallback.java b/ms/cds-sdc-listener/application/src/main/java/org/onap/ccsdk/apps/cdssdclistener/CdsSdcListenerNotificationCallback.java
new file mode 100644
index 00000000..35747635
--- /dev/null
+++ b/ms/cds-sdc-listener/application/src/main/java/org/onap/ccsdk/apps/cdssdclistener/CdsSdcListenerNotificationCallback.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2019 Bell Canada. All rights reserved.
+ *
+ * NOTICE: All the intellectual and technical concepts contained herein are
+ * proprietary to Bell Canada and are protected by trade secret or copyright law.
+ * Unauthorized copying of this file, via any medium is strictly prohibited.
+ */
+
+package org.onap.ccsdk.apps.cdssdclistener;
+
+import static org.onap.sdc.utils.DistributionActionResultEnum.SUCCESS;
+import java.util.List;
+import org.onap.sdc.api.IDistributionClient;
+import org.onap.sdc.api.consumer.INotificationCallback;
+import org.onap.sdc.api.notification.IArtifactInfo;
+import org.onap.sdc.api.notification.INotificationData;
+import org.onap.sdc.api.results.IDistributionClientDownloadResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class CdsSdcListenerNotificationCallback implements INotificationCallback {
+
+ @Autowired
+ private CdsSdcListenerDto cdsSdcListenerDto;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CdsSdcListenerNotificationCallback.class);
+
+ @Override
+ public void activateCallback(INotificationData notificationData) {
+ LOGGER.info(notificationData.getDistributionID(), "The UUID generated by SDC {}");
+ processNotification(notificationData);
+ }
+
+ private void processNotification(INotificationData notificationData) {
+ downlaodCsarArtifacts(notificationData.getServiceArtifacts());
+ }
+
+ /**
+ * Download the TOSCA CSAR artifact.
+ * @param artifactInfo - An object consists of Artifact information.
+ */
+ private void downlaodCsarArtifacts(List<IArtifactInfo> artifactInfo) {
+ final IDistributionClient distributionClient = cdsSdcListenerDto.getDistributionClient();
+
+ artifactInfo.forEach(info -> {
+ final String url = info.getArtifactURL();
+ final String id = info.getArtifactUUID();
+ if (info.getArtifactType().equals(CdsSdcListenerConfiguration.TOSCA_CSAR)) {
+ LOGGER.info("Trying to download the artifact from : {} and UUID is {} ", url, id);
+
+ IDistributionClientDownloadResult result = distributionClient.download(info);
+
+ if (!result.getDistributionActionResult().equals(SUCCESS)) {
+ LOGGER.info("Failed to download the artifact from : {} due to {} ", url,
+ result.getDistributionActionResult());
+ } else {
+ parseCBAFileFromCsar(result);
+ }
+ }
+ });
+ }
+
+ private void parseCBAFileFromCsar(IDistributionClientDownloadResult result) {
+
+ }
+}