[jira] [Commented] (MINIFICPP-36) Begin building controlling API to facilitate control of agents

2017-10-02 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/MINIFICPP-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16188245#comment-16188245
 ] 

ASF subversion and git services commented on MINIFICPP-36:
--

Commit 9f161a27e5fa0ea9aac4d59d1c23edbad3d77858 in nifi-minifi-cpp's branch 
refs/heads/master from Marc Parisi
[ https://git-wip-us.apache.org/repos/asf?p=nifi-minifi-cpp.git;h=9f161a2 ]

MINIFI-339: Add C2 base allowing for 1 protocol and n heartbeat reporters
MINIFI-339: Add GetTCP Processor
MINIFI-339: Add listener server
MINIFI-339: Update to listener
MINIFI-339: Resolve Issue with stack based processor nodes losing scope
MINIFI-369: Update ListenHTTP processor to allow transfer encoding
MINIFI-339: Update rest receiver instantiation and fix issue found in GetFile
MINIFI-339: Rename content to operational arguments
MINIFI-371: remove virtual destructors when not needed
MINIFI-339: Fixing issues with GetTCP
MINIFI-378: Resolve issues with shutdown. Took the approach to call notifyStop 
at the destructor to avoid larger changes
MINIFI-339: Allow C2 to be disabled

This closes #134.

Signed-off-by: Aldrin Piri 


> Begin building controlling API to facilitate control of agents
> --
>
> Key: MINIFICPP-36
> URL: https://issues.apache.org/jira/browse/MINIFICPP-36
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: marco polo
>Assignee: marco polo
>Priority: Critical
>  Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and 
> likely have public and private elements. As development progresses we may 
> want more capabilities. 
> What I want to create as a straw man will be basic control and metrics 
> gathering
> -- Start
> -- Stop
> -- Pause
> -- Gather metrics
>** Throughput of of flow components
>** Execution time ( run time minus sleep time )
>** Memory consumption
> -- Drain repositories
> -- Switch repository types. 
> Better employ update listener within this controlling API



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MINIFICPP-36) Begin building controlling API to facilitate control of agents

2017-10-02 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/MINIFICPP-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16188240#comment-16188240
 ] 

ASF GitHub Bot commented on MINIFICPP-36:
-

Github user asfgit closed the pull request at:

https://github.com/apache/nifi-minifi-cpp/pull/134


> Begin building controlling API to facilitate control of agents
> --
>
> Key: MINIFICPP-36
> URL: https://issues.apache.org/jira/browse/MINIFICPP-36
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: marco polo
>Assignee: marco polo
>Priority: Critical
>  Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and 
> likely have public and private elements. As development progresses we may 
> want more capabilities. 
> What I want to create as a straw man will be basic control and metrics 
> gathering
> -- Start
> -- Stop
> -- Pause
> -- Gather metrics
>** Throughput of of flow components
>** Execution time ( run time minus sleep time )
>** Memory consumption
> -- Drain repositories
> -- Switch repository types. 
> Better employ update listener within this controlling API



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MINIFICPP-36) Begin building controlling API to facilitate control of agents

2017-10-02 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/MINIFICPP-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16188234#comment-16188234
 ] 

ASF subversion and git services commented on MINIFICPP-36:
--

Commit 9f161a27e5fa0ea9aac4d59d1c23edbad3d77858 in nifi-minifi-cpp's branch 
refs/heads/master from Marc Parisi
[ https://git-wip-us.apache.org/repos/asf?p=nifi-minifi-cpp.git;h=9f161a2 ]

MINIFI-339: Add C2 base allowing for 1 protocol and n heartbeat reporters
MINIFI-339: Add GetTCP Processor
MINIFI-339: Add listener server
MINIFI-339: Update to listener
MINIFI-339: Resolve Issue with stack based processor nodes losing scope
MINIFI-369: Update ListenHTTP processor to allow transfer encoding
MINIFI-339: Update rest receiver instantiation and fix issue found in GetFile
MINIFI-339: Rename content to operational arguments
MINIFI-371: remove virtual destructors when not needed
MINIFI-339: Fixing issues with GetTCP
MINIFI-378: Resolve issues with shutdown. Took the approach to call notifyStop 
at the destructor to avoid larger changes
MINIFI-339: Allow C2 to be disabled

This closes #134.

Signed-off-by: Aldrin Piri 


> Begin building controlling API to facilitate control of agents
> --
>
> Key: MINIFICPP-36
> URL: https://issues.apache.org/jira/browse/MINIFICPP-36
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: marco polo
>Assignee: marco polo
>Priority: Critical
>  Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and 
> likely have public and private elements. As development progresses we may 
> want more capabilities. 
> What I want to create as a straw man will be basic control and metrics 
> gathering
> -- Start
> -- Stop
> -- Pause
> -- Gather metrics
>** Throughput of of flow components
>** Execution time ( run time minus sleep time )
>** Memory consumption
> -- Drain repositories
> -- Switch repository types. 
> Better employ update listener within this controlling API



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MINIFICPP-36) Begin building controlling API to facilitate control of agents

2017-10-02 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/MINIFICPP-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16188236#comment-16188236
 ] 

ASF subversion and git services commented on MINIFICPP-36:
--

Commit 9f161a27e5fa0ea9aac4d59d1c23edbad3d77858 in nifi-minifi-cpp's branch 
refs/heads/master from Marc Parisi
[ https://git-wip-us.apache.org/repos/asf?p=nifi-minifi-cpp.git;h=9f161a2 ]

MINIFI-339: Add C2 base allowing for 1 protocol and n heartbeat reporters
MINIFI-339: Add GetTCP Processor
MINIFI-339: Add listener server
MINIFI-339: Update to listener
MINIFI-339: Resolve Issue with stack based processor nodes losing scope
MINIFI-369: Update ListenHTTP processor to allow transfer encoding
MINIFI-339: Update rest receiver instantiation and fix issue found in GetFile
MINIFI-339: Rename content to operational arguments
MINIFI-371: remove virtual destructors when not needed
MINIFI-339: Fixing issues with GetTCP
MINIFI-378: Resolve issues with shutdown. Took the approach to call notifyStop 
at the destructor to avoid larger changes
MINIFI-339: Allow C2 to be disabled

This closes #134.

Signed-off-by: Aldrin Piri 


> Begin building controlling API to facilitate control of agents
> --
>
> Key: MINIFICPP-36
> URL: https://issues.apache.org/jira/browse/MINIFICPP-36
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: marco polo
>Assignee: marco polo
>Priority: Critical
>  Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and 
> likely have public and private elements. As development progresses we may 
> want more capabilities. 
> What I want to create as a straw man will be basic control and metrics 
> gathering
> -- Start
> -- Stop
> -- Pause
> -- Gather metrics
>** Throughput of of flow components
>** Execution time ( run time minus sleep time )
>** Memory consumption
> -- Drain repositories
> -- Switch repository types. 
> Better employ update listener within this controlling API



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MINIFICPP-36) Begin building controlling API to facilitate control of agents

2017-10-02 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/MINIFICPP-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16188235#comment-16188235
 ] 

ASF subversion and git services commented on MINIFICPP-36:
--

Commit 9f161a27e5fa0ea9aac4d59d1c23edbad3d77858 in nifi-minifi-cpp's branch 
refs/heads/master from Marc Parisi
[ https://git-wip-us.apache.org/repos/asf?p=nifi-minifi-cpp.git;h=9f161a2 ]

MINIFI-339: Add C2 base allowing for 1 protocol and n heartbeat reporters
MINIFI-339: Add GetTCP Processor
MINIFI-339: Add listener server
MINIFI-339: Update to listener
MINIFI-339: Resolve Issue with stack based processor nodes losing scope
MINIFI-369: Update ListenHTTP processor to allow transfer encoding
MINIFI-339: Update rest receiver instantiation and fix issue found in GetFile
MINIFI-339: Rename content to operational arguments
MINIFI-371: remove virtual destructors when not needed
MINIFI-339: Fixing issues with GetTCP
MINIFI-378: Resolve issues with shutdown. Took the approach to call notifyStop 
at the destructor to avoid larger changes
MINIFI-339: Allow C2 to be disabled

This closes #134.

Signed-off-by: Aldrin Piri 


> Begin building controlling API to facilitate control of agents
> --
>
> Key: MINIFICPP-36
> URL: https://issues.apache.org/jira/browse/MINIFICPP-36
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: marco polo
>Assignee: marco polo
>Priority: Critical
>  Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and 
> likely have public and private elements. As development progresses we may 
> want more capabilities. 
> What I want to create as a straw man will be basic control and metrics 
> gathering
> -- Start
> -- Stop
> -- Pause
> -- Gather metrics
>** Throughput of of flow components
>** Execution time ( run time minus sleep time )
>** Memory consumption
> -- Drain repositories
> -- Switch repository types. 
> Better employ update listener within this controlling API



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MINIFICPP-36) Begin building controlling API to facilitate control of agents

2017-10-02 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/MINIFICPP-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16188237#comment-16188237
 ] 

ASF subversion and git services commented on MINIFICPP-36:
--

Commit 9f161a27e5fa0ea9aac4d59d1c23edbad3d77858 in nifi-minifi-cpp's branch 
refs/heads/master from Marc Parisi
[ https://git-wip-us.apache.org/repos/asf?p=nifi-minifi-cpp.git;h=9f161a2 ]

MINIFI-339: Add C2 base allowing for 1 protocol and n heartbeat reporters
MINIFI-339: Add GetTCP Processor
MINIFI-339: Add listener server
MINIFI-339: Update to listener
MINIFI-339: Resolve Issue with stack based processor nodes losing scope
MINIFI-369: Update ListenHTTP processor to allow transfer encoding
MINIFI-339: Update rest receiver instantiation and fix issue found in GetFile
MINIFI-339: Rename content to operational arguments
MINIFI-371: remove virtual destructors when not needed
MINIFI-339: Fixing issues with GetTCP
MINIFI-378: Resolve issues with shutdown. Took the approach to call notifyStop 
at the destructor to avoid larger changes
MINIFI-339: Allow C2 to be disabled

This closes #134.

Signed-off-by: Aldrin Piri 


> Begin building controlling API to facilitate control of agents
> --
>
> Key: MINIFICPP-36
> URL: https://issues.apache.org/jira/browse/MINIFICPP-36
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: marco polo
>Assignee: marco polo
>Priority: Critical
>  Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and 
> likely have public and private elements. As development progresses we may 
> want more capabilities. 
> What I want to create as a straw man will be basic control and metrics 
> gathering
> -- Start
> -- Stop
> -- Pause
> -- Gather metrics
>** Throughput of of flow components
>** Execution time ( run time minus sleep time )
>** Memory consumption
> -- Drain repositories
> -- Switch repository types. 
> Better employ update listener within this controlling API



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MINIFICPP-36) Begin building controlling API to facilitate control of agents

2017-10-02 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/MINIFICPP-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16188247#comment-16188247
 ] 

ASF subversion and git services commented on MINIFICPP-36:
--

Commit 9f161a27e5fa0ea9aac4d59d1c23edbad3d77858 in nifi-minifi-cpp's branch 
refs/heads/master from Marc Parisi
[ https://git-wip-us.apache.org/repos/asf?p=nifi-minifi-cpp.git;h=9f161a2 ]

MINIFI-339: Add C2 base allowing for 1 protocol and n heartbeat reporters
MINIFI-339: Add GetTCP Processor
MINIFI-339: Add listener server
MINIFI-339: Update to listener
MINIFI-339: Resolve Issue with stack based processor nodes losing scope
MINIFI-369: Update ListenHTTP processor to allow transfer encoding
MINIFI-339: Update rest receiver instantiation and fix issue found in GetFile
MINIFI-339: Rename content to operational arguments
MINIFI-371: remove virtual destructors when not needed
MINIFI-339: Fixing issues with GetTCP
MINIFI-378: Resolve issues with shutdown. Took the approach to call notifyStop 
at the destructor to avoid larger changes
MINIFI-339: Allow C2 to be disabled

This closes #134.

Signed-off-by: Aldrin Piri 


> Begin building controlling API to facilitate control of agents
> --
>
> Key: MINIFICPP-36
> URL: https://issues.apache.org/jira/browse/MINIFICPP-36
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: marco polo
>Assignee: marco polo
>Priority: Critical
>  Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and 
> likely have public and private elements. As development progresses we may 
> want more capabilities. 
> What I want to create as a straw man will be basic control and metrics 
> gathering
> -- Start
> -- Stop
> -- Pause
> -- Gather metrics
>** Throughput of of flow components
>** Execution time ( run time minus sleep time )
>** Memory consumption
> -- Drain repositories
> -- Switch repository types. 
> Better employ update listener within this controlling API



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MINIFICPP-36) Begin building controlling API to facilitate control of agents

2017-10-02 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/MINIFICPP-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16188243#comment-16188243
 ] 

ASF subversion and git services commented on MINIFICPP-36:
--

Commit 9f161a27e5fa0ea9aac4d59d1c23edbad3d77858 in nifi-minifi-cpp's branch 
refs/heads/master from Marc Parisi
[ https://git-wip-us.apache.org/repos/asf?p=nifi-minifi-cpp.git;h=9f161a2 ]

MINIFI-339: Add C2 base allowing for 1 protocol and n heartbeat reporters
MINIFI-339: Add GetTCP Processor
MINIFI-339: Add listener server
MINIFI-339: Update to listener
MINIFI-339: Resolve Issue with stack based processor nodes losing scope
MINIFI-369: Update ListenHTTP processor to allow transfer encoding
MINIFI-339: Update rest receiver instantiation and fix issue found in GetFile
MINIFI-339: Rename content to operational arguments
MINIFI-371: remove virtual destructors when not needed
MINIFI-339: Fixing issues with GetTCP
MINIFI-378: Resolve issues with shutdown. Took the approach to call notifyStop 
at the destructor to avoid larger changes
MINIFI-339: Allow C2 to be disabled

This closes #134.

Signed-off-by: Aldrin Piri 


> Begin building controlling API to facilitate control of agents
> --
>
> Key: MINIFICPP-36
> URL: https://issues.apache.org/jira/browse/MINIFICPP-36
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: marco polo
>Assignee: marco polo
>Priority: Critical
>  Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and 
> likely have public and private elements. As development progresses we may 
> want more capabilities. 
> What I want to create as a straw man will be basic control and metrics 
> gathering
> -- Start
> -- Stop
> -- Pause
> -- Gather metrics
>** Throughput of of flow components
>** Execution time ( run time minus sleep time )
>** Memory consumption
> -- Drain repositories
> -- Switch repository types. 
> Better employ update listener within this controlling API



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MINIFICPP-36) Begin building controlling API to facilitate control of agents

2017-10-02 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/MINIFICPP-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16188242#comment-16188242
 ] 

ASF subversion and git services commented on MINIFICPP-36:
--

Commit 9f161a27e5fa0ea9aac4d59d1c23edbad3d77858 in nifi-minifi-cpp's branch 
refs/heads/master from Marc Parisi
[ https://git-wip-us.apache.org/repos/asf?p=nifi-minifi-cpp.git;h=9f161a2 ]

MINIFI-339: Add C2 base allowing for 1 protocol and n heartbeat reporters
MINIFI-339: Add GetTCP Processor
MINIFI-339: Add listener server
MINIFI-339: Update to listener
MINIFI-339: Resolve Issue with stack based processor nodes losing scope
MINIFI-369: Update ListenHTTP processor to allow transfer encoding
MINIFI-339: Update rest receiver instantiation and fix issue found in GetFile
MINIFI-339: Rename content to operational arguments
MINIFI-371: remove virtual destructors when not needed
MINIFI-339: Fixing issues with GetTCP
MINIFI-378: Resolve issues with shutdown. Took the approach to call notifyStop 
at the destructor to avoid larger changes
MINIFI-339: Allow C2 to be disabled

This closes #134.

Signed-off-by: Aldrin Piri 


> Begin building controlling API to facilitate control of agents
> --
>
> Key: MINIFICPP-36
> URL: https://issues.apache.org/jira/browse/MINIFICPP-36
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: marco polo
>Assignee: marco polo
>Priority: Critical
>  Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and 
> likely have public and private elements. As development progresses we may 
> want more capabilities. 
> What I want to create as a straw man will be basic control and metrics 
> gathering
> -- Start
> -- Stop
> -- Pause
> -- Gather metrics
>** Throughput of of flow components
>** Execution time ( run time minus sleep time )
>** Memory consumption
> -- Drain repositories
> -- Switch repository types. 
> Better employ update listener within this controlling API



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MINIFICPP-36) Begin building controlling API to facilitate control of agents

2017-10-02 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/MINIFICPP-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16188239#comment-16188239
 ] 

ASF subversion and git services commented on MINIFICPP-36:
--

Commit 9f161a27e5fa0ea9aac4d59d1c23edbad3d77858 in nifi-minifi-cpp's branch 
refs/heads/master from Marc Parisi
[ https://git-wip-us.apache.org/repos/asf?p=nifi-minifi-cpp.git;h=9f161a2 ]

MINIFI-339: Add C2 base allowing for 1 protocol and n heartbeat reporters
MINIFI-339: Add GetTCP Processor
MINIFI-339: Add listener server
MINIFI-339: Update to listener
MINIFI-339: Resolve Issue with stack based processor nodes losing scope
MINIFI-369: Update ListenHTTP processor to allow transfer encoding
MINIFI-339: Update rest receiver instantiation and fix issue found in GetFile
MINIFI-339: Rename content to operational arguments
MINIFI-371: remove virtual destructors when not needed
MINIFI-339: Fixing issues with GetTCP
MINIFI-378: Resolve issues with shutdown. Took the approach to call notifyStop 
at the destructor to avoid larger changes
MINIFI-339: Allow C2 to be disabled

This closes #134.

Signed-off-by: Aldrin Piri 


> Begin building controlling API to facilitate control of agents
> --
>
> Key: MINIFICPP-36
> URL: https://issues.apache.org/jira/browse/MINIFICPP-36
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: marco polo
>Assignee: marco polo
>Priority: Critical
>  Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and 
> likely have public and private elements. As development progresses we may 
> want more capabilities. 
> What I want to create as a straw man will be basic control and metrics 
> gathering
> -- Start
> -- Stop
> -- Pause
> -- Gather metrics
>** Throughput of of flow components
>** Execution time ( run time minus sleep time )
>** Memory consumption
> -- Drain repositories
> -- Switch repository types. 
> Better employ update listener within this controlling API



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MINIFICPP-36) Begin building controlling API to facilitate control of agents

2017-10-02 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/MINIFICPP-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16188212#comment-16188212
 ] 

ASF GitHub Bot commented on MINIFICPP-36:
-

Github user apiri commented on the issue:

https://github.com/apache/nifi-minifi-cpp/pull/134
  
License, code, and functionality looks good.  Build and operation functions 
as expected over an extended run time over the weekend.  Will get this beast of 
a PR merged in.



> Begin building controlling API to facilitate control of agents
> --
>
> Key: MINIFICPP-36
> URL: https://issues.apache.org/jira/browse/MINIFICPP-36
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: marco polo
>Assignee: marco polo
>Priority: Critical
>  Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and 
> likely have public and private elements. As development progresses we may 
> want more capabilities. 
> What I want to create as a straw man will be basic control and metrics 
> gathering
> -- Start
> -- Stop
> -- Pause
> -- Gather metrics
>** Throughput of of flow components
>** Execution time ( run time minus sleep time )
>** Memory consumption
> -- Drain repositories
> -- Switch repository types. 
> Better employ update listener within this controlling API



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MINIFICPP-36) Begin building controlling API to facilitate control of agents

2017-09-29 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/MINIFICPP-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16186337#comment-16186337
 ] 

ASF GitHub Bot commented on MINIFICPP-36:
-

Github user apiri commented on the issue:

https://github.com/apache/nifi-minifi-cpp/pull/134
  
reviewing


> Begin building controlling API to facilitate control of agents
> --
>
> Key: MINIFICPP-36
> URL: https://issues.apache.org/jira/browse/MINIFICPP-36
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: marco polo
>Assignee: marco polo
>Priority: Critical
>  Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and 
> likely have public and private elements. As development progresses we may 
> want more capabilities. 
> What I want to create as a straw man will be basic control and metrics 
> gathering
> -- Start
> -- Stop
> -- Pause
> -- Gather metrics
>** Throughput of of flow components
>** Execution time ( run time minus sleep time )
>** Memory consumption
> -- Drain repositories
> -- Switch repository types. 
> Better employ update listener within this controlling API



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MINIFICPP-36) Begin building controlling API to facilitate control of agents

2017-09-29 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/MINIFICPP-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16186119#comment-16186119
 ] 

ASF GitHub Bot commented on MINIFICPP-36:
-

Github user minifirocks commented on the issue:

https://github.com/apache/nifi-minifi-cpp/pull/134
  
@phrocker looks good
@apiri please review and let me know whether you need me to merge the same. 


> Begin building controlling API to facilitate control of agents
> --
>
> Key: MINIFICPP-36
> URL: https://issues.apache.org/jira/browse/MINIFICPP-36
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: marco polo
>Assignee: marco polo
>Priority: Critical
>  Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and 
> likely have public and private elements. As development progresses we may 
> want more capabilities. 
> What I want to create as a straw man will be basic control and metrics 
> gathering
> -- Start
> -- Stop
> -- Pause
> -- Gather metrics
>** Throughput of of flow components
>** Execution time ( run time minus sleep time )
>** Memory consumption
> -- Drain repositories
> -- Switch repository types. 
> Better employ update listener within this controlling API



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MINIFICPP-36) Begin building controlling API to facilitate control of agents

2017-09-29 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/MINIFICPP-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16186098#comment-16186098
 ] 

ASF GitHub Bot commented on MINIFICPP-36:
-

Github user phrocker commented on a diff in the pull request:

https://github.com/apache/nifi-minifi-cpp/pull/134#discussion_r141920195
  
--- Diff: libminifi/include/c2/C2Agent.h ---
@@ -0,0 +1,203 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIBMINIFI_INCLUDE_C2_C2AGENT_H_
+#define LIBMINIFI_INCLUDE_C2_C2AGENT_H_
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include "core/state/UpdateController.h"
+#include "core/state/metrics/MetricsBase.h"
+#include "C2Payload.h"
+#include "C2Protocol.h"
+#include "io/validation.h"
+#include "protocols/Protocols.h"
+
+namespace org {
+namespace apache {
+namespace nifi {
+namespace minifi {
+namespace c2 {
+
+/**
+ * Purpose and Justification: C2 agent will be the mechanism that will 
abstract the protocol to do the work.
+ *
+ * The protocol represents a transformation layer into the objects seen in 
C2Payload. That transformation may
+ * be minimal or extreme, depending on the protocol itself.
+ *
+ * Metrics Classes defined here:
+ *
+ *   0 HeartBeat --  RESERVED
+ *   1-255 Defined by the configuration file.
+ */
+class C2Agent : public state::UpdateController, public 
state::metrics::MetricsSink, public std::enable_shared_from_this {
+ public:
+
+  C2Agent(const 
std::shared_ptr &controller,
+  const std::shared_ptr &updateSink,
+  const std::shared_ptr &configure);
+
+  virtual ~C2Agent() {
+
+  }
+
+  /**
+   * Sends the heartbeat to ths server. Will include metrics
+   * in the payload if they exist.
+   */
+  void performHeartBeat();
+
+  virtual std::vector> getFunctions() {
+return functions_;
+  }
+
+  /**
+   * Sets the metric within this sink
+   * @param metric metric to set
+   * @param return 0 on success, -1 on failure.
+   */
+  virtual int16_t setMetrics(const 
std::shared_ptr &metric);
+
+ protected:
+
+  /**
+   * Configure the C2 agent
+   */
+  void configure(const std::shared_ptr &configure, bool 
reconfigure = true);
+
+  /**
+   * Serializes metrics into a payload.
+   * @parem parent_paylaod parent payload into which we insert the newly 
generated payload.
+   * @param name name of this metric
+   * @param metrics metrics to include.
+   */
+  void serializeMetrics(C2Payload &parent_payload, const std::string 
&name, const std::vector &metrics);
+
+  /**
+   * Extract the payload
+   * @param resp payload to be moved into the function.
+   */
+  void extractPayload(const C2Payload &&resp);
+
+  /**
+   * Extract the payload
+   * @param payload reference.
+   */
+  void extractPayload(const C2Payload &resp);
+
+  /**
+   * Enqueues a C2 server response for us to evaluate and parse.
+   */
+  void enqueue_c2_server_response(C2Payload &&resp) {
+std::lock_guard lock(queue_mutex);
+responses.push_back(std::move(resp));
--- End diff --

We want to maintain ordering, which can't be guaranteed with a lock free 
queue. 


> Begin building controlling API to facilitate control of agents
> --
>
> Key: MINIFICPP-36
> URL: https://issues.apache.org/jira/browse/MINIFICPP-36
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: marco polo
>Assignee: marco polo
>Priority: Critical
>  Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and 
> likely have public and private element

[jira] [Commented] (MINIFICPP-36) Begin building controlling API to facilitate control of agents

2017-09-20 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/MINIFICPP-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16173694#comment-16173694
 ] 

ASF GitHub Bot commented on MINIFICPP-36:
-

Github user phrocker commented on the issue:

https://github.com/apache/nifi-minifi-cpp/pull/134
  
@achristianson It slipped my mind but was hoping to get ideas on what to do 
when we have an invalid c2 configuration. C2 is a local element too, so at some 
point we'll have scripts that leverage this capability to perform local 
operations, so I imagine we'll always have C2 running ( which was the plan ) 
but the in the event that a protocol isn't properly configured i.e. no URL we 
should disable that protocol entirely. thoughts? 

Disabling the command and control element entirely seems antithetical to 
command and control especially since we want local capabilities, but not trying 
the protocol if it didn't fully initialize is advantageous and something I 
completely forgot. Thoughts on that?


> Begin building controlling API to facilitate control of agents
> --
>
> Key: MINIFICPP-36
> URL: https://issues.apache.org/jira/browse/MINIFICPP-36
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: marco polo
>Assignee: marco polo
>Priority: Critical
>  Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and 
> likely have public and private elements. As development progresses we may 
> want more capabilities. 
> What I want to create as a straw man will be basic control and metrics 
> gathering
> -- Start
> -- Stop
> -- Pause
> -- Gather metrics
>** Throughput of of flow components
>** Execution time ( run time minus sleep time )
>** Memory consumption
> -- Drain repositories
> -- Switch repository types. 
> Better employ update listener within this controlling API



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MINIFICPP-36) Begin building controlling API to facilitate control of agents

2017-09-20 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/MINIFICPP-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16173690#comment-16173690
 ] 

ASF GitHub Bot commented on MINIFICPP-36:
-

Github user achristianson commented on the issue:

https://github.com/apache/nifi-minifi-cpp/pull/134
  
One more thing that struck me during testing: it seems broken that we 
attempt to periodically send heartbeats when c2 has not been configured. Would 
it be possible to not attempt heartbeats if a c2 server is not set, or 
otherwise add a config flag to enable/disable c2?


> Begin building controlling API to facilitate control of agents
> --
>
> Key: MINIFICPP-36
> URL: https://issues.apache.org/jira/browse/MINIFICPP-36
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: marco polo
>Assignee: marco polo
>Priority: Critical
>  Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and 
> likely have public and private elements. As development progresses we may 
> want more capabilities. 
> What I want to create as a straw man will be basic control and metrics 
> gathering
> -- Start
> -- Stop
> -- Pause
> -- Gather metrics
>** Throughput of of flow components
>** Execution time ( run time minus sleep time )
>** Memory consumption
> -- Drain repositories
> -- Switch repository types. 
> Better employ update listener within this controlling API



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MINIFICPP-36) Begin building controlling API to facilitate control of agents

2017-09-20 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/MINIFICPP-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16173163#comment-16173163
 ] 

ASF GitHub Bot commented on MINIFICPP-36:
-

Github user phrocker commented on a diff in the pull request:

https://github.com/apache/nifi-minifi-cpp/pull/134#discussion_r139965480
  
--- Diff: libminifi/include/core/Processor.h ---
@@ -212,19 +217,35 @@ class Processor : public Connectable, public 
ConfigurableComponent, public std::
  public:
 
   // OnTrigger method, implemented by NiFi Processor Designer
+  virtual void onTrigger(std::shared_ptr context, 
std::shared_ptr session){
+onTrigger(context.get(),session.get());
+  }
   virtual void onTrigger(ProcessContext *context, ProcessSession *session) 
= 0;
   // Initialize, overridden by NiFi Process Designer
   virtual void initialize() {
   }
   // Scheduled event hook, overridden by NiFi Process Designer
+  virtual void onSchedule(std::shared_ptr context, 
std::shared_ptr sessionFactory){
+onSchedule(context.get(),sessionFactory.get());
+  }
   virtual void onSchedule(ProcessContext *context, ProcessSessionFactory 
*sessionFactory) {
   }
 
   // Check all incoming connections for work
   bool isWorkAvailable();
 
+  void setStreamFactory(std::shared_ptr 
stream_factory) {
--- End diff --

There is a use case in the event that C2 were to change the communication 
mechanism and only the communication mechanism we can do that without updating 
the entire flow. That can be tantamount to changing from TLS to non secure 
sockets or vice versa if the need arises. I didn't include those capabilities 
in this PR but played with it...and that's something we should discuss 
globally. That may not be a capability we want to support, but it's one that 
was previously discussed. 


> Begin building controlling API to facilitate control of agents
> --
>
> Key: MINIFICPP-36
> URL: https://issues.apache.org/jira/browse/MINIFICPP-36
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: marco polo
>Assignee: marco polo
>Priority: Critical
>  Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and 
> likely have public and private elements. As development progresses we may 
> want more capabilities. 
> What I want to create as a straw man will be basic control and metrics 
> gathering
> -- Start
> -- Stop
> -- Pause
> -- Gather metrics
>** Throughput of of flow components
>** Execution time ( run time minus sleep time )
>** Memory consumption
> -- Drain repositories
> -- Switch repository types. 
> Better employ update listener within this controlling API



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (MINIFICPP-36) Begin building controlling API to facilitate control of agents

2017-09-19 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/MINIFICPP-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16171761#comment-16171761
 ] 

ASF GitHub Bot commented on MINIFICPP-36:
-

Github user phrocker commented on a diff in the pull request:

https://github.com/apache/nifi-minifi-cpp/pull/134#discussion_r139702066
  
--- Diff: libminifi/include/core/Processor.h ---
@@ -153,7 +154,8 @@ class Processor : public Connectable, public 
ConfigurableComponent, public std::
   }
   // decrement Active Task Counts
   void decrementActiveTask(void) {
-active_tasks_--;
+if (active_tasks_ > 0)
+  active_tasks_--;
--- End diff --

Since the input ( stop command for example ) is user provided, this is only 
a protection. Decrement only occurs when an exception occurs during on trigger. 
If this happens just after unschedule occurs ( and the active tasks is set to 0 
) then we could arrive at -1. I didn't want to impose additional locking. 

Not ideal, and this can be solved more elegantly by not decrementing active 
tasks during an exception since the number isn't currently important ( just 
that tasks > 0 )...but I did not want to make additional changes here. 


> Begin building controlling API to facilitate control of agents
> --
>
> Key: MINIFICPP-36
> URL: https://issues.apache.org/jira/browse/MINIFICPP-36
> Project: NiFi MiNiFi C++
>  Issue Type: New Feature
>Reporter: marco polo
>Assignee: marco polo
>Priority: Critical
>  Labels: Durability, Reliability, Statistics
>
> Begin building the controlling API in MiNiFi C++. This API will evolve and 
> likely have public and private elements. As development progresses we may 
> want more capabilities. 
> What I want to create as a straw man will be basic control and metrics 
> gathering
> -- Start
> -- Stop
> -- Pause
> -- Gather metrics
>** Throughput of of flow components
>** Execution time ( run time minus sleep time )
>** Memory consumption
> -- Drain repositories
> -- Switch repository types. 
> Better employ update listener within this controlling API



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)