MCPcopy
hub / github.com/kopia/kopia / refreshStatus

Method refreshStatus

internal/server/source_manager.go:432–476  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

430}
431
432func (s *sourceManager) refreshStatus(ctx context.Context) {
433 ctx, cancel := context.WithTimeout(ctx, refreshTimeout)
434 defer cancel()
435
436 pol, _, _, err := policy.GetEffectivePolicy(ctx, s.rep, s.src)
437 if err != nil {
438 s.setStatus("FAILED")
439 return
440 }
441
442 snapshots, err := snapshot.ListSnapshots(ctx, s.rep, s.src)
443 if err != nil {
444 s.setStatus("FAILED")
445 return
446 }
447
448 s.sourceMutex.Lock()
449 defer s.sourceMutex.Unlock()
450
451 s.pol = pol.SchedulingPolicy
452 s.manifestsSinceLastCompleteSnapshot = nil
453 s.lastCompleteSnapshot = nil
454
455 snaps := snapshot.SortByTime(snapshots, true)
456 if len(snaps) > 0 {
457 s.lastSnapshot = snaps[0]
458 for _, sn := range snaps {
459 s.manifestsSinceLastCompleteSnapshot = append(s.manifestsSinceLastCompleteSnapshot, sn)
460
461 // complete snapshot, end here
462 if sn.IncompleteReason == "" {
463 s.lastCompleteSnapshot = sn
464 break
465 }
466 }
467 } else {
468 s.lastSnapshot = nil
469 }
470
471 if s.paused {
472 s.nextSnapshotTime = nil
473 } else {
474 s.nextSnapshotTime = s.findClosestNextSnapshotTimeReadLocked()
475 }
476}
477
478type uitaskProgress struct {
479 nextReportTimeNanos atomic.Int64

Callers 3

startMethod · 0.95
runLocalMethod · 0.95
syncSourcesLockedMethod · 0.80

Calls 7

setStatusMethod · 0.95
GetEffectivePolicyFunction · 0.92
ListSnapshotsFunction · 0.92
SortByTimeFunction · 0.92
LockMethod · 0.65
UnlockMethod · 0.65

Tested by

no test coverage detected