Kimmels-n-Bits / PSRelativityConfig

A PowerShell module with cmdlets to configure Relativity environments.
MIT License
1 stars 0 forks source link

Create function Invoke-RelativityInstallationJob #11

Open Kimmels-n-Bits opened 3 months ago

Kimmels-n-Bits commented 3 months ago

Using the same job creation and management framework as the other existing Invoke-*Job functions create a job that runs the main Relativity installer on a provided set of servers, monitors installation progress, and returns the result. Successful installations should flag a boolean on the RelativityServer object stating that installation was successful so that a retry would skip it.

I imagine we'll want to refactor to remove the current "Install" boolean and have a series of more specific booleans like InstallRelativity, InstallInvariant (and in the future InstallAnalytics, InstallDataGrid, InstallProcessingConsole, InstallRelativitylDesktopClient - we can create a separate issue for each) and then companion booleans for whether or not the install was successful.

We'll then want to adjust Invoke-RelativityInstall, add a "InstallOnly" switch that is mutually exclusive with the "StageOnly" switch, adjust the logic so that it actually uses the switches to determine what actions to perform (with all actions being performed if none of the *Only switches are used).

Installation should be done in the order Secret Store(s) -> Primary SQL -> Messaging Server(s) -> Agent/Web/DistributedSQL (in parallel) -> Queue Manager(s) -> Worker(s) (and in the future Analytics, DataGrid, Processing Console, Desktop Client - we can create a separate issue for each of those).

In the event a given stage encounters any errors report on the errors and break from the Invoke-RelativityInstall function (maybe we do a generic "throw" and, as part of catching the exception, write out the errored servers / messages), allowing the user to resolve whatever errors occurred before they rerun and move on to the next step. Upon rerun anything with a successful installation flag should be skipped.