aboutsummaryrefslogtreecommitdiffstats
path: root/ms/neng/src/main
diff options
context:
space:
mode:
authorBT2983 <BT2983@att.com>2018-08-16 21:48:07 -0600
committerBT2983 <BT2983@att.com>2018-08-16 21:48:07 -0600
commit9cbcdacf01abd92ca0952410760d3d8545b23ad8 (patch)
treeb5cf281c43bd683ae4749944cc5348a9494864e0 /ms/neng/src/main
parentec42fbdf2e1b1f985777cd6adc1a3287f842b28f (diff)
Naming micro-service code.
Docker updates and tests. Change-Id: Iba669453c4035290441c757f5b1c673ab41213d6 Issue-ID: CCSDK-342 Signed-off-by: BT2983 <BT2983@att.com>
Diffstat (limited to 'ms/neng/src/main')
-rw-r--r--ms/neng/src/main/docker/Dockerfile34
-rw-r--r--ms/neng/src/main/docker/startService.sh34
-rw-r--r--ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/Application.java4
-rw-r--r--ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/persistence/ApplicationConfig.java26
-rw-r--r--ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/service/SpringServiceImpl.java21
-rw-r--r--ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/service/rs/RestService.java5
-rw-r--r--ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/service/rs/RestServiceImpl.java14
-rw-r--r--ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/service/extinf/impl/PolicyFinderServiceDbImpl.java3
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);