A operation defines a directive that a collection of targeted Pineapple plugins should execute on.
Pineapple supports any operation, it only depends one whether a plugin implements operations which responds to a particular operation.
The default workflows is just a set for workflows which have proven useful to the creator during the development and usage of Pineapple. The following default workflows is defined:
The test workflow is used to invoke plugins which supports testing the state and configuration of resources. The workflow consist of a single operation:
This workflow was the original inspiration for Pineapple; deployment of JEE application with configuration of any appropriate resources.
The workflow defines the steps in deployment of a application including any required resources in the runtime environment where the application should run. The workflow consist of a these operations:
Deploy the configuration into target resources in a computing environment.
If the configuration already exists at a target resource, then the target resource is updated with the configuration in the model.
If used protocol or target resource doesn't support update of an existing configuration then model execution is considered successful even with no update of the target resource. The intention with the model execution is to reach a situation where the configuration is created. This goal is reached, because it was already reached prior to model execution. The executing plugin a should log a warning in such a situation to notify the user of the non-update.
This approach support idempotent execution of models.
Examples of resources are JEE resources like data sources, queues and virtual hosts. Examples of other resources are the provisioning Docker images and containers.
Stops any running resources and removes them from the computing environment.
If the configuration doesn't exist at a target resource, then model execution is considered successful. The intention with the model execution is to reach a situation where the configuration is deleted. The goal is reached, because it was already reached prior to model execution. The executing plugin a should log a warning in such a situation to notify the user of the non-update.
This approach support idempotent execution of models.