XׯdJ.ddlZddlZddlZddlZddlmZddlmZmZddl m Z ddl m Z m Z mZmZmZGddeZGdd eZGd d eZGd d eZGddeZGddeZGddeZdS)N)App)wbaOShandle_ssh_command_output)Users)log_info log_error log_debug log_debug2 log_debug3c eZdZdZdZdZdS) DataSourcecd|_d|_d|_||_||_||_|6|d|_|d|_|d|_|d|_dSdS)Nr)widgetlabel_cbcalc_cbnamemon_be get_ctrl_bectrl_belabel)selfrrrs ..\modules\wba_monitor_be.py__init__zDataSource.__init__$sv     ))++  "1IDK"1IDJ"1IDM"1IDLLL  cdSNrs rpollzDataSource.poll1 rcdSrr r!s rshutdown_eventzDataSource.shutdown_event4r#rN)__name__ __module__ __qualname__rr"r%r rrr r #sA & & &        rr c eZdZdZdZdZdS)DBWidgetHandlerc||_||_|d|_|d|_|d|_||_||_d|_dgt|z|_ t||_ dS)Nrrr) rrrrr variablescalcvars_setlenvaluesvars_len)rrrrr,r-s rrzDBWidgetHandler.__init__:sk      "  s9~~- I rc:||j|<|xjdz c_dS)Nr)r0r.)rivalues rset_varzDBWidgetHandler.set_varFs! A  rcd}|j|jkrd|_t|j}|j||}n|d}||j t |}n*#ttf$rtd|fd}YnwxYw|j ||j B| |}|j |jj|dSdSdSdSdS)NrzOError! Calculation returned returned wrong value. Expected int or float but got)r1r.tupler0r-rfloat ValueError TypeErrorprint set_valuerruitaskrset_text)rresultargslbls r calculatezDBWidgetHandler.calculateJs =DM ) )DM%%Dy$4a!dk&=!"6]]FF"I.!!!lntuvvv FFF! %%f---=,--//CL'' (;SAAAAA# * )"!&=&=-,sA--$BBN)r&r'r(rr5rCr rrr*r*9sF ' ' 'BBBBBrr*c eZdZdZdZdZdS)DBStatusDataSourcect|d|d||_i|_i|_t ddS)N sql_sourcezDBStatusDataSource created. )r rrsources rev_sourcesr )rrs rrzDBStatusDataSource.__init__asGD,===  233333rc|d}t||j|||d}||j|<t |jD]A\}}d}||jvr|j|}n g}||j|<|||fBd|vr.d|vr,|d|d|ddSdSdS)Nqueryr-minmaxr) r*rrrH enumerater,rIappendset_value_range) rr definitionrstatus_variablessrcr3status_variable_namerev_srcs r add_sourcezDBStatusDataSource.add_sourcehs &g.dDK$;$;$=$=vGWYcdjYkll  T (1'?'? % % #A#G#t'777*+?@9@ !56 NNC8 $ $ $ $ J  5J#6#6 1I % %j&7E9J K K K K K  #6#6rc|jjrh|jD]b}|j|}t|jj|}|D]/\}}||||0adSdSr)rrRrIr9r5rC)rrrUr4rSr3s rr"zDBStatusDataSource.polls < ( $( $ $*40dl;DABB '$$HS!KK5)))MMOOOO$  $ $ $ $rN)r&r'r(rrVr"r rrrErE`sD444LLL8 $ $ $ $ $rrEceZdZdZdZdZdS)ShellDataSourceNc\t||||||_d|_dSr)r ros_name_cpu_stat_return)rrdetected_os_namer cpu_widgets rrzShellDataSource.__init__s1D$ ;;;' $rctj}|jjd|jdkrQ|ddd}d|_ |d}| d} t| dd }n4#ttf$r td |jd |d d}YnwxYw|jw|j|jr||n||j<|j|jj||dSdSdS|}||j kr||_ t1d |zdSdS)Nz/usr/bin/uptime)output_handlerrz ,:. ,.z Shell source z6 returned wrong value. Expected int or float but got 'z' z$CPU stat command returned error: %s )ioStringIOr server_helperexecute_commandwritegetvaluestripsplitr\rstripr9replacer:r;rrrr=rrr>rr?r )routputdata load_valuer@r4s rr"zShellDataSource.polls < % 5 56GX^Xd 5 e eij j j??$$**<88>>tDDRHD$(D !b)J#**3//J z11#c::;; *    jnjsjsjsuuuABBB {& %%dl&Vdll6&:&:&:PVWWW=,L'' (;T]]6=R=RSSSSS'&,,OO%%E---(-%AEIJJJJJ.-s6#C.D  D )r&r'r(cmdsrr"r rrrYrYs< D%%% KKKKKrrYc8eZdZdZdZdZdZdZdZdZ dS) WinRemoteStatsc ||_d|_d|_tj|_||_||_||_|jj |_ |j sdS|j d|d|_ |jj j ri|jjjdkrB|jjjdkrt%dt|_|j't'|jd}|d}||dkrt-jd}d|zd z}t3d |d |d |Z|d krU t5|}t'|jd|zd} d } |D]} | d} | d} t7| dkr| ddkrt7| | krpt'|jd| dzt'|jd| zdz|zd } | d| zdz|zz } | dz } t7| dkr?t'|jd| dzd } d|zdz|_ t9d|j zd|_d |_tj|jj|j t@j!d|j"d|j#f|_$|j$%d|j$&dS#tN$r'} |j(d|_| d} ~ wwxYwdSdStSd|zdS) NrshutdownzCould not connect to SSH serverzcmd /C echo %USERPROFILE% z %USERPROFILE%zmysql_system_status_rmt.vbs"z\mysql_system_status_rmt.vbs"zScript local path is "z". Will be uploaded to "z" zcmd /C echo. > iz z 'zcmd /C z &z cmd /C echo z >> zecho z && zcscript //NoLogo z /DoStdInzAbout to run "%s" r)targetrATz0Can't find a place to upload script dirpath='%s')*rsshcpu threadingLockmtxrunningr^settingsuses_sshremote_admin_enabledadd_me_for_eventscriptserver_profileeditor sshConnection isConnectedconnectOperationCancelledErrorrexecuteCommandrlrgetget_resource_pathr openr/r chanoutThreadrCURRENTreader save_channel read_thread setDaemonstartIOError disconnectr<)rrrrr^dirpath script_pathfilenamefmaxsizecmdlinetlinees rrzWinRemoteStats.__init__s8 >## $& $(M$:!(  F %%j$777 < & / )|"0<<>>!CC<&4<<>>!CC12STTT( 8 00G0GHc0d0deeG-- **  7o#=#='))556STTKg~(IIH IQ\Q\Q\^f^f^fg i i i&;"+<+<$[))A-dh.E.EFWZbFb.c.cddd"GC ! 2 2#zz&11 $ 5 1 1u::>>$Qx3#&s88g#5#5$=dh>U>UV_bebkbklpbqbqVq>r>r$s$s$s$=dh>U>UVdgkVkntVtwV?A?A%B%B%B*,CC$'7T>F+BX+M$MC$'6MC3xx!||1$(2I2I)VYV_V_`dVeVeJe2f2fggg "5"@;"NDK4t{BCCC $DI!DH'0'7tx?V^b^ikpkxz~AEALNOQUQb^c(d(d(dD$$..t444$**,,,,,H'')))#DHGG'&+<+DD4ZZ2::'S DCC>))2ICC3YY3JCCDC> M M MA q==%%'''#$KLLL!= M%l1o M0 GHHHHHsAA33=B32B3c|d}|j|j}|j|S)Nrz)rrr~r)rrets rrzWinRemoteStats.get_cpuKs; h  rN) r&r'r(rr%rr"rrrr rrrurusMNMNMNb   TTT   III>rruc eZdZdZdZdZdS)WMIStatsct|jdstd||_||_||_d|_|jj|_dS)Nwmiz"Current profile has no WMI enabled)hasattrserver_controlrrrr^ cpu_mon_idr)rrrr^s rrzWMIStats.__init__UsUw-u55 B@AA A ,$)-rcvd}|j||}t|dkrt|d|rOt |d|} t |}nK#t dt|zd}Yn&xYwt d|zt |d}|S)Nrz!Wmi query: can't cast '%s' to intrz/Wmi query: expected '%s' result attribute, got:)rwmiQueryr/rgetattrrr<r)rsessionattrrKr4ress rrKzWMIStats.query_sh// s88a<<s1vt$$ A--JJEE=E JKKKEEEG$NOOOc  s A..#Bc4|jjj}||dd}|m|jd|dz |j|jdjtt|dzdSdS)NPercentProcessorTimez_SELECT PercentProcessorTime FROM Win32_PerfFormattedData_PerfOS_Processor WHERE Name = '_Total'rgY@rr) rr!wmi_session_id_for_current_threadrKr^r=r>r?rr)r wmi_sessionr4s rr"z WMIStats.pollpsl1S  ;(>Abcc   OA  ( (u 5 5 5 L   2 ;SU__s=R S S S S S  rN)r&r'r(rrKr"r rrrrTsF..."TTTTTrrcDeZdZdZdZdZdZdZdZdZ dZ d Z d S) WBAdminMonitorBEc||_g|_dg|_d|_||_|jd||jd||jd||jtjkrP|j s|j r2td|j ||}|j |ntdn|jr6t!||||_|j |jnC|j r<|jdkr1t'|||j|}|j |t)|} |D]*\} } d} | |vr|| } | | | | +|j | d|_dS)NTserver_startedserver_offlineserver_stopped host_statsz\WBAMonBE: Data sources were not added. Profile set to non-local or remote admin is disabled.r})rrHr poll_threadintervalr target_osrwindowsis_localrrYr]rOruses_wmirwmimonconnect_methodrurEitemsrV) rrrrwidgetsr^sqlrstats sql_sourcesrrKrs rrzWBAdminMonitorBE.__init__{s    6 !  %%&6=== %%&6=== %%&6===  #u} 4 4& y.*M y%lN4SUY[eff ##C((((wxxxx& /&w KK  ##DK0000!6/>;X\a;a;a*7NDLR\]]EL''...(.. 99;; 8 8KD%Fw   " "4 7 7 7 7 K(((rcld|jd< |jn#YnxYwg|_dSr)rrrrHr!s r__del__zWBAdminMonitorBE.__del__sC Q    ! ! # # # #  D s&*c||jD]&}t|dr|'dS)Nserver_started_event)rrHr)rxs rnote_server_runningz$WBAdminMonitorBE.note_server_runningsU !!### ) )Aq011 )&&((( ) )rc|jSr)rr!s rrzWBAdminMonitorBE.get_ctrl_bes |rcTtd|jr|jdrdS|jr*d|jd<|jd|_d|jd<t j|j|_|jtddS)NEnter rFT)r|Leave )r rrrrr poll_sourcesrr!s rrz%WBAdminMonitorBE.server_started_events9    Q  F   $#DLO   ! ! # # ##D  Q$+T5FGGG    9rc.|dSr)rr!s rserver_offline_eventz%WBAdminMonitorBE.server_offline_events !!#####rcdtdd|jd<d|_tddS)NrFrr)r rrr!s rserver_stopped_eventz%WBAdminMonitorBE.server_stopped_events79 Q9rcvd|jd<|jD]&}t|dr|'dS)NFrr%)rrHrr%rrs rstopzWBAdminMonitorBE.stopsN Q< % %Cs,-- %""$$$ % %rc|jdr\|jjrP|jD]}|t j|j|jdr |jjPtddS)NrzExiting monitor thread... )rrrHr"timesleeprr rs rrzWBAdminMonitorBE.poll_sourcessl1o &$,"6 &|   Jt} % % % l1o &$,"6 & /00000rN) r&r'r(rrrrrrrrrr rrrrzs# # # J))) &$$$ %%% 11111rr)rfrrrmformsrwb_server_managementrr wb_commonr workbench.logrrr r r objectr r*rErYrurrr rrrs,  AAAAAAAAPPPPPPPPPPPPPP        ,$B$B$B$B$Bf$B$B$BN.$.$.$.$.$.$.$.$bKKKKKjKKKF]]]]]V]]]@"T"T"T"T"Tv"T"T"TL_1_1_1_1_1v_1_1_1_1_1r