XׯdU ddlZddlZddlZddlZddlZddlmZmZddlm Z ddl m Z ddl m Z dddd d d d d dZgdZgdZejdfejdfejdfejdfejdfejdfejdfejdfdZGddejZejdfejdfejdfejdfejdfejdfejdfejdfejdfd ZGddeZGdde ZdS)N) log_error log_debug)WbAdminPSBaseTab)Thread) to_unicodecd|dz zSN%.2f.Axs )..\modules\wb_admin_perfschema_reports.pyr&sfI .cd|dz zSNr eAr r s rrr'sfL 01rcd|dz zS)Nr mBr r s rrr(sfO 34rcddt|dz t|dz dz|dz dzfzS)Nz %i:%02i:%.02fgb\)CgWHB<r)intr s rrr)sXo#q4I/J)K)KcSTXjSkMlMloqMqtuyHuHJLtL)MMrc d|zS)Nz%.0fr r s rrr+s fqjrcd|dz zS)Nr g@@r r s rrr,s&AJ'rcd|dz zSr r r s rrr-s&A M*rcd|dz zSrr r s rrr.s&A ,-r)usmssh:m:sBytesKBMBGB)rrr r!)r"r#r$r%rr")Integer LongIntegerFloatTimer"StringStringLTNumberWithUnitceZdZdZdZdZdZdZdZdZ dZ dZ d Z d Z d Zd Zd ZdZdZdZdZdZdZdZdZdS)PSHelperViewTabNcltj|d||||_|dtjdkr| dd|_ d|_ d|_ d|_ d|_d|_dS)NFwin32z#FFFFFF)mformsBox__init__ set_managedset_release_on_add_owner set_spacingsysplatformset_back_color_refresh_busy_tree_title_check_timeout _wait_table)selfowners rr4zPSHelperViewTab.__init__Gs D%(((  !!!   <7 " "    * * *    "rcn|jr-tj|jd|_dSdSN)r@r2 Utilitiescancel_timeoutrBs r__del__zPSHelperViewTab.__del__Zs?   '   + +D,? @ @ @"&D    ' 'rcd |jrdS|jrA|jd|_||jd|_t jt|j|_|j t j | |jddd|_ |j rGt jt|j |_| |jddt jt jt jzt jz|_|jt j|j|jd}t j|_|j|j|j|jg|_g|_g|_g|_ tC|"D]\}\}}}}d}tG|tHur|\}}tJj&j'j()d|j*|fz|}tWtY|dd}tJj&j'j()d|j*|fz|}t|-|} |j.||j.||j .| |j.||r$|j/|| d|zz|dn|j/|| |d|d z }|j0|j1d| |jddt j2d} | 3d t j4} | 5d | 6|j7| | ddt j4} | 5d | 6|j8| | ddt j4} | 5d | 6|j9| | ddt j4|_:|j:5d|j:6|j;| <|j:dd| | dddS)NFTrwb.admin.psreport:unit:%s:%i(i,wb.admin.psreport:width:%s:%i (%s) z Export...z Copy Selectedz Copy QueryRefresh)=r?rA_pbarstopremover2newLabelrcaption set_style BigBoldStyleadd _column_file description _description newTreeView TreeFlatListTreeAltRowColorsTreeShowColumnLinesr>set_selection_modeTreeSelectMultipleadd_column_resized_callback_tree_column_resizednewContextMenu_hmenuadd_will_show_callback_header_menu_will_showset_header_menu _column_types _column_units _column_names_column_titles enumerateget_view_columnstypetuplegrtrootwbstategetviewminmax column_labelappend add_column end_columnsset_allow_sortingnewBoxr8 newButtonset_textadd_clicked_callback do_exportdo_copy do_copy_queryr< do_refreshadd_end) rBcicolumncnamectypelengthunitwidthlabelbboxbtns rinit_uizPSHelperViewTab.init_ui_s ;  F   $ JOO   DJ KK( ) ) )#D oj&>&>??  f1222 eT***    5 & 4;K0L0L M MD  HHT&t 4 4 4'(;F.>???rc ||_d}dS#t$rB}t|}t d|d|dYd}~dSd}~wwxYw)NzError executing 'z':  )rresult Exceptionstrrr)rBerrores r run_queryzPSHelperViewTab.run_querys P,,..DKEEE P P PFFE Idnn6F6F6F6FN O O O O O O O O O Ps A+7A&&A+cPd|_|jdS|ddS)NTF)r@rrun_query_finishedrHs rcheck_if_finishedz!PSHelperViewTab.check_if_finisheds0" ; 4 %%%urc|jd|jd|dS)NrQT)r<rr>showrefreshrHs rrzPSHelperViewTab.do_refreshs= y)))  rcg}tt|jD]}|j|tjtjfvr6|t||]|j|tj fvr6|t| ||| ||SrE) rangelenrjr2IntegerColumnTypeLongIntegerColumnTyper{rget_longFloatColumnType get_float get_string)rBnoderowcols r_get_node_valuesz PSHelperViewTab._get_node_valuessT/0011 1 1C!#&6+CVEa*bbb 3t}}S11223333#C(V-C,DDD 3t~~c22334444 4??3//0000 rcRd||S)N, )joinr)rBrs r _fmt_nodezPSHelperViewTab._fmt_nodes"yy..t44555rc tjtj}|d|ddd|r|dsd|zn|}t|d5} ddl }| ||j }| |j g| |j|j}t#|D]?}||}| ||@nO#t*$rB} t-d | ztjdd | zd d d Yd} ~ nd} ~ wwxYwddddS#1swxYwYdSdS)Nz Export ReportformatzFormat:zCSV|csvz.csvz%s.csvwr)quotingzError exporting PS report: %s zError exporting PS report. %sOK)r2 FileChooserSaveFile set_titleadd_selector_option run_modalget_pathendswithopencsvwriter QUOTE_MINIMALwriterowrVrmr> root_nodercount get_childrrrrF show_error) rBchooser save_pathcsvfileroutputrsrrrs rrzPSHelperViewTab.do_exports^$V_55/***##HiCCC      u=D=M=M=O=O=X=XY_=`=`x7#3#3#5#555fmfvfvfxfxIi%% u uJJJ ZZ3;LZMMFOOT\N333OOD$7888://11D"4::<<00EE#~~a00(=(=d(C(CDDDDE!uuu?!CDDD$//AadeAegkmoqsttttttttu u u u u u u u u u u u u u u u u u u u us=G0CFG0 G 8GG0G  G00G47G4chtj|dSrE)r2rFset_clipboard_textrrHs rrzPSHelperViewTab.do_copy_querys)++DNN,<,<=====rc(d|jg}|jD]*}|||+t jd|dS)Nrr) rrmr> get_selectionr{rr2rFr)rBtextrs rrzPSHelperViewTab.do_copys~ $-../J,,.. . .D KKt,, - - - -++DIIdOO<<<<r2newProgressBarrRset_indeterminatestartset_sizenewTablerAset_row_spacing set_row_countset_column_count set_paddingrYrUrVencode HFillFlagr=r< set_enabledrrr_thrrF add_timeoutrr@rHs rrzPSHelperViewTab.refreshsz 3.00DJ J ( ( . . . J      J  R ( ( (%00D    , ,Q / / /   * *1 - - -   - -a 0 0 0   ( ( , , ,   1TW[WcWjWjkqWrWr1r!s!suvxy{|~BHBR S S S   Q1a9I J J J HHT%tT 2 2 2z DJ} 1 ))%000DKdn555DI"("2">">sDDZ"["[D  IOO       rc r|j}|jd|_d|_|jr|jd|rm|jrA|jd|_| |jd|_tj d|ddddS| |j|F|r3|j}t%|jD]\}} |j|tjkr:||j|}|||pdnD|j|tjkrI||j|}|||rt5|ndn|j|tjkrC|j|}||||j|n|j|tjkr|j|}|ret@|rXt@|}|!||tE||j|n||j|}||j#kr6|j$j%j&r%|'|j$j%j&d}|!||pdny||j|}||j#kr6|j$j%j&r%|'|j$j%j&d}|!||pd#tP$r>} ddl)} | *tWd|||j,| fzYd} ~ d} ~ wwxYw|/dSdSdS) NFTzError Executing Report Queryrrrz z3Error handling column %i (%s) of report for %s: %s )-rrrr=r<rrArRrSrTr2rFrrr>clearnextRowadd_nodernrlrjr intByNameset_longr stringByNamerrrk set_float floatByNameNumberWithUnitColumnTypeunit_formatters set_stringfloatrZr7 instance_infodatadirreplacer traceback print_excrrw) rBrrrrrr r formatterrrs rrz"PSHelperViewTab.run_query_finisheds#   = , M % %d + + +   ( !!!!  D,---#'   ' '(FtUWY[ \ \ \ F    .."" uz**,, )$*< = =uuHAuu-a0F4LLL & 0 01CA1F G GA MM!QV!4444!/2f6RRR & 3 3D4Fq4I J JA MM!q-?SVVVa@@@@!/2f6LLL#'#5a#8D NN1f.@.@ASTUAV.W.WXXXX!/2f6UUU#'#5a#8D#<(=<,;D,A $99U6CVCVW[WijkWlCmCm=n=n3o3o p p p p$*$7$78J18M$N$N#$(9#9#9dk>W>_#9() $+2K2SU`(a(aA $17 ; ; ; ; & 3 3D4Fq4I J JA D$555$+:S:[5$%IIdk.G.OQ\$]$] OOAqwB777$uuu((((!++---!"X\]_dfjfoqr[s"sttttttttu9.."" u u u   u us8JO P3PPc |jjd|jjd|j}g}||r|d}|d}|ds*|ds|drtj }d}n| d r{d |vrw t|| d d zd d z}n7#t$r*}td|d|jd|dd}Yd}~nd}~wwxYwtj}n)| drd |vr t#t|| d d zd d zd}n7#t$r*}td|d|jd|dd}Yd}~nd}~wwxYwtj}nz| drd}tj}nD| drd}tj}nd}tj}||||f|dkrt+|d z |_||S)Nz DESCRIBE `z`.TypeFieldatencyeadrittenPchar(rOr zError parsing datatype z from PS view z: rxvarchardecimal2bigintfile)r7rrr9rwrrrr2rlower startswithrfindrrStringColumnTyperxrrr{rrZ)rBrcolumnsdtypenamerrrs rroz PSHelperViewTab.get_view_columnsLs$///dkoooW[W`W`0abb  .."" 7++F33**733==**4dmmE.B.B4dmmT\F]F]4";EFF[[]]--f554#,,%!$U5::c??1+>(+G QD%A.."" 7Ds040D%% E/ EE>G H  HH cdd|dddDS)N c3>K|]}|VdSrE) capitalize).0r s r z/PSHelperViewTab.column_label..vs*UU1 UUUUUUr_)rrsplit)rBcolnames rrzzPSHelperViewTab.column_labelus@xxUUS0I0I0O0OPS0T0TUUUUUUrc&|j}||j|jdddd}|j|}|t vrDt D]:}|||||fd||}||kr|d;dS|tvrDtD]:}|||||fd||}||kr|d;dS| ddSdS) NzSet Display UnitcdSrEr r rrrz8PSHelperViewTab._header_menu_will_show..strz Change Unit change_unitc.|||SrE _change_unitrBrrs rrz8PSHelperViewTab._header_menu_will_show..%fjfwfwx~AFgGgGrTc.|||SrEr%r's rrz8PSHelperViewTab._header_menu_will_show..r(rF) r>get_clicked_header_columnrf remove_alladd_item_with_titlerk time_units set_checked byte_unitsr)rBparentritemrrrs rrhz&PSHelperViewTab._header_menu_will_showxs5577 > K " " $ $ $;223E||UbdqrrD%f-Dz!!',,E00DQW_d9G9G9GINPUVVAu}} d+++,,##',,E00DQW_d9G9G9GINPUVVAu}} d+++,,   '''''! >rc|dkr?|j|}|tjjjd|j|fz<dSdS)NrrM)r>get_column_widthrrrsrtrurw)rBrrs rrdz$PSHelperViewTab._tree_column_resizedsK Q;;J//77EW\CHK =F@SS T T T ;rc|j||j|d|zz||j|<|tjjjd|j|fz<| dS)NrNrK) r>set_column_titlermrkrrrsrtrurwr)rBrrs rr&zPSHelperViewTab._change_unitsh ##FD,?,G'TX.,XYYY%)6"RV 8DIv;NNO r)__name__ __module__ __qualname__categoryrVr4rIrrrrrrrrrrrrrrorzrhrdr&r rrr.r.CseHG   &''' O$O$O$dHHH@@@PPP   666uuu(>>>===84u4u4ul&&&RVVV(((0]]] rr.c |dz SNr r r s rrrs I rc |dz SNrr r s rrrs q<7Grc |dz Sr;r r s rrrs !i-rc |dz Sr=r r s rrrs \1Ar) r&r'zLongInteger:msz LongInteger:sr(zFloat:mszFloat:sr*r+c2eZdZdZdZdZdZdZdZdZ dS)JSSourceHelperViewTabNc|t|||d|_|d|_|d|_|d|_d|jz|_d|vr|xjd|dzz c_g|_|dD]0\}}}}|j||t||f1dS) Nr9rVr[rwzselect * from sys.`%s`limitz limit %sr) r.r4r9rVr[rwqueryrr{known_column_types)rBrCdatarrrprs rr4zJSSourceHelperViewTab.__init__s  u---Z( I  .L - 9 d?? JJ+W 5 5JJ (,Y P P $E4u L  .@.F N O O O O P Prc,|dS)Nr)r)rBrs rrzz"JSSourceHelperViewTab.column_labels||F###rc|jSrE)rDrHs rrzJSSourceHelperViewTab.get_querys zrc|jr|jS|jstd|jzgSt|S)Nz#report '%s' is missing column list )rrwrrVr.rorHs rroz&JSSourceHelperViewTab.get_view_columnssM < :< 9 @4<OPPP "33D99 9r) r6r7r8rDrwrCr4rzrror rrrArAsb E D E P P P$$$:::::rrAcReZdZedZedZdZdZdZdZ dS)WbAdminPerformanceSchemac8||dddddS)N PerformancePerformance ReportsF) register_page)cls admin_contexts r wba_registerz%WbAdminPerformanceSchema.wba_registers'##C8MOdfklllllrcdS)Nadmin_performance_reportsr )rPs r identifierz#WbAdminPerformanceSchema.identifiers**rctj||||d|_d|_|d|jjddS)N)rXztitle_performance_reports.pngrN)rr4min_server_version_selected_reportset_standard_header_instance_infor)rBrr main_views rr4z!WbAdminPerformanceSchema.__init__sO!$ JJJ") $   !@$BUBZ\qrrrrrrc  g}|jd}|r<||d|z6WbAdminPerformanceSchema.create_ui..%s?9}9}9}XYZ[X\^aXaXajkjtjtu{j|j|Xa!XaXaXar wbversionversion)4rrrr{ stringByIndexr2rcontentr8r] TreeDefaulttreer|IconStringColumnTyper}radd_changed_callback_report_selectedrY newTabViewTabViewTablesstabviewrelayoutpagesjsonloadrospathrApprvget_resource_pathrrrFrrrTrAsetattrrVadd_pagerr9expandrr add_childset_tagprintset) rB known_viewsres report_datarcategory_labelsrbprevr0reportrwtabrs r create_uiz"WbAdminPerformanceSchema.create_uis l%%&YZZkkmm 5   s0033 4 4 4kkmm 5}T**    $$$&v'9::  V8(COOO  3### &&t'<=== E4000()>??  tT222   )Dfjnn6F6F6X6XY^6_6_aq)r)r$s$sttKK    :Q> ? ? ?   ' '(J(JSUSZS_S_`f`j`n`n`p`paCaCDIaJaJL\T]T]T]T]_`_`)a(,b" 6 6 6 FFFFF   &l3i( & &F&>D;&&CdJKKK""4((( +D&99    qqqRXRXRXYZZZ  D&,c 2 2 2 J  c " " " L ! !#s3;'7'7 8 8 8|t##$MMOOO|++--!!!_%8%8s|%T%TUUU##%%D OOAs{ + + + LL % % % %   MMOOO 3S9}9}[9}9}9}5~5~BEGRT]F^B_B_6_ ` ` `|s2>A.H-- K 7BKK L,, M6MMc.|dSrE)rqrHs rrz WbAdminPerformanceSchema.refresh)s rc2|j}|rw|}|j|krdS||_|rOd}|jD]G}|j|kr1|j||dS|dz }DdSdSdS)NrrO) rnget_selected_nodeget_tagrZrvrVrtset_active_tabr)rBrtagrrs rrqz)WbAdminPerformanceSchema._report_selected-sy**,,  ,,..C$++$'D ! :C{c)) 33A666 FAA     rN) r6r7r8 classmethodrRrUr4rrrqr rrrKrKsmm[m++[+sssCCCL   rrK)r2rrrwryr9 workbench.logrrwb_admin_perfschemar threadingr wb_commonrrr-r/rrrrrStringLTColumnTyperEr3r.js_column_typesrArKr rrrse, ........000000  / . 1 1 4 4 M M ''**--  ( ' ' ( ( ( +T2/6)402D92G<*D1,d35t<  VVVVVfjVVVv './6,.E.EF+-G-GH  #T *&(?(?@%'A'AB%t ,)40  #:#:#:#:#:O#:#:#:Nkkkkk/kkkkkr