Files
browser/platform/domain/plugin_operations.go
T

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
}