XׯdcddlmZmZmZmZddlmZmZddlm Z ddl Z ddl Z ddl Z ddl mZdZGdde jZGd d e jZGd d e jZdS) )log_info log_error log_warning log_debug3)format_durationVersion) QueryErrorN)NotificationCenterc tj|dz}||||dd||dztjtjztj|}|tj||dz||dd||dztjtjz|S)N:r Value)mformsnewLabelset_nameadd VFillFlag HFillFlag set_style BoldStyle)tableylabelvaluets $..\modules\wb_admin_server_status.pystraddr!s $$AJJu IIaAq!A#v/0@@AAAAKK !!!JJux    IIaAq!A#v/0@@AAA Hc(eZdZdZdZdZdZdZdS) StateIconNctj|d|||jsltjd|_tjd|_ | dtj |_ |j d|j |j ||j ddtjd|_||jddd|_dS)NTzmysql-status-on.pngzmysql-status-off.pngz Status LightFn/a)rBox__init__set_release_on_add set_managedon_iconAppgetget_resource_pathoff_icon set_spacing newImageBoximager set_imagerrrtextselfs rr&zStateIcon.__init__2s+ D$''' !!! | W!:>>++==>STTDL"JNN,,>>?UVVDM '))  N+++ T]+++ UD)))_U++  UD))) rcl|r;|j|j|jddS|;|j|j|jddS|j|j|jddS)NOnr$Off)r0r1r)rset_textr-)r4states r set_statezStateIcon.set_stateGs  ' J  . . . J   % % % % % ] J  / / / J   & & & & & J  / / / J   & & & & &rc|js[tj||_|jtj||jdddS|j|dS)NFT)r2rrrrrr8)r4r2s rr8zStateIcon.set_textSspy %--DI I   0 1 1 1 HHTYt , , , , , I  t $ $ $ $ $r)__name__ __module__ __qualname__r)r-r&r:r8rrr!r!.sKGH* ' ' '%%%%%rr!ceZdZdZdZdS)ConnectionInfoc(tj|d|||d||_|dtj|_ |j tj d|j d||j ddtjd}||_||dd|dtjd}|d||ddtjd |_|jtj|jd ||jddd|_dS) NTzConnection Info Section#zmysql-logo-00.pngzServer Status StampFrzConnection Name?zConnection Name Value)rr%r&r'r(rownerr.r/iconr1r*r+r,rnewBoxvboxrconnection_namer VeryBigStyle info_table)r4rErHrs rr&zConnectionInfo.__init__^s D$''' !!!  /000  &((  FJNN,,>>?RSSTTT 0111 E4(((}U##  tT"""  122 ())) t$$$%s33 &&v':;;; %%&=>>> %ud333rc ||j|jj|j}|j}|jr|j |jtj |_|j d|j d|jd|jdt!|jddd|dd zt!|jd d |d d t!|jdd |dd t!|jdd|dd d|dddt!|jdd|dd d|dd dt!|jdd|jjpd|dd}|rUt'|}t!|jddt)j|j|z dt/|d dnt!|jddd |j|jd d tjd }tj}|d!|d"||jj||d#d#|j|d dd$dtj|j }|r^|r\tj!"d%|j#|j$fz}|r|j%&||'dS)&Nrr#rz Host hostnamer$r SocketsocketPortportrversionz (version_comment)z Compiled Forversion_compile_osz (version_compile_machinezConfiguration FileunknownUptimez Running SinceTRefreshz!Refresh server status informationFzmysql-logo-%i%i.png)(suspend_layoutrIr8server_profilenameserver_variablesstatus_variablesrKrHremovernewTableset_column_count set_row_countset_column_spacingset_row_spacingrr+config_file_pathinttimectimestatus_variables_timerrrG newButton set_tooltipadd_clicked_callbackrErefresh_statusrtarget_versionr*r, majorNumber minorNumberrFr1 resume_layout) r4ctrl_beinfostatusuptimeboxrefreshrVrFs rupdatezConnectionInfo.updates  %%g&<&ABBB') ? . I  T_ - - - /++ ((+++ %%a((( **2... ''***t8TDHHZ4O4O-OPPPt8TXXh-F-FGGGt6488FE+B+BCCCt9488Iu;U;U;U;UW[W_W_`qsuWvWvWvWv.wxxxt>$((K_afBgBgBgBgimiqiqsLNSjTjTjTjT4U V V Vt#79O9`9mdmnnnHd++  ?[[F 4?ATZPWPmntPtEuEuEuEuxGHNPTxUxUxUxU9V W W W W 4?A > > > dotT222mD!!"$$###?@@@$$TZ%>??? &&& CAq!V-=>>>(  *t *:>>##556KwObdkdwNx6xyyD * ##D))) rN)r<r=r>r&rr?rrrArA]s3B-----rrAceZdZdZdZdZedZedZdZ dZ dZ dZ dZ d Zd Zd Zd Zd ZdZdZdZdZdZdZdS)WbAdminServerStatusNc8||dddddS)N Managementz Server StatusF) register_page)cls admin_contexts r wba_registerz WbAdminServerStatus.wba_registers%##CY^_____rcdS)Nadmin_server_statusr?)rs r identifierzWbAdminServerStatus.identifiers$$rctj|d|||dd|_|d||_||_ ||_ tj d}|d| |ddt||_|jd| |jddtjtj|_|jd|jdtj d|_|jd|jd|j |j| |jddtj}|d |j jd krE|tjd nD|tjd |tj| |ddt9j||j|_|jd d|jdddd| |jddi|_ d|_!|j"d||j"d||j"d||j#|jdS)NTzServer Status MainFzServer Status Left SidezExtra Server Info SectionrZzServer Status Separatorlinuxz mysql-status-separator-linux.pngzmysql-status-separator.pngihrserver_startedserver_offlineserver_stopped)$rr%r&r(r'r ui_createdr.rzrc main_viewrGrrAconnection_info set_paddingnewScrollPanelScrollPanelDrawBackground scrollboxcontentr/host_osr1r*r+r,set_image_align MiddleCenterwb_admin_monitorWbAdminMonitorr|set_sizecontrolscurrently_startedadd_me_for_eventr)r4rzrcrlboxr0s rr&zWbAdminServerStatus.__init__s@ D$'''  !!! *+++  ,"}U## /000 tT"""-d33 ((,,, %ud333.v/OPP ""2&&&  ;<<<}U++    $$$   ### 4<((( t,,,"$$ 0111   &' 1 1 OOFJNN,,>>?abb c c c c //&*..**<<=YZZ [ [ [ f1222 t$$$&5ndlSS  S"%%% 2r2... eT*** !% %%&6=== %%&6=== %%&6=== ##DL11111rc|jdkrO|dd|_|js.tjd|j|_dSdSdS)NTstarted?rr_update_timeoutr Utilities add_timeoutrr3s rserver_started_eventz(WbAdminServerStatus.server_started_eventm  !T ) ) LL # # #%)D "' V'-'7'C'CC'U'U$$$ * ) V Vrc|jdkrO|dd|_|js.tjd|j|_dSdSdS)NTofflinerrr3s rserver_offline_eventz(WbAdminServerStatus.server_offline_eventrrc|jdkrO|dd|_|js.tjd|j|_dSdSdS)NFstoppedrrr3s rserver_stopped_eventz(WbAdminServerStatus.server_stopped_eventsm  !U * * LL # # #%*D "' V'-'7'C'CC'U'U$$$ + * V Vrc:|j|dSN)r|rur4r|s rrzWbAdminServerStatus.refreshs ""6*****rc|jss|j}|dks|r|dkr |jr|jt jd|j|_dSdS)Nrunningrr) rrzforce_check_server_staterquery_server_inforrrrrs rruz"WbAdminServerStatus.refresh_statuss# R\::<>))++++))++++ L * * , , , T\335566666s AA>>Bc Rd|_|j|j|j|jd|jj}|jj}t|jj }d}d} |j d}n7#t$r*}|j dkrd}ndt|z}Yd}~nd}~wwxYwi}|r1|rdD]}||||<d} |jjrG|d r2|jj|d } ||jd d | |jd d } |r| |jd d || d|dfd|dfd|dfg|n(|jd d |pd| t7|jD]\} \} } t;| rt=| t>j r'| |||}| |r|ndX| |||}tC|tDurG| #|d |d r#|dr| |d| #||$t>j%&dS)NF)verbosezSHOW SLAVE STATUSiz.Insufficient privileges to view replica statuszError querying status: %s)Slave_IO_State Master_Hostzunable to retrievedatadirDisk Space in Data DirrReplicarXzReplica IO Staterz Source Hostrz GTID Mode gtid_modez3this server is not a replica in a replication setupr$r )'rrrrzr|rurrerfdictserver_active_plugins exec_queryr errorstrnextRow stringByNameserver_controlr+ server_helperget_available_spacerbrr8rgsetup_info_tablerelayoutlistitemscallable isinstancerLabeltypetupler:ryrdriver_shutdown)r4r{r|plugins repl_errorresereplfield disk_spacerkeycontrol value_sourceresprs rrzWbAdminServerStatus.update6s# ##DL111 ""4<#A#A%#A#P#PQQQ|,.t|9::  B,))*=>>CC B B Bw$M 83q66A  B   63;;== 6: 6 6!..u55U ) < & ]488I+>+> ]3GGQZH[H[\\J  ./2;;JGGG i(+  o LLr*1- . . .  ! !%$6AQ8R8R#S$1488M3J3J#K$/+1F1F#G#I#*  + + + + M" a ) )**m8m n n n ,01D1D1F1F,G,G 1 1 (C('< %% 1gv|44 1'<gv>>D$$T%d?fg|| d@dAdBfdCdDfdEdFfdGdHfdIdJfdKdLfdMdNfg|tdO|dPztdQ|dRztdS|dTztdU|dVz|dWdXkr)| d dYdZfd[d\fd]d^fd_d`fg|dSdS)bN checking...cB|||krdS|dks|dkrdS|r|dSdS)NTOFFNOFr?)r true_values rtristatez:WbAdminServerStatus.create_info_sections..tristate|sD%%:*=*=t~~$u :-t4rrpl_semi_sync_master_enabledrpl_semi_sync_slave_enabledz(%s)z, cg|]}||Sr?r?.0xs r z.s@TbTbTbZ[`aTbTUTbTbTbrmasterslavedaemon_memcachedTFzAvailable Server FeatureszPerformance Schemac@|dS)Nperformance_schemar+r{rr|rs rz:WbAdminServerStatus.create_info_sections..s#T\T\]a]e]efz]{]{T|T|rz Thread PoolcB|ddS)Nthread_handlingzloaded-dynamicallyrrs rrz:WbAdminServerStatus.create_info_sections..s0XXVZV^V^_pVqVqtHNINIrzMemcached PlugincSrr?)r{rr|memcached_statuss rrz:WbAdminServerStatus.create_info_sections..sRbrzSemisync Replication PlugincSrr?)r{rr|semi_sync_statuss rrz:WbAdminServerStatus.create_info_sections..s]mrzSSL Availabilitycf|ddkp|ddkS)N have_opensslYEShave_sslrr{rr|s rrz:WbAdminServerStatus.create_info_sections..sORVRZRZ[iRjRjnsRsSUw{wwAKxLxLPUxUrzWindows Authenticationc d|vS)Nauthentication_windowsr?rs rrz:WbAdminServerStatus.create_info_sections..s Xpt{X{rzPAM Authenticationc d|vS)Nauthentication_pamr?rs rrz:WbAdminServerStatus.create_info_sections..sauy@a@rzPassword Validationcp|dd|dzfS)Nvalidate_password_policyz (Policy: %s)rrs rrz:WbAdminServerStatus.create_info_sections..svV^V^_c_g_giC`D`DWEWEGUX\X`X`a{X|X|G|V}rz Audit Logcp|dd|dzfS)Naudit_log_policyz(Log Policy: %s)rrs rrz:WbAdminServerStatus.create_info_sections..s`HHUYU]U]^pUqUqLrLruGJNJRJRSeJfJfufLgrFirewallc@|dS)Nmysql_firewall_moderrs rrz:WbAdminServerStatus.create_info_sections..s!((SWS[S[\qSrSrJsJsrzFirewall Tracec@|dS)Nmysql_firewall_tracerrs rrz:WbAdminServerStatus.create_info_sections..s#PXPXY]YaYabxYyYyPzPzr log_outputFILEzServer DirectorieszBase Directoryc,|dS)Nbasedirrrs rrz:WbAdminServerStatus.create_info_sections..PTPXPXYbPcPcrzData Directoryc,|dS)Nrrrs rrz:WbAdminServerStatus.create_info_sections..rrrinnodb_data_home_dirzInnoDB Data Directoryc,|dS)Nrrrs rrz:WbAdminServerStatus.create_info_sections..sW[W_W_`vWwWwrzPlugins Directoryc,|dS)N plugin_dirrrs rrz:WbAdminServerStatus.create_info_sections..sSWS[S[\hSiSirz Tmp Directoryc,|dS)Ntmpdirrrs rrz:WbAdminServerStatus.create_info_sections..stxxX`OaOarz Error Logc|do|ddk|dfS)Nrrrrs rrz:WbAdminServerStatus.create_info_sections..skDHHU`LaLaMCfjfnfnozf{f{~CgCEIEMEMNYEZEZL[rz General Logcx|ddkodkdvr|dndfS)N general_logrNONErgeneral_log_file[Stored in database]rr{rr|rs rrz:WbAdminServerStatus.create_info_sections..sdhhWdNeNeglNlOFq{@FrFhnr|h|h|HLHPHPQcHdHdHdBXNYrzSlow Query Logcx|ddkodkdvr|dndfS)Nslow_query_logrr$rslow_query_log_filer&rr's rrz:WbAdminServerStatus.create_info_sections..sQUQYQYZjQkQkmrQrRLxBFLxLqw{EqEqENRNVNVWlNmNmNmKaQbrr)rXrAuthenticationzSHA256 Password Private Keyc,|dS)N sha256_password_private_key_pathrrs rrz:WbAdminServerStatus.create_info_sections..s"]a]e]egI^J^JrzSHA256 Password Public Keyc,|dS)Nsha256_password_public_key_pathrrs rrz:WbAdminServerStatus.create_info_sections..s"\`\d\dfG]H]HrSSLzSSL CAc0|dpdS)Nssl_car$rrs rrz:WbAdminServerStatus.create_info_sections..sQYHZHZHc^crz SSL CA Pathc0|dpdS)N ssl_capathr$rrs rrz:WbAdminServerStatus.create_info_sections..sTXXVbMcMcMlglrzSSL Certc0|dpdS)Nssl_certr$rrs rrz:WbAdminServerStatus.create_info_sections..s$((S]J^J^Jgbgrz SSL Cipherc0|dpdS)N ssl_cipherr$rrs rrz:WbAdminServerStatus.create_info_sections..sDHHUaLbLbLkfkrzSSL CRLc0|dpdS)Nssl_crlr$rrs rrz:WbAdminServerStatus.create_info_sections..R[I\I\Ie`erz SSL CRL Pathc0|dpdS)N ssl_crlpathr$rrs rrz:WbAdminServerStatus.create_info_sections..sdhhWdNeNeNninrzSSL Keyc0|dpdS)Nssl_keyr$rrs rrz:WbAdminServerStatus.create_info_sections..r;rzmysql_firewall_trace: %s rzFirewall_access_denied: %s Firewall_access_deniedzFirewall_access_granted: %s Firewall_access_grantedzFirewall_cached_entries: %s Firewall_cached_entriesrONz Access DeniedcJt|dpdS)Nr@r$rr+rs rrz:WbAdminServerStatus.create_info_sections..s-SVW]WaWabzW{W{S|S|TFAFrzAccess GrantedcJt|dpdS)NrAr$rErs rrz:WbAdminServerStatus.create_info_sections..-SVW]WaWab{W|W|S}S}TGBGrzAccess SuspiciouscJt|dpdS)NFirewall_access_suspiciousr$rErs rrz:WbAdminServerStatus.create_info_sections..sAVYZ`ZdZdfB[C[CWDWDWMHMrzCached EntriescJt|dpdS)NrBr$rErs rrz:WbAdminServerStatus.create_info_sections..rGrr) rzrerfrrr+joinadd_info_section_2rctarget_is_windowsadd_info_sectionr) r4r{r|rrrsemi_sync_mastersemi_sync_slaveparamsrrrrs @@@@rrz(WbAdminServerStatus.create_info_sectionsts|,.t|9::"     $8DHH-K$L$LMM"(488,I#J#JKK,?TbTb`p`}u}@O@[T[`\TbTbTbJcJcBcd#5#@#@44d ( )#(  ("'(  ; 46|6|6|6|} -0I0I0I0I J 24b4b4b4bc =?m?m?m?mn 25U5U VAEATAf A 8:{:{||mAC@C@lA 58}8}8}8} ~ +.g.g.g.g h *,s,s,s,st 02z2z2z2z{ }!' ( ( (XXlF33  2 02c2cd 02c2cd 8*E}A}E}EF\}]}] g 79w9wxxcg 35i5ij /1a1ab +.[.[ \ -0Y0Y0Y0Y Z 03b3b3b3b cd% & & & i23$ & & & . =@J@J K <?H?H IJ$ & & & e (*c*cd -/l/lm *,g,gh ,.k.kl )+e+ef .0n0no )+e+ef h% & & & /$((;Q2R2RRSSS1FJJ?W4X4XXYYY2VZZ@Y5Z5ZZ[[[2VZZ@Y5Z5ZZ[[[ 88) * *d 2 2  ! !*$36F6F$G#36G6G#H#69M9M#N#36G6G#H#I#)  * * * * * 3 2rc$tj|}|tj|j|ddtjd}|d|dd|j|ddtjd}| |dt|dz|}||dd| |t|dzd|}||dd|j|dd|j dS)NFT#b2b2b2rr r) rrr BigBoldStylerrrGset_back_colorrmake_info_tablelen get_parentr)r4titler{rQrsephboxrKs rrLz&WbAdminServerStatus.add_info_section_2s\&& +,,, t,,,mE"" 9%%% R eT***}T""))$}D 1 }*=vFF  T4((())$s4yy!|}}*=vFF  T4((( ud+++ !!**,,,,,rc@tj|}|tj|j|ddtjd}|d|dd|j|dd| d|D|}|j|dd|df|j |<|j dS)NFTrSrr cg|]}||Sr?r?rs rrz8WbAdminServerStatus.add_info_section..s*@*@*@a*@1*@*@*@r) rrrrTrrrGrUrrVrrXr)r4rYr{rQrrZrKs rrNz$WbAdminServerStatus.add_info_sections&& +,,, t,,,mE"" 9%%% R eT***))*@*@d*@*@*@&II  UD111 *D1 e !!**,,,,,rctj}|d|d|d||||S)Nr#r_r)rrhrkrlrir)r4r{rQrKs rrVz#WbAdminServerStatus.make_info_tablesc_&& %%a(((""1%%%##A&&&$$Zv>>>rc  |t|dzt|D]\}}|\}}t|r||}n|}||jvr'||j|dn`t j|dz} | || | dd||dzt j t j z|dko|j j tdddk} t|t us|t#} |r|dkr| |d z| || | dd ||dzt j t jzt j z| |f|j|<t|t(urt#} |r|dkr| |d z| |d|dr#|dr| |d| | dd ||dzt j t jzt j z| |f|j|<Z| rt j|_|r#|dkr|j|d z|jgd |j|j||j|j| |jdd ||dzt j t jzt j z|j|f|j|<`t j|pd} |r|dkr| |d z| t j| | dd ||dzt j t jzt j z| |f|j|<| t jdddt|t|dzt j |S) Nr rr z GTID Mode:rNrar_rXrr)rUPGRADE_STEP_1r`rC)rjrW enumeraterrrgrrrrrrrzrvrrboolr!r: HExpandFlagrr8 newSelectorgtid_mode_selector add_items set_selectedindex_of_item_with_titleadd_changed_callback_gtid_mode_changedrr) r4rKr{rQiitemrrrlis_gtid_mode_setablebl2s rrz$WbAdminServerStatus.setup_info_tablesX  T1--- . >. >GAt$( !UL %% %$ f-$ %%!!$-"6q"9::::OECK00 5!!!q!Q1Q30@AQ0QRRR#(L#8#lT\=X\cdeghjk\l\l=l E{{d""emKK1Ub[[JJux/000 E"""q!Q1Q30@6CU0UX^Xh0hiii()<'8 e$$e%%KK1Ub[[JJux/000 E!H%%%8)a)JJuQx(((q!Q1Q30@6CU0UX^Xh0hiii()<'8 e$$'>.4.@.B.BD+K"/889IJJJ+556g6g6ghhh+889P9i9ijv9w9wxxx+@@AXYYYNN4#:Aq!QUFL\_e_qLqtzuEMEFFF,0,C\+RDM%(("55B6" EH$4555LL!1222NN2q!QAv7G&J\7\_e_o7oppp,. +=DM%((vr**Aq#d))SYYq[&JZ[[[rcdSrr?r3s rpage_deactivatedz$WbAdminServerStatus.page_deactivated/s rc|jr+tj|jd|_|jdSr)rrrcancel_timeoutr|stopr3s rshutdownzWbAdminServerStatus.shutdown3sI   (   + +D,@ A A A#'D  rc|j} |jd|zdS#t$r*}t dt |zYd}~dSd}~wwxYw)NzSET @@GLOBAL.GTID_MODE = %s;zError update GTID mode: %s)reget_string_valuerzrr rr)r4 new_valuers rrjz&WbAdminServerStatus._gtid_mode_changed:s+<<>>  = L # #$BY$N O O O O O = = = 2SVV; < < < < < < < < < =s: A.A))A.)r<r=r>r| connectionsr classmethodrrr&rrrrrurrrrLrNrVrrrrvrjr?rrrrs]FKO``[`%%[% 626262rVVVVVVVVV+++ RRR7770<<<|X*X*X*t---( - - -???222l   =====rr) workbench.logrrrrworkbench.utilsrrworkbench.db_utilsr rrorworkbench.notificationsr rr%r!rArr?rrrs7.GFFFFFFFFFFF44444444)))))) 666666    +%+%+%+%+% +%+%+%^OOOOOVZOOOhN=N=N=N=N=&*N=N=N=N=N=r