72 lines
1.8 KiB
Go
72 lines
1.8 KiB
Go
package domain
|
|
|
|
type ServerLifecycleAction string
|
|
|
|
const (
|
|
ServerLifecycleActionCreate ServerLifecycleAction = "create"
|
|
ServerLifecycleActionStart ServerLifecycleAction = "start"
|
|
ServerLifecycleActionStop ServerLifecycleAction = "stop"
|
|
ServerLifecycleActionStatus ServerLifecycleAction = "status"
|
|
)
|
|
|
|
const (
|
|
LifecycleCapabilityInstall = "process.install"
|
|
LifecycleCapabilityStart = "process.start"
|
|
LifecycleCapabilityStop = "process.stop"
|
|
LifecycleCapabilityStatus = "process.status"
|
|
)
|
|
|
|
type ServerLifecycleCreate struct {
|
|
ID string
|
|
PluginID string
|
|
RunEndpointID string
|
|
Name string
|
|
OwnerUserID string
|
|
IdempotencyKey string
|
|
ProfileKey string
|
|
Bindings map[string]string
|
|
}
|
|
|
|
type ServerLifecycleCommand struct {
|
|
ServerInstanceID string
|
|
ExpectedConfigVersion int
|
|
IdempotencyKey string
|
|
}
|
|
|
|
type ServerLifecycleResult struct {
|
|
Accepted bool
|
|
Action ServerLifecycleAction
|
|
Instance ServerInstance
|
|
Job Job
|
|
}
|
|
|
|
func LifecycleCapabilityForAction(action ServerLifecycleAction) string {
|
|
switch action {
|
|
case ServerLifecycleActionCreate:
|
|
return LifecycleCapabilityInstall
|
|
case ServerLifecycleActionStart:
|
|
return LifecycleCapabilityStart
|
|
case ServerLifecycleActionStop:
|
|
return LifecycleCapabilityStop
|
|
case ServerLifecycleActionStatus:
|
|
return LifecycleCapabilityStatus
|
|
default:
|
|
return ""
|
|
}
|
|
}
|
|
|
|
func CopyServerLifecycleCreate(create ServerLifecycleCreate) ServerLifecycleCreate {
|
|
create.Bindings = CopyStringMap(create.Bindings)
|
|
return create
|
|
}
|
|
|
|
func CopyServerLifecycleCommand(command ServerLifecycleCommand) ServerLifecycleCommand {
|
|
return command
|
|
}
|
|
|
|
func CopyServerLifecycleResult(result ServerLifecycleResult) ServerLifecycleResult {
|
|
result.Instance = CopyServerInstance(result.Instance)
|
|
result.Job = CopyJob(result.Job)
|
|
return result
|
|
}
|