When installing a specific version of a content pack, Graylog needs to do the following things:
Ask user for parameters defined in content pack
Check validity of version constraints
Check validity of provided parameters
Resolve dependencies of the described entities
Create entities in the correct order
If a "singleton" entity already exists, use the existing instance (e. g. Grok pattern, lookup data adapter, lookup cache)
Create a mapping of the content pack entity IDs to the actual database IDs
In case of an error: Remove all newly created entities in reverse order
In case of success: Create a "snapshot" of the content pack instance, the parameters, and the actual entity references (ID?) so that modified entities can be detected later
When installing a specific version of a content pack, Graylog needs to do the following things: