Adding UI extensibility
[aai/sparky-be.git] / src / main / java / org / onap / aai / sparky / autosuggestion / sync / VnfAliasSuggestionSynchronizer.java
  *
  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
  */
-package org.onap.aai.sparky.synchronizer;
+package org.onap.aai.sparky.autosuggestion.sync;
 
 import static java.util.concurrent.CompletableFuture.supplyAsync;
 
 import java.util.Map;
 import java.util.concurrent.ExecutorService;
 
+import org.onap.aai.cl.api.Logger;
+import org.onap.aai.cl.eelf.LoggerFactory;
+import org.onap.aai.cl.mdc.MdcContext;
+import org.onap.aai.restclient.client.OperationResult;
 import org.onap.aai.sparky.dal.NetworkTransaction;
 import org.onap.aai.sparky.dal.rest.HttpMethod;
-import org.onap.aai.sparky.dal.rest.OperationResult;
 import org.onap.aai.sparky.logging.AaiUiMsgs;
-import org.onap.aai.sparky.synchronizer.entity.AggregationSuggestionEntity;
-import org.onap.aai.sparky.synchronizer.enumeration.OperationState;
-import org.onap.aai.sparky.synchronizer.enumeration.SynchronizerState;
-import org.onap.aai.sparky.synchronizer.task.PerformElasticSearchPut;
+import org.onap.aai.sparky.sync.AbstractEntitySynchronizer;
+import org.onap.aai.sparky.sync.IndexSynchronizer;
+import org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig;
+import org.onap.aai.sparky.sync.config.NetworkStatisticsConfig;
+import org.onap.aai.sparky.sync.entity.AggregationSuggestionEntity;
+import org.onap.aai.sparky.sync.enumeration.OperationState;
+import org.onap.aai.sparky.sync.enumeration.SynchronizerState;
+import org.onap.aai.sparky.sync.task.PerformElasticSearchPut;
 import org.onap.aai.sparky.util.NodeUtils;
-import org.onap.aai.cl.api.Logger;
-import org.onap.aai.cl.eelf.LoggerFactory;
-import org.onap.aai.cl.mdc.MdcContext;
 import org.slf4j.MDC;
 
-public class AggregationSuggestionSynchronizer extends AbstractEntitySynchronizer
+
+public class VnfAliasSuggestionSynchronizer extends AbstractEntitySynchronizer
     implements IndexSynchronizer {
 
   private static final Logger LOG =
-      LoggerFactory.getInstance().getLogger(AggregationSuggestionSynchronizer.class);
+      LoggerFactory.getInstance().getLogger(VnfAliasSuggestionSynchronizer.class);
 
   private boolean isSyncInProgress;
   private boolean shouldPerformRetry;
   private Map<String, String> contextMap;
   protected ExecutorService esPutExecutor;
 
-  public AggregationSuggestionSynchronizer(String indexName) throws Exception {
-    super(LOG, "ASS-" + indexName.toUpperCase(), 2, 5, 5, indexName);
+  public VnfAliasSuggestionSynchronizer(ElasticSearchSchemaConfig schemaConfig,
+      int internalSyncWorkers, int aaiWorkers, int esWorkers, NetworkStatisticsConfig aaiStatConfig,
+      NetworkStatisticsConfig esStatConfig) throws Exception {
+    super(LOG, "VASS-" + schemaConfig.getIndexName().toUpperCase(), internalSyncWorkers, aaiWorkers,
+        esWorkers, schemaConfig.getIndexName(), aaiStatConfig, esStatConfig);
 
     this.isSyncInProgress = false;
     this.shouldPerformRetry = false;
-    this.synchronizerName = "Aggregation Suggestion Synchronizer";
+    this.synchronizerName = "VNFs Alias Suggestion Synchronizer";
     this.contextMap = MDC.getCopyOfContextMap();
     this.esPutExecutor = NodeUtils.createNamedExecutor("ASS-ES-PUT", 2, LOG);
   }
@@ -83,6 +91,7 @@ public class AggregationSuggestionSynchronizer extends AbstractEntitySynchronize
     isSyncInProgress = true;
     this.syncDurationInMs = -1;
     syncStartedTimeStampInMs = System.currentTimeMillis();
+
     syncEntity();
 
     while (!isSyncDone()) {
@@ -101,10 +110,11 @@ public class AggregationSuggestionSynchronizer extends AbstractEntitySynchronize
 
   private void syncEntity() {
     String txnId = NodeUtils.getRandomTxnId();
-    MdcContext.initialize(txnId, "AggregationSuggestionSynchronizer", "", "Sync", "");
+    MdcContext.initialize(txnId, synchronizerName, "", "Sync", "");
 
     AggregationSuggestionEntity syncEntity = new AggregationSuggestionEntity();
     syncEntity.deriveFields();
+    syncEntity.initializeFilters();
 
     String link = null;
     try {
@@ -115,7 +125,7 @@ public class AggregationSuggestionSynchronizer extends AbstractEntitySynchronize
 
     try {
       String jsonPayload = null;
-      jsonPayload = syncEntity.getIndexDocumentJson();
+      jsonPayload = syncEntity.getAsJson();
       if (link != null && jsonPayload != null) {
 
         NetworkTransaction elasticPutTxn = new NetworkTransaction();
@@ -124,9 +134,8 @@ public class AggregationSuggestionSynchronizer extends AbstractEntitySynchronize
 
         esWorkOnHand.incrementAndGet();
         final Map<String, String> contextMap = MDC.getCopyOfContextMap();
-        supplyAsync(
-            new PerformElasticSearchPut(jsonPayload, elasticPutTxn, esDataProvider, contextMap),
-            esPutExecutor).whenComplete((result, error) -> {
+        supplyAsync(new PerformElasticSearchPut(jsonPayload, elasticPutTxn, elasticSearchAdapter,
+            contextMap), esPutExecutor).whenComplete((result, error) -> {
 
               esWorkOnHand.decrementAndGet();