a )g @sBddlmZmZmZeZddlmZddlm Z GdddZ dS))absolute_importdivisionprint_function)MutableMapping) merge_hashc@sDeZdZdZddZddZddZdd Zdd d Zdd dZ d S)AggregateStatsz: holds stats about per-host activity during playbook runs cCs:i|_i|_i|_i|_i|_i|_i|_i|_i|_dS)N) processedfailuresokdarkchangedskippedrescuedignoredcustom)selfr:/usr/lib/python3.9/site-packages/ansible/executor/stats.py__init__szAggregateStats.__init__cCs2d|j|<t|||d}|dt|||<dS)z% helper function to bump a statistic rN)rgetattrget)rwhathostprevrrr increment,s zAggregateStats.incrementcCsVt||}z,||ddkr$td||d8<WntyPd||<Yn0dS)NrrzDon't be so negative)rKeyError)rrrZ_whatrrr decrement3s  zAggregateStats.decrementc Cs\t|j|d|j|d|j|d|j|d|j|d|j|d|j|ddS)z, return information about a particular host r)r r Z unreachabler r rr) dictr rr r r r rr)rrrrr summarize=s       zAggregateStats.summarizeNcCs8|dur d}||jvr&||i|j|<n||j||<dS)z allow setting of a custom statN_run)rrwhichrrrrrset_custom_statsJs  zAggregateStats.set_custom_statscCs|dur d}||jvs$||j|vr2||||St|t|j||sNdSt|trxt|j||||j||<n|j|||7<dS)z# allow aggregation of a custom statNr )rr# isinstancetyperrr!rrrupdate_custom_statsTs  z"AggregateStats.update_custom_stats)N)N) __name__ __module__ __qualname____doc__rrrrr#r&rrrrrs  rN) Z __future__rrrr%Z __metaclass__collections.abcrZansible.utils.varsrrrrrrs