feat: 完整游戏运维功能
This commit is contained in:
@@ -0,0 +1,350 @@
|
||||
package domain
|
||||
|
||||
import "time"
|
||||
|
||||
type ClientManagerLifecycleStatus string
|
||||
|
||||
const (
|
||||
ClientManagerLifecycleRequested ClientManagerLifecycleStatus = "requested"
|
||||
ClientManagerLifecycleBuilding ClientManagerLifecycleStatus = "building"
|
||||
ClientManagerLifecycleAvailable ClientManagerLifecycleStatus = "available"
|
||||
ClientManagerLifecycleDeploying ClientManagerLifecycleStatus = "deploying"
|
||||
ClientManagerLifecycleInstalled ClientManagerLifecycleStatus = "installed"
|
||||
ClientManagerLifecycleRegistering ClientManagerLifecycleStatus = "registering"
|
||||
ClientManagerLifecycleOnline ClientManagerLifecycleStatus = "online"
|
||||
ClientManagerLifecycleDegraded ClientManagerLifecycleStatus = "degraded"
|
||||
ClientManagerLifecycleOffline ClientManagerLifecycleStatus = "offline"
|
||||
ClientManagerLifecycleUpdating ClientManagerLifecycleStatus = "updating"
|
||||
ClientManagerLifecycleRollingBack ClientManagerLifecycleStatus = "rolling_back"
|
||||
ClientManagerLifecycleStopping ClientManagerLifecycleStatus = "stopping"
|
||||
ClientManagerLifecycleUninstalled ClientManagerLifecycleStatus = "uninstalled"
|
||||
ClientManagerLifecycleFailed ClientManagerLifecycleStatus = "failed"
|
||||
)
|
||||
|
||||
type ClientManagerHealthStatus string
|
||||
|
||||
const (
|
||||
ClientManagerHealthUnknown ClientManagerHealthStatus = "unknown"
|
||||
ClientManagerHealthHealthy ClientManagerHealthStatus = "healthy"
|
||||
ClientManagerHealthDegraded ClientManagerHealthStatus = "degraded"
|
||||
ClientManagerHealthUnhealthy ClientManagerHealthStatus = "unhealthy"
|
||||
ClientManagerHealthOffline ClientManagerHealthStatus = "offline"
|
||||
)
|
||||
|
||||
type ClientManagerLifecycleOperation string
|
||||
|
||||
const (
|
||||
ClientManagerOperationDeploy ClientManagerLifecycleOperation = "deploy"
|
||||
ClientManagerOperationStart ClientManagerLifecycleOperation = "start"
|
||||
ClientManagerOperationStop ClientManagerLifecycleOperation = "stop"
|
||||
ClientManagerOperationRestart ClientManagerLifecycleOperation = "restart"
|
||||
ClientManagerOperationStatus ClientManagerLifecycleOperation = "status"
|
||||
ClientManagerOperationUpdate ClientManagerLifecycleOperation = "update"
|
||||
ClientManagerOperationRollback ClientManagerLifecycleOperation = "rollback"
|
||||
ClientManagerOperationUninstall ClientManagerLifecycleOperation = "uninstall"
|
||||
)
|
||||
|
||||
const (
|
||||
JobCapabilityClientManagerDeploy = "client-manager.deploy"
|
||||
JobCapabilityClientManagerControl = "client-manager.control"
|
||||
JobCapabilityClientManagerUpdate = "client-manager.update"
|
||||
JobCapabilityClientManagerRollback = "client-manager.rollback"
|
||||
JobCapabilityClientManagerUninstall = "client-manager.uninstall"
|
||||
)
|
||||
|
||||
type ClientManagerSessionStatus string
|
||||
|
||||
const (
|
||||
ClientManagerSessionActive ClientManagerSessionStatus = "active"
|
||||
ClientManagerSessionRevoked ClientManagerSessionStatus = "revoked"
|
||||
ClientManagerSessionExpired ClientManagerSessionStatus = "expired"
|
||||
)
|
||||
|
||||
type RuntimeClientManagerDeployment struct {
|
||||
Mode string
|
||||
ExecutableRef string
|
||||
Arguments []string
|
||||
AutoStart bool
|
||||
RequiredRunCapabilities []string
|
||||
}
|
||||
|
||||
type RuntimeClientManagerLifecycle struct {
|
||||
Actions []string
|
||||
StartupTimeoutSeconds int
|
||||
StopTimeoutSeconds int
|
||||
}
|
||||
|
||||
type RuntimeClientManagerHealth struct {
|
||||
Mode string
|
||||
IntervalSeconds int
|
||||
DegradedAfterSeconds int
|
||||
OfflineAfterSeconds int
|
||||
RequiredCapabilities []string
|
||||
}
|
||||
|
||||
type RuntimeClientManagerCompatibility struct {
|
||||
MinimumVersion string
|
||||
MaximumVersion string
|
||||
AllowDowngrade bool
|
||||
}
|
||||
|
||||
type RuntimeClientManagerUpdatePolicy struct {
|
||||
Strategy string
|
||||
RequireApproval bool
|
||||
HealthConfirmationSeconds int
|
||||
RetainPrevious bool
|
||||
}
|
||||
|
||||
type ClientManagerInstallation struct {
|
||||
ID string
|
||||
ServerInstanceID string
|
||||
PluginID string
|
||||
ProfileKey string
|
||||
RunEndpointID string
|
||||
TargetOS string
|
||||
TargetArch string
|
||||
Status ClientManagerLifecycleStatus
|
||||
Phase string
|
||||
DesiredVersion string
|
||||
ActiveVersion string
|
||||
PreviousVersion string
|
||||
DesiredRevision string
|
||||
ActiveRevision string
|
||||
PreviousRevision string
|
||||
DesiredArtifactID string
|
||||
ActiveArtifactID string
|
||||
PreviousArtifactID string
|
||||
Checksum string
|
||||
KeyGeneration int
|
||||
DeploymentGeneration int
|
||||
CurrentJobID string
|
||||
LastSuccessfulJobID string
|
||||
LastOperation ClientManagerLifecycleOperation
|
||||
Health ClientManagerHealthStatus
|
||||
HealthReason string
|
||||
LastSeenAt time.Time
|
||||
LastHeartbeatSequence uint64
|
||||
Retryable bool
|
||||
RequiresRedeploy bool
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
InstalledAt time.Time
|
||||
UninstalledAt time.Time
|
||||
}
|
||||
|
||||
type ClientManagerSession struct {
|
||||
ID string
|
||||
InstallationID string
|
||||
ServerInstanceID string
|
||||
ProfileKey string
|
||||
RunEndpointID string
|
||||
ArtifactID string
|
||||
KeyGeneration int
|
||||
DeploymentGeneration int
|
||||
TokenHash string
|
||||
Capabilities []string
|
||||
Status ClientManagerSessionStatus
|
||||
LastHeartbeatSequence uint64
|
||||
LastSeenAt time.Time
|
||||
ExpiresAt time.Time
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
RevokedAt time.Time
|
||||
}
|
||||
|
||||
type ClientManagerRegistrationNonce struct {
|
||||
ID string
|
||||
InstallationID string
|
||||
ExpiresAt time.Time
|
||||
CreatedAt time.Time
|
||||
}
|
||||
|
||||
type ClientManagerLifecycleActionAvailability struct {
|
||||
Operation ClientManagerLifecycleOperation
|
||||
Available bool
|
||||
Reason string
|
||||
}
|
||||
|
||||
type ClientManagerLifecycleView struct {
|
||||
Installation ClientManagerInstallation
|
||||
Distribution ClientManagerDistribution
|
||||
Job Job
|
||||
Actions []ClientManagerLifecycleActionAvailability
|
||||
}
|
||||
|
||||
type ClientManagerDeployRequest struct {
|
||||
ServerInstanceID string
|
||||
ProfileKey string
|
||||
DistributionID string
|
||||
ExpectedDeploymentGeneration int
|
||||
IdempotencyKey string
|
||||
}
|
||||
|
||||
type ClientManagerControlRequest struct {
|
||||
ServerInstanceID string
|
||||
ProfileKey string
|
||||
Operation ClientManagerLifecycleOperation
|
||||
ExpectedDeploymentGeneration int
|
||||
IdempotencyKey string
|
||||
}
|
||||
|
||||
type ClientManagerUpdateRequest struct {
|
||||
ServerInstanceID string
|
||||
ProfileKey string
|
||||
DistributionID string
|
||||
ExpectedDeploymentGeneration int
|
||||
Approved bool
|
||||
IdempotencyKey string
|
||||
}
|
||||
|
||||
type ClientManagerUninstallRequest struct {
|
||||
ServerInstanceID string
|
||||
ProfileKey string
|
||||
ExpectedDeploymentGeneration int
|
||||
Confirmed bool
|
||||
IdempotencyKey string
|
||||
}
|
||||
|
||||
type ClientManagerRetryRequest struct {
|
||||
ServerInstanceID string
|
||||
ProfileKey string
|
||||
ExpectedDeploymentGeneration int
|
||||
IdempotencyKey string
|
||||
}
|
||||
|
||||
type ClientManagerRevokeSessionRequest struct {
|
||||
ServerInstanceID string
|
||||
ProfileKey string
|
||||
Reason string
|
||||
}
|
||||
|
||||
type ClientManagerLifecycleInputRequest struct {
|
||||
RunEndpointID string
|
||||
SessionToken string
|
||||
JobID string
|
||||
LeaseToken string
|
||||
Attempt int
|
||||
}
|
||||
|
||||
type ClientManagerLifecycleInput struct {
|
||||
InstallationID string
|
||||
ServerInstanceID string
|
||||
ProfileKey string
|
||||
Operation ClientManagerLifecycleOperation
|
||||
ArtifactID string
|
||||
Checksum string
|
||||
TargetOS string
|
||||
TargetArch string
|
||||
Version string
|
||||
SourceRevision string
|
||||
KeyGeneration int
|
||||
DeploymentGeneration int
|
||||
ExecutableRef string
|
||||
Arguments []string
|
||||
AutoStart bool
|
||||
StartupTimeoutSeconds int
|
||||
StopTimeoutSeconds int
|
||||
HealthConfirmationSeconds int
|
||||
IdempotencyKey string
|
||||
}
|
||||
|
||||
type ClientManagerRegisterRequest struct {
|
||||
InstallationID string
|
||||
ServerInstanceID string
|
||||
ProfileKey string
|
||||
ArtifactID string
|
||||
Version string
|
||||
SourceRevision string
|
||||
TargetOS string
|
||||
TargetArch string
|
||||
KeyGeneration int
|
||||
DeploymentGeneration int
|
||||
Capabilities []string
|
||||
Timestamp time.Time
|
||||
Nonce string
|
||||
Signature string
|
||||
}
|
||||
|
||||
type ClientManagerRegisterResult struct {
|
||||
Accepted bool
|
||||
InstallationID string
|
||||
SessionToken string
|
||||
ExpiresAt time.Time
|
||||
HeartbeatEvery int
|
||||
ServerTime time.Time
|
||||
}
|
||||
|
||||
type ClientManagerHeartbeat struct {
|
||||
InstallationID string
|
||||
SessionToken string
|
||||
Sequence uint64
|
||||
Health ClientManagerHealthStatus
|
||||
HealthReason string
|
||||
Capabilities []string
|
||||
SentAt time.Time
|
||||
}
|
||||
|
||||
type ClientManagerHeartbeatResult struct {
|
||||
Accepted bool
|
||||
InstallationID string
|
||||
Status ClientManagerLifecycleStatus
|
||||
Health ClientManagerHealthStatus
|
||||
NextHeartbeat int
|
||||
SessionExpiresAt time.Time
|
||||
ServerTime time.Time
|
||||
}
|
||||
|
||||
type ClientManagerInstallationFilter struct {
|
||||
ServerInstanceID string
|
||||
ProfileKey string
|
||||
RunEndpointID string
|
||||
Status ClientManagerLifecycleStatus
|
||||
}
|
||||
|
||||
type ClientManagerSessionFilter struct {
|
||||
InstallationID string
|
||||
ServerInstanceID string
|
||||
ProfileKey string
|
||||
Status ClientManagerSessionStatus
|
||||
}
|
||||
|
||||
type ClientManagerNonceFilter struct {
|
||||
InstallationID string
|
||||
ExpiresBefore time.Time
|
||||
}
|
||||
|
||||
func CopyClientManagerInstallation(value ClientManagerInstallation) ClientManagerInstallation {
|
||||
return value
|
||||
}
|
||||
|
||||
func CopyClientManagerSession(value ClientManagerSession) ClientManagerSession {
|
||||
value.Capabilities = CopyStringSlice(value.Capabilities)
|
||||
return value
|
||||
}
|
||||
|
||||
func CopyClientManagerRegistrationNonce(value ClientManagerRegistrationNonce) ClientManagerRegistrationNonce {
|
||||
return value
|
||||
}
|
||||
|
||||
func CopyClientManagerLifecycleView(value ClientManagerLifecycleView) ClientManagerLifecycleView {
|
||||
value.Installation = CopyClientManagerInstallation(value.Installation)
|
||||
value.Distribution = CopyClientManagerDistribution(value.Distribution)
|
||||
value.Job = CopyJob(value.Job)
|
||||
value.Actions = append([]ClientManagerLifecycleActionAvailability(nil), value.Actions...)
|
||||
return value
|
||||
}
|
||||
|
||||
func CopyClientManagerLifecycleInput(value ClientManagerLifecycleInput) ClientManagerLifecycleInput {
|
||||
value.Arguments = CopyStringSlice(value.Arguments)
|
||||
return value
|
||||
}
|
||||
|
||||
func CopyClientManagerRegisterRequest(value ClientManagerRegisterRequest) ClientManagerRegisterRequest {
|
||||
value.Capabilities = CopyStringSlice(value.Capabilities)
|
||||
return value
|
||||
}
|
||||
|
||||
func CopyClientManagerHeartbeat(value ClientManagerHeartbeat) ClientManagerHeartbeat {
|
||||
value.Capabilities = CopyStringSlice(value.Capabilities)
|
||||
return value
|
||||
}
|
||||
Reference in New Issue
Block a user