diff options
Diffstat (limited to 'ms/neng/src/main')
8 files changed, 98 insertions, 43 deletions
diff --git a/ms/neng/src/main/docker/Dockerfile b/ms/neng/src/main/docker/Dockerfile index db87c4c0..bcdaaef2 100644 --- a/ms/neng/src/main/docker/Dockerfile +++ b/ms/neng/src/main/docker/Dockerfile @@ -1,10 +1,32 @@ -FROM TBD:TBD/TBD/TBD/alpine-java:8_jdk +#============LICENSE_START======================================================= +# ONAP : CCSDK.apps +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END========================================================= + +#================================================================================ +# Docker setup for the micro-service +#================================================================================ +FROM onap/ccsdk-ubuntu-image:latest VOLUME /tmp -ADD NetworkElementNameGen.jar app.jar +ADD maven/NetworkElementNameGen.jar app.jar VOLUME /opt/etc -VOLUME /opt/aai -ADD /opt/etc/ /opt/etc/ -ADD /opt/aai/ /opt/aai/ +#VOLUME /opt/aai +ADD maven/opt/etc/ /opt/etc/ +#ADD /opt/aai/ /opt/aai/ ADD startService.sh /startService.sh RUN chmod 700 /startService.sh -ENTRYPOINT ./startService.sh
\ No newline at end of file +ENTRYPOINT sh /startService.sh +EXPOSE 8080 diff --git a/ms/neng/src/main/docker/startService.sh b/ms/neng/src/main/docker/startService.sh index e690311c..2e3e454c 100644 --- a/ms/neng/src/main/docker/startService.sh +++ b/ms/neng/src/main/docker/startService.sh @@ -1,9 +1,29 @@ #!/bin/sh +#============LICENSE_START======================================================= +# ONAP : CCSDK.apps +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============LICENSE_END========================================================= + touch /app.jar -app_args=-Dspring.profiles.active=${SPRING_PROFILE} -app_args=${app_args}" -Dpolicymgr_url="${POLICYMGR_URL}" -Dinstar_aaf_enc_pass="${AAF_PASS_ENC} -app_args=${app_args}" -Daai_cert_pass="${AAI_CERT_PASSWORD}" -Daai_uribase="${AAI_URI_BASE} -app_args=${app_args}" -Dnwelgen_db_user="${NWEG_DB_USER}" -Dnwelgen_db_pass="${NWEG_DB_PASS}" -Dnwelgen_db_url="${NWEG_DB_URL} -echo "app_args ="${app_args} -echo "app_args ="${app_args} -java -Djava.security.egd=file:/dev/./urandom ${app_args} -Xms1024m -Xmx1024m -jar /app.jar +APP_ARGS=-Dspring.profiles.active=${SPRING_PROFILE} +APP_ARGS=${APP_ARGS}" -Dpolicymgr_url="${POLICYMGR_URL}" -Dinstar_aaf_enc_pass="${AAF_PASS_ENC} +APP_ARGS=${APP_ARGS}" -Daai_cert_pass="${AAI_CERT_PASSWORD}" -Daai_uribase="${AAI_URI_BASE} +APP_ARGS=${APP_ARGS}" -Dneng_db_user="${NENG_DB_USER}" -Dneng_db_pass="${NENG_DB_PASS} +APP_ARGS=${APP_ARGS}" -Dneng_db_url="${NENG_DB_URL} +APP_ARGS=${APP_ARGS}" -cp /opt/etc/config" + +echo "APP_ARGS ="${APP_ARGS} +java -Djava.security.egd=file:/dev/./urandom ${APP_ARGS} -Xms1024m -Xmx1024m -jar /app.jar --spring.config.location=/opt/etc/config/ > /tmp/app.out 2> /tmp/app.err diff --git a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/Application.java b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/Application.java index e95fb7eb..6efa94de 100644 --- a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/Application.java +++ b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/Application.java @@ -23,10 +23,7 @@ package org.onap.ccsdk.apps.ms.neng.core; import java.util.Arrays; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.support.SpringBootServletInitializer; import org.springframework.context.ApplicationContext; @@ -40,7 +37,6 @@ import org.springframework.scheduling.annotation.EnableAsync; @SpringBootApplication @ComponentScan(basePackages = "org.onap.ccsdk") @EnableAsync -@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class}) public class Application extends SpringBootServletInitializer { /** * Configures the application. diff --git a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/persistence/ApplicationConfig.java b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/persistence/ApplicationConfig.java index d69c270c..f68add72 100644 --- a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/persistence/ApplicationConfig.java +++ b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/persistence/ApplicationConfig.java @@ -20,16 +20,23 @@ package org.onap.ccsdk.apps.ms.neng.core.persistence; +import java.util.Arrays; import java.util.HashMap; import java.util.Map; +import java.util.Properties; +import java.util.stream.StreamSupport; import javax.sql.DataSource; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.AbstractEnvironment; +import org.springframework.core.env.EnumerablePropertySource; import org.springframework.core.env.Environment; +import org.springframework.core.env.MutablePropertySources; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.jdbc.datasource.DriverManagerDataSource; @@ -44,17 +51,32 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; */ @Configuration @EnableJpaRepositories(basePackages = "org.onap.ccsdk.apps.ms.neng.persistence.repository") +@EntityScan("org.onap.ccsdk.apps.ms.neng.persistence.entity") @EnableTransactionManagement public class ApplicationConfig { @Autowired private Environment environment; + @SuppressWarnings("rawtypes") + void debugProperties() { + Properties props = new Properties(); + MutablePropertySources propSrcs = ((AbstractEnvironment)this.environment).getPropertySources(); + StreamSupport.stream(propSrcs.spliterator(), false) + .filter(ps -> ps instanceof EnumerablePropertySource) + .map(ps -> ((EnumerablePropertySource) ps).getPropertyNames()) + .flatMap(Arrays::<String>stream) + .forEach(propName -> props.setProperty(propName, this.environment.getProperty(propName))); + System.out.println("Properties: " + props); + } + /** * Builds and returns the DataSource used for persisting the data managed by this micro-service. */ @Bean public DataSource dataSource() { + debugProperties(); + DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName(environment.getProperty("datasource.db.driver-class-name")); dataSource.setUrl(environment.getProperty("datasource.db.url")); @@ -133,9 +155,9 @@ public class ApplicationConfig { JpaVendorAdapter jpaVendAdapter, Map<String, String> hibProps, DataSource dataSource) { + debugProperties(); EntityManagerFactoryBuilder factBuilder = new EntityManagerFactoryBuilder(jpaVendAdapter, hibProps, null); - String pkgToScan = environment.getProperty("entitymanager.packagesToScan"); + String pkgToScan = "org.onap.ccsdk.apps.ms.neng.persistence.entity"; return factBuilder.dataSource(dataSource).packages(pkgToScan).build(); } - } diff --git a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/service/SpringServiceImpl.java b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/service/SpringServiceImpl.java index 24736b2f..79e46575 100644 --- a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/service/SpringServiceImpl.java +++ b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/service/SpringServiceImpl.java @@ -168,18 +168,15 @@ public class SpringServiceImpl implements SpringService { */ @Override public void addPolicy(Object request) throws Exception { - try { - @SuppressWarnings("unchecked") - Map<String, Object> policyData = (Map<String, Object>)request; - PolicyDetails pd = new PolicyDetails(); - pd.setPolicyName((String) policyData.get("policyName")); - ObjectMapper objectmapper = new ObjectMapper(); - log.info(objectmapper.writeValueAsString(policyData.get("policyValue"))); - pd.setPolicyResponse(objectmapper.writeValueAsString(policyData.get("policyValue"))); - policyDetailsRepository.save(pd); - } catch (Exception e) { - log.warning(e.getMessage()); - } + @SuppressWarnings("unchecked") + Map<String, Object> policyData = (Map<String, Object>)request; + PolicyDetails pd = new PolicyDetails(); + String name = (String) policyData.get("policyName"); + pd.setPolicyName(name); + ObjectMapper objectmapper = new ObjectMapper(); + log.info(objectmapper.writeValueAsString(policyData.get("policyValue"))); + pd.setPolicyResponse((String)policyData.get("policyValue")); + policyDetailsRepository.save(pd); } void buildUnAssignResponse(List<GeneratedName> generatedNames, NameGenResponse response) { diff --git a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/service/rs/RestService.java b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/service/rs/RestService.java index f8da1eee..8319a545 100644 --- a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/service/rs/RestService.java +++ b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/service/rs/RestService.java @@ -24,7 +24,6 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; -import java.util.List; import java.util.Map; import javax.validation.Valid; import javax.ws.rs.DELETE; @@ -76,9 +75,9 @@ public interface RestService { * <p/>This is not used by clients -- it is here to help with diagnostics. */ @GET - @Path("/v1/getpolicyresponse/{policyName}") + @Path("/v1/getpolicyresponse") @Produces({MediaType.APPLICATION_JSON}) - public List<Map<String, Object>> getPolicyResponse(@QueryParam("policyName") String policyName) throws Exception; + public Response getPolicyResponse(@QueryParam("policyName") String policyName) throws Exception; /** * API to add a naming policy to the database cache in this micro-service. diff --git a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/service/rs/RestServiceImpl.java b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/service/rs/RestServiceImpl.java index ed5723b6..bc8cab42 100644 --- a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/service/rs/RestServiceImpl.java +++ b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/service/rs/RestServiceImpl.java @@ -20,10 +20,7 @@ package org.onap.ccsdk.apps.ms.neng.core.service.rs; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.logging.Logger; import javax.validation.Valid; @@ -90,13 +87,11 @@ public class RestServiceImpl implements RestService { * API to return naming policy cached in this micro-service. */ @Override - public List<Map<String, Object>> getPolicyResponse(String policyName) throws Exception { + public Response getPolicyResponse(String policyName) throws Exception { + log.info("get-policy: " + policyName); + PolicyDetails policyDetails = service.getPolicyDetails(policyName); - List<Map<String, Object>> policyResponse = null; - ObjectMapper mapper = new ObjectMapper(); - policyResponse = mapper.readValue(policyDetails.getPolicyResponse(), - new TypeReference<List<Map<String, Object>>>() {}); - return policyResponse; + return Response.ok().entity(policyDetails.getPolicyResponse()).build(); } /** @@ -109,6 +104,7 @@ public class RestServiceImpl implements RestService { service.addPolicy(request); respMap.put("status", "Policy added successfully"); } catch (Exception e) { + log.warning(e.getMessage()); respMap.put("status", "Failed"); } return respMap; diff --git a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/service/extinf/impl/PolicyFinderServiceDbImpl.java b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/service/extinf/impl/PolicyFinderServiceDbImpl.java index d283b362..9cb434ff 100644 --- a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/service/extinf/impl/PolicyFinderServiceDbImpl.java +++ b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/service/extinf/impl/PolicyFinderServiceDbImpl.java @@ -49,6 +49,9 @@ public class PolicyFinderServiceDbImpl extends PolicyFinderServiceImpl { ObjectMapper objectmapper = new ObjectMapper(); objectmapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT); PolicyDetails policyDetails = policyDetailsRepo.findPolicyResponseByName(policyName); + if (policyDetails == null) { + throw new Exception("Unable to find the policy " + policyName); + } List<Map<Object, Object>> respObj = objectmapper.readValue(policyDetails.getPolicyResponse(), new TypeReference<List<Map<Object, Object>>>() {}); transformConfigObject(objectmapper, respObj); |