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