turcsanyip commented on a change in pull request #5136:
URL: https://github.com/apache/nifi/pull/5136#discussion_r647320815



##########
File path: 
nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/main/java/org/apache/nifi/processors/azure/eventhub/ConsumeAzureEventHub.java
##########
@@ -91,7 +91,8 @@
 })
 public class ConsumeAzureEventHub extends AbstractSessionFactoryProcessor {
 
-    private static final String FORMAT_STORAGE_CONNECTION_STRING = 
"DefaultEndpointsProtocol=https;AccountName=%s;AccountKey=%s";
+    private static final String FORMAT_STORAGE_CONNECTION_STRING_FOR_KEY = 
"DefaultEndpointsProtocol=https;AccountName=%s;AccountKey=%s";
+    private static final String FORMAT_STORAGE_CONNECTION_STRING_FOR_TOKEN = 
"BlobEndpoint=https://%s.blob.core.windows.net/;SharedAccessSignature=%s";;

Review comment:
       To make it more straightforward, I would suggest using `FOR_ACCOUNT_KEY` 
and `FOR_SAS_TOKEN` suffixes.

##########
File path: 
nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/main/java/org/apache/nifi/processors/azure/eventhub/ConsumeAzureEventHub.java
##########
@@ -332,6 +345,24 @@ public void setWriterFactory(RecordSetWriterFactory 
writerFactory) {
                     .valid(false)
                     .build());
         }
+
+        if (storageAccountKey == null && storageSasToken == null) {
+            results.add(new ValidationResult.Builder()
+                    .subject("Storage Account Key or Storage SAS Token")

Review comment:
       `getDisplayName()` could be used as for the explanation below.

##########
File path: 
nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/test/java/org/apache/nifi/processors/azure/eventhub/TestConsumeAzureEventHub.java
##########
@@ -132,12 +135,42 @@ public void 
testProcessorConfigValidityWithManagedIdentityFlag() throws Initiali
         testRunner.assertValid();
     }
 
+    @Test
+    public void testProcessorConfigValidityWithNeitherStorageKeyNorTokenSet() {
+        TestRunner testRunner = TestRunners.newTestRunner(processor);
+        
testRunner.setProperty(ConsumeAzureEventHub.EVENT_HUB_NAME,eventHubName);
+        testRunner.assertNotValid();
+        testRunner.setProperty(ConsumeAzureEventHub.NAMESPACE,namespaceName);
+        testRunner.assertNotValid();
+        testRunner.setProperty(ConsumeAzureEventHub.ACCESS_POLICY_NAME, 
policyName);
+        testRunner.setProperty(ConsumeAzureEventHub.POLICY_PRIMARY_KEY, 
policyKey);
+        testRunner.assertNotValid();
+        testRunner.setProperty(ConsumeAzureEventHub.STORAGE_ACCOUNT_NAME, 
storageAccountName);
+        testRunner.assertNotValid();
+    }
+
+    @Test
+    public void testProcessorConfigValidityWithBothStorageKeyAndTokenSet() {
+        TestRunner testRunner = TestRunners.newTestRunner(processor);
+        
testRunner.setProperty(ConsumeAzureEventHub.EVENT_HUB_NAME,eventHubName);
+        testRunner.assertNotValid();
+        testRunner.setProperty(ConsumeAzureEventHub.NAMESPACE,namespaceName);
+        testRunner.assertNotValid();
+        testRunner.setProperty(ConsumeAzureEventHub.ACCESS_POLICY_NAME, 
policyName);
+        testRunner.setProperty(ConsumeAzureEventHub.POLICY_PRIMARY_KEY, 
policyKey);
+        testRunner.assertNotValid();
+        testRunner.setProperty(ConsumeAzureEventHub.STORAGE_ACCOUNT_NAME, 
storageAccountName);
+        testRunner.setProperty(ConsumeAzureEventHub.STORAGE_ACCOUNT_KEY, 
storageAccountKey);
+        testRunner.setProperty(ConsumeAzureEventHub.STORAGE_SAS_TOKEN, 
storageSasToken);
+        testRunner.assertNotValid();
+    }
+

Review comment:
       It would be good to have some tests for the valid cases as well. (when 
Storage Account Key specified only, and when Storage SAS Token only).

##########
File path: 
nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/test/java/org/apache/nifi/processors/azure/eventhub/TestConsumeAzureEventHub.java
##########
@@ -150,7 +183,7 @@ public void testReceivedApplicationProperties() throws 
Exception {
 
     @Test
     public void testReceiveOne() throws Exception {
-        final Iterable<EventData> eventDataList = 
Arrays.asList(EventData.create("one".getBytes(StandardCharsets.UTF_8)));
+        final Iterable<EventData> eventDataList = 
Collections.singletonList(EventData.create("one" 
.getBytes(StandardCharsets.UTF_8)));

Review comment:
       Typo / wrong formatting: `"one".getBytes()`

##########
File path: 
nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/main/java/org/apache/nifi/processors/azure/eventhub/ConsumeAzureEventHub.java
##########
@@ -332,6 +345,24 @@ public void setWriterFactory(RecordSetWriterFactory 
writerFactory) {
                     .valid(false)
                     .build());
         }
+
+        if (storageAccountKey == null && storageSasToken == null) {
+            results.add(new ValidationResult.Builder()
+                    .subject("Storage Account Key or Storage SAS Token")
+                    .explanation(String.format("Either %s or %s should be 
set.",

Review comment:
       The explanation will be concatenated into the middle of the validation 
failure message so it should start with lower case (_"...is invalid because 
either..."_)




-- 
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.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to