diff options
author | Tomasz Golabek <tomasz.golabek@nokia.com> | 2020-02-21 15:49:34 +0100 |
---|---|---|
committer | Tomasz Golabek <tomasz.golabek@nokia.com> | 2020-02-24 10:27:19 +0100 |
commit | 7244c908edd4aa392e65d820c90845323918b47b (patch) | |
tree | 3e3d04065d74f0f139c5e1290b35d511d8bbaa75 | |
parent | 0474f5347007cf6c04cb01f84b83fc2edd6fbc59 (diff) |
Added actuator for refreshing configuration
Cloud-config dependency is provided
Event listener introduced to handle refresh call
Refresh endpoint exposed
Fixed docker-compose to start locally and use build images
Update repositories for docker image and install vim on it
Issue-ID: AAF-997
Signed-off-by: Tomasz Golabek <tomasz.golabek@nokia.com>
Change-Id: Iee005518c901dad7730c5f48c410ec89850f1425
-rw-r--r-- | certService/Dockerfile | 2 | ||||
-rw-r--r-- | certService/docker-compose.yml | 4 | ||||
-rw-r--r-- | certService/pom.xml | 6 | ||||
-rw-r--r-- | certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfig.java | 25 | ||||
-rw-r--r-- | certService/src/main/resources/application.properties | 7 | ||||
-rw-r--r-- | pom.xml | 1 |
6 files changed, 39 insertions, 6 deletions
diff --git a/certService/Dockerfile b/certService/Dockerfile index 4bb1bf6e..5060c6bf 100644 --- a/certService/Dockerfile +++ b/certService/Dockerfile @@ -4,6 +4,8 @@ ARG VERSION=${version} RUN groupadd certService && useradd -g certService certService +RUN apt-get update && apt-get install -y vim + RUN chown -R certService:certService /var/log USER certService:certService diff --git a/certService/docker-compose.yml b/certService/docker-compose.yml index 04d4867f..f418fc1b 100644 --- a/certService/docker-compose.yml +++ b/certService/docker-compose.yml @@ -21,7 +21,9 @@ services: retries: 9 certservice: - image: nexus3.onap.org:10001/onap/org.onap.aaf.certservice.aaf-certservice-api:1.0.0 + image: onap/org.onap.aaf.certservice.aaf-certservice-api:latest + volumes: + - ./helm/aaf-cert-service/resources/cmpServers.json:/etc/onap/aaf/certservice/cmpServers.json container_name: certservice ports: - "8080:8080" diff --git a/certService/pom.xml b/certService/pom.xml index 5fbd5b1c..c61501b4 100644 --- a/certService/pom.xml +++ b/certService/pom.xml @@ -75,7 +75,11 @@ <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </dependency> - + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-starter-config</artifactId> + <version>${spring-cloud-starter-config.version}</version> + </dependency> </dependencies> <build> diff --git a/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfig.java b/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfig.java index 414f38bb..20e8934e 100644 --- a/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfig.java +++ b/certService/src/main/java/org/onap/aaf/certservice/certification/configuration/CmpServersConfig.java @@ -21,31 +21,52 @@ package org.onap.aaf.certservice.certification.configuration; import org.onap.aaf.certservice.certification.configuration.model.Cmpv2Server; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.cloud.context.scope.refresh.RefreshScopeRefreshedEvent; import org.springframework.context.annotation.Configuration; import javax.annotation.PostConstruct; import java.io.File; import java.util.Collections; import java.util.List; +import org.springframework.context.event.EventListener; +@RefreshScope @Configuration public class CmpServersConfig { + private static final String CMP_SERVERS_CONFIG_FILENAME = "cmpServers.json"; - @Autowired - private CmpServersConfigLoader cmpServersConfigLoader; + private static final Logger LOGGER = LoggerFactory.getLogger(CmpServersConfig.class); + private static final String REFRESHING_CONFIGURATION = "Refreshing configuration"; + @Value("${app.config.path}") private String configPath; + + private CmpServersConfigLoader cmpServersConfigLoader; private List<Cmpv2Server> cmpServers; + @Autowired + public CmpServersConfig(CmpServersConfigLoader cmpServersConfigLoader) { + this.cmpServersConfigLoader = cmpServersConfigLoader; + } + @PostConstruct void loadConfiguration() { String configFilePath = configPath + File.separator + CMP_SERVERS_CONFIG_FILENAME; this.cmpServers = Collections.unmodifiableList(cmpServersConfigLoader.load(configFilePath)); } + @EventListener + public void onRefreshScope(final RefreshScopeRefreshedEvent event) { + LOGGER.info(REFRESHING_CONFIGURATION); + loadConfiguration(); + } + public List<Cmpv2Server> getCmpServers() { return cmpServers; } diff --git a/certService/src/main/resources/application.properties b/certService/src/main/resources/application.properties index eab43c08..ac81c3a0 100644 --- a/certService/src/main/resources/application.properties +++ b/certService/src/main/resources/application.properties @@ -1,8 +1,11 @@ # Actuator configuration -management.endpoints.enabled-by-default=false -management.endpoint.health.enabled=true springdoc.show-actuator=true +management.endpoints.enabled-by-default=true +management.endpoint.configprops.enabled=true +management.endpoints.web.exposure.include=refresh,health + + # Swagger configuration springdoc.swagger-ui.path=/docs @@ -46,6 +46,7 @@ <maven-surefire-plugin.version>3.0.0-M4</maven-surefire-plugin.version> <spring-boot-starter-actuator.version>2.2.4.RELEASE</spring-boot-starter-actuator.version> <spring-boot-starter-log4j2.version>2.1.5.RELEASE</spring-boot-starter-log4j2.version> + <spring-cloud-starter-config.version>2.2.1.RELEASE</spring-cloud-starter-config.version> <springdoc-openapi-ui.version>1.2.30</springdoc-openapi-ui.version> <bouncycastle.version>1.60</bouncycastle.version> <docker-maven-plugin.version>0.33.0</docker-maven-plugin.version> |