[ 
https://issues.apache.org/jira/browse/MINIFICPP-1754?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ferenc Gerlits updated MINIFICPP-1754:
--------------------------------------
    Description: 
Currently, MiNiFi sends the agentManifest only in the first heartbeat and as a 
response to DESCRIBE operation. This works properly as long as the C2 server 
receives/handles that heartbeat successfully, but in case of any issue (eg: 
network or any update) it's lost and the C2 server won't be aware of any 
manifest update of that agent till it restarts again.

We would like to fine-tune this behavior by always adding(in lightweight 
heartbeat as well) an agent manifest hash into the heartbeat request, what 
would be generated using the static part of the manifest and would reflect what 
extensions are loaded (later the supported operations would be considered as 
well during the generation).

An example implementation in the current minifi-java: 
[https://github.com/hortonworks/minifi/blob/CEM-1.3.1.0/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-runtime/src/main/java/org/apache/nifi/minifi/MiNiFi.java#L242]

The desired node would be the *agentInfo.agentManifestHash* (the value is the 
same hash as we currently have under the agentInfo.agentManifest.identifier)

  was:
Currently, MiNiFi sends the agentManifest only in the first heartbeat and as a 
response to DESCRIBE operation. This works properly until C2 server 
receives/handles that heartbeat successfully, but in case of any issue (eg: 
network or any update) it's lost and the C2 server won't be aware of any 
manifest update of that agent till it restarts again.

We would like to fine-tune this behavior by always adding(in lightweight 
heartbeat as well) an agent manifest hash into the heartbeat request, what 
would be generated using the static part of the manifest and would reflect what 
extensions are loaded (later the supported operations would be considered as 
well during the generation).

An example implementation in the current minifi-java: 
[https://github.com/hortonworks/minifi/blob/CEM-1.3.1.0/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-runtime/src/main/java/org/apache/nifi/minifi/MiNiFi.java#L242|https://github.com/hortonworks/minifi/blob/CEM-1.3.1.0/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-runtime/src/main/java/org/apache/nifi/minifi/MiNiFi.java#L242]

The desired node would be the *agentInfo.agentManifestHash* (the value is the 
same hash as we currently have under the agentInfo.agentManifest.identifier)


> Always include agentManifestIdentifier in heartbeat
> ---------------------------------------------------
>
>                 Key: MINIFICPP-1754
>                 URL: https://issues.apache.org/jira/browse/MINIFICPP-1754
>             Project: Apache NiFi MiNiFi C++
>          Issue Type: Improvement
>            Reporter: Ádám Markovics
>            Assignee: Ádám Markovics
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently, MiNiFi sends the agentManifest only in the first heartbeat and as 
> a response to DESCRIBE operation. This works properly as long as the C2 
> server receives/handles that heartbeat successfully, but in case of any issue 
> (eg: network or any update) it's lost and the C2 server won't be aware of any 
> manifest update of that agent till it restarts again.
> We would like to fine-tune this behavior by always adding(in lightweight 
> heartbeat as well) an agent manifest hash into the heartbeat request, what 
> would be generated using the static part of the manifest and would reflect 
> what extensions are loaded (later the supported operations would be 
> considered as well during the generation).
> An example implementation in the current minifi-java: 
> [https://github.com/hortonworks/minifi/blob/CEM-1.3.1.0/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-runtime/src/main/java/org/apache/nifi/minifi/MiNiFi.java#L242]
> The desired node would be the *agentInfo.agentManifestHash* (the value is the 
> same hash as we currently have under the agentInfo.agentManifest.identifier)



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to