PNDA supports creation of different applications using different data-processing platforms/tools like spark, flink, oozie.
Currently, PNDA doesn't have the support to do any other action on the application apart from start/stop. As these data-processing platforms/tools evolves, there would be a need to perform various actions on these applications. For example, in Flink, a user would want an easy way for Triggering, Listing, Resuming & Disposing of Savepoints for a chosen application.
PNDA may have to enhance applications of spark, oozie, etc in future to support different kinds of actions (not necessarily related to Savepoints alone).
This leads to a generic design of handling actions based on the application type without impacting the user experience of PNDA console UI.
Flink Savepoints related actions (Triggering, Listing, Resuming & Disposing) would be implemented with a generic design with actions & the required information is driven through deployment manager API. console-front-end code goes through minimum/no changes for every new action type.
Flink Savepoints is a feature provided by flink for streaming applications to take snapshot of current running state of application and store the metadata in specified directory. Using the metadata user can create a new instance of running application.
console-frontend would be getting the list of additional actions for an application based on application and each action will be handled by separate API.
For a category of actions related to savepoint, each of them to have a separate API like below:
List of More actions:
List Savepoints:
Restore/Dispose Savepoint:
JSON template for action list is here.
Action agnostic implementation at console front end to have a seamless user experience for all actions across flink, spark, oozie, etc.
console-front-end to have action specific code.