* limitations under the License.\r
* ============LICENSE_END============================================\r
* ===================================================================\r
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
+ * \r
*/\r
\r
package org.onap.clamp.clds.sdc.controller;\r
import com.att.eelf.configuration.EELFManager;\r
\r
import java.util.Date;\r
+import java.util.concurrent.ThreadLocalRandom;\r
\r
import org.onap.clamp.clds.config.ClampProperties;\r
import org.onap.clamp.clds.config.sdc.SdcSingleControllerConfiguration;\r
import org.onap.clamp.clds.sdc.controller.installer.CsarHandler;\r
import org.onap.clamp.clds.sdc.controller.installer.CsarInstaller;\r
import org.onap.clamp.clds.util.LoggingUtils;\r
-import org.openecomp.sdc.api.IDistributionClient;\r
-import org.openecomp.sdc.api.consumer.IDistributionStatusMessage;\r
-import org.openecomp.sdc.api.consumer.INotificationCallback;\r
-import org.openecomp.sdc.api.notification.IArtifactInfo;\r
-import org.openecomp.sdc.api.notification.INotificationData;\r
-import org.openecomp.sdc.api.results.IDistributionClientDownloadResult;\r
-import org.openecomp.sdc.api.results.IDistributionClientResult;\r
-import org.openecomp.sdc.impl.DistributionClientFactory;\r
-import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException;\r
-import org.openecomp.sdc.utils.DistributionActionResultEnum;\r
-import org.openecomp.sdc.utils.DistributionStatusEnum;\r
+import org.onap.sdc.api.IDistributionClient;\r
+import org.onap.sdc.api.consumer.IDistributionStatusMessage;\r
+import org.onap.sdc.api.consumer.INotificationCallback;\r
+import org.onap.sdc.api.notification.IArtifactInfo;\r
+import org.onap.sdc.api.notification.INotificationData;\r
+import org.onap.sdc.api.results.IDistributionClientDownloadResult;\r
+import org.onap.sdc.api.results.IDistributionClientResult;\r
+import org.onap.sdc.impl.DistributionClientFactory;\r
+import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException;\r
+import org.onap.sdc.utils.DistributionActionResultEnum;\r
+import org.onap.sdc.utils.DistributionStatusEnum;\r
\r
/**\r
* This class handles one sdc controller defined in the config.\r
@Override\r
public void activateCallback(INotificationData iNotif) {\r
Date startTime = new Date();\r
- String event = "Receive a callback notification in SDC, nb of resources: " + iNotif.getResources().size();\r
- logger.debug(event);\r
+ logger.info("Receive a callback notification in SDC, nb of resources: " + iNotif.getResources().size());\r
sdcController.treatNotification(iNotif);\r
LoggingUtils.setTimeContext(startTime, new Date());\r
LoggingUtils.setResponseContext("0", "SDC Notification received and processed successfully",\r
* If there is an issue with the parameters provided\r
*/\r
public void initSdc() throws SdcControllerException {\r
- logger.debug("Attempt to initialize the SDC Controller");\r
+ logger.info("Attempt to initialize the SDC Controller");\r
if (this.getControllerStatus() != SdcSingleControllerStatus.STOPPED) {\r
throw new SdcControllerException("The controller is already initialized, call the closeSDC method first");\r
}\r
}\r
result = this.distributionClient.start();\r
if (!result.getDistributionActionResult().equals(DistributionActionResultEnum.SUCCESS)) {\r
- logger.debug("SDC distribution client start failed with reason:" + result.getDistributionMessageResult());\r
+ logger.error("SDC distribution client start failed with reason:" + result.getDistributionMessageResult());\r
this.changeControllerStatus(SdcSingleControllerStatus.STOPPED);\r
throw new SdcControllerException(\r
"Startup of the SDC Controller failed with reason: " + result.getDistributionMessageResult());\r
public void treatNotification(INotificationData iNotif) {\r
CsarHandler csar = null;\r
try {\r
+ // wait for a random time, so that 2 running Clamp will not treat\r
+ // the same Notification at the same time\r
+ long i = ThreadLocalRandom.current().nextInt(1, 5);\r
+ Thread.sleep(i * 1000L);\r
logger.info("Notification received for service UUID:" + iNotif.getServiceUUID());\r
this.changeControllerStatus(SdcSingleControllerStatus.BUSY);\r
csar = new CsarHandler(iNotif, this.sdcConfig.getSdcControllerName(),\r
refProp.getStringValue(CONFIG_SDC_FOLDER));\r
+ csar.save(downloadTheArtifact(csar.getArtifactElement()));\r
if (csarInstaller.isCsarAlreadyDeployed(csar)) {\r
- csar.save(downloadTheArtifact(csar.getArtifactElement()));\r
+ this.sendSdcNotification(NotificationType.DOWNLOAD, csar.getArtifactElement().getArtifactURL(),\r
+ sdcConfig.getConsumerID(), iNotif.getDistributionID(),\r
+ DistributionStatusEnum.ALREADY_DOWNLOADED, null, System.currentTimeMillis());\r
+ this.sendSdcNotification(NotificationType.DOWNLOAD, csar.getArtifactElement().getArtifactURL(),\r
+ sdcConfig.getConsumerID(), iNotif.getDistributionID(), DistributionStatusEnum.ALREADY_DEPLOYED,\r
+ null, System.currentTimeMillis());\r
+ } else {\r
this.sendSdcNotification(NotificationType.DOWNLOAD, csar.getArtifactElement().getArtifactURL(),\r
sdcConfig.getConsumerID(), iNotif.getDistributionID(), DistributionStatusEnum.DOWNLOAD_OK, null,\r
System.currentTimeMillis());\r
this.sendSdcNotification(NotificationType.DEPLOY, csar.getArtifactElement().getArtifactURL(),\r
sdcConfig.getConsumerID(), iNotif.getDistributionID(), DistributionStatusEnum.DEPLOY_OK, null,\r
System.currentTimeMillis());\r
- } else {\r
- this.sendSdcNotification(NotificationType.DOWNLOAD, csar.getArtifactElement().getArtifactURL(),\r
- sdcConfig.getConsumerID(), iNotif.getDistributionID(),\r
- DistributionStatusEnum.ALREADY_DOWNLOADED, null, System.currentTimeMillis());\r
- this.sendSdcNotification(NotificationType.DOWNLOAD, csar.getArtifactElement().getArtifactURL(),\r
- sdcConfig.getConsumerID(), iNotif.getDistributionID(), DistributionStatusEnum.ALREADY_DEPLOYED,\r
- null, System.currentTimeMillis());\r
}\r
} catch (SdcArtifactInstallerException e) {\r
logger.error("SdcArtifactInstallerException exception caught during the notification processing", e);\r
this.sendSdcNotification(NotificationType.DEPLOY, csar.getArtifactElement().getArtifactURL(),\r
sdcConfig.getConsumerID(), iNotif.getDistributionID(), DistributionStatusEnum.DEPLOY_ERROR,\r
e.getMessage(), System.currentTimeMillis());\r
+ } catch (InterruptedException e) {\r
+ logger.error("Interrupt exception caught during the notification processing", e);\r
+ Thread.currentThread().interrupt();\r
} catch (RuntimeException e) {\r
logger.error("Unexpected exception caught during the notification processing", e);\r
} finally {\r
}\r
\r
private IDistributionClientDownloadResult downloadTheArtifact(IArtifactInfo artifact) throws SdcDownloadException {\r
- logger.debug("Trying to download the artifact : " + artifact.getArtifactURL() + " UUID: "\r
+ logger.info("Trying to download the artifact : " + artifact.getArtifactURL() + " UUID: "\r
+ artifact.getArtifactUUID());\r
IDistributionClientDownloadResult downloadResult;\r
try {\r