Keep plugin records out of platform projections

This commit is contained in:
npc0-hue
2026-09-04 14:29:50 +08:00
parent 3cfb98ed47
commit ba36668668
6 changed files with 2 additions and 400 deletions
@@ -53,15 +53,6 @@ func (svc *CoreService) ReportRunLifecycle(report domain.RunLifecycleReport) (do
}
svc.publishLogProcessState(instance)
}
if report.State == domain.JobStateSucceeded && !staleObservation {
plugin, pluginErr := svc.store.GamePlugins().Get(instance.PluginID)
if pluginErr != nil {
return domain.RunLifecycleReportResult{}, pluginErr
}
if err := svc.projectPluginLifecycleState(instance, plugin, report.Capability, report.ExecutionResult, stamp); err != nil {
return domain.RunLifecycleReportResult{}, err
}
}
return domain.CopyRunLifecycleReportResult(domain.RunLifecycleReportResult{Accepted: true, RunEndpointID: report.RunEndpointID, ServerInstanceID: report.ServerInstanceID, ProjectedState: nextState, ServerTime: stamp}), nil
}
@@ -107,9 +98,6 @@ func (svc *CoreService) projectLifecycleJobResult(job domain.Job, stamp time.Tim
}
nextState, ok := lifecycleProjectedState(job.Capability, job.State, job.ExecutionResult)
if !ok || job.ServerInstanceID == "" {
if job.State == domain.JobStateSucceeded && job.ServerInstanceID != "" {
return svc.projectPluginLifecycleStateForJob(job, stamp)
}
return nil
}
instance, err := svc.store.ServerInstances().Get(job.ServerInstanceID)
@@ -125,30 +113,9 @@ func (svc *CoreService) projectLifecycleJobResult(job domain.Job, stamp time.Tim
return err
}
svc.publishLogProcessState(instance)
if job.State == domain.JobStateSucceeded {
plugin, err := svc.store.GamePlugins().Get(instance.PluginID)
if err != nil {
return err
}
if err := svc.projectPluginLifecycleState(instance, plugin, job.Capability, job.ExecutionResult, stamp); err != nil {
return err
}
}
return nil
}
func (svc *CoreService) projectPluginLifecycleStateForJob(job domain.Job, stamp time.Time) error {
instance, err := svc.store.ServerInstances().Get(job.ServerInstanceID)
if err != nil {
return err
}
plugin, err := svc.store.GamePlugins().Get(instance.PluginID)
if err != nil {
return err
}
return svc.projectPluginLifecycleState(instance, plugin, job.Capability, job.ExecutionResult, stamp)
}
func (svc *CoreService) projectServerDeploymentProgress(job domain.Job, stamp time.Time) error {
if job.ExecutionInput.Deployment == nil || job.ServerInstanceID == "" {
return nil