/**
- * ============LICENSE_START=======================================================
+ * ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
* Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
import org.onap.aai.modelloader.config.ModelLoaderConfig;
import org.onap.aai.modelloader.entity.Artifact;
import org.onap.aai.modelloader.extraction.ArtifactInfoExtractor;
-import org.onap.aai.modelloader.restclient.BabelServiceClientFactory;
+import org.onap.aai.modelloader.service.ArtifactDeploymentManager;
+import org.onap.aai.modelloader.service.BabelServiceClientFactory;
import org.onap.aai.modelloader.service.ModelLoaderMsgs;
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.slf4j.MDC;
+import org.springframework.beans.factory.annotation.Autowired;
public class EventCallback implements INotificationCallback {
private static Logger logger = LoggerFactory.getInstance().getLogger(EventCallback.class.getName());
private ArtifactDeploymentManager artifactDeploymentManager;
private ArtifactDownloadManager artifactDownloadManager;
+ private NotificationPublisher notificationPublisher;
private IDistributionClient client;
private ModelLoaderConfig config;
+ @Autowired
+ private BabelServiceClientFactory babelServiceClientFactory;
public EventCallback(IDistributionClient client, ModelLoaderConfig config) {
this.client = client;
getArtifactDownloadManager().downloadArtifacts(data, artifacts, modelArtifacts, catalogArtifacts);
if (success) {
- success = getArtifactDeploymentManager().deploy(data, artifacts, modelArtifacts, catalogArtifacts);
+ success = getArtifactDeploymentManager().deploy(data, modelArtifacts, catalogArtifacts);
}
String statusString = success ? "SUCCESS" : "FAILURE";
auditLogger.info(ModelLoaderMsgs.DISTRIBUTION_EVENT,
"Processed distribution " + data.getDistributionID() + " (" + statusString + ")");
+
+ publishNotifications(data, "TOSCA_CSAR", artifacts, success);
+
MDC.clear();
}
+
+ private void publishNotifications(INotificationData data, String filterType, List<IArtifactInfo> artifacts,
+ boolean deploymentSuccess) {
+ if (deploymentSuccess) {
+ artifacts.stream().filter(a -> filterType.equalsIgnoreCase(a.getArtifactType()))
+ .forEach(a -> getNotificationPublisher().publishDeploySuccess(client, data, a));
+ getNotificationPublisher().publishComponentSuccess(client, data);
+ } else {
+ artifacts.stream().filter(a -> filterType.equalsIgnoreCase(a.getArtifactType()))
+ .forEach(a -> getNotificationPublisher().publishDeployFailure(client, data, a));
+ getNotificationPublisher().publishComponentFailure(client, data, "deploy failure");
+ }
+ }
+
private ArtifactDeploymentManager getArtifactDeploymentManager() {
if (artifactDeploymentManager == null) {
- artifactDeploymentManager = new ArtifactDeploymentManager(client, config);
+ artifactDeploymentManager = new ArtifactDeploymentManager(config);
}
return artifactDeploymentManager;
private ArtifactDownloadManager getArtifactDownloadManager() {
if (artifactDownloadManager == null) {
- artifactDownloadManager = new ArtifactDownloadManager(client, config, new BabelServiceClientFactory());
+ artifactDownloadManager = new ArtifactDownloadManager(client, config, babelServiceClientFactory);
}
return artifactDownloadManager;
}
+
+
+ private NotificationPublisher getNotificationPublisher() {
+ if (notificationPublisher == null) {
+ notificationPublisher = new NotificationPublisher();
+ }
+
+ return notificationPublisher;
+ }
}