@@ -575,6 +575,10 @@ def add_arguments(self, parser):
575575 '--clear-state' ,
576576 action = 'store_true' ,
577577 )
578+ parser .add_argument (
579+ '--clear-es8-data' ,
580+ action = 'store_true' ,
581+ )
578582 parser .add_argument (
579583 '--start' ,
580584 action = 'store_true' ,
@@ -602,6 +606,7 @@ def handle(
602606 no_setup ,
603607 no_counts ,
604608 clear_state ,
609+ clear_es8_data ,
605610 start ,
606611 unchanged ,
607612 usage_events ,
@@ -613,6 +618,8 @@ def handle(
613618 call_command ('djelme_backend_setup' )
614619 if clear_state :
615620 self ._clear_state ()
621+ if clear_es8_data :
622+ self ._clear_es8_data (unchanged , usage_events , usage_reports )
616623 self ._check_started_at (start_now = start )
617624 _default_all = not any ((unchanged , usage_events , usage_reports ))
618625 if unchanged or _default_all :
@@ -754,6 +761,22 @@ def _clear_state(self):
754761 es8_metrics .Elastic6To8State .search ().query ({'match_all' : {}}).delete ()
755762 es8_metrics .Elastic6To8State .refresh ()
756763
764+ def _clear_es8_data (self , unchanged , usage_events , usage_reports ):
765+ _default_all = not any ((unchanged , usage_events , usage_reports ))
766+ _to_clear = []
767+ if _default_all or unchanged :
768+ _to_clear .extend (_UNCHANGED_RECORDTYPES .values ())
769+ if _default_all or usage_events :
770+ _to_clear .append (es8_metrics .MonthlyPublicItemUsageReportEs8 )
771+ if _default_all or usage_reports :
772+ _to_clear .append (es8_metrics .OsfCountedUsageEvent )
773+ for _es8_recordtype in _to_clear :
774+ self .stdout .write (
775+ f'clearing { _es8_recordtype .__name__ } ' , self .style .NOTICE
776+ )
777+ _es8_recordtype .search ().query ({'match_all' : {}}).delete ()
778+ _es8_recordtype .refresh ()
779+
757780 def _eq_style (self , num : int , should_be : int ):
758781 return self .style .SUCCESS if (num == should_be ) else self .style .WARNING
759782
0 commit comments