NIFI-673: Added sftp.listing.user attribute to FlowFiles created by ListSFTP; ensure that FetchSFTP indicates that the username supports Expression Language
Project: http://git-wip-us.apache.org/repos/asf/nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/4e382880 Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/4e382880 Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/4e382880 Branch: refs/heads/NIFI-655 Commit: 4e38288062f33ecafdfd3b4bc453bdffe54e752e Parents: b0322d9 Author: Mark Payne <marka...@hotmail.com> Authored: Fri Oct 23 16:13:52 2015 -0400 Committer: Mark Payne <marka...@hotmail.com> Committed: Sun Oct 25 11:13:02 2015 -0400 ---------------------------------------------------------------------- .../apache/nifi/processors/standard/FetchFileTransfer.java | 7 +++++++ .../java/org/apache/nifi/processors/standard/FetchSFTP.java | 2 +- .../apache/nifi/processors/standard/ListFileTransfer.java | 8 ++++++++ .../java/org/apache/nifi/processors/standard/ListSFTP.java | 3 ++- 4 files changed, 18 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi/blob/4e382880/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchFileTransfer.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchFileTransfer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchFileTransfer.java index ab0be78..a405afb 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchFileTransfer.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchFileTransfer.java @@ -77,6 +77,13 @@ public abstract class FetchFileTransfer extends AbstractProcessor { .expressionLanguageSupported(true) .required(true) .build(); + public static final PropertyDescriptor USERNAME = new PropertyDescriptor.Builder() + .name("Username") + .description("Username") + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .expressionLanguageSupported(true) + .required(true) + .build(); public static final PropertyDescriptor REMOTE_FILENAME = new PropertyDescriptor.Builder() .name("Remote File") .description("The fully qualified filename on the remote system") http://git-wip-us.apache.org/repos/asf/nifi/blob/4e382880/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchSFTP.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchSFTP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchSFTP.java index ad81c83..b95d864 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchSFTP.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchSFTP.java @@ -53,7 +53,7 @@ public class FetchSFTP extends FetchFileTransfer { final List<PropertyDescriptor> properties = new ArrayList<>(); properties.add(HOSTNAME); properties.add(port); - properties.add(SFTPTransfer.USERNAME); + properties.add(USERNAME); properties.add(SFTPTransfer.PASSWORD); properties.add(SFTPTransfer.PRIVATE_KEY_PATH); properties.add(SFTPTransfer.PRIVATE_KEY_PASSPHRASE); http://git-wip-us.apache.org/repos/asf/nifi/blob/4e382880/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListFileTransfer.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListFileTransfer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListFileTransfer.java index 1176fd0..b6c8c28 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListFileTransfer.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListFileTransfer.java @@ -45,6 +45,13 @@ public abstract class ListFileTransfer extends AbstractListProcessor<FileInfo> { .expressionLanguageSupported(true) .required(true) .build(); + public static final PropertyDescriptor USERNAME = new PropertyDescriptor.Builder() + .name("Username") + .description("Username") + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .expressionLanguageSupported(true) + .required(true) + .build(); public static final PropertyDescriptor REMOTE_PATH = new PropertyDescriptor.Builder() .name("Remote Path") .description("The path on the remote system from which to pull or push files") @@ -64,6 +71,7 @@ public abstract class ListFileTransfer extends AbstractListProcessor<FileInfo> { attributes.put("file.group", fileInfo.getGroup()); attributes.put("file.permissions", fileInfo.getPermissions()); attributes.put(CoreAttributes.FILENAME.key(), fileInfo.getFileName()); + attributes.put(getProtocolName() + ".listing.user", context.getProperty(USERNAME).evaluateAttributeExpressions().getValue()); final String fullPath = fileInfo.getFullPathFileName(); if (fullPath != null) { http://git-wip-us.apache.org/repos/asf/nifi/blob/4e382880/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListSFTP.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListSFTP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListSFTP.java index 925e5f8..7226263 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListSFTP.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListSFTP.java @@ -39,6 +39,7 @@ import org.apache.nifi.processors.standard.util.SFTPTransfer; @WritesAttributes({ @WritesAttribute(attribute = "sftp.remote.host", description = "The hostname of the SFTP Server"), @WritesAttribute(attribute = "sftp.remote.port", description = "The port that was connected to on the SFTP Server"), + @WritesAttribute(attribute = "sftp.listing.user", description = "The username of the user that performed the SFTP Listing"), @WritesAttribute(attribute = "file.owner", description = "The numeric owner id of the source file"), @WritesAttribute(attribute = "file.group", description = "The numeric group id of the source file"), @WritesAttribute(attribute = "file.permissions", description = "The read/write/execute permissions of the source file"), @@ -54,7 +55,7 @@ public class ListSFTP extends ListFileTransfer { final List<PropertyDescriptor> properties = new ArrayList<>(); properties.add(HOSTNAME); properties.add(port); - properties.add(SFTPTransfer.USERNAME); + properties.add(USERNAME); properties.add(SFTPTransfer.PASSWORD); properties.add(SFTPTransfer.PRIVATE_KEY_PATH); properties.add(SFTPTransfer.PRIVATE_KEY_PASSPHRASE);