U Ce4!!@sddlmZmZmZddlZddlZddlZddlZddlm Z m Z ddl Z ddl Z ddl Z ddlZdddddd d d d d ddg ZddddgZdddddddddddddddd d dd d d d!d"d#d$d%d&d'd(dd)d*d+g!Zeeeeeeeeefd,d-d.ZGd/d0d0Zd1d2ZdFeeeed4d5d6Zejed7d8d9Zed:d;d<Zd=d>Zed?kred@dAZeedBdCdDidCdEigW5QRXdS)G)ListOptionalTupleN)globalsErrordatezuname -azmount -vzdf -hz iostat -Kz top -l4 -s1zps auxz ulimit -aZdmesgz%egrep -i 'err|fault|mysql' /var/log/*z netstat -lnz sysctl -azdate /TverZ systeminfoz tasklist /VZ getenforcezfree -mz swapon -szlsb_release -azcat /proc/cpuinfozcat /proc/meminfozcat /etc/fstabzmpstat -P ALL 1 4ziostat -m -x 1 4z vmstat 1 4ztop -b -n 4 -d 1zfor PID in `pidof mysqld`;do echo "# numastat -p $PID";numastat -p $PID;echo "# /proc/$PID/limits";cat /proc/$PID/limits;echo;doneZpvsZ pvdisplayZvgsZ vgdisplayZlvsZ lvdisplayznetstat -lnputznumactl --hardwarez numastat -mz dmidecode -s system-product-namezlsblk -izsudo sosreport)lreturncCsg}g}g}|D]z}|dr8||ddq|dr\||ddq|dr||ddq||q|||fS)Nzbefore::zduring:zafter:)lower startswithappend partition)r beforeZduringZaftersr+/usr/lib/mysqlsh/plugins/debug/host_info.py split_phasesTs rc@speZdZgdfeeedddZejedddZ ejeddd Z ejee d d d Z ejedd dZ dS) ShellExecutorT) custom_shell allow_phasescCs.t||_|s*|jds"|jdr*tddS)NzHOption 'customShell' may not contain before:, during: or after: prefixes)rrr)selfrrrrr__init__es  zShellExecutor.__init__zfprefixcCs0|jd}|r,tdt||d|dddS)NrzExecuting custom shell scriptszcustom_shell.txtF ignore_errorsrprintrun_shell_scriptsrrrr rrrexecutems zShellExecutor.executecCs0|jd}|r,tdt||d|dddS)Nrz'Executing custom 'before' shell scriptszcustom_shell-before.txtFr r"r%rrrexecute_beforets zShellExecutor.execute_before)rr iterationcCs6|jd}|r2tdt||d|d|dddS)Nrz1Executing custom 'during' iteration shell scriptszcustom_shell-iterationz.txtFr r")rrrr(r rrrexecute_during{s zShellExecutor.execute_duringcCs0|jd}|r,tdt||d|dddS)Nrz&Executing custom 'after' shell scriptszcustom_shell-after.txtFr r"r%rrr execute_afters zShellExecutor.execute_afterN)__name__ __module__ __qualname__rstrboolrzipfileZipFiler&r'intr)r*rrrrrds rcCstj|dtjtjd}|d|dd|dtjdd|d|j dd||j |d|j S)NT)shellstdoutstderrz#  utf-8z # exitcode = s ) subprocessrunPIPEZSTDOUTwriteencodedatetimenow isoformat returncoder4)fcmdrrrrdump_shell_cmds"  rDT)fnscriptsr!c Cs^||dH}|D]<}td|t||}|dkr|std|d|qW5QRXdS)Nwz -> Executing rzShell command "z" exited with code )openr#rDr)rrErFr!rArBrcrrrr$s r$rc Csrtjtd}dd|g}||d4}tdd|t|||t|d W5QRXt |dS)Nzmysqlsh_msinfo32.txtZmsinfo32z/reportrGZ Executing rb) ospathjointempfile gettempdirrHr#rDr;readremove)rrZ temp_pathargsrArrrcollect_msinfo32s  rT)rcCsng}tjdkrt}n(tjdkr.t}t||ntjdkr.pingzExecuting ping from z to other member hosts...endpointrerdz - Executing ping z for 5s...)targetrSr zping.txtrGz # instance z - ping r6r7 )rr3r#r^r_ parse_urir threadingThreadstartrNrHr;r<)rr topology_datarar3threadsrfinstancerhrerdZthdrAoutrrrcollect_ping_statss6    rs__main__ztest.ziprGtestrh localhostzwww.oracle.com)T)typingrrrr0r^rlr8mysqlshrrrYr=rOrLr[r\r]r.rrrDr/r$r1rTr`rsr+rrrrrs  *'   &