-Avoid removal of samples ico insufficient data 61/114661/4
authordhebeha <dhebeha.mj71@wipro.com>
Fri, 6 Nov 2020 13:16:12 +0000 (18:46 +0530)
committerAhila <ahila.pandaram@wipro.com>
Wed, 11 Nov 2020 08:15:23 +0000 (00:15 -0800)
-set aafpass and username to null if not present

Review Comments fixed
-pom version modified
-indentation and java docs are added

Issue-ID: DCAEGEN2-2509
Signed-off-by: Ahila P <ahila.pandaram@wipro.com>
Change-Id: I870cc3e91cf0914ba53f0b930d60684a5bd39ef1

components/slice-analysis-ms/pom.xml
components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/models/Configuration.java
components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/service/ConsumerThread.java
components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/service/PmDataQueue.java
components/slice-analysis-ms/version.properties

index 1eac47f..b1e3eee 100644 (file)
@@ -32,7 +32,7 @@
 
        <groupId>org.onap.dcaegen2.services.components</groupId>
        <artifactId>slice-analysis-ms</artifactId>
-       <version>1.0.1-SNAPSHOT</version>
+       <version>1.0.2-SNAPSHOT</version>
        <name>dcaegen2-services-slice-analysis-ms</name>
        <description>Network slice PM analyser</description>
         <packaging>jar</packaging>
index 8bdbb1a..91a07d4 100644 (file)
@@ -260,9 +260,18 @@ public class Configuration {
                 minPercentageChange = jsonObject.get("sliceanalysisms.minPercentageChange").getAsInt();
                 initialDelaySeconds = jsonObject.get("sliceanalysisms.initialDelaySeconds").getAsLong();
 
-                aafUsername = jsonObject.get("aafUsername").getAsString();
-                aafPassword = jsonObject.get("aafPassword").getAsString();
-                
+                if(jsonObject.get("aafUsername") == null) {
+                        aafUsername = null;
+                }
+                else {
+                        aafUsername = jsonObject.get("aafUsername").getAsString();
+                }
+                if(jsonObject.get("aafPassword") == null) {
+                        aafPassword = null;
+                }
+                else {
+                        aafPassword = jsonObject.get("aafPassword").getAsString();
+                }               
                 log.info("configuration from CBS {}", this);
         }
 }
index 6868bc4..b676273 100644 (file)
@@ -25,6 +25,7 @@ import java.util.List;
 
 import org.onap.slice.analysis.ms.configdb.IConfigDbService;
 import org.onap.slice.analysis.ms.models.Configuration;
+import org.onap.slice.analysis.ms.models.SubCounter;
 import org.onap.slice.analysis.ms.utils.BeanUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -38,6 +39,7 @@ public class ConsumerThread extends Thread {
        private IConfigDbService configDbService;
        private SnssaiSamplesProcessor snssaiSamplesProcessor;
        private long initialDelaySec; 
+       private int samples;
 
        /**
         * Default constructor.
@@ -46,8 +48,8 @@ public class ConsumerThread extends Thread {
                super();
                this.pmDataQueue = BeanUtil.getBean(PmDataQueue.class);
                this.configDbService = BeanUtil.getBean(IConfigDbService.class);
-               this.snssaiSamplesProcessor = BeanUtil.getBean(SnssaiSamplesProcessor.class);
                this.initialDelaySec = Configuration.getInstance().getInitialDelaySeconds();
+               this.samples = Configuration.getInstance().getSamples();
        }
 
        /**
@@ -56,12 +58,13 @@ public class ConsumerThread extends Thread {
        @Override
        public void run() {    
                boolean done = false;
-               String snssai = "";
                boolean result = false;
+               String snssai = "";
                List<String> nfs = null;
                while (!done) {
                        try {
                                Thread.sleep(initialDelaySec);
+                               log.info("Starting Consumer Thread");
                                snssai = pmDataQueue.getSnnsaiFromQueue();
                                if (!snssai.equals("")) {
                                        log.info("Consumer thread processing data for s-nssai {}",snssai);    
@@ -72,7 +75,8 @@ public class ConsumerThread extends Thread {
                                                pmDataQueue.putSnssaiToQueue(snssai);
                                                log.error("Exception caught while fetching nfs of snssai {}, {}", snssai, e.getMessage());
                                        }
-                                       if(nfs != null) {
+                                       if(nfs != null && checkForEnoughSamples(nfs, snssai)) {
+                                                       this.snssaiSamplesProcessor = BeanUtil.getBean(SnssaiSamplesProcessor.class);
                                                result = snssaiSamplesProcessor.processSamplesOfSnnsai(snssai, nfs);
                                                if(!result) {
                                                        log.info("Not enough samples to process for {}",snssai);
@@ -86,4 +90,18 @@ public class ConsumerThread extends Thread {
                        }
                }
        }
+
+        /**
+         * Checks whether enough samples are available for the network functions        
+         */    
+       public boolean checkForEnoughSamples(List<String> nfs, String snssai) {
+               for(String nf : nfs) {
+                       if(! pmDataQueue.checkSamplesInQueue(new SubCounter(nf, snssai), samples)) {
+                               log.info("Not enough samples to process for network function {} of snssai {}", nf, snssai);
+                               pmDataQueue.putSnssaiToQueue(snssai);
+                               return false;
+                       }
+               }
+               return true;
+       }
 }
index 4f19697..868b94c 100644 (file)
@@ -79,6 +79,19 @@ public class PmDataQueue {
                }
                return sampleList;
        }
+       
+       /**
+        * check whether the queue has enough number of samples for that subcounter
+        */
+       public boolean checkSamplesInQueue(SubCounter subCounter, int samples) {
+               if (subCounterMap.containsKey(subCounter)){
+                       Queue<List<MeasurementObject>> measQueue = subCounterMap.get(subCounter);
+                       if(measQueue.size() >= samples) {
+                               return true;
+                       }
+               }
+               return false;
+       }
 
        /**
         * put S-NSSAI to the queue
index 7bbc2fb..34780e8 100644 (file)
@@ -20,7 +20,7 @@
 ###############################################################################
 major=1
 minor=0
-patch=0
+patch=2
 base_version=${major}.${minor}.${patch}
 release_version=${base_version}
 snapshot_version=${base_version}-SNAPSHOT