github.com/cilium/statedb@v0.3.2/reconciler/testdata/pruning.txtar (about)

     1  hive start
     2  start-reconciler with-prune
     3  
     4  # Pruning without table being initialized does nothing.
     5  db insert test-objects obj1.yaml
     6  expect-ops update(1)
     7  prune
     8  db insert test-objects obj2.yaml 
     9  expect-ops update(2) update(1)
    10  health 'job-reconcile.*level=OK'
    11  
    12  # After init pruning happens immediately
    13  mark-init
    14  expect-ops prune(n=2)
    15  health 'job-reconcile.*level=OK'
    16  expvar
    17  ! grep 'prune_count.test: 0'
    18  
    19  # Pruning with faulty ops will mark status as degraded
    20  set-faulty true
    21  prune
    22  expect-ops 'prune(n=2) fail'
    23  health 'job-reconcile.*level=Degraded.*message=.*prune fail'
    24  expvar
    25  grep 'prune_current_errors.test: 1'
    26  
    27  # Pruning again with healthy ops fixes the status.
    28  set-faulty false
    29  prune
    30  expect-ops 'prune(n=2)'
    31  health 'job-reconcile.*level=OK'
    32  expvar
    33  grep 'prune_current_errors.test: 0'
    34  
    35  # Delete an object and check pruning happens without it
    36  db delete test-objects obj1.yaml
    37  prune
    38  expect-ops 'prune(n=1)' delete(1)
    39  
    40  # Prune without objects
    41  db delete test-objects obj2.yaml
    42  prune
    43  expect-ops prune(n=0) delete(2) prune(n=1)
    44  
    45  # Check metrics
    46  expvar
    47  ! grep 'prune_count.test: 0'
    48  grep 'prune_current_errors.test: 0'
    49  grep 'prune_total_errors.test: 1'
    50  ! grep 'prune_duration.test: 0$'
    51  ! grep 'reconciliation_count.test: 0$'
    52  grep 'reconciliation_current_errors.test: 0$'
    53  grep 'reconciliation_total_errors.test: 0$'
    54  ! grep 'reconciliation_duration.test/update: 0$'
    55  ! grep 'reconciliation_duration.test/delete: 0$'
    56  
    57  -- obj1.yaml --
    58  id: 1
    59  faulty: false
    60  status:
    61      kind: Pending
    62  
    63  -- obj2.yaml --
    64  id: 2
    65  faulty: false
    66  status:
    67      kind: Pending
    68