@@ -6,14 +6,15 @@ import (
66 "fmt"
77 "time"
88
9+ "github.com/e2b-dev/infra/packages/shared/pkg/id"
910 "github.com/gogo/status"
11+ "github.com/jackc/pgx/v5/pgtype"
1012 "google.golang.org/grpc/codes"
1113
1214 "github.com/e2b-dev/infra/packages/api/internal/orchestrator/nodemanager"
1315 "github.com/e2b-dev/infra/packages/api/internal/sandbox"
1416 "github.com/e2b-dev/infra/packages/db/queries"
1517 "github.com/e2b-dev/infra/packages/db/types"
16- "github.com/e2b-dev/infra/packages/shared/pkg/db"
1718 "github.com/e2b-dev/infra/packages/shared/pkg/grpc/orchestrator"
1819 "github.com/e2b-dev/infra/packages/shared/pkg/models/envbuild"
1920 "github.com/e2b-dev/infra/packages/shared/pkg/telemetry"
@@ -29,39 +30,36 @@ func (o *Orchestrator) pauseSandbox(ctx context.Context, node *nodemanager.Node,
2930 ctx , span := tracer .Start (ctx , "pause-sandbox" )
3031 defer span .End ()
3132
32- snapshotConfig := & db. SnapshotInfo {
33+ result , err := o . sqlcDB . UpsertSnapshotEnvAndBuild ( ctx , queries. UpsertSnapshotEnvAndBuildParams {
3334 BaseTemplateID : sbx .BaseTemplateID ,
35+ TemplateID : id .Generate (),
36+ TeamID : sbx .TeamID ,
3437 SandboxID : sbx .SandboxID ,
35- SandboxStartedAt : sbx .StartTime ,
36- VCPU : sbx .VCpu ,
37- RAMMB : sbx .RamMB ,
38- TotalDiskSizeMB : sbx .TotalDiskSizeMB ,
38+ StartedAt : pgtype.Timestamptz {Time : sbx .StartTime , Valid : true },
39+ Status : string (envbuild .StatusSnapshotting ),
40+ OriginNodeID : node .ID ,
41+ Vcpu : sbx .VCpu ,
42+ RamMb : sbx .RamMB ,
43+ TotalDiskSizeMb : & sbx .TotalDiskSizeMB ,
3944 Metadata : sbx .Metadata ,
4045 KernelVersion : sbx .KernelVersion ,
4146 FirecrackerVersion : sbx .FirecrackerVersion ,
42- EnvdVersion : sbx .EnvdVersion ,
43- EnvdSecured : sbx .EnvdAccessToken != nil ,
47+ EnvdVersion : & sbx .EnvdVersion ,
48+ Secure : sbx .EnvdAccessToken != nil ,
4449 AllowInternetAccess : sbx .AllowInternetAccess ,
4550 AutoPause : sbx .AutoPause ,
4651 Config : & types.PausedSandboxConfig {
4752 Version : types .PausedSandboxConfigVersion ,
4853 Network : sbx .Network ,
4954 },
50- }
51-
52- envBuild , err := o .dbClient .NewSnapshotBuild (
53- ctx ,
54- snapshotConfig ,
55- sbx .TeamID ,
56- sbx .NodeID ,
57- )
55+ })
5856 if err != nil {
59- telemetry .ReportCriticalError (ctx , "error pausing sandbox " , err )
57+ telemetry .ReportCriticalError (ctx , "error inserting snapshot for env " , err )
6058
6159 return err
6260 }
6361
64- err = snapshotInstance (ctx , o , node , sbx , envBuild . EnvID , envBuild . ID .String ())
62+ err = snapshotInstance (ctx , o , node , sbx , result . TemplateID , result . BuildID .String ())
6563 if errors .Is (err , PauseQueueExhaustedError {}) {
6664 telemetry .ReportCriticalError (ctx , "pause queue exhausted" , err )
6765
@@ -79,8 +77,8 @@ func (o *Orchestrator) pauseSandbox(ctx context.Context, node *nodemanager.Node,
7977 Status : string (envbuild .StatusSuccess ),
8078 FinishedAt : & now ,
8179 Reason : types.BuildReason {},
82- BuildID : envBuild . ID ,
83- TemplateID : envBuild . EnvID ,
80+ BuildID : result . BuildID ,
81+ TemplateID : result . TemplateID ,
8482 })
8583 if err != nil {
8684 telemetry .ReportCriticalError (ctx , "error pausing sandbox" , err )
0 commit comments