3 `_ @snddlZddlmZmZmZddlZddlZddZd ddZdd Z Gd d d ej Z e d krje j dS)N)PopenPIPECalledProcessErrorcCs|j|}|sdS|jSdS)NF)searchgroups)Z ping_outputZregexmatchrD/usr/local/lib/python3.6/site-packages/nixstatsagent/plugins/ping.py_get_match_groups s r Tc Cs|d}d}y t|jtd}|jd}Wntk r<YnX|r\|dkrV|jd}q`|}ng}|rp|jd}ng}||fS)N)stdoutrTz\n )rsplitr communicate Exception)CommandnewlinesZOutputErrorprocZStdoutZStderrrrr system_commands   rc Cs\tjjdstjjdrnttd|dd}y$tjd}t||\}}}}|}Wntk rjd}YnXntjdkrttd |dd}tjd}t||}|dkrd}n|\}}}}|}ntjd krNd}ybt d d d |gt t d}|j \} } | r.yt tj d| d}Wntk r*YnXnd}Wntk rJYnXnd}||dS)NlinuxZfreebsdzping -W 5 -c 1 Frz'(\d+.\d+)/(\d+.\d+)/(\d+.\d+)/(\d+.\d+)darwinz ping -c 1 win32pingz-nz1 )r stderrzAverage = (\d+))avgpinghostrrrr)sysplatform startswithstrrrecompiler rrrrintfindallr) hostnameresponseZmatcherZminpingrZmaxpingZjitterZmatchedrouterrorrrr collect_ping)s>        r+c@seZdZdZddZdS)PluginrcCsFi}|jddjd}g|d<x|D]}|djt|q$W|dS)NrZhosts,)getrappendr+)selfconfigdataZmy_hostsrrrr runYs  z Plugin.runN)__name__ __module__ __qualname__r3rrrr r,Vsr,__main__)T)r# subprocessrrrrZpluginsr rr+Z BasePluginr,r4executerrrr s -