You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by jw...@apache.org on 2018/01/07 01:39:03 UTC
nifi git commit: NIFI-4197 - Expose some proxy settings to GCS
Processors
Repository: nifi
Updated Branches:
refs/heads/master d9866c75e -> 8d4fe38bb
NIFI-4197 - Expose some proxy settings to GCS Processors
Signed-off-by: James Wing <jv...@gmail.com>
This closes #2017.
Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/8d4fe38b
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/8d4fe38b
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/8d4fe38b
Branch: refs/heads/master
Commit: 8d4fe38bb44e34197e64d7a7e7e9b3787144e34d
Parents: d9866c7
Author: Andre F de Miranda <tr...@users.noreply.github.com>
Authored: Tue Jul 18 20:07:13 2017 +1000
Committer: James Wing <jv...@gmail.com>
Committed: Sat Jan 6 17:33:31 2018 -0800
----------------------------------------------------------------------
.../processors/gcp/AbstractGCPProcessor.java | 23 ++++++++++++-
.../gcp/storage/AbstractGCSProcessor.java | 35 +++++++++++++++++---
2 files changed, 53 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/nifi/blob/8d4fe38b/nifi-nar-bundles/nifi-gcp-bundle/nifi-gcp-processors/src/main/java/org/apache/nifi/processors/gcp/AbstractGCPProcessor.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-gcp-bundle/nifi-gcp-processors/src/main/java/org/apache/nifi/processors/gcp/AbstractGCPProcessor.java b/nifi-nar-bundles/nifi-gcp-bundle/nifi-gcp-processors/src/main/java/org/apache/nifi/processors/gcp/AbstractGCPProcessor.java
index 995805c..9b9a253 100644
--- a/nifi-nar-bundles/nifi-gcp-bundle/nifi-gcp-processors/src/main/java/org/apache/nifi/processors/gcp/AbstractGCPProcessor.java
+++ b/nifi-nar-bundles/nifi-gcp-bundle/nifi-gcp-processors/src/main/java/org/apache/nifi/processors/gcp/AbstractGCPProcessor.java
@@ -55,6 +55,25 @@ public abstract class AbstractGCPProcessor<
.addValidator(StandardValidators.INTEGER_VALIDATOR)
.build();
+ public static final PropertyDescriptor PROXY_HOST = new PropertyDescriptor
+ .Builder().name("gcp-proxy-host")
+ .displayName("Proxy host")
+ .description("IP or hostname of the proxy to be used")
+ .required(false)
+ .expressionLanguageSupported(false)
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .build();
+
+ public static final PropertyDescriptor PROXY_PORT = new PropertyDescriptor
+ .Builder().name("gcp-proxy-port")
+ .displayName("Proxy port")
+ .description("Proxy port number")
+ .required(false)
+ .expressionLanguageSupported(false)
+ .addValidator(StandardValidators.INTEGER_VALIDATOR)
+ .build();
+
+
/**
* Links to the {@link GCPCredentialsService} which provides credentials for this particular processor.
*/
@@ -78,7 +97,9 @@ public abstract class AbstractGCPProcessor<
return ImmutableList.of(
GCP_CREDENTIALS_PROVIDER_SERVICE,
PROJECT_ID,
- RETRY_COUNT
+ RETRY_COUNT,
+ PROXY_HOST,
+ PROXY_PORT
);
}
http://git-wip-us.apache.org/repos/asf/nifi/blob/8d4fe38b/nifi-nar-bundles/nifi-gcp-bundle/nifi-gcp-processors/src/main/java/org/apache/nifi/processors/gcp/storage/AbstractGCSProcessor.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-gcp-bundle/nifi-gcp-processors/src/main/java/org/apache/nifi/processors/gcp/storage/AbstractGCSProcessor.java b/nifi-nar-bundles/nifi-gcp-bundle/nifi-gcp-processors/src/main/java/org/apache/nifi/processors/gcp/storage/AbstractGCSProcessor.java
index ff368b5..7cc854d 100644
--- a/nifi-nar-bundles/nifi-gcp-bundle/nifi-gcp-processors/src/main/java/org/apache/nifi/processors/gcp/storage/AbstractGCSProcessor.java
+++ b/nifi-nar-bundles/nifi-gcp-bundle/nifi-gcp-processors/src/main/java/org/apache/nifi/processors/gcp/storage/AbstractGCSProcessor.java
@@ -16,6 +16,9 @@
*/
package org.apache.nifi.processors.gcp.storage;
+import com.google.api.client.http.HttpTransport;
+import com.google.api.client.http.javanet.NetHttpTransport;
+import com.google.auth.http.HttpTransportFactory;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.cloud.RetryParams;
import com.google.cloud.storage.Storage;
@@ -26,7 +29,10 @@ import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.Relationship;
import org.apache.nifi.processors.gcp.AbstractGCPProcessor;
+import org.apache.nifi.util.StringUtils;
+import java.net.InetSocketAddress;
+import java.net.Proxy;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
@@ -66,15 +72,36 @@ public abstract class AbstractGCSProcessor extends AbstractGCPProcessor<Storage,
@Override
protected StorageOptions getServiceOptions(ProcessContext context, GoogleCredentials credentials) {
final String projectId = context.getProperty(PROJECT_ID).getValue();
- final Integer retryCount = Integer.valueOf(context.getProperty(RETRY_COUNT).getValue());
+ final Integer retryCount = context.getProperty(RETRY_COUNT).asInteger();
- return StorageOptions.newBuilder()
+ final String proxyHost = context.getProperty(PROXY_HOST).getValue();
+ final Integer proxyPort = context.getProperty(PROXY_PORT).asInteger();
+
+ StorageOptions.Builder storageOptionsBuilder = StorageOptions.newBuilder()
.setCredentials(credentials)
.setProjectId(projectId)
.setRetryParams(RetryParams.newBuilder()
.setRetryMaxAttempts(retryCount)
.setRetryMinAttempts(retryCount)
- .build())
- .build();
+ .build());
+
+ if (!StringUtils.isBlank(proxyHost) && proxyPort > 0) {
+ storageOptionsBuilder.setHttpTransportFactory(new HttpTransportFactory() {
+ @Override
+ public HttpTransport create() {
+ final HttpTransport transport = new NetHttpTransport.Builder()
+ .setProxy(
+ new Proxy(
+ Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort)
+ )
+ )
+ .build();
+ return transport;
+ }
+ });
+ }
+ return storageOptionsBuilder.build();
}
+
+
}