aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrinda Santh <brindasanth@in.ibm.com>2018-09-05 01:22:04 -0400
committerBrinda Santh <brindasanth@in.ibm.com>2018-09-05 01:22:04 -0400
commit6f4d12b7cd5c64a5797a560325a54bb9ac1884ab (patch)
tree3597a323460ecb94fe389e60cf6c4e0342d1f12f
parent594b5e1c919089c110e6aa9b9d1c00b96a9e96f9 (diff)
Controller Blueprints Microservice
Add Resource Dictionary reactive repository service for dictionary validation and automap functions. Change-Id: I7cc6d7d976cfe9370f9a74cd8f2e4256de8e8995 Issue-ID: CCSDK-484 Signed-off-by: Brinda Santh <brindasanth@in.ibm.com>
-rw-r--r--components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceDefinitionRepoService.kt5
-rw-r--r--ms/controllerblueprints/modules/service/load/resource_dictionary/db-source.json4
-rw-r--r--ms/controllerblueprints/modules/service/load/resource_dictionary/input-source.json2
-rw-r--r--ms/controllerblueprints/modules/service/src/main/java/org/onap/ccsdk/apps/controllerblueprints/service/repository/ResourceDictionaryRepository.java3
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/service/repository/ResourceDictionaryReactRepository.kt53
-rw-r--r--ms/controllerblueprints/modules/service/src/test/java/org/onap/ccsdk/apps/controllerblueprints/service/repository/ResourceDictionaryReactRepositoryTest.java67
-rw-r--r--ms/controllerblueprints/modules/service/src/test/resources/logback.xml39
-rw-r--r--ms/controllerblueprints/modules/service/src/test/resources/resourcedictionary/automap.json4
8 files changed, 169 insertions, 8 deletions
diff --git a/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceDefinitionRepoService.kt b/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceDefinitionRepoService.kt
index d51338ca..370e1ec8 100644
--- a/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceDefinitionRepoService.kt
+++ b/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceDefinitionRepoService.kt
@@ -1,5 +1,6 @@
/*
* Copyright © 2017-2018 AT&T Intellectual Property.
+ * Modifications Copyright © 2018 IBM.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,7 +30,7 @@ import reactor.core.publisher.Mono
*/
interface ResourceDefinitionRepoService : BluePrintRepoService {
- fun getResourceDefinition(resourceDefinitionName: String): Mono<ResourceDefinition>?
+ fun getResourceDefinition(resourceDefinitionName: String): Mono<ResourceDefinition>
}
/**
@@ -51,7 +52,7 @@ open class ResourceDefinitionFileRepoService : BluePrintRepoFileService,
resourceDefinitionPath = basePath.plus("/resource_dictionary")
}
- override fun getResourceDefinition(resourceDefinitionName: String): Mono<ResourceDefinition>? {
+ override fun getResourceDefinition(resourceDefinitionName: String): Mono<ResourceDefinition> {
val fileName = resourceDefinitionPath.plus(BluePrintConstants.PATH_DIVIDER)
.plus(resourceDefinitionName).plus(extension)
diff --git a/ms/controllerblueprints/modules/service/load/resource_dictionary/db-source.json b/ms/controllerblueprints/modules/service/load/resource_dictionary/db-source.json
index c53a6dd3..ba86b3c7 100644
--- a/ms/controllerblueprints/modules/service/load/resource_dictionary/db-source.json
+++ b/ms/controllerblueprints/modules/service/load/resource_dictionary/db-source.json
@@ -1,5 +1,5 @@
{
- "name": "bundle-id",
+ "name": "db-source",
"property" :{
"description": "name of the ",
"type": "string"
@@ -7,7 +7,7 @@
"resource-type": "ONAP",
"resource-path": "vnf/bundle-id",
"updated-by": "brindasanth@onap.com",
- "tags": "bundle-id, brindasanth@onap.com",
+ "tags": "db-source, brindasanth@onap.com",
"sources": {
"db": {
"type": "source-db",
diff --git a/ms/controllerblueprints/modules/service/load/resource_dictionary/input-source.json b/ms/controllerblueprints/modules/service/load/resource_dictionary/input-source.json
index 610e8fc0..7cd58d61 100644
--- a/ms/controllerblueprints/modules/service/load/resource_dictionary/input-source.json
+++ b/ms/controllerblueprints/modules/service/load/resource_dictionary/input-source.json
@@ -1,5 +1,5 @@
{
- "name": "action-name",
+ "name": "input-source",
"property" :{
"description": "name of the ",
"type": "string"
diff --git a/ms/controllerblueprints/modules/service/src/main/java/org/onap/ccsdk/apps/controllerblueprints/service/repository/ResourceDictionaryRepository.java b/ms/controllerblueprints/modules/service/src/main/java/org/onap/ccsdk/apps/controllerblueprints/service/repository/ResourceDictionaryRepository.java
index 279dcd1c..16031b6e 100644
--- a/ms/controllerblueprints/modules/service/src/main/java/org/onap/ccsdk/apps/controllerblueprints/service/repository/ResourceDictionaryRepository.java
+++ b/ms/controllerblueprints/modules/service/src/main/java/org/onap/ccsdk/apps/controllerblueprints/service/repository/ResourceDictionaryRepository.java
@@ -1,5 +1,6 @@
/*
* Copyright © 2017-2018 AT&T Intellectual Property.
+ * Modifications Copyright © 2018 IBM.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -62,7 +63,7 @@ public interface ResourceDictionaryRepository extends JpaRepository<ResourceDict
*
* @param name
*/
- void deleteByName(String name);
+ ResourceDictionary deleteByName(String name);
}
diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/service/repository/ResourceDictionaryReactRepository.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/service/repository/ResourceDictionaryReactRepository.kt
new file mode 100644
index 00000000..92172a2e
--- /dev/null
+++ b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/service/repository/ResourceDictionaryReactRepository.kt
@@ -0,0 +1,53 @@
+/*
+ * Copyright © 2018 IBM.
+ *
+ * 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.
+ */
+
+package org.onap.ccsdk.apps.controllerblueprints.service.repository
+
+import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException
+import org.onap.ccsdk.apps.controllerblueprints.service.domain.ResourceDictionary
+import org.springframework.stereotype.Service
+import reactor.core.publisher.Flux
+import reactor.core.publisher.Mono
+import reactor.core.scheduler.Schedulers
+/**
+ * ResourceDictionaryReactRepository.
+ *
+ * @author Brinda Santh
+ */
+@Service
+open class ResourceDictionaryReactRepository(private val resourceDictionaryRepository: ResourceDictionaryRepository) {
+
+ fun findByName(name: String): Mono<ResourceDictionary> {
+ return Mono.justOrEmpty(resourceDictionaryRepository.findByName(name))
+ }
+
+ fun findByNameIn(names: List<String>): Flux<ResourceDictionary> {
+ return Flux.fromIterable(resourceDictionaryRepository.findByNameIn(names))
+ .subscribeOn(Schedulers.elastic())
+ }
+
+ fun findByTagsContainingIgnoreCase(tags: String): Flux<ResourceDictionary> {
+ return Flux.fromIterable(resourceDictionaryRepository.findByTagsContainingIgnoreCase(tags))
+ .subscribeOn(Schedulers.elastic())
+ }
+
+ fun deleteByName(name: String): Mono<ResourceDictionary> {
+ return Mono.fromCallable {
+ resourceDictionaryRepository.deleteByName(name)
+ }
+ }
+
+} \ No newline at end of file
diff --git a/ms/controllerblueprints/modules/service/src/test/java/org/onap/ccsdk/apps/controllerblueprints/service/repository/ResourceDictionaryReactRepositoryTest.java b/ms/controllerblueprints/modules/service/src/test/java/org/onap/ccsdk/apps/controllerblueprints/service/repository/ResourceDictionaryReactRepositoryTest.java
new file mode 100644
index 00000000..db111885
--- /dev/null
+++ b/ms/controllerblueprints/modules/service/src/test/java/org/onap/ccsdk/apps/controllerblueprints/service/repository/ResourceDictionaryReactRepositoryTest.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright © 2018 IBM.
+ *
+ * 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.
+ */
+
+package org.onap.ccsdk.apps.controllerblueprints.service.repository;
+
+import org.junit.Assert;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.onap.ccsdk.apps.controllerblueprints.TestApplication;
+import org.onap.ccsdk.apps.controllerblueprints.service.domain.ResourceDictionary;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.Arrays;
+import java.util.List;
+/**
+ * ResourceDictionaryReactRepositoryTest.
+ *
+ * @author Brinda Santh
+ */
+
+@RunWith(SpringRunner.class)
+@DataJpaTest
+@ContextConfiguration(classes = {TestApplication.class})
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class ResourceDictionaryReactRepositoryTest {
+
+ @Autowired
+ protected ResourceDictionaryReactRepository resourceDictionaryReactRepository;
+
+ @Test
+ public void test01FindByNameReact() throws Exception {
+ ResourceDictionary dbResourceDictionary = resourceDictionaryReactRepository.findByName("db-source").block();
+ Assert.assertNotNull("Failed to query React Resource Dictionary by Name", dbResourceDictionary);
+ }
+
+ @Test
+ public void test02FindByNameInReact() throws Exception {
+ List<ResourceDictionary> dbResourceDictionaries =
+ resourceDictionaryReactRepository.findByNameIn(Arrays.asList("db-source")).collectList().block();
+ Assert.assertNotNull("Failed to query React Resource Dictionary by Names", dbResourceDictionaries);
+ }
+
+ @Test
+ public void test03FindByTagsContainingIgnoreCaseReact() throws Exception {
+ List<ResourceDictionary> dbTagsResourceDictionaries =
+ resourceDictionaryReactRepository.findByTagsContainingIgnoreCase("db-source").collectList().block();
+ Assert.assertNotNull("Failed to query React Resource Dictionary by Tags", dbTagsResourceDictionaries);
+ }
+}
diff --git a/ms/controllerblueprints/modules/service/src/test/resources/logback.xml b/ms/controllerblueprints/modules/service/src/test/resources/logback.xml
new file mode 100644
index 00000000..4a04cfdc
--- /dev/null
+++ b/ms/controllerblueprints/modules/service/src/test/resources/logback.xml
@@ -0,0 +1,39 @@
+<!--
+ ~ Copyright © 2018 IBM.
+ ~
+ ~ 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.
+ -->
+
+<configuration>
+
+ <property name="localPattern" value="%d{HH:mm:ss.SSS} %-5level %logger{100} - %msg%n" />
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <!-- encoders are assigned the type
+ ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
+ <encoder>
+ <pattern>${localPattern}</pattern>
+ </encoder>
+ </appender>
+
+
+ <logger name="org.springframework" level="info"/>
+ <logger name="org.springframework.web" level="info"/>
+ <logger name="org.hibernate" level="error"/>
+ <logger name="org.onap.ccsdk.apps" level="info"/>
+
+ <root level="warn">
+ <appender-ref ref="STDOUT"/>
+ </root>
+
+</configuration>
diff --git a/ms/controllerblueprints/modules/service/src/test/resources/resourcedictionary/automap.json b/ms/controllerblueprints/modules/service/src/test/resources/resourcedictionary/automap.json
index a85e7155..5a2a4ec0 100644
--- a/ms/controllerblueprints/modules/service/src/test/resources/resourcedictionary/automap.json
+++ b/ms/controllerblueprints/modules/service/src/test/resources/resourcedictionary/automap.json
@@ -1,11 +1,11 @@
[
{
- "name": "action-name"
+ "name": "input-source"
},
{
"name": "v4-ip-type"
},
{
- "name": "bundle-id"
+ "name": "db-source"
}
] \ No newline at end of file