diff options
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.java | 69 |
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 000000000..35747635f --- /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) { + + } +} |