+
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion manager/attestation_policy.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
return nil, err
}
}
if measurement == nil {
if measurement != nil {

Check warning on line 70 in manager/attestation_policy.go

View check run for this annotation

Codecov / codecov/patch

manager/attestation_policy.go#L70

Added line #L70 was not covered by tests
attestationPolicy.Policy.Measurement = measurement
}

Expand Down
16 changes: 11 additions & 5 deletions manager/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,10 @@ func New(cfg qemu.Config, attestationPolicyBinPath string, logger *slog.Logger,
}

func (ms *managerService) Run(ctx context.Context, c *ComputationRunReq) (string, error) {
ms.mu.Lock()
cfg := ms.qemuCfg
ms.mu.Unlock()

ms.publishEvent(manager.VmProvision.String(), c.Id, manager.Starting.String(), json.RawMessage{})
ac := agent.Computation{
ID: c.Id,
Expand Down Expand Up @@ -157,7 +161,7 @@ func (ms *managerService) Run(ctx context.Context, c *ComputationRunReq) (string
ms.publishEvent(manager.VmProvision.String(), c.Id, agent.Failed.String(), json.RawMessage{})
return "", errors.Wrap(ErrFailedToAllocatePort, err)
}
ms.qemuCfg.HostFwdAgent = agentPort
cfg.HostFwdAgent = agentPort

var cid int = qemu.BaseGuestCID
for {
Expand All @@ -173,7 +177,7 @@ func (ms *managerService) Run(ctx context.Context, c *ComputationRunReq) (string
}
cid++
}
ms.qemuCfg.VSockConfig.GuestCID = cid
cfg.VSockConfig.GuestCID = cid

ch, err := computationHash(ac)
if err != nil {
Expand All @@ -182,9 +186,9 @@ func (ms *managerService) Run(ctx context.Context, c *ComputationRunReq) (string
}

// Define host-data value of QEMU for SEV-SNP, with a base64 encoding of the computation hash.
ms.qemuCfg.SevConfig.HostData = base64.StdEncoding.EncodeToString(ch[:])
cfg.SevConfig.HostData = base64.StdEncoding.EncodeToString(ch[:])

cvm := ms.vmFactory(ms.qemuCfg, ms.eventsLogsSender, c.Id)
cvm := ms.vmFactory(cfg, ms.eventsLogsSender, c.Id)
ms.publishEvent(manager.VmProvision.String(), c.Id, agent.InProgress.String(), json.RawMessage{})
if err = cvm.Start(); err != nil {
ms.publishEvent(manager.VmProvision.String(), c.Id, agent.Failed.String(), json.RawMessage{})
Expand All @@ -198,7 +202,7 @@ func (ms *managerService) Run(ctx context.Context, c *ComputationRunReq) (string

state := qemu.VMState{
ID: c.Id,
Config: ms.qemuCfg,
Config: cfg,
PID: pid,
}
if err := ms.persistence.SaveVM(state); err != nil {
Expand All @@ -212,9 +216,11 @@ func (ms *managerService) Run(ctx context.Context, c *ComputationRunReq) (string
return "", err
}

ms.mu.Lock()
if err := ms.vms[c.Id].Transition(manager.VmRunning); err != nil {
ms.logger.Warn("Failed to transition VM state", "computation", c.Id, "error", err)
}
ms.mu.Unlock()

ms.publishEvent(manager.VmProvision.String(), c.Id, agent.Completed.String(), json.RawMessage{})

Expand Down
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载