Upgrade io.grpc library in CDS actor 70/117170/3
authorRam Krishna Verma <ram_krishna.verma@bell.ca>
Wed, 27 Jan 2021 21:31:45 +0000 (16:31 -0500)
committerRam Krishna Verma <ram_krishna.verma@bell.ca>
Thu, 28 Jan 2021 14:08:24 +0000 (09:08 -0500)
Upgrading to latest version of io.grpc 1.35.0 to fix security issues. The methods named loadBalancerFactory and nameResolverFactory have been removed in the latest version. After going through the grpc-java codebase found that the one's we were using to initialize those factories are made default. Confirmed my understanding by posting a query on grpc-java github repo.

Issue-ID: POLICY-2936
Change-Id: I238700ac3f384ff8e5fdef6c3f2ccfb54bff7005
Signed-off-by: Ram Krishna Verma <ram_krishna.verma@bell.ca>
models-interactions/model-impl/cds/pom.xml
models-interactions/model-impl/cds/src/main/java/org/onap/policy/cds/client/CdsProcessorGrpcClient.java
models-interactions/model-simulators/src/test/java/org/onap/policy/simulators/CdsSimulatorTest.java

index 25da632..8ed5c22 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ============LICENSE_START=======================================================
-  Copyright (C) 2019-2020 Bell Canada.
+  Copyright (C) 2019-2021 Bell Canada.
   Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
@@ -33,8 +33,8 @@
   <description>gRPC client implementation to send process message to CDS blueprint processor gRPC endpoint.</description>
 
   <properties>
-    <grpc.version>1.17.1</grpc.version>
-    <protobuf.version>3.6.1</protobuf.version>
+    <grpc.version>1.35.0</grpc.version>
+    <protobuf.version>3.14.0</protobuf.version>
   </properties>
 
   <dependencies>
index efa8369..2dc128f 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- * Copyright (C) 2019 Bell Canada.
+ * Copyright (C) 2019-2021 Bell Canada.
  * Modifications Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,8 +21,6 @@ package org.onap.policy.cds.client;
 
 import com.google.common.base.Preconditions;
 import io.grpc.ManagedChannel;
-import io.grpc.internal.DnsNameResolverProvider;
-import io.grpc.internal.PickFirstLoadBalancerProvider;
 import io.grpc.netty.NettyChannelBuilder;
 import java.util.concurrent.CountDownLatch;
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput;
@@ -65,8 +63,6 @@ public class CdsProcessorGrpcClient implements AutoCloseable {
         String url = bldr.toString();
 
         this.channel = NettyChannelBuilder.forAddress(props.getHost(), props.getPort())
-            .nameResolverFactory(new DnsNameResolverProvider())
-            .loadBalancerFactory(new PickFirstLoadBalancerProvider())
             .intercept(new BasicAuthClientHeaderInterceptor(props)).usePlaintext().build();
         this.handler = new CdsProcessorHandler(listener, url);
         LOGGER.info("CdsProcessorListener started");
index 07ec0dc..21d766f 100644 (file)
@@ -3,7 +3,7 @@
  * ONAP
  * ================================================================================
  * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
- * Modifications Copyright (C) 2020 Bell Canada. All rights reserved.
+ * Modifications Copyright (C) 2020-2021 Bell Canada. 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.
@@ -26,8 +26,6 @@ import static org.junit.Assert.assertTrue;
 
 import com.google.protobuf.util.JsonFormat;
 import io.grpc.ManagedChannel;
-import io.grpc.internal.DnsNameResolverProvider;
-import io.grpc.internal.PickFirstLoadBalancerProvider;
 import io.grpc.netty.NettyChannelBuilder;
 import io.grpc.stub.StreamObserver;
 import java.io.IOException;
@@ -77,9 +75,7 @@ public class CdsSimulatorTest {
         Builder builder = ExecutionServiceInput.newBuilder();
         JsonFormat.parser().ignoringUnknownFields().merge(reqstr, builder);
         ExecutionServiceInput request = builder.build();
-        ManagedChannel channel = NettyChannelBuilder.forAddress(Util.LOCALHOST, sim.getPort())
-            .nameResolverFactory(new DnsNameResolverProvider())
-            .loadBalancerFactory(new PickFirstLoadBalancerProvider()).usePlaintext().build();
+        ManagedChannel channel = NettyChannelBuilder.forAddress(Util.LOCALHOST, sim.getPort()).usePlaintext().build();
 
         try {
             final CompletableFuture<ExecutionServiceOutput> future = new CompletableFuture<>();