87 lines
2.7 KiB
Go
87 lines
2.7 KiB
Go
package domain
|
|
|
|
import "time"
|
|
|
|
type PluginLifecycleState string
|
|
|
|
const (
|
|
PluginLifecycleStatePending PluginLifecycleState = "pending"
|
|
PluginLifecycleStateInstalled PluginLifecycleState = "installed"
|
|
PluginLifecycleStateEnabled PluginLifecycleState = "enabled"
|
|
PluginLifecycleStateDisabled PluginLifecycleState = "disabled"
|
|
PluginLifecycleStateUpgrading PluginLifecycleState = "upgrading"
|
|
PluginLifecycleStateRollingBack PluginLifecycleState = "rolling_back"
|
|
PluginLifecycleStateRetired PluginLifecycleState = "retired"
|
|
PluginLifecycleStateFailed PluginLifecycleState = "failed"
|
|
)
|
|
|
|
type PluginLifecycleOperation string
|
|
|
|
const (
|
|
PluginLifecycleOperationInstall PluginLifecycleOperation = "install"
|
|
PluginLifecycleOperationEnable PluginLifecycleOperation = "enable"
|
|
PluginLifecycleOperationDisable PluginLifecycleOperation = "disable"
|
|
PluginLifecycleOperationUpgrade PluginLifecycleOperation = "upgrade"
|
|
PluginLifecycleOperationRollback PluginLifecycleOperation = "rollback"
|
|
PluginLifecycleOperationRetire PluginLifecycleOperation = "retire"
|
|
PluginLifecycleOperationDependencyCheck PluginLifecycleOperation = "dependency-check"
|
|
)
|
|
|
|
type PluginLifecycleInstallation struct {
|
|
ID string
|
|
PluginID string
|
|
ServerInstanceID string
|
|
CurrentVersion string
|
|
TargetVersion string
|
|
PreviousVersion string
|
|
DesiredState PluginLifecycleState
|
|
CurrentState PluginLifecycleState
|
|
LastOperation PluginLifecycleOperation
|
|
Compatibility string
|
|
DependencyState DependencyState
|
|
JobID string
|
|
FailureReason string
|
|
IdempotencyKey string
|
|
CreatedAt time.Time
|
|
UpdatedAt time.Time
|
|
}
|
|
|
|
type PluginLifecycleFilter struct {
|
|
PluginID string
|
|
ServerInstanceID string
|
|
CurrentState PluginLifecycleState
|
|
}
|
|
|
|
type PluginLifecycleRequest struct {
|
|
PluginID string
|
|
ServerInstanceID string
|
|
Operation PluginLifecycleOperation
|
|
TargetVersion string
|
|
IdempotencyKey string
|
|
}
|
|
|
|
type PluginLifecycleResult struct {
|
|
Installation PluginLifecycleInstallation
|
|
Job Job
|
|
Status string
|
|
}
|
|
|
|
func CopyPluginLifecycleInstallation(installation PluginLifecycleInstallation) PluginLifecycleInstallation {
|
|
return installation
|
|
}
|
|
|
|
func CopyPluginLifecycleInstallations(installations []PluginLifecycleInstallation) []PluginLifecycleInstallation {
|
|
if installations == nil {
|
|
return nil
|
|
}
|
|
out := make([]PluginLifecycleInstallation, len(installations))
|
|
copy(out, installations)
|
|
return out
|
|
}
|
|
|
|
func CopyPluginLifecycleResult(result PluginLifecycleResult) PluginLifecycleResult {
|
|
result.Installation = CopyPluginLifecycleInstallation(result.Installation)
|
|
result.Job = CopyJob(result.Job)
|
|
return result
|
|
}
|