18 lines
849 B
Go
18 lines
849 B
Go
package sessionbroker
|
|
|
|
import (
|
|
"context"
|
|
|
|
workercontracts "github.com/example/remote-access-platform/backend/pkg/contracts/worker"
|
|
)
|
|
|
|
type WorkerOrchestrator interface {
|
|
Reserve(ctx context.Context, request workercontracts.AttachRequest) (*workercontracts.WorkerLease, error)
|
|
GetSessionLease(ctx context.Context, sessionID string) (*workercontracts.WorkerLease, error)
|
|
ReleaseSessionLease(ctx context.Context, sessionID string) error
|
|
PrepareAttachment(ctx context.Context, session RemoteSession, attachment SessionAttachment, runtimeMetadata map[string]any) error
|
|
NotifyDetachment(ctx context.Context, session RemoteSession, attachment SessionAttachment) error
|
|
TerminateRemoteSession(ctx context.Context, sessionID, attachmentID string) error
|
|
ValidateSessionRuntime(ctx context.Context, sessionID, workerID string) (bool, string, error)
|
|
}
|