Details
-
Task
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
None
-
None
-
None
Description
Currently, there can be only one instance of a management agent in an OSGi framework. For a couple of use cases it makes sense to support multiple instances, each with their own identity, talking to their own discovered server(s). One use case is to have multiple management agents each deploy subsets of software that are completely isolated from each other (respecting the constraints that having multiple deployment packages impose). Of course there are downsides to this use case, as conflicts can arise that can never be detected beforehand on the server, so using multiple instances in this use case is strongly discouraged unless you can be sure you won't run into these issues. Another use case is when a management agent is being used to "import" software from one provisioning server to another, and you want to get software from multiple sources. This can be used in scenarios where you want to have a controlled merge between software from multiple sources, giving you control over how they are merged and allowing validation before sending the result to a target.
In short, changes that need to be made are converting everything that is currently implemented as a "singleton" service into a managed service factory, adding a property to each service that can be used to identify the management agent it belongs to, and filtering the audit logs in such a way that each log sees the difference between "their" deployment package and "other" deployment packages.