Remove ECOMP in headers
[clamp.git] / src / main / java / org / onap / clamp / clds / sdc / controller / SdcSingleController.java
index c02edbb..c9bbd06 100644 (file)
@@ -18,7 +18,7 @@
  * 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
@@ -27,6 +27,7 @@ import com.att.eelf.configuration.EELFLogger;
 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
@@ -38,17 +39,17 @@ import org.onap.clamp.clds.exception.sdc.controller.SdcParametersException;
 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
@@ -83,8 +84,7 @@ public class SdcSingleController {
         @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
@@ -143,7 +143,7 @@ public class SdcSingleController {
      *             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
@@ -159,7 +159,7 @@ public class SdcSingleController {
         }\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
@@ -200,12 +200,23 @@ public class SdcSingleController {
     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
@@ -213,13 +224,6 @@ public class SdcSingleController {
                 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
@@ -241,6 +245,9 @@ public class SdcSingleController {
             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
@@ -253,7 +260,7 @@ public class SdcSingleController {
     }\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