turcsanyip commented on a change in pull request #5190:
URL: https://github.com/apache/nifi/pull/5190#discussion_r661510870
##########
File path:
nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/main/java/org/apache/nifi/processors/azure/storage/DeleteAzureDataLakeStorage.java
##########
@@ -16,56 +16,105 @@
*/
package org.apache.nifi.processors.azure.storage;
+import com.azure.core.util.Context;
import com.azure.storage.file.datalake.DataLakeDirectoryClient;
import com.azure.storage.file.datalake.DataLakeFileClient;
import com.azure.storage.file.datalake.DataLakeFileSystemClient;
import com.azure.storage.file.datalake.DataLakeServiceClient;
+import com.azure.storage.file.datalake.models.DataLakeRequestConditions;
import org.apache.nifi.annotation.behavior.InputRequirement;
import org.apache.nifi.annotation.behavior.InputRequirement.Requirement;
import org.apache.nifi.annotation.documentation.CapabilityDescription;
import org.apache.nifi.annotation.documentation.SeeAlso;
import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
import org.apache.nifi.processors.azure.AbstractAzureDataLakeStorageProcessor;
-import java.util.concurrent.TimeUnit;
+import java.time.Duration;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import static
org.apache.nifi.processors.azure.storage.utils.ADLSAttributes.ATTR_NAME_FILENAME;
@Tags({"azure", "microsoft", "cloud", "storage", "adlsgen2", "datalake"})
@SeeAlso({PutAzureDataLakeStorage.class, FetchAzureDataLakeStorage.class,
ListAzureDataLakeStorage.class})
@CapabilityDescription("Deletes the provided file from Azure Data Lake
Storage")
@InputRequirement(Requirement.INPUT_REQUIRED)
public class DeleteAzureDataLakeStorage extends
AbstractAzureDataLakeStorageProcessor {
+ public static final AllowableValue FS_TYPE_FILE = new
AllowableValue("file", "File", "The object to be deleted is a file.");
+ public static final AllowableValue FS_TYPE_FOLDER = new
AllowableValue("folder", "Folder", "The object to be deleted is a folder.");
Review comment:
`Folder` is called `Directory` in the existing processor property and
also on Azure Portal. Please use that terminology.
##########
File path:
nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/main/java/org/apache/nifi/processors/azure/storage/DeleteAzureDataLakeStorage.java
##########
@@ -16,56 +16,105 @@
*/
package org.apache.nifi.processors.azure.storage;
+import com.azure.core.util.Context;
import com.azure.storage.file.datalake.DataLakeDirectoryClient;
import com.azure.storage.file.datalake.DataLakeFileClient;
import com.azure.storage.file.datalake.DataLakeFileSystemClient;
import com.azure.storage.file.datalake.DataLakeServiceClient;
+import com.azure.storage.file.datalake.models.DataLakeRequestConditions;
import org.apache.nifi.annotation.behavior.InputRequirement;
import org.apache.nifi.annotation.behavior.InputRequirement.Requirement;
import org.apache.nifi.annotation.documentation.CapabilityDescription;
import org.apache.nifi.annotation.documentation.SeeAlso;
import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
import org.apache.nifi.processors.azure.AbstractAzureDataLakeStorageProcessor;
-import java.util.concurrent.TimeUnit;
+import java.time.Duration;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import static
org.apache.nifi.processors.azure.storage.utils.ADLSAttributes.ATTR_NAME_FILENAME;
@Tags({"azure", "microsoft", "cloud", "storage", "adlsgen2", "datalake"})
@SeeAlso({PutAzureDataLakeStorage.class, FetchAzureDataLakeStorage.class,
ListAzureDataLakeStorage.class})
@CapabilityDescription("Deletes the provided file from Azure Data Lake
Storage")
@InputRequirement(Requirement.INPUT_REQUIRED)
public class DeleteAzureDataLakeStorage extends
AbstractAzureDataLakeStorageProcessor {
+ public static final AllowableValue FS_TYPE_FILE = new
AllowableValue("file", "File", "The object to be deleted is a file.");
+ public static final AllowableValue FS_TYPE_FOLDER = new
AllowableValue("folder", "Folder", "The object to be deleted is a folder.");
+
+ public static final PropertyDescriptor FILE_SYSTEM_OBJECT_TYPE = new
PropertyDescriptor.Builder()
+ .name("file-system-object-type")
+ .displayName("File System Object Type")
Review comment:
The existing `Filesystem Name` property contains "Filesystem" as single
word (and also the other ADLS processors). We should use the same format in all
property titles.
##########
File path:
nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/main/java/org/apache/nifi/processors/azure/storage/DeleteAzureDataLakeStorage.java
##########
@@ -16,56 +16,105 @@
*/
package org.apache.nifi.processors.azure.storage;
+import com.azure.core.util.Context;
import com.azure.storage.file.datalake.DataLakeDirectoryClient;
import com.azure.storage.file.datalake.DataLakeFileClient;
import com.azure.storage.file.datalake.DataLakeFileSystemClient;
import com.azure.storage.file.datalake.DataLakeServiceClient;
+import com.azure.storage.file.datalake.models.DataLakeRequestConditions;
import org.apache.nifi.annotation.behavior.InputRequirement;
import org.apache.nifi.annotation.behavior.InputRequirement.Requirement;
import org.apache.nifi.annotation.documentation.CapabilityDescription;
import org.apache.nifi.annotation.documentation.SeeAlso;
import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
import org.apache.nifi.processors.azure.AbstractAzureDataLakeStorageProcessor;
-import java.util.concurrent.TimeUnit;
+import java.time.Duration;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import static
org.apache.nifi.processors.azure.storage.utils.ADLSAttributes.ATTR_NAME_FILENAME;
@Tags({"azure", "microsoft", "cloud", "storage", "adlsgen2", "datalake"})
@SeeAlso({PutAzureDataLakeStorage.class, FetchAzureDataLakeStorage.class,
ListAzureDataLakeStorage.class})
@CapabilityDescription("Deletes the provided file from Azure Data Lake
Storage")
@InputRequirement(Requirement.INPUT_REQUIRED)
public class DeleteAzureDataLakeStorage extends
AbstractAzureDataLakeStorageProcessor {
+ public static final AllowableValue FS_TYPE_FILE = new
AllowableValue("file", "File", "The object to be deleted is a file.");
+ public static final AllowableValue FS_TYPE_FOLDER = new
AllowableValue("folder", "Folder", "The object to be deleted is a folder.");
+
+ public static final PropertyDescriptor FILE_SYSTEM_OBJECT_TYPE = new
PropertyDescriptor.Builder()
+ .name("file-system-object-type")
+ .displayName("File System Object Type")
+ .description("They type of the file system object to be deleted.
It can be either folder or file.")
+ .allowableValues(FS_TYPE_FILE, FS_TYPE_FOLDER)
+ .required(true)
+ .build();
+
+ public static final PropertyDescriptor FILE = new
PropertyDescriptor.Builder()
+ .name("file-name").displayName("File Name")
+ .description("The filename")
+ .addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
+ .required(true)
+ .defaultValue(String.format("${%s}", ATTR_NAME_FILENAME))
+ .dependsOn(FILE_SYSTEM_OBJECT_TYPE, FS_TYPE_FILE)
+ .build();
+
+ private static final List<PropertyDescriptor> PROPERTIES =
Collections.unmodifiableList(Arrays.asList(
+ ADLS_CREDENTIALS_SERVICE,
+ FILE_SYSTEM_OBJECT_TYPE,
Review comment:
I would move it after `FILESYSTEM` because the new property affects
`DIRECTORY` and `FILE` (but not `FILESYSTEM`).
##########
File path:
nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/main/java/org/apache/nifi/processors/azure/storage/DeleteAzureDataLakeStorage.java
##########
@@ -16,56 +16,105 @@
*/
package org.apache.nifi.processors.azure.storage;
+import com.azure.core.util.Context;
import com.azure.storage.file.datalake.DataLakeDirectoryClient;
import com.azure.storage.file.datalake.DataLakeFileClient;
import com.azure.storage.file.datalake.DataLakeFileSystemClient;
import com.azure.storage.file.datalake.DataLakeServiceClient;
+import com.azure.storage.file.datalake.models.DataLakeRequestConditions;
import org.apache.nifi.annotation.behavior.InputRequirement;
import org.apache.nifi.annotation.behavior.InputRequirement.Requirement;
import org.apache.nifi.annotation.documentation.CapabilityDescription;
import org.apache.nifi.annotation.documentation.SeeAlso;
import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
import org.apache.nifi.processors.azure.AbstractAzureDataLakeStorageProcessor;
-import java.util.concurrent.TimeUnit;
+import java.time.Duration;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import static
org.apache.nifi.processors.azure.storage.utils.ADLSAttributes.ATTR_NAME_FILENAME;
@Tags({"azure", "microsoft", "cloud", "storage", "adlsgen2", "datalake"})
@SeeAlso({PutAzureDataLakeStorage.class, FetchAzureDataLakeStorage.class,
ListAzureDataLakeStorage.class})
@CapabilityDescription("Deletes the provided file from Azure Data Lake
Storage")
@InputRequirement(Requirement.INPUT_REQUIRED)
public class DeleteAzureDataLakeStorage extends
AbstractAzureDataLakeStorageProcessor {
+ public static final AllowableValue FS_TYPE_FILE = new
AllowableValue("file", "File", "The object to be deleted is a file.");
+ public static final AllowableValue FS_TYPE_FOLDER = new
AllowableValue("folder", "Folder", "The object to be deleted is a folder.");
+
+ public static final PropertyDescriptor FILE_SYSTEM_OBJECT_TYPE = new
PropertyDescriptor.Builder()
+ .name("file-system-object-type")
+ .displayName("File System Object Type")
+ .description("They type of the file system object to be deleted.
It can be either folder or file.")
+ .allowableValues(FS_TYPE_FILE, FS_TYPE_FOLDER)
+ .required(true)
Review comment:
Adding a mandatory attribute without default value is backward
incompatible.
`FS_TYPE_FILE` should be used as default because it provides the original
functionality.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]