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

Mark Payne closed NIFI-2146.
----------------------------

> When saving flow, NiFi should allow the flow to automatically be backed up
> --------------------------------------------------------------------------
>
>                 Key: NIFI-2146
>                 URL: https://issues.apache.org/jira/browse/NIFI-2146
>             Project: Apache NiFi
>          Issue Type: Improvement
>          Components: Configuration, Core Framework, Documentation & Website
>            Reporter: Mark Payne
>             Fix For: 1.0.0
>
>
> Each time that a user updates the NiFi flow, the new flow is written to the 
> flow.xml.gz on each node. When this occurs, we should provide the option of 
> also writing the flow.xml.gz to an 'archive' folder, using a filename based 
> on the current time. We should also ensure that we keep old flows for X 
> (configurable) amount of time and only use a max of some configurable amount 
> of disk space.
> StandardXMLFlowConfigurationDAO (in nifi-framework-core) already has a method 
> for `save(FlowController controller, boolean archive)` but 'false' is always 
> passed as the 'archive' field. We should instead pass in `true` if configured 
> to archive.
> Additionally, we should change the archive filename so that it is based on a 
> user-readable date/time, such as flow-2016-06-29-11-10-50am.xml.gz, for 
> instance, for a flow that was saved at 11:10:50 AM on June 29, 2016. This 
> allows an admin to easily revert a flow back to how it was at some point in 
> history.
> Changes required to implement this include: 
> 1. Update nifi.properties to include new properties (with the suggested 
> defaults that may need to be adjusted):
> - nifi.flow.configuration.archive.enabled=true
> - nifi.flow.configuration.archive.max.time=30 days
> - nifi.flow.configuration.archive.max.storage=500 MB
> There already is a property named `nifi.flow.configuration.archive.dir` that 
> should be used to specify where to save the archived flow. This is used 
> currently only when the user clicks the 'archive' button in the UI.
> 2. Update StandardFlowService.saveFlowChanges(TimeUnit delayUnit, long delay) 
> so that it passes a value of `true` for the 'archive' flag when calling the 
> overridden saveFlowChanges method in the case that the 
> `nifi.flow.configuration.archive.enabled` property is set to true (default).
> 3. Update StandardXMLFlowConfigurationDAO.createArchiveFile() to use a more 
> user-friendly filename, as described above.
> 4. Update StandardXMLFlowConfigurationDAO.save() so that the `if (archive) {` 
> branch first cleans up old/expired flows so that the `archive` directory is 
> smaller than the configured max storage space and so that any archived flow 
> that is older than the configured `nifi.flow.configuration.archive.max.time` 
> property is removed.
> 5. Update Admin Guide to explain the new properties



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to