summaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main/java/org/openecomp/sdc/be/components/clean/AsdcComponentsCleanerTask.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/components/clean/AsdcComponentsCleanerTask.java')
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/clean/AsdcComponentsCleanerTask.java175
1 files changed, 0 insertions, 175 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/clean/AsdcComponentsCleanerTask.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/clean/AsdcComponentsCleanerTask.java
deleted file mode 100644
index 824b70073e..0000000000
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/clean/AsdcComponentsCleanerTask.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.sdc.be.components.clean;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ScheduledFuture;
-import java.util.concurrent.TimeUnit;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-
-import org.apache.commons.lang3.concurrent.BasicThreadFactory;
-import org.openecomp.sdc.be.config.BeEcompErrorManager;
-import org.openecomp.sdc.be.config.CleanComponentsConfiguration;
-import org.openecomp.sdc.be.config.Configuration;
-import org.openecomp.sdc.be.config.ConfigurationManager;
-import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
-import org.openecomp.sdc.common.config.EcompErrorName;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-
-@Component("asdcComponentsCleaner")
-public class AsdcComponentsCleanerTask implements Runnable {
-
- private static Logger log = LoggerFactory.getLogger(AsdcComponentsCleanerTask.class.getName());
-
- @javax.annotation.Resource
- private ComponentsCleanBusinessLogic componentsCleanBusinessLogic = null;
-
- private List<NodeTypeEnum> componentsToClean;
- private long cleaningIntervalInMinutes;
-
- private ScheduledExecutorService scheduledService = Executors.newScheduledThreadPool(1, new BasicThreadFactory.Builder().namingPattern("ComponentsCleanThread-%d").build());
- ScheduledFuture<?> scheduledFuture = null;
-
- @PostConstruct
- public void init() {
- log.trace("Enter init method of AsdcComponentsCleaner");
- Configuration configuration = ConfigurationManager.getConfigurationManager().getConfiguration();
- CleanComponentsConfiguration cleanComponentsConfiguration = configuration.getCleanComponentsConfiguration();
-
- if (cleanComponentsConfiguration == null) {
- log.info("ERROR - configuration is not valid!!! missing cleanComponentsConfiguration");
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeComponentCleanerSystemError, "AsdcComponentsCleanerTask.init()", "AsdcComponentsCleanerTask.init()");
- BeEcompErrorManager.getInstance().logBeComponentCleanerSystemError("AsdcComponentsCleanerTask-init", "fecth configuration");
- return;
-
- }
- componentsToClean = new ArrayList<NodeTypeEnum>();
- List<String> components = cleanComponentsConfiguration.getComponentsToClean();
- if (components == null) {
- log.info("no component were configured for cleaning");
- }
- for (String component : components) {
- NodeTypeEnum typeEnum = NodeTypeEnum.getByNameIgnoreCase(component);
- if (typeEnum != null)
- componentsToClean.add(typeEnum);
- }
-
- long intervalInMinutes = cleanComponentsConfiguration.getCleanIntervalInMinutes();
-
- if (intervalInMinutes < 1) {
- log.warn("cleaningIntervalInMinutes value should be greater than or equal to 1 minute. use default");
- intervalInMinutes = 60;
- }
- cleaningIntervalInMinutes = intervalInMinutes;
-
- startTask();
-
- log.trace("End init method of AsdcComponentsCleaner");
- }
-
- @PreDestroy
- public void destroy() {
- this.stopTask();
- shutdownExecutor();
- }
-
- public void startTask() {
-
- log.debug("start task for cleaning components");
-
- try {
-
- if (scheduledService != null) {
- log.debug("Start Cleaning components task. interval {} minutes", cleaningIntervalInMinutes);
- scheduledFuture = scheduledService.scheduleAtFixedRate(this, 5, cleaningIntervalInMinutes, TimeUnit.MINUTES);
-
- }
- } catch (Exception e) {
- log.debug("unexpected error occured", e);
- String methodName = new Object() {
- }.getClass().getEnclosingMethod().getName();
-
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeComponentCleanerSystemError, methodName, e.getMessage());
- BeEcompErrorManager.getInstance().logBeComponentCleanerSystemError("AsdcComponentsCleanerTask-startTask", e.getMessage());
-
- }
- }
-
- public void stopTask() {
- if (scheduledFuture != null) {
- boolean result = scheduledFuture.cancel(true);
- log.debug("Stop cleaning task. result = {}", result);
- String methodName = new Object() {
- }.getClass().getEnclosingMethod().getName();
-
- if (false == result) {
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeComponentCleanerSystemError, methodName, "try to stop the polling task");
- BeEcompErrorManager.getInstance().logBeComponentCleanerSystemError("AsdcComponentsCleanerTask-stopTask", "try to stop the polling task");
- }
- scheduledFuture = null;
- }
-
- }
-
- private void shutdownExecutor() {
- if (scheduledService == null)
- return;
-
- scheduledService.shutdown(); // Disable new tasks from being submitted
- try {
- // Wait a while for existing tasks to terminate
- if (!scheduledService.awaitTermination(60, TimeUnit.SECONDS)) {
- scheduledService.shutdownNow(); // Cancel currently executing
- // tasks
- // Wait a while for tasks to respond to being cancelled
- if (!scheduledService.awaitTermination(60, TimeUnit.SECONDS))
- log.debug("Pool did not terminate");
- }
- } catch (InterruptedException ie) {
- // (Re-)Cancel if current thread also interrupted
- scheduledService.shutdownNow();
- // Preserve interrupt status
- Thread.currentThread().interrupt();
- }
- }
-
- @Override
- public void run() {
- try {
- componentsCleanBusinessLogic.cleanComponents(componentsToClean);
- } catch (Exception e) {
- log.error("unexpected error occured", e);
- String methodName = new Object() {
- }.getClass().getEnclosingMethod().getName();
-
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeComponentCleanerSystemError, methodName, e.getMessage());
- BeEcompErrorManager.getInstance().logBeComponentCleanerSystemError("AsdcComponentsCleanerTask-run", e.getMessage());
- }
-
- }
-}