package host import ( "github.com/carlosframework/platform/internal/hostfloor" "github.com/carlosframework/platform/internal/release" "github.com/carlosframework/platform/internal/status" "github.com/carlosframework/platform/internal/version" "os" "path/filepath" "runtime" "strings" ) func claimReport(p *status.Probes) { d, err := floorDisk(release.OptDir()) if err != nil { return } e, err := hostfloor.ReadEnrollment("/etc/carlos/host-actor.json") if err != nil { return } r, err := d.Running(version.Build, runtime.GOOS+"-"+runtime.GOARCH) if err != nil { return } if completed, err := os.ReadFile(filepath.Join(d.Dir, "completed.json")); err == nil && len(completed) == 32 && hostfloor.UpdateIdle(d.Dir, filepath.Join(systemRootDir(release.OptDir()), "journal.json")) == nil { p.ActivationID = string(completed) p.ActivationComplete = true } p.Enrollment = e.Enrollment p.ReleaseTag = r.ReleaseTag p.BinarySHA256 = r.Hash p.MovesProtocol = r.Protocol p.BootID = r.BootID p.FloorSHA256 = r.FloorSHA256 p.FloorGuardReady = r.GuardReady p.HostClaimEnabled = strings.TrimSpace(os.Getenv("CARLOS_HOST_CLAIM")) != "" }