You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by al...@apache.org on 2020/06/01 14:55:55 UTC
[nifi-minifi] branch master updated: MINIFI-521 Change logic around
how updated RPG logic is applied to handle all subsequent versions
This is an automated email from the ASF dual-hosted git repository.
aldrin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nifi-minifi.git
The following commit(s) were added to refs/heads/master by this push:
new 2e0970b MINIFI-521 Change logic around how updated RPG logic is applied to handle all subsequent versions
2e0970b is described below
commit 2e0970b8dd29797b1f8d5d710ca29d0d0486113d
Author: Aldrin Piri <al...@apache.org>
AuthorDate: Thu Mar 19 09:38:16 2020 -0400
MINIFI-521 Change logic around how updated RPG logic is applied to handle all subsequent versions
Add test for supplied sample file
This closes #188 and closes #185.
Signed-off-by: Aldrin Piri <al...@apache.org>
---
.../configuration/dto/FlowSnippetDTOEnricher.java | 9 +-
.../toolkit/configuration/ConfigMainTest.java | 5 +
.../resources/MINIFI-521_1.3_TemplateEncoding.xml | 205 +++++++++++++++++++++
.../resources/MINIFI-521_1.3_TemplateEncoding.yml | 112 +++++++++++
4 files changed, 328 insertions(+), 3 deletions(-)
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/FlowSnippetDTOEnricher.java b/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/FlowSnippetDTOEnricher.java
index a197925..4795e12 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/FlowSnippetDTOEnricher.java
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/FlowSnippetDTOEnricher.java
@@ -65,14 +65,17 @@ public class FlowSnippetDTOEnricher {
*/
if (encodingVersion != null) {
switch (encodingVersion) {
- case "1.2":
+ // Perform a no-op for the first two versions of templates
+ case "1.0":
+ case "1.1":
+ break;
+ // Starting in 1.2, the way in which RPGs are mapped has changed
+ default:
// Map all port DTOs to their respective targetIds
rpgIdToTargetIdMap.putAll(
Stream.concat(rpgInputPortDtos.stream(), rpgOutputPortDtos.stream())
.collect(Collectors.toMap(RemoteProcessGroupPortDTO::getId, RemoteProcessGroupPortDTO::getTargetId)));
break;
- default:
- break;
}
}
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMainTest.java b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMainTest.java
index fd8b56b..66accea 100644
--- a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMainTest.java
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMainTest.java
@@ -179,6 +179,11 @@ public class ConfigMainTest {
}
@Test
+ public void testTransformRoundTrip13TemplateEncoding() throws IOException, JAXBException, SchemaLoaderException {
+ transformRoundTrip("MINIFI-521_1.3_TemplateEncoding");
+ }
+
+ @Test
public void testTransformRoundTripDecompression() throws IOException, JAXBException, SchemaLoaderException {
transformRoundTrip("DecompressionCircularFlow");
}
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MINIFI-521_1.3_TemplateEncoding.xml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MINIFI-521_1.3_TemplateEncoding.xml
new file mode 100644
index 0000000..1ae143b
--- /dev/null
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MINIFI-521_1.3_TemplateEncoding.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<template encoding-version="1.3">
+ <description></description>
+ <groupId>dacdd7b8-016e-1000-3bfe-7b025a1f4a65</groupId>
+ <name>MiNiFi2</name>
+ <snippet>
+ <processGroups>
+ <id>e544a343-e2f0-3112-0000-000000000000</id>
+ <parentGroupId>f73cd914-561d-3ade-0000-000000000000</parentGroupId>
+ <position>
+ <x>0.0</x>
+ <y>0.0</y>
+ </position>
+ <comments></comments>
+ <contents>
+ <connections>
+ <id>10de7342-41ef-37a5-0000-000000000000</id>
+ <parentGroupId>e544a343-e2f0-3112-0000-000000000000</parentGroupId>
+ <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+ <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+ <destination>
+ <groupId>1e18bdb9-7df3-3fba-0000-000000000000</groupId>
+ <id>9b02eb45-3c2d-3fb4-91cf-880d5038c0cd</id>
+ <type>REMOTE_INPUT_PORT</type>
+ </destination>
+ <flowFileExpiration>0 sec</flowFileExpiration>
+ <labelIndex>1</labelIndex>
+ <loadBalanceCompression>DO_NOT_COMPRESS</loadBalanceCompression>
+ <loadBalancePartitionAttribute></loadBalancePartitionAttribute>
+ <loadBalanceStatus>LOAD_BALANCE_NOT_CONFIGURED</loadBalanceStatus>
+ <loadBalanceStrategy>DO_NOT_LOAD_BALANCE</loadBalanceStrategy>
+ <name></name>
+ <selectedRelationships>success</selectedRelationships>
+ <source>
+ <groupId>e544a343-e2f0-3112-0000-000000000000</groupId>
+ <id>246f7d78-f8e1-3c88-0000-000000000000</id>
+ <type>PROCESSOR</type>
+ </source>
+ <zIndex>0</zIndex>
+ </connections>
+ <processors>
+ <id>246f7d78-f8e1-3c88-0000-000000000000</id>
+ <parentGroupId>e544a343-e2f0-3112-0000-000000000000</parentGroupId>
+ <position>
+ <x>-16.0</x>
+ <y>104.0</y>
+ </position>
+ <bundle>
+ <artifact>nifi-standard-nar</artifact>
+ <group>org.apache.nifi</group>
+ <version>1.10.0</version>
+ </bundle>
+ <config>
+ <bulletinLevel>WARN</bulletinLevel>
+ <comments></comments>
+ <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+ <descriptors>
+ <entry>
+ <key>tail-mode</key>
+ <value>
+ <name>tail-mode</name>
+ </value>
+ </entry>
+ <entry>
+ <key>File to Tail</key>
+ <value>
+ <name>File to Tail</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Rolling Filename Pattern</key>
+ <value>
+ <name>Rolling Filename Pattern</name>
+ </value>
+ </entry>
+ <entry>
+ <key>tail-base-directory</key>
+ <value>
+ <name>tail-base-directory</name>
+ </value>
+ </entry>
+ <entry>
+ <key>Initial Start Position</key>
+ <value>
+ <name>Initial Start Position</name>
+ </value>
+ </entry>
+ <entry>
+ <key>File Location</key>
+ <value>
+ <name>File Location</name>
+ </value>
+ </entry>
+ <entry>
+ <key>tailfile-recursive-lookup</key>
+ <value>
+ <name>tailfile-recursive-lookup</name>
+ </value>
+ </entry>
+ <entry>
+ <key>tailfile-lookup-frequency</key>
+ <value>
+ <name>tailfile-lookup-frequency</name>
+ </value>
+ </entry>
+ <entry>
+ <key>tailfile-maximum-age</key>
+ <value>
+ <name>tailfile-maximum-age</name>
+ </value>
+ </entry>
+ </descriptors>
+ <executionNode>ALL</executionNode>
+ <lossTolerant>false</lossTolerant>
+ <penaltyDuration>30 sec</penaltyDuration>
+ <properties>
+ <entry>
+ <key>tail-mode</key>
+ <value>Single file</value>
+ </entry>
+ <entry>
+ <key>File to Tail</key>
+ <value>/opt/minifi/minifi_test_dir</value>
+ </entry>
+ <entry>
+ <key>Rolling Filename Pattern</key>
+ </entry>
+ <entry>
+ <key>tail-base-directory</key>
+ </entry>
+ <entry>
+ <key>Initial Start Position</key>
+ <value>Beginning of File</value>
+ </entry>
+ <entry>
+ <key>File Location</key>
+ <value>Local</value>
+ </entry>
+ <entry>
+ <key>tailfile-recursive-lookup</key>
+ <value>false</value>
+ </entry>
+ <entry>
+ <key>tailfile-lookup-frequency</key>
+ <value>10 minutes</value>
+ </entry>
+ <entry>
+ <key>tailfile-maximum-age</key>
+ <value>24 hours</value>
+ </entry>
+ </properties>
+ <runDurationMillis>0</runDurationMillis>
+ <schedulingPeriod>0 sec</schedulingPeriod>
+ <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+ <yieldDuration>1 sec</yieldDuration>
+ </config>
+ <executionNodeRestricted>false</executionNodeRestricted>
+ <name>TailFile</name>
+ <relationships>
+ <autoTerminate>false</autoTerminate>
+ <name>success</name>
+ </relationships>
+ <state>STOPPED</state>
+ <style/>
+ <type>org.apache.nifi.processors.standard.TailFile</type>
+ </processors>
+ <remoteProcessGroups>
+ <id>1e18bdb9-7df3-3fba-0000-000000000000</id>
+ <parentGroupId>e544a343-e2f0-3112-0000-000000000000</parentGroupId>
+ <position>
+ <x>680.0</x>
+ <y>88.0</y>
+ </position>
+ <comments></comments>
+ <communicationsTimeout>30 sec</communicationsTimeout>
+ <contents>
+ <inputPorts>
+ <batchSettings/>
+ <comments></comments>
+ <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+ <connected>true</connected>
+ <exists>true</exists>
+ <groupId>db4d2e20-016e-1000-d3c7-73a67e2b1d67</groupId>
+ <id>9b02eb45-3c2d-3fb4-91cf-880d5038c0cd</id>
+ <name>input_minifi</name>
+ <targetId>dadd7f29-016e-1000-3c91-89495c813674</targetId>
+ <targetRunning>false</targetRunning>
+ <transmitting>false</transmitting>
+ <useCompression>false</useCompression>
+ </inputPorts>
+ </contents>
+ <proxyHost></proxyHost>
+ <proxyUser></proxyUser>
+ <targetUri>http://nifi-server:8080/nifi</targetUri>
+ <targetUris>http://nifi-server:8080/nifi</targetUris>
+ <transportProtocol>RAW</transportProtocol>
+ <yieldDuration>10 sec</yieldDuration>
+ </remoteProcessGroups>
+ </contents>
+ <name>MiNiFi</name>
+ <variables/>
+ </processGroups>
+ </snippet>
+ <timestamp>12/06/2019 13:23:39 UTC</timestamp>
+</template>
\ No newline at end of file
diff --git a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MINIFI-521_1.3_TemplateEncoding.yml b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MINIFI-521_1.3_TemplateEncoding.yml
new file mode 100644
index 0000000..379216c
--- /dev/null
+++ b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MINIFI-521_1.3_TemplateEncoding.yml
@@ -0,0 +1,112 @@
+MiNiFi Config Version: 3
+Flow Controller:
+ name: MiNiFi2
+ comment: ''
+Core Properties:
+ flow controller graceful shutdown period: 10 sec
+ flow service write delay interval: 500 ms
+ administrative yield duration: 30 sec
+ bored yield duration: 10 millis
+ max concurrent threads: 1
+ variable registry properties: ''
+FlowFile Repository:
+ partitions: 256
+ checkpoint interval: 2 mins
+ always sync: false
+ Swap:
+ threshold: 20000
+ in period: 5 sec
+ in threads: 1
+ out period: 5 sec
+ out threads: 4
+Content Repository:
+ content claim max appendable size: 10 MB
+ content claim max flow files: 100
+ always sync: false
+Provenance Repository:
+ provenance rollover time: 1 min
+ implementation: org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository
+Component Status Repository:
+ buffer size: 1440
+ snapshot frequency: 1 min
+Security Properties:
+ keystore: ''
+ keystore type: ''
+ keystore password: ''
+ key password: ''
+ truststore: ''
+ truststore type: ''
+ truststore password: ''
+ ssl protocol: ''
+ Sensitive Props:
+ key:
+ algorithm: PBEWITHMD5AND256BITAES-CBC-OPENSSL
+ provider: BC
+Processors: []
+Controller Services: []
+Process Groups:
+ - id: e544a343-e2f0-3112-0000-000000000000
+ name: MiNiFi
+ Processors:
+ - id: 246f7d78-f8e1-3c88-0000-000000000000
+ name: TailFile
+ class: org.apache.nifi.processors.standard.TailFile
+ max concurrent tasks: 1
+ scheduling strategy: TIMER_DRIVEN
+ scheduling period: 0 sec
+ penalization period: 30 sec
+ yield period: 1 sec
+ run duration nanos: 0
+ auto-terminated relationships list: []
+ Properties:
+ File Location: Local
+ File to Tail: /opt/minifi/minifi_test_dir
+ Initial Start Position: Beginning of File
+ Rolling Filename Pattern:
+ tail-base-directory:
+ tail-mode: Single file
+ tailfile-lookup-frequency: 10 minutes
+ tailfile-maximum-age: 24 hours
+ tailfile-recursive-lookup: 'false'
+ Controller Services: []
+ Process Groups: []
+ Input Ports: []
+ Output Ports: []
+ Funnels: []
+ Connections:
+ - id: 10de7342-41ef-37a5-0000-000000000000
+ name: TailFile/success/dadd7f29-016e-1000-3c91-89495c813674
+ source id: 246f7d78-f8e1-3c88-0000-000000000000
+ source relationship names:
+ - success
+ destination id: dadd7f29-016e-1000-3c91-89495c813674
+ max work queue size: 10000
+ max work queue data size: 1 GB
+ flowfile expiration: 0 sec
+ queue prioritizer class: ''
+ Remote Process Groups:
+ - id: 1e18bdb9-7df3-3fba-0000-000000000000
+ name: ''
+ url: http://nifi-server:8080/nifi
+ comment: ''
+ timeout: 30 sec
+ yield period: 10 sec
+ transport protocol: RAW
+ proxy host: ''
+ proxy port: ''
+ proxy user: ''
+ proxy password: ''
+ local network interface: ''
+ Input Ports:
+ - id: dadd7f29-016e-1000-3c91-89495c813674
+ name: input_minifi
+ comment: ''
+ max concurrent tasks: 1
+ use compression: false
+ Output Ports: []
+Input Ports: []
+Output Ports: []
+Funnels: []
+Connections: []
+Remote Process Groups: []
+NiFi Properties Overrides: {}
\ No newline at end of file