From 7f9114df5c5ea043906f05df6fd5734955d8685a Mon Sep 17 00:00:00 2001 From: Pooja03 Date: Tue, 25 Sep 2018 11:16:04 +0530 Subject: [PATCH] Config from docker env params Taking Config from docker env parameters if CONSUL_HOST flag is present Change-Id: Ice897f9414186409bdbc3db79eee7b5a971f1cdc Issue-ID: DCAEGEN2-338 Signed-off-by: Pooja03 --- pom.xml | 8 +- snmpmapper/pom.xml | 243 ++++++++++++++++++++- snmpmapper/run.sh | 6 + snmpmapper/settings.xml | 87 ++++++++ snmpmapper/src/assembly/dep.xml | 57 +++++ .../mapper/snmpmapper/DAO/MappingFileDAOImpl.java | 46 +++- .../src/main/resources/application.properties | 2 +- snmpmapper/src/main/resources/logback.xml | 79 +++++++ snmpmapper/src/main/scripts/run.sh | 2 + 9 files changed, 520 insertions(+), 10 deletions(-) create mode 100644 snmpmapper/run.sh create mode 100644 snmpmapper/settings.xml create mode 100644 snmpmapper/src/assembly/dep.xml create mode 100644 snmpmapper/src/main/resources/logback.xml create mode 100644 snmpmapper/src/main/scripts/run.sh diff --git a/pom.xml b/pom.xml index 7342310..615b3fb 100644 --- a/pom.xml +++ b/pom.xml @@ -70,7 +70,7 @@ 4.5.6 3.5 - 1.0.0 + 1.1.1 4.12 @@ -129,12 +129,12 @@ - + @@ -562,7 +562,7 @@ docker-maven-plugin ${docker.maven.version} - true + false diff --git a/snmpmapper/pom.xml b/snmpmapper/pom.xml index f0ca669..b049c5f 100644 --- a/snmpmapper/pom.xml +++ b/snmpmapper/pom.xml @@ -1,4 +1,15 @@ + 4.0.0 @@ -20,9 +31,26 @@ UTF-8 UTF-8 - 1.8 - + 8 + + onap/org.onap.dcaegen2.services.mapper.snmpmapper + + + true + + + false + + + https://nexus.onap.org + content/repositories/snapshots/ + content/repositories/releases/ + + content/sites/site/org/onap/dcaegen2/collectors/ves/${project.artifactId}/${project.version} + + yyyyMMdd'T'HHmmss + org.springframework.webflow @@ -93,16 +121,225 @@ + + + + + maven-assembly-plugin + 3.1.0 + + + com.spotify + docker-maven-plugin + 1.1.1 + + + org.springframework.boot spring-boot-maven-plugin 2.0.0.RELEASE + + org.springframework.boot + spring-boot-maven-plugin + 2.0.0.RELEASE + + + + repackage + + + org.onap.dcaegen2.services.mapper.snmpmapper.SnmpmapperApplication + + + + + + maven-jar-plugin + + + + true + + + ${project.version} + + + + + + + maven-assembly-plugin + + + src/assembly/dep.xml + + false + false + true + + + + make-assembly + package + + single + + + + + + + + + com.spotify + docker-maven-plugin + 1.1.1 + + ${onap.nexus.dockerregistry.daily} + ${docker.image.name} + + latest + + ubuntu:16.04 + + /etc/host.aliases + /opt/app/SnmpMapper + + /opt/app/SnmpMapper + + + . + + ${project.build.directory}/${project.artifactId}-${project.version} + + + + chmod +x bin/run.sh + + + + + + 8080 + + bin/run.sh + + + + + build-image + package + + build + + + + tag-and-push-image-latest + deploy + + tag + + + ${docker.image.name}:latest + ${onap.nexus.dockerregistry.daily}/${docker.image.name}:latest + true + + + + tag-and-push-image-with-version + deploy + + tag + + + ${docker.image.name}:latest + ${onap.nexus.dockerregistry.daily}/${docker.image.name}:${project.version} + + true + + + + tag-and-push-image-with-version-and-date + deploy + + tag + + + ${docker.image.name}:latest + + ${onap.nexus.dockerregistry.daily}/${docker.image.name}:${project.version}-${maven.build.timestamp}Z + + true + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.9.1 + + + add-source + generate-sources + + add-source + + + + src/gen/java + + + + + + - snmpmapper + + + + + + with-system-proxy + + + + com.spotify + docker-maven-plugin + + + ${env.http_proxy} + + + + + + + + + + + + + + spring-releases + https://repo.spring.io/libs-release + + + + + spring-releases + https://repo.spring.io/libs-release + + diff --git a/snmpmapper/run.sh b/snmpmapper/run.sh new file mode 100644 index 0000000..d64d485 --- /dev/null +++ b/snmpmapper/run.sh @@ -0,0 +1,6 @@ +#!/bin/sh +java -jar /opt/snmpmapper.jar & +echo "Sleeping for 30 seconds to get application ready" +sleep 30s +echo"invoking curl" +curl -X GET http://localhost:8080 diff --git a/snmpmapper/settings.xml b/snmpmapper/settings.xml new file mode 100644 index 0000000..03047a3 --- /dev/null +++ b/snmpmapper/settings.xml @@ -0,0 +1,87 @@ + + + + + + + + open-ecomp + + true + + + + osecomp-nexus-releases + OSECOMP Release Repository + https://ecomp-nexus:8443/repository/maven-releases + + + osecomp-nexus-snapshots + OSECOMP Snapshot Repository + https://ecomp-nexus:8443/repository/maven-snapshots + + + eclipse + https://repo.eclipse.org/content/repositories/releases + + true + daily + + + false + + + + + + + + + open-ecomp + + + + + osecomp-nexus + ${openecomp.nexus.user} + ${openecomp.nexus.password} + + + osecomp-nexus-releases + ${openecomp.nexus.user} + ${openecomp.nexus.password} + + + osecomp-nexus-snapshots + ${openecomp.nexus.user} + ${openecomp.nexus.password} + + + ${openecomp.nexus.user} + ${openecomp.nexus.password} + dcae-javadoc + + + + + diff --git a/snmpmapper/src/assembly/dep.xml b/snmpmapper/src/assembly/dep.xml new file mode 100644 index 0000000..2859272 --- /dev/null +++ b/snmpmapper/src/assembly/dep.xml @@ -0,0 +1,57 @@ + + + + + bundle + false + + dir + + + + + src/main/scripts + bin + + **/*.sh + + 0755 + unix + + + + src/main/resources + conf + + **/defaultSnmpMappingFile.xml + + + + + + runtime + true + false + lib + + + diff --git a/snmpmapper/src/main/java/org/onap/dcaegen2/services/mapper/snmpmapper/DAO/MappingFileDAOImpl.java b/snmpmapper/src/main/java/org/onap/dcaegen2/services/mapper/snmpmapper/DAO/MappingFileDAOImpl.java index 93fd1a5..3d18d1d 100644 --- a/snmpmapper/src/main/java/org/onap/dcaegen2/services/mapper/snmpmapper/DAO/MappingFileDAOImpl.java +++ b/snmpmapper/src/main/java/org/onap/dcaegen2/services/mapper/snmpmapper/DAO/MappingFileDAOImpl.java @@ -24,11 +24,13 @@ import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; - -import org.onap.dcaegen2.services.mapper.snmpmapper.exception.SnmpMapperException; +import java.util.Map; 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.boot.SpringApplication; +import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Repository; import org.springframework.web.multipart.MultipartFile; @@ -46,9 +48,46 @@ public class MappingFileDAOImpl implements MappingFileDAO { String user; @Value("${spring.datasource.password}") String pwd; + @Autowired private ApplicationContext applicationContext; + private static Map env; @Override public String uploadMappingFile(MultipartFile mappingFile, String enterpriseid) throws SQLException, IOException { + + env = System.getenv(); + for (Map.Entry entry : env.entrySet()) { + LOGGER.info(entry.getKey() + ":" + entry.getValue()); + } + + if (env.containsKey("CONSUL_HOST") && env.containsKey("CONFIG_BINDING_SERVICE") && env.containsKey("HOSTNAME")) { + //TODO - Add logic to talk to Consul and CBS to get the configuration. For now, we will refer to configuration coming from docker env parameters + + LOGGER.info(">>>Dynamic configuration to be used"); + + if( (env.get("MR_DMAAPHOST")==null || + (env.get("MR_DMAAPHOST")==null || + (env.get("MR_DEFAULT_PORT_NUMBER")==null || + (env.get("URL_JDBC")==null || + (env.get("JDBC_USERNAME")==null || + (env.get("JDBC_PASSWORD")==null ))))))) { + + + LOGGER.error("Some docker environment parameter is missing. Sample Usage is -\n sudo docker run -d -p 8085:8085/tcp --env URL_JDBC=jdbc:postgresql://10.53.172.129:5432/dummy --env JDBC_USERNAME=ngpuser --env JDBC_PASSWORD=root --env MR_DMAAPHOST=10.10.10.10 --env MR_DEFAULT_PORT_NUMBER=3904 --env CONSUL_HOST=10.53.172.109 --env HOSTNAME=mvp-dcaegen2-collectors-ves --env CONFIG_BINDING_SERVICE=config_binding_service -e DMAAPHOST='10.53.172.156' onap/org.onap.dcaegen2.services.mapper.vesadapter.universalvesadaptor:latest"); + System.exit(SpringApplication.exit(applicationContext, () -> {LOGGER.error("Application is stoped please provide the above environment parameter during docker run");return-1;})); + + }else { + + url=env.get("URL_JDBC"); + user=env.get("JDBC_USERNAME"); + pwd=env.get("JDBC_PASSWORD"); + } + + } else { + LOGGER.info(">>>Static configuration to be used"); + } + + + try (Connection con = DriverManager.getConnection(url, user, pwd)) { LOGGER.debug("Connection established successfully"); PreparedStatement pstmt = con.prepareStatement( @@ -61,6 +100,9 @@ public class MappingFileDAOImpl implements MappingFileDAO { pstmt.executeUpdate(); + }catch (Exception e) { + LOGGER.error("Error occured due to :" + e.getMessage()); + e.printStackTrace(); } return "Uploaded successfully"; diff --git a/snmpmapper/src/main/resources/application.properties b/snmpmapper/src/main/resources/application.properties index 2121542..c9d1255 100644 --- a/snmpmapper/src/main/resources/application.properties +++ b/snmpmapper/src/main/resources/application.properties @@ -1,4 +1,4 @@ -server.port=9090 +server.port=8080 #spring.datasource.url=jdbc:postgresql://10.49.16.19:5432/dummy #spring.datasource.username=postgres #spring.datasource.password=root diff --git a/snmpmapper/src/main/resources/logback.xml b/snmpmapper/src/main/resources/logback.xml new file mode 100644 index 0000000..e979ca2 --- /dev/null +++ b/snmpmapper/src/main/resources/logback.xml @@ -0,0 +1,79 @@ + + + + + + + + + %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n + + + + + + ${DEV_HOME}/debug.log + + + %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n + + + + + + ${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log + + + 10MB + + + + + + + + ERROR + ACCEPT + DENY + + ${DEV_HOME}/error.log + + + %d{yyyy-MM-dd HH:mm:ss} %logger{36} - %msg%n + + + + + + ${DEV_HOME}/archived/error.%d{yyyy-MM-dd}.%i.log + + + 10MB + + + + + + + + + + + + + + + - + + + + + + + \ No newline at end of file diff --git a/snmpmapper/src/main/scripts/run.sh b/snmpmapper/src/main/scripts/run.sh new file mode 100644 index 0000000..e85fe59 --- /dev/null +++ b/snmpmapper/src/main/scripts/run.sh @@ -0,0 +1,2 @@ +#!/bin/sh +java -cp "./conf:./lib/*" org.onap.dcaegen2.services.mapper.snmpmapper.SnmpmapperApplication \ No newline at end of file -- 2.16.6