aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cps-application/src/main/resources/application.yml18
-rwxr-xr-xcps-dependencies/pom.xml10
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/config/NcmpConfiguration.java6
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/inventory/sync/ModuleSyncWatchdog.java2
-rw-r--r--cps-ncmp-service/src/test/resources/application.yml13
-rw-r--r--cps-service/pom.xml8
-rw-r--r--cps-service/src/main/resources/logback-spring.xml105
-rwxr-xr-xcsit/plans/cps/setup.sh2
-rw-r--r--docs/deployment.rst28
9 files changed, 109 insertions, 83 deletions
diff --git a/cps-application/src/main/resources/application.yml b/cps-application/src/main/resources/application.yml
index 4dfeee809..00424a587 100644
--- a/cps-application/src/main/resources/application.yml
+++ b/cps-application/src/main/resources/application.yml
@@ -124,15 +124,19 @@ management:
enabled: true
logging:
+ format: json
level:
org:
springframework: INFO
onap:
cps: INFO
-
-dmi:
- auth:
- username: ${DMI_USERNAME}
- password: ${DMI_PASSWORD}
- api:
- base-path: dmi
+ncmp:
+ dmi:
+ auth:
+ username: ${DMI_USERNAME}
+ password: ${DMI_PASSWORD}
+ api:
+ base-path: dmi
+ timers:
+ advised-modules-sync:
+ sleep-time-ms: 30000 \ No newline at end of file
diff --git a/cps-dependencies/pom.xml b/cps-dependencies/pom.xml
index dcbc5f70b..73cca2391 100755
--- a/cps-dependencies/pom.xml
+++ b/cps-dependencies/pom.xml
@@ -200,6 +200,16 @@
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</dependency>
+ <dependency>
+ <groupId>net.logstash.logback</groupId>
+ <artifactId>logstash-logback-encoder</artifactId>
+ <version>7.0.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.janino</groupId>
+ <artifactId>janino</artifactId>
+ <version>3.1.7</version>
+ </dependency>
</dependencies>
</dependencyManagement>
</project>
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/config/NcmpConfiguration.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/config/NcmpConfiguration.java
index 60b44c246..3aa17b70c 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/config/NcmpConfiguration.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/config/NcmpConfiguration.java
@@ -38,11 +38,11 @@ public class NcmpConfiguration {
@Getter
@Component
public static class DmiProperties {
- @Value("${dmi.auth.username}")
+ @Value("${ncmp.dmi.auth.username}")
private String authUsername;
- @Value("${dmi.auth.password}")
+ @Value("${ncmp.dmi.auth.password}")
private String authPassword;
- @Value("${dmi.api.base-path}")
+ @Value("${ncmp.dmi.api.base-path}")
private String dmiBasePath;
}
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/inventory/sync/ModuleSyncWatchdog.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/inventory/sync/ModuleSyncWatchdog.java
index 69413171d..0d8f85219 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/inventory/sync/ModuleSyncWatchdog.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/inventory/sync/ModuleSyncWatchdog.java
@@ -38,7 +38,7 @@ public class ModuleSyncWatchdog {
/**
* Execute Cm Handle poll which changes the cm handle state from 'ADVISED' to 'READY'.
*/
- @Scheduled(fixedDelay = 30000)
+ @Scheduled(fixedDelayString = "${ncmp.timers.advised-modules-sync.sleep-time-ms}")
public void executeAdvisedCmHandlePoll() {
YangModelCmHandle newAdvisedCmHandle = syncUtils.getAnAdvisedCmHandle();
while (newAdvisedCmHandle != null) {
diff --git a/cps-ncmp-service/src/test/resources/application.yml b/cps-ncmp-service/src/test/resources/application.yml
index c23926e4e..c259bf005 100644
--- a/cps-ncmp-service/src/test/resources/application.yml
+++ b/cps-ncmp-service/src/test/resources/application.yml
@@ -16,10 +16,11 @@
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
-dmi:
- auth:
- username: some-user
- password: some-password
- api:
- base-path: dmi
+ncmp:
+ dmi:
+ auth:
+ username: some-user
+ password: some-password
+ api:
+ base-path: dmi
diff --git a/cps-service/pom.xml b/cps-service/pom.xml
index aea122d17..b9d626874 100644
--- a/cps-service/pom.xml
+++ b/cps-service/pom.xml
@@ -107,6 +107,14 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
+ <dependency>
+ <groupId>net.logstash.logback</groupId>
+ <artifactId>logstash-logback-encoder</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.janino</groupId>
+ <artifactId>janino</artifactId>
+ </dependency>
<!-- T E S T D E P E N D E N C I E S -->
<dependency>
<groupId>org.codehaus.groovy</groupId>
diff --git a/cps-service/src/main/resources/logback-spring.xml b/cps-service/src/main/resources/logback-spring.xml
index 3bba9f1bb..03076023b 100644
--- a/cps-service/src/main/resources/logback-spring.xml
+++ b/cps-service/src/main/resources/logback-spring.xml
@@ -1,6 +1,6 @@
<!--
============LICENSE_START=======================================================
- Copyright (C) 2021 Nordix Foundation
+ Copyright (C) 2021-2022 Nordix Foundation
================================================================================
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -18,65 +18,58 @@
============LICENSE_END=========================================================
-->
-<configuration scan="true" debug="false">
- <include resource="org/springframework/boot/logging/logback/base.xml" />
-
- <property name="queueSize" value="256" />
- <property name="maxFileSize" value="20MB" />
- <property name="maxHistory" value="30" />
- <property name="totalSizeCap" value="20MB" />
-
- <!-- log file names -->
- <property name="logName" value="cps" />
-
- <property name="currentTimeStamp" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;,UTC}"/>
-
- <property name="debugPattern"
- value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%thread|%X{RequestID}| %logger{50} - %msg%n" />
-
- <property name="all-log-pattern"
- value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%thread|%X{RequestID}| %logger{50} - %msg%n" />
+<configuration scan="true" scanPeriod="30 seconds" debug="false">
+
+ <include resource="org/springframework/boot/logging/logback/defaults.xml" />
+ <include resource="org/springframework/boot/logging/logback/console-appender.xml" />
+
+ <springProperty scope="context" name="springAppName" source="spring.application.name"/>
+ <springProperty scope="context" name="username" source="security.auth.username"/>
+ <springProperty scope="context" name="loggingFormat" source="logging.format"/>
+
+ <property name="currentTimeStamp" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}"/>
+
+ <appender name="jsonConsole"
+ class="ch.qos.logback.core.ConsoleAppender">
+ <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
+ <providers>
+ <pattern>
+ <omitEmptyFields>true</omitEmptyFields>
+ <pattern>
+ {
+ "logTimeStamp": "${currentTimeStamp:-}",
+ "logTypeName": "",
+ "logLevel": "%level",
+ "traceId": "%X{traceId:-}",
+ "statusCode": "",
+ "principalId": "${username:-}",
+ "serviceName": "${springAppName:-}",
+ "message": "%message",
+ "spanId": "%X{spanId:-}",
+ "processId": "${PID:-}",
+ "threadName": "%thread",
+ "class": "%logger{40}",
+ "exception": "%wEx"
+ }
+ </pattern>
+ </pattern>
+ </providers>
+ </encoder>
+ </appender>
- <appender name="CONSOLE"
- class="ch.qos.logback.core.ConsoleAppender">
- <layout class="ch.qos.logback.classic.PatternLayout">
- <Pattern>${all-log-pattern}</Pattern>
- </layout>
+ <appender name="asyncConsole" class="ch.qos.logback.classic.AsyncAppender">
+ <if condition='property("loggingFormat").equalsIgnoreCase("json")'>
+ <then>
+ <appender-ref ref="jsonConsole"/>
+ </then>
+ <else>
+ <appender-ref ref="CONSOLE"/>
+ </else>
+ </if>
</appender>
<root level="INFO">
- <appender-ref ref="CONSOLE" />
+ <appender-ref ref="asyncConsole"/>
</root>
-<!-- Send logs to File & Rotate File -->
-<!-- <appender name="Debug"-->
-<!-- class="ch.qos.logback.core.rolling.RollingFileAppender">-->
-<!-- <file>../log/${logName}.log</file>-->
-<!-- <rollingPolicy-->
-<!-- class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">-->
-<!-- <fileNamePattern>${logName}.%d{yyyy-MM-dd}.%i.log.zip-->
-<!-- </fileNamePattern>-->
-<!-- <maxFileSize>${maxFileSize}</maxFileSize>-->
-<!-- <maxHistory>${maxHistory}</maxHistory>-->
-<!-- <totalSizeCap>${totalSizeCap}</totalSizeCap>-->
-<!-- </rollingPolicy>-->
-<!-- <encoder>-->
-<!-- <pattern>${debugPattern}</pattern>-->
-<!-- </encoder>-->
-<!-- </appender>-->
-
-<!-- <appender name="asyncDebug" class="ch.qos.logback.classic.AsyncAppender">-->
-<!-- <queueSize>256</queueSize>-->
-<!-- <appender-ref ref="Debug" />-->
-<!-- <includeCallerData>true</includeCallerData>-->
-<!-- </appender>-->
-
-<!-- <logger name="org.onap.cps" level="DEBUG" additivity="false">-->
-<!-- <appender-ref ref="asyncDebug" />-->
-<!-- </logger>-->
-
-<!-- <root level="INFO">-->
-<!-- <appender-ref ref="asyncDebug" />-->
-<!-- </root>-->
-
</configuration>
diff --git a/csit/plans/cps/setup.sh b/csit/plans/cps/setup.sh
index 6ef4c9a1f..d633b1ee2 100755
--- a/csit/plans/cps/setup.sh
+++ b/csit/plans/cps/setup.sh
@@ -50,7 +50,7 @@ check_health()
###################### setup env ############################
# Set env variables for docker compose
-export LOCAL_IP=$(ip -4 addr show docker0 | grep -Po 'inet \K[\d.]+')
+export LOCAL_IP=$((ip -4 addr show docker0 | grep -Po 'inet \K[\d.]+') || hostname -I | awk '{print $1}')
source $WORKSPACE/plans/cps/test.properties
export $(cut -d= -f1 $WORKSPACE/plans/cps/test.properties)
diff --git a/docs/deployment.rst b/docs/deployment.rst
index 06e1ddcc0..7dd4494f2 100644
--- a/docs/deployment.rst
+++ b/docs/deployment.rst
@@ -157,8 +157,10 @@ To get a listing of the cps-core Pods, run the following command:
dev-cps-core-postgres-primary-f7766d46c-s9d5b 1/1 Running 0 24h
dev-cps-core-postgres-replica-84659d68f9-6qnt4 1/1 Running 0 24h
+.. note::
+ The CPS Service will have to be restarted each time a change is made to a configurable property.
-Additional Cps-Core Customizations
+Additional CPS-Core Customizations
==================================
The following table lists some properties that can be specified as Helm chart
@@ -181,14 +183,6 @@ Any spring supported property can be configured by providing in ``config.additio
| | | |
| | See also :ref:`cps_common_credentials_retrieval`. | |
+---------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------------+
-| config.dmiPluginUserName | User name used by cps-core to authenticate themselves for using ncmp-dmi-plugin service. | ``dmiuser`` |
-+---------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------------+
-| config.dmiPluginUserPassword | Internal password used by cps-core to connect to ncmp-dmi-plugin service. | Not defined |
-| | | |
-| | If not defined, the password is generated when deploying the application. | |
-| | | |
-| | See also :ref:`cps_common_credentials_retrieval`. | |
-+---------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------------+
| postgres.config.pgUserName | Internal user name used by cps-core to connect to its own database. | ``cps`` |
+---------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------------+
| postgres.config.pgUserPassword | Internal password used by cps-core to connect to its own database. | Not defined |
@@ -287,6 +281,22 @@ Any spring supported property can be configured by providing in ``config.additio
| maximumPoolSize | including both idle and in-use connections. | |
+---------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------------+
+Additional CPS-NCMP Customizations
+==================================
++---------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------------+
+| config.dmiPluginUserName | User name used by cps-core to authenticate themselves for using ncmp-dmi-plugin service. | ``dmiuser`` |
++---------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------------+
+| config.dmiPluginUserPassword | Internal password used by cps-core to connect to ncmp-dmi-plugin service. | Not defined |
+| | | |
+| | If not defined, the password is generated when deploying the application. | |
+| | | |
+| | See also :ref:`cps_common_credentials_retrieval`. | |
++---------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------------+
+| config.timers.advised-modules-sync | Specifies the delay in milliseconds in which the module sync watch dog will wake again after finishing. | ``30000`` |
+| .sleep-time-ms | | |
+| | | |
++---------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------------+
+
CPS-Core Docker Installation
============================