You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@nifi.apache.org by Tomislav Novosel <to...@clearpeaks.com> on 2021/09/21 12:10:06 UTC

MiNiFi C2 server 0.5.0 bug or not?

Hi to all,

I am using MiNiFi C2 server version 0.5.0 and MiNiFi version 1.14.0.
C2 server is configured to pull templates from localhost NiFi installation
and MiNiFi is configured with configuration change ingestor to pull config from C2 server.

After I created MiNiFi flow on NiFi canvas including Remote Process Group pointed to the same
NiFi installation (IP and port configured and the flow tested on localhost, flowfiles are coming
on input port) I saved the flow as template.

The template has the following ID's for the input port:

                <inputPorts>
                    <batchSettings/>
                    <comments></comments>
                    <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
                    <connected>true</connected>
                    <exists>true</exists>
                    <groupId>f43fd60b-017b-1000-ad38-01d2ac321927</groupId>
                    <id>b4fbf2a8-46d0-3ac7-b833-21533794f7a7</id>
                    <name>DataFromSensors</name>
                    <targetId>f43dd13c-017b-1000-df9a-acf01964ae4f</targetId>

When C2 server pulls the template, it apparently sets wrong ID in config.yml file, instead of putting input port <id>,
it sets <targetId> into config.yml file, causing MiNiFi agent is unable to accept that configuration and denies it, it is simply wrong.

This is the Exception from MiNiFi log:

Caused by: org.apache.nifi.minifi.bootstrap.exception.InvalidConfigurationException: Failed to transform config file due to:[Connection with id 8f6c9b69-5b31-313e-0000-000000000000 has invalid destination id b4fbf2a8-46d0-3ac7-b833-21533794f7a7]
               at org.apache.nifi.minifi.bootstrap.util.ConfigTransformer.throwIfInvalid(ConfigTransformer.java:131)
               at org.apache.nifi.minifi.bootstrap.util.ConfigTransformer.transformConfigFile(ConfigTransformer.java:94)
               at org.apache.nifi.minifi.bootstrap.RunMiNiFi.performTransformation(RunMiNiFi.java:1693)

To fix it, I need to go  to cached config file in ./cache folder of C2 server, and set the right ID of the input port manually.

NOTE: I tried to convert template file manually using minifi tookit 1.14.0 and it sets correct <id> of the input port.

Is this a bug in C2 server or behaviour with purpose? I found the same case for minifi toolkit, but apparently it was fixed:
https://stackoverflow.com/questions/59214373/failing-in-minifi-tutorial-toolkit-error-connection-with-id-has-invalid-de

Thanks,
Tom

Re: MiNiFi C2 server 0.5.0 bug or not?

Posted by Jeremy Pemberton-Pigott <fu...@gmail.com>.
Hi Tom,

I think so, I sent a similar email recently to the list about this.  And
raised the issue here: https://issues.apache.org/jira/browse/NIFI-9075

Jeremy

On Tue, Sep 21, 2021 at 8:10 PM Tomislav Novosel <
tomislav.novosel@clearpeaks.com> wrote:

> Hi to all,
>
>
>
> I am using MiNiFi C2 server version 0.5.0 and MiNiFi version 1.14.0.
>
> C2 server is configured to pull templates from localhost NiFi installation
>
> and MiNiFi is configured with configuration change ingestor to pull config
> from C2 server.
>
>
>
> After I created MiNiFi flow on NiFi canvas including Remote Process Group
> pointed to the same
>
> NiFi installation (IP and port configured and the flow tested on
> localhost, flowfiles are coming
>
> on input port) I saved the flow as template.
>
>
>
> The template has the following ID's for the input port:
>
>
>
>                 <inputPorts>
>
>                     <batchSettings/>
>
>                     <comments></comments>
>
>
> <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
>
>                     <connected>true</connected>
>
>                     <exists>true</exists>
>
>                     <groupId>f43fd60b-017b-1000-ad38-01d2ac321927</groupId>
>
>                     *<id>b4fbf2a8-46d0-3ac7-b833-21533794f7a7</id>*
>
>                     <name>DataFromSensors</name>
>
>
> *<targetId>f43dd13c-017b-1000-df9a-acf01964ae4f</targetId>*
>
>
>
> When C2 server pulls the template, it apparently sets wrong ID in
> config.yml file, instead of putting input port <id>,
>
> it sets <targetId> into config.yml file, causing MiNiFi agent is unable to
> accept that configuration and denies it, it is simply wrong.
>
>
>
> This is the Exception from MiNiFi log:
>
>
>
> Caused by:
> org.apache.nifi.minifi.bootstrap.exception.InvalidConfigurationException:
> Failed to transform config file due to:[Connection with id
> 8f6c9b69-5b31-313e-0000-000000000000 has invalid destination id
> b4fbf2a8-46d0-3ac7-b833-21533794f7a7]
>
>                at
> org.apache.nifi.minifi.bootstrap.util.ConfigTransformer.throwIfInvalid(ConfigTransformer.java:131)
>
>                at
> org.apache.nifi.minifi.bootstrap.util.ConfigTransformer.transformConfigFile(ConfigTransformer.java:94)
>
>                at
> org.apache.nifi.minifi.bootstrap.RunMiNiFi.performTransformation(RunMiNiFi.java:1693)
>
>
>
> To fix it, I need to go  to cached config file in ./cache folder of C2
> server, and set the right ID of the input port manually.
>
>
>
> *NOTE: I tried to convert template file manually using minifi tookit
> 1.14.0 and it sets correct <id> of the input port.*
>
>
>
> Is this a bug in C2 server or behaviour with purpose? I found the same
> case for minifi toolkit, but apparently it was fixed:
>
> https://stackoverflow.com/questions/59214373/failing-in-minifi-tutorial-toolkit-error-connection-with-id-has-invalid-de
>
>
>
> Thanks,
>
> Tom
>