Upgrade CDS GRPC implementations. 24/98824/3
authorBrinda Santh <bs2796@att.com>
Mon, 25 Nov 2019 22:19:02 +0000 (17:19 -0500)
committerBrinda Santh <bs2796@att.com>
Wed, 27 Nov 2019 15:07:51 +0000 (10:07 -0500)
Dependent on : https://gerrit.onap.org/r/c/ccsdk/parent/+/98823

Issue-ID: CCSDK-1737
Signed-off-by: Brinda Santh <bs2796@att.com>
Change-Id: I0b5087f7e98490d7066f389af29424aed40a6520

15 files changed:
ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/interceptor/GrpcClientLoggingInterceptor.kt
ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/interceptor/GrpcServerLoggingInterceptor.kt
ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BasicAuthGrpcClientService.kt
ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcLibPropertyService.kt
ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/TLSAuthGrpcClientService.kt
ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/TokenAuthGrpcClientService.kt
ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcLibPropertyServiceTest.kt
ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/MockTLSBluePrintProcessingServer.kt
ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/StreamingRemoteExecutionServiceTest.kt
ms/blueprintsprocessor/parent/pom.xml
ms/controllerblueprints/modules/blueprint-proto/pom.xml
ms/controllerblueprints/parent/pom.xml
ms/sdclistener/application/pom.xml
ms/sdclistener/parent/pom.xml
pom.xml

index 99ac740..43e5660 100644 (file)
@@ -42,12 +42,13 @@ class GrpcClientLoggingInterceptor : ClientInterceptor {
         .SimpleForwardingClientCall<ReqT, RespT>(channel.newCall(method, callOptions)) {
 
             override fun start(responseListener: Listener<RespT>, headers: Metadata) {
-                val listener = object : ForwardingClientCallListener.SimpleForwardingClientCallListener<RespT>(responseListener) {
-                    override fun onMessage(message: RespT) {
-                        loggingService.grpcInvoking(headers)
-                        super.onMessage(message)
+                val listener =
+                    object : ForwardingClientCallListener.SimpleForwardingClientCallListener<RespT>(responseListener) {
+                        override fun onMessage(message: RespT) {
+                            loggingService.grpcInvoking(headers)
+                            super.onMessage(message)
+                        }
                     }
-                }
                 super.start(listener, headers)
             }
         }
index ec0761a..a49b967 100644 (file)
@@ -40,7 +40,7 @@ class GrpcServerLoggingInterceptor : ServerInterceptor {
         requestHeaders: Metadata,
         next: ServerCallHandler<ReqT, RespT>
     ):
-            ServerCall.Listener<ReqT> {
+        ServerCall.Listener<ReqT> {
 
         val forwardingServerCall = object : ForwardingServerCall.SimpleForwardingServerCall<ReqT, RespT>(call) {
             override fun sendHeaders(responseHeaders: Metadata) {
index e3fd14c..f7be8c6 100644 (file)
@@ -18,7 +18,6 @@ package org.onap.ccsdk.cds.blueprintsprocessor.grpc.service
 
 import io.grpc.ManagedChannel
 import io.grpc.internal.DnsNameResolverProvider
-import io.grpc.internal.PickFirstLoadBalancerProvider
 import io.grpc.netty.NettyChannelBuilder
 import org.onap.ccsdk.cds.blueprintsprocessor.grpc.BasicAuthGrpcClientProperties
 
@@ -29,7 +28,6 @@ open class BasicAuthGrpcClientService(private val basicAuthGrpcClientProperties:
         val managedChannel = NettyChannelBuilder
             .forAddress(basicAuthGrpcClientProperties.host, basicAuthGrpcClientProperties.port)
             .nameResolverFactory(DnsNameResolverProvider())
-            .loadBalancerFactory(PickFirstLoadBalancerProvider())
             // .intercept(BasicAuthClientInterceptor(basicAuthGrpcClientProperties)).usePlaintext()
             .build()
         return managedChannel
index 8a3c5a6..79da447 100644 (file)
@@ -87,7 +87,7 @@ open class BluePrintGrpcLibPropertyService(private var bluePrintPropertiesServic
     }
 
     private fun blueprintGrpcServerService(grpcServerProperties: GrpcServerProperties):
-            BluePrintGrpcServerService {
+        BluePrintGrpcServerService {
         when (grpcServerProperties) {
             is TLSAuthGrpcServerProperties -> {
                 return TLSAuthGrpcServerService(grpcServerProperties)
@@ -151,7 +151,7 @@ open class BluePrintGrpcLibPropertyService(private var bluePrintPropertiesServic
     }
 
     fun blueprintGrpcClientService(grpcClientProperties: GrpcClientProperties):
-            BluePrintGrpcClientService {
+        BluePrintGrpcClientService {
         return when (grpcClientProperties) {
             is TokenAuthGrpcClientProperties -> {
                 TokenAuthGrpcClientService(grpcClientProperties)
index 68ca3c1..44df5fb 100644 (file)
@@ -18,7 +18,6 @@ package org.onap.ccsdk.cds.blueprintsprocessor.grpc.service
 
 import io.grpc.ManagedChannel
 import io.grpc.internal.DnsNameResolverProvider
-import io.grpc.internal.PickFirstLoadBalancerProvider
 import io.grpc.netty.GrpcSslContexts
 import io.grpc.netty.NettyChannelBuilder
 import io.netty.handler.ssl.SslContext
@@ -30,10 +29,14 @@ class TLSAuthGrpcClientService(private val tlsAuthGrpcClientProperties: TLSAuthG
     BluePrintGrpcClientService {
 
     override suspend fun channel(): ManagedChannel {
+
+        val target =
+            if (tlsAuthGrpcClientProperties.port == -1) tlsAuthGrpcClientProperties.host
+            else "${tlsAuthGrpcClientProperties.host}:${tlsAuthGrpcClientProperties.port}"
+
         return NettyChannelBuilder
-            .forAddress(tlsAuthGrpcClientProperties.host, tlsAuthGrpcClientProperties.port)
+            .forTarget(target)
             .nameResolverFactory(DnsNameResolverProvider())
-            .loadBalancerFactory(PickFirstLoadBalancerProvider())
             .intercept(GrpcClientLoggingInterceptor())
             .sslContext(sslContext())
             .build()
index 371353d..4c991df 100644 (file)
@@ -25,7 +25,6 @@ import io.grpc.ManagedChannel
 import io.grpc.Metadata
 import io.grpc.MethodDescriptor
 import io.grpc.internal.DnsNameResolverProvider
-import io.grpc.internal.PickFirstLoadBalancerProvider
 import io.grpc.netty.NettyChannelBuilder
 import org.onap.ccsdk.cds.blueprintsprocessor.grpc.TokenAuthGrpcClientProperties
 import org.onap.ccsdk.cds.blueprintsprocessor.grpc.interceptor.GrpcClientLoggingInterceptor
@@ -34,17 +33,21 @@ class TokenAuthGrpcClientService(private val tokenAuthGrpcClientProperties: Toke
     BluePrintGrpcClientService {
 
     override suspend fun channel(): ManagedChannel {
+        val target =
+            if (tokenAuthGrpcClientProperties.port == -1) tokenAuthGrpcClientProperties.host
+            else "${tokenAuthGrpcClientProperties.host}:${tokenAuthGrpcClientProperties.port}"
+
         val managedChannel = NettyChannelBuilder
-            .forAddress(tokenAuthGrpcClientProperties.host, tokenAuthGrpcClientProperties.port)
+            .forTarget(target)
             .nameResolverFactory(DnsNameResolverProvider())
-            .loadBalancerFactory(PickFirstLoadBalancerProvider())
             .intercept(GrpcClientLoggingInterceptor())
             .intercept(TokenAuthClientInterceptor(tokenAuthGrpcClientProperties)).usePlaintext().build()
         return managedChannel
     }
 }
 
-class TokenAuthClientInterceptor(private val tokenAuthGrpcClientProperties: TokenAuthGrpcClientProperties) : ClientInterceptor {
+class TokenAuthClientInterceptor(private val tokenAuthGrpcClientProperties: TokenAuthGrpcClientProperties) :
+    ClientInterceptor {
 
     override fun <ReqT, RespT> interceptCall(
         method: MethodDescriptor<ReqT, RespT>,
index ea17b94..d9a8082 100644 (file)
@@ -84,23 +84,19 @@ class BluePrintGrpcLibPropertyServiceTest {
         val properties = bluePrintGrpcLibPropertyService.grpcClientProperties(
             "blueprintsprocessor.grpcclient.sample"
         )
-                as BasicAuthGrpcClientProperties
+            as BasicAuthGrpcClientProperties
         assertNotNull(properties, "failed to create property bean")
         assertNotNull(
-            properties.host, "failed to get host property" +
-                    " in property bean"
+            properties.host, "failed to get host property in property bean"
         )
         assertNotNull(
-            properties.port, "failed to get host property" +
-                    " in property bean"
+            properties.port, "failed to get host property in property bean"
         )
         assertNotNull(
-            properties.username, "failed to get host pro" +
-                    "perty in property bean"
+            properties.username, "failed to get host property in property bean"
         )
         assertNotNull(
-            properties.password, "failed to get host pr" +
-                    "operty in property bean"
+            properties.password, "failed to get host property in property bean"
         )
     }
 
@@ -110,10 +106,10 @@ class BluePrintGrpcLibPropertyServiceTest {
     @Test
     fun testGrpcClientPropertiesWithJson() {
         val json: String = "{\n" +
-                "  \"type\" : \"token-auth\",\n" +
-                "  \"host\" : \"127.0.0.1\",\n" +
-                "  \"port\" : \"50505\"\n" +
-                "}"
+            "  \"type\" : \"token-auth\",\n" +
+            "  \"host\" : \"127.0.0.1\",\n" +
+            "  \"port\" : \"50505\"\n" +
+            "}"
         val mapper = ObjectMapper()
         val actualObj: JsonNode = mapper.readTree(json)
         val properties = bluePrintGrpcLibPropertyService.grpcClientProperties(
@@ -152,12 +148,12 @@ class BluePrintGrpcLibPropertyServiceTest {
     @Test
     fun testGrpcClientServiceWithJson() {
         val json: String = "{\n" +
-                "  \"type\" : \"basic-auth\",\n" +
-                "  \"host\" : \"127.0.0.1\",\n" +
-                "  \"port\" : \"50505\",\n" +
-                "  \"username\" : \"sampleuser\",\n" +
-                "  \"password\" : \"samplepwd\"\n" +
-                "}"
+            "  \"type\" : \"basic-auth\",\n" +
+            "  \"host\" : \"127.0.0.1\",\n" +
+            "  \"port\" : \"50505\",\n" +
+            "  \"username\" : \"sampleuser\",\n" +
+            "  \"password\" : \"samplepwd\"\n" +
+            "}"
         val mapper = ObjectMapper()
         val actualObj: JsonNode = mapper.readTree(json)
         val svc = bluePrintGrpcLibPropertyService
index 25828b1..fb7282f 100644 (file)
@@ -57,7 +57,7 @@ class MockTLSBluePrintProcessingServer : BluePrintProcessingServiceGrpc.BluePrin
             override fun onNext(executionServiceInput: ExecutionServiceInput) {
                 log.info(
                     "Received requestId(${executionServiceInput.commonHeader.requestId})  " +
-                            "subRequestId(${executionServiceInput.commonHeader.subRequestId})"
+                        "subRequestId(${executionServiceInput.commonHeader.subRequestId})"
                 )
                 responseObserver.onNext(buildResponse(executionServiceInput))
                 responseObserver.onCompleted()
index dede885..28e2b11 100644 (file)
@@ -76,7 +76,7 @@ class StreamingRemoteExecutionServiceTest {
             val streamingRemoteExecutionService = StreamingRemoteExecutionServiceImpl(bluePrintGrpcLibPropertyService)
 
             val spyStreamingRemoteExecutionService = spyk(streamingRemoteExecutionService)
-            /** To test with real server, uncomment below line */
+            /** To test with real server, comment below line */
             coEvery() { spyStreamingRemoteExecutionService.createGrpcChannel(any()) } returns channel
 
             /** Test Send and Receive non interactive transaction */
index b8bf820..3dbd265 100755 (executable)
                 <artifactId>grpc-stub</artifactId>
                 <version>${grpc.version}</version>
             </dependency>
+            <dependency>
+                <groupId>io.grpc</groupId>
+                <artifactId>grpc-netty-shaded</artifactId>
+                <version>${grpc.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>io.grpc</groupId>
+                <artifactId>grpc-grpclb</artifactId>
+                <version>${grpc.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.google.protobuf</groupId>
+                <artifactId>protobuf-java</artifactId>
+                <version>${protobuff.java.version}</version>
+            </dependency>
             <dependency>
                 <groupId>com.google.protobuf</groupId>
                 <artifactId>protobuf-java-util</artifactId>
                 <artifactId>config-snapshots</artifactId>
                 <version>${project.version}</version>
             </dependency>
+            <dependency>
+                <groupId>org.onap.ccsdk.cds.blueprintsprocessor.functions</groupId>
+                <artifactId>message-prioritizaion</artifactId>
+                <version>${project.version}</version>
+            </dependency>
 
             <!-- Diff capability providers for config-snapshots -->
             <dependency>
             <groupId>io.grpc</groupId>
             <artifactId>grpc-stub</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-netty-shaded</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-grpclb</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.google.protobuf</groupId>
+            <artifactId>protobuf-java</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.google.protobuf</groupId>
             <artifactId>protobuf-java-util</artifactId>
index fef6cb7..8c2c45d 100644 (file)
@@ -43,7 +43,7 @@
                 <version>0.6.1</version>
                 <configuration>
                     <protocArtifact>
-                        com.google.protobuf:protoc:3.6.1:exe:${os.detected.classifier}
+                        com.google.protobuf:protoc:3.10.0:exe:${os.detected.classifier}
                     </protocArtifact>
                     <protoSourceRoot>${project.basedir}/../../../../components/model-catalog/proto-definition/proto
                     </protoSourceRoot>
index a0d083b..906854d 100644 (file)
                 <artifactId>grpc-stub</artifactId>
                 <version>${grpc.version}</version>
             </dependency>
+            <dependency>
+                <groupId>io.grpc</groupId>
+                <artifactId>grpc-netty-shaded</artifactId>
+                <version>${grpc.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>io.grpc</groupId>
+                <artifactId>grpc-grpclb</artifactId>
+                <version>${grpc.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.google.protobuf</groupId>
+                <artifactId>protobuf-java</artifactId>
+                <version>${protobuff.java.version}</version>
+            </dependency>
             <dependency>
                 <groupId>com.google.protobuf</groupId>
                 <artifactId>protobuf-java-util</artifactId>
             <groupId>io.grpc</groupId>
             <artifactId>grpc-stub</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-netty-shaded</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-grpclb</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.google.protobuf</groupId>
+            <artifactId>protobuf-java</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.google.protobuf</groupId>
             <artifactId>protobuf-java-util</artifactId>
index f958ef9..7fc2da2 100644 (file)
         <dependency>
             <groupId>io.grpc</groupId>
             <artifactId>grpc-netty</artifactId>
-            <version>${grpc.version}</version>
         </dependency>
         <dependency>
             <groupId>io.grpc</groupId>
             <artifactId>grpc-protobuf</artifactId>
-            <version>${grpc.version}</version>
         </dependency>
         <dependency>
             <groupId>io.grpc</groupId>
             <artifactId>grpc-stub</artifactId>
-            <version>${grpc.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-netty-shaded</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-grpclb</artifactId>
         </dependency>
         <dependency>
             <groupId>com.google.protobuf</groupId>
             <artifactId>protobuf-java</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.google.protobuf</groupId>
+            <artifactId>protobuf-java-util</artifactId>
+        </dependency>
         <dependency>
             <groupId>io.grpc</groupId>
             <artifactId>grpc-testing</artifactId>
index 65ca250..66685c9 100755 (executable)
@@ -35,8 +35,6 @@
     <properties>
         <spring.boot.version>2.1.3.RELEASE</spring.boot.version>
         <spring.version>5.1.5.RELEASE</spring.version>
-        <grpc.version>1.18.0</grpc.version>
-        <protobuff.java.utils.version>3.6.1</protobuff.java.utils.version>
         <eelf.version>1.0.0</eelf.version>
         <guava.version>27.0.1-jre</guava.version>
         <onap.logger.slf4j>1.2.2</onap.logger.slf4j>
                 <artifactId>grpc-stub</artifactId>
                 <version>${grpc.version}</version>
             </dependency>
+            <dependency>
+                <groupId>io.grpc</groupId>
+                <artifactId>grpc-netty-shaded</artifactId>
+                <version>${grpc.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>io.grpc</groupId>
+                <artifactId>grpc-grpclb</artifactId>
+                <version>${grpc.version}</version>
+            </dependency>
             <dependency>
                 <groupId>com.google.protobuf</groupId>
                 <artifactId>protobuf-java</artifactId>
                 <version>${protobuff.java.utils.version}</version>
             </dependency>
+            <dependency>
+                <groupId>com.google.protobuf</groupId>
+                <artifactId>protobuf-java-util</artifactId>
+                <version>${protobuff.java.utils.version}</version>
+            </dependency>
             <dependency>
                 <groupId>org.onap.ccsdk.cds.controllerblueprints</groupId>
                 <artifactId>blueprint-proto</artifactId>
diff --git a/pom.xml b/pom.xml
index 614acda..1e2f62f 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@ limitations under the License.
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>1.5.0</version>
+        <version>1.5.1-SNAPSHOT</version>
         <relativePath/>
     </parent>