Fix CLAMP build failure and kub-participant module startup issue. 47/121947/1
authorrameshiyer27 <ramesh.murugan.iyer@est.tech>
Tue, 15 Jun 2021 17:22:04 +0000 (18:22 +0100)
committerrameshiyer27 <ramesh.murugan.iyer@est.tech>
Wed, 16 Jun 2021 10:03:26 +0000 (11:03 +0100)
Initialising ParticipantK8sParameters in the constructor to fix Null pointer Exception in kub-participant module.
Constructor cannot use autowired properties.

Updated pfDao getFiltered method signature to align with latest code in policy models.

Issue-ID: POLICY-3240
Signed-off-by: zrrmmua <ramesh.murugan.iyer@est.tech>
Change-Id: I9405c1e050b31b153ee53829ffece9f4be27818e

models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ClElementStatisticsProvider.java
models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantStatisticsProvider.java
participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/helm/HelmClient.java
participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartStore.java
participant/participant-impl/participant-impl-kubernetes/src/main/resources/config/KubernetesParticipantConfig.json

index dacde8e..00eab8f 100644 (file)
@@ -30,6 +30,7 @@ import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementSt
 import org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaClElementStatistics;
 import org.onap.policy.models.base.PfModelException;
 import org.onap.policy.models.base.PfReferenceTimestampKey;
+import org.onap.policy.models.dao.PfFilterParameters;
 import org.onap.policy.models.provider.PolicyModelsProviderParameters;
 import org.onap.policy.models.provider.impl.AbstractModelsProvider;
 
@@ -130,7 +131,19 @@ public class ClElementStatisticsProvider extends AbstractModelsProvider {
     public List<ClElementStatistics> getFilteredClElementStatistics(final String name, final String version,
             final Instant startTimeStamp, final Instant endTimeStamp, Map<String, Object> filterMap,
             final String sortOrder, final int getRecordNum) {
-        return asClElementStatisticsList(getPfDao().getFiltered(JpaClElementStatistics.class, name, version,
-                startTimeStamp, endTimeStamp, filterMap, sortOrder, getRecordNum));
+
+        // @formatter:off
+        PfFilterParameters filterParams = PfFilterParameters
+                .builder()
+                .name(name)
+                .version(version)
+                .startTime(startTimeStamp)
+                .endTime(endTimeStamp)
+                .filterMap(filterMap)
+                .sortOrder(sortOrder)
+                .recordNum(getRecordNum)
+                .build();
+        // @formatter:on
+        return asClElementStatisticsList(getPfDao().getFiltered(JpaClElementStatistics.class, filterParams));
     }
 }
index 4ea76ff..137af3a 100644 (file)
@@ -30,6 +30,7 @@ import org.onap.policy.clamp.controlloop.models.controlloop.concepts.Participant
 import org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaParticipantStatistics;
 import org.onap.policy.models.base.PfModelException;
 import org.onap.policy.models.base.PfTimestampKey;
+import org.onap.policy.models.dao.PfFilterParameters;
 import org.onap.policy.models.provider.PolicyModelsProviderParameters;
 import org.onap.policy.models.provider.impl.AbstractModelsProvider;
 
@@ -87,8 +88,20 @@ public class ParticipantStatisticsProvider extends AbstractModelsProvider {
             final Instant startTimeStamp, final Instant endTimeStamp, Map<String, Object> filterMap,
             final String sortOrder, final int getRecordNum) {
 
-        return asParticipantStatisticsList(getPfDao().getFiltered(JpaParticipantStatistics.class, name, version,
-                startTimeStamp, endTimeStamp, filterMap, sortOrder, getRecordNum));
+        // @formatter:off
+        PfFilterParameters filterParams = PfFilterParameters
+                .builder()
+                .name(name)
+                .version(version)
+                .startTime(startTimeStamp)
+                .endTime(endTimeStamp)
+                .filterMap(filterMap)
+                .sortOrder(sortOrder)
+                .recordNum(getRecordNum)
+                .build();
+        // @formatter:on
+
+        return asParticipantStatisticsList(getPfDao().getFiltered(JpaParticipantStatistics.class, filterParams));
     }
 
 
index 456122f..1b7599c 100644 (file)
@@ -113,8 +113,6 @@ public class HelmClient {
     static String executeCommand(ProcessBuilder processBuilder) throws ServiceException {
         var commandStr = toString(processBuilder);
 
-        processBuilder.redirectInput(ProcessBuilder.Redirect.DISCARD);
-
         try {
             var process = processBuilder.start();
             process.waitFor();
index 2d0ce7a..041c0c8 100644 (file)
@@ -51,8 +51,7 @@ public class ChartStore {
 
     private static final StandardCoder STANDARD_CODER = new StandardCoder();
 
-    @Autowired
-    private ParticipantK8sParameters participantK8sParameters;
+    private final ParticipantK8sParameters participantK8sParameters;
 
     /**
      * The chartStore map contains chart name as key & ChartInfo as value.
@@ -62,7 +61,8 @@ public class ChartStore {
     /**
      * Constructor method.
      */
-    public ChartStore() {
+    public ChartStore(@Autowired ParticipantK8sParameters participantK8sParameters) {
+        this.participantK8sParameters = participantK8sParameters;
         this.restoreFromLocalFileSystem();
     }
 
@@ -177,12 +177,11 @@ public class ChartStore {
     }
 
     private synchronized void restoreFromLocalFileSystem() {
-        Path localChartDirectoryPath = Paths.get(participantK8sParameters.getLocalChartDirectory());
-
         try {
+            Path localChartDirectoryPath = Paths.get(participantK8sParameters.getLocalChartDirectory());
             Files.createDirectories(localChartDirectoryPath);
             restoreFromLocalFileSystem(localChartDirectoryPath);
-        } catch (IOException ioe) {
+        } catch (Exception ioe) {
             LOGGER.warn("Could not restore charts from local file system: {}", ioe);
         }
     }
@@ -194,8 +193,11 @@ public class ChartStore {
             @Override
             public FileVisitResult visitFile(Path localChartFile, BasicFileAttributes attrs) throws IOException {
                 try {
-                    ChartInfo chart = STANDARD_CODER.decode(localChartFile.toFile(), ChartInfo.class);
-                    localChartMap.put(key(chart), chart);
+                    // Decode only the json file excluding the helm charts
+                    if (localChartFile.endsWith(participantK8sParameters.getInfoFileName())) {
+                        ChartInfo chart = STANDARD_CODER.decode(localChartFile.toFile(), ChartInfo.class);
+                        localChartMap.put(key(chart), chart);
+                    }
                     return FileVisitResult.CONTINUE;
                 } catch (CoderException ce) {
                     throw new IOException("Error decoding chart file", ce);
index 620e055..e854a93 100644 (file)
@@ -49,8 +49,8 @@
         "implementation":"org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl",
         "databaseDriver":"org.mariadb.jdbc.Driver",
         "databaseUrl":"jdbc:mariadb://localhost:3306/controlloop",
-        "databaseUser":"admin",
-        "databasePassword":"passme",
+        "databaseUser":"policy",
+        "databasePassword":"P01icY",
         "persistenceUnit":"ToscaConceptTest"
     }
 }