| 117 | } |
| 118 | |
| 119 | func (v *VisitMarkerManager) ReadVisitMarker(ctx context.Context, visitMarker any) error { |
| 120 | visitMarkerFile := v.visitMarker.GetVisitMarkerFilePath() |
| 121 | visitMarkerFileReader, err := v.bkt.ReaderWithExpectedErrs(v.bkt.IsObjNotFoundErr).Get(ctx, visitMarkerFile) |
| 122 | if err != nil { |
| 123 | if v.bkt.IsObjNotFoundErr(err) { |
| 124 | return errors.Wrapf(errorVisitMarkerNotFound, "visit marker file: %s", visitMarkerFile) |
| 125 | } |
| 126 | return errors.Wrapf(err, "get visit marker file: %s", visitMarkerFile) |
| 127 | } |
| 128 | defer runutil.CloseWithLogOnErr(v.getLogger(), visitMarkerFileReader, "close visit marker reader") |
| 129 | b, err := io.ReadAll(visitMarkerFileReader) |
| 130 | if err != nil { |
| 131 | return errors.Wrapf(err, "read visit marker file: %s", visitMarkerFile) |
| 132 | } |
| 133 | if err = json.Unmarshal(b, visitMarker); err != nil { |
| 134 | return errors.Wrapf(errorUnmarshalVisitMarker, "visit marker file: %s, content: %s, error: %v", visitMarkerFile, string(b), err.Error()) |
| 135 | } |
| 136 | level.Debug(v.getLogger()).Log("msg", "visit marker read from file", "visit_marker_file", visitMarkerFile) |
| 137 | return nil |
| 138 | } |
| 139 | |
| 140 | func (v *VisitMarkerManager) updateVisitMarker(ctx context.Context) error { |
| 141 | visitMarkerFileContent, err := json.Marshal(v.visitMarker) |