diff options
-rw-r--r-- | cps-application/src/main/resources/application.yml | 18 | ||||
-rwxr-xr-x | cps-dependencies/pom.xml | 10 | ||||
-rw-r--r-- | cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/config/NcmpConfiguration.java | 6 | ||||
-rw-r--r-- | cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/inventory/sync/ModuleSyncWatchdog.java | 2 | ||||
-rw-r--r-- | cps-ncmp-service/src/test/resources/application.yml | 13 | ||||
-rw-r--r-- | cps-service/pom.xml | 8 | ||||
-rw-r--r-- | cps-service/src/main/resources/logback-spring.xml | 105 | ||||
-rwxr-xr-x | csit/plans/cps/setup.sh | 2 | ||||
-rw-r--r-- | docs/deployment.rst | 28 |
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 4dfeee8098..00424a587e 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 dcbc5f70bb..73cca23919 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 60b44c2461..3aa17b70cb 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 69413171d6..0d8f852193 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 c23926e4eb..c259bf0057 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 aea122d176..b9d6268746 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 3bba9f1bb7..03076023b3 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{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX",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 6ef4c9a1fe..d633b1ee26 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 06e1ddcc08..7dd4494f27 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 ============================ |