Rework DeploymentManager logic
- Deployments are started with the new StartDeployment message
- Removed MarathonSchedulerActor "awaitCancelation" logic - forced deployments are now completely handled by the DeploymentManager
- DeploymentManager has it's own deployment repository reference and makes all the repository operations
- DeploymentManager also handles a failed deployment when it's locked (force = false) through StartDeployment message
- Fixed unit tests to reflect the changes and added new tests
- Correct handling of leader abdication/reelection. DeploymentManager now goes into suspended receive mode where it ignores all the messages except for "RecoverDeployments" which signals leader election.
- Added documentation on deployment manager message flow
- Removed deployment repository reference from MarathonSchedulerActor
According to the code, this comment is misleading:
This basically means:
Asking the deployment manager would not be sufficient.