XׯdddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z m Z m Z m Z mZmZmZddlmZmZmZmZmZddlmZmZmZmZddlmZddlmZddl Z iZ!de!d<d Z"d Z#d Z$d Z%d Z&dZ'dZ(dZ)Gdde*Z+dZ,dZ-dZ.Gdde Z/Gdde*Z0dZ1dZ2dZ3dZ4dZ5dZ6d Z7d!Z8d"Z9d#Z:d$Z;d%Zd(Z?d)Z@d*ZAd+ZBd,ZCdS)-N) UtilitiesFormnewBoxnewLabel newTextBox newButtonApp)OperationCancelledErrorInvalidPasswordErrorPermissionDeniedError splitpathUsers)log_info log_debug log_debug2 log_debug3) ServerProfile)server_version_str2tuplez@grt.root.wb.options.options["@db.mysql.Table:tableEngine/Items"]z engine-listz\nmysqldc||k||kz SN)abs %..\modules\wb_admin_config_file_be.pycmpr3s Ea!e ctt|t|}t|d||d|SNr)minlenr)v1v2minlens rver_cmpr%7s= R#b'' " "F r!F(|R&\ * **rc0|\}}}d}d}|D]}t||dkr|}d}n|rj|3|D]0}|dd|ddkrt||dkrd}n1|3|D]0} |dd| ddkrt|| dkrd}n1|S)NFrT)r%) version versions_listinvervlistoutverretmatched_versionvivovs roption_is_for_versionr2<s *UE6 CO  7A  ! # #OC E $     "2A2&"RaR&00w++a//#E1    "2A2&"RaR&00w++a//#E1 Jrcd}|V|Tt|}t|}||kr ||krd}n'||kr!||d|krd}n||d|krd}|S)NFT)r!)vdvsskipvdlvsls ris_opt_deprecatedr9_sz D ~"."gg"gg #::BwwSyyDSD>>DD2dsd8^^D Krcd} tjd|}|r|}|d?t|dt|dt|df}n*t|dt|df}n3#t$r&t d|zdzt |YnwxYw|S) Nz/([0-9]+)\.([0-9]+)\.([0-9]+)|([0-9]+)\.([0-9]+)rr'z*ERROR! Incorrect version attribute value 'z', )rematchgroupsint ValueErrorprinttype) version_strr(restokenss rparse_version_strrHssG ehH+VV  ;ZZ\\Fay$vay>>3vay>>3vay>>Jvay>>3vay>>: eee :[H5PRVWbRcRcddddde NsBB!!-CCcd}d|vrt|ddkrtd|dzdSt|dD]\}}d|vr-tjdk}|r |ddks|s |dd kr7|d }|d }|Id }|dkrA|d|d z d } | std|dzn| }|d}|t|dd z kr|d|d zd } | |kr@t|ddz |kr$|d|dzd } | s$|d|d zd } | std|dzn| |kr| }||kr1||kr+d} d|vr|d} | |ks | dks|dkrd} nd} | r|}n|S)Nvaluesrz0Empty values for '%s'....returning empty string captionbitsizel6432 inversion outversion)rrrr;z1Option %s has invalid version range for defaults )crrr'FplatformallT)r!r enumeratesysmaxsizeget) optr(rSvaluei cur_valueis_64bitrPrQtmpplatform_matchpls r pick_valueras E3 s8}   " " JSQZ^[ \ \ \2%c(m44+ + LAyI%%;.9!5!=!=x!=T]^gThlpTpTp"{33I"|44J # q55h-!,00>>C("#WZ]^gZh#hiiii$' !% s3x=))!+++h-!,00==Ci''CH ,>,>,AA,E,E!(mAaC044[AAC!(mAaC044\BB)"#WZ]^gZh#hiiiiy%( )##:(=(=!&**":.BX~~uE8I8I)-%)N!%EE LrcReZdZd dZdZdZdZdZdZdZ d Z d Z d Z d Z dS)OptionNcj||_g|_| | |j||fdSdSdSr)sectionrJappend)selfrelinerZs r__init__zOption.__init__sI    1 K  e} - - - - -   1 1rc>|j||fdSr)rJrf)rgrhrZs rrfz Option.appends" D%=)))))rc2t|jdkSNr;r!rJrgs r is_multilinezOption.is_multilines4;!##rctd}t|jdkrt|jtk}|S)NFr)r!rJrDbool)rgr-s r is_switch_optzOption.is_switch_opts5 t{  a  t{##t+C rc(|j|dSrlrJrgr[s rvalz Option.val{1~a  rcZd}d}|jD]}|d|kr|d}|d}|S)Nrr;rt)rg result_value result_linerZs rrZz Option.valuesE  [ ( (EQx+%%#Ah $Qx rc(|j|dSrrtrus rrhz Option.linerwrc*t|jSr)iterrJrns r__iter__zOption.__iter__sDK   rc*t|jSrrmrns r__len__zOption.__len__s4;rcTtd|jDS)Nc8g|]}t|dSr;)str.0xs r z"Option.__str__..s"$D$D$D1S1YY$D$D$Dr)multi_separatorjoinrJrns r__str__zOption.__str__s'##$D$D $D$D$DEEErc4tj|jSr)pprintpformatrJrns r__repr__zOption.__repr__s~dk***r)NN)__name__ __module__ __qualname__rirfrorrrvrZrhr~rrrrrrrcrcs.... ***$$$ !!!!!!!!!   FFF+++++rrcr;r'r<c.eZdZdZdZdZdZddZdS) ApplyWizardctj|d|d||_||_|j|_td}|d| d|jj }d|z}|dz }|dz }| t|ddttj|_|jdttj|_|jd| |jdd| |jddtd}| dt'}|dt'|_|jd |j|jt'|_|j|j| |jdd||dd||jdd| |dd||||d d ||jdS) Nz)Apply Changes to MySQL Configuration FileF zhThe following changes were made to the configuration file "%s" and will be saved when you click [Apply].zI You may edit the File Preview if you wish to make more changes manually.zW Please review carefully as some mistakes could prevent the MySQL server from starting.TApplyCancelii)rri set_titleserver_profilectrl_betarget_is_windowsis_winr set_padding set_spacingconfig_file_pathaddrrmformsBothScrollBars file_textbox set_bordereddiff_view_textboxrset_text cancel_btnadd_clicked_callbackcancel_clickedview_btn switch_viewadd_end set_contentcenterset_size apply_clicked) rgownerrrcontentfilemsg button_box apply_btns rrizApplyWizard.__init__s dD!!! BCCC, $6 --BB"3{CC [[ ii HSMM5$///&v'<== &&t,,,!+F,A!B!B ++D111 D%tT222 D*D$777D\\ r"""KK 7####++   *** ,,T-@AAA!   **4+;<<<t}eT2229eT2224?E4888 Jt,,, !!!  c#&&t'9:::::rct|jdkrW|jd|jd|jdd|_dS|jd|jd|jdd|_dS)NFTzView File Previewz View Changes) view_diffrshowrrrrns rrzApplyWizard.switch_view9s >U " "   " "5 ) ) )  " ' ' - - - M " "#6 7 7 7!DNNN M " "> 2 2 2   " "4 ( ( (  " ' ' . . ."DNNNrc|j|j}||jkr*t jddddd}|t jkrd}|r'tj dn&tj d ||tj d n#t$r7}t j d d d d d}|t jkrYd}~uYd}~nd}~wt$r#}t jd dddd}Yd}~dSd}~wt$rx}ddl}|tj dt j d dt#|jd|dddYd}~nd}~wwxYw |dS)NzConfirm Changes from PreviewzYou have made additional edits to the configuration file in preview. If you wish to save these changes click [Yes], or if you wish to ignore these changes click [No].YesNorLz.Saving Configuration File with Manual Edits...zSaving Configuration File...TzConfiguration File Saved.z!Could not Save Configuration FilezdInvalid admin password while saving the configuration file. Click Retry to enter the password again.Retryrz5Password input was cancelled. The file was not saved.OKrz Error Saving Configuration File.z2There was an error saving the configuration file. z: ) accept_actionrget_string_valuecfgfiler show_messagerResultOkr rXset_status_textr show_errorr Exception traceback print_excrDrclose)rg text_from_boxanswerexcrrs rrzApplyWizard.apply_clickedHs   ) ->>@@M ,,"/0NH$ $$ V_,,$(M J ))*Z[[[[ ))*HIII s&&}555GII--.IJJJJ+!!!!,-P.U")8R99AFO++ ,++++.!./R&]&*B44AFFFFF sss$$$$'')))GII--.PQQQ()L)LLPQTLULUL^L^L^`c`cOdfjlnprssssssss s  s1(;C$$ G.(D  G-E  GA.G  Gctjdd|_|dS)Nz$Cancelled Save of Configuration File)r rXrrrrns rrzApplyWizard.cancel_clickedqs6  !!"HIII! rNc||_d|_||_|j|j|j|||d|jdS)NF) rrrr set_valuerr show_modalr)rg changes_texttemp_file_contentrs rrzApplyWizard.showvsv*(  ##DL111 ((666  do.....rr)rrrrirrrrrrrrrsf:;:;:;x # # #'''R / / / / / /rrceZdZGddZdZdZdZdZdZdZ d Z d Z d Z d Z d ZdZddZdZdZddZdZdZdZdZdZdZdZdZdZdS) WbAdminConfigFileBEceZdZdZdZdS)!WbAdminConfigFileBE.ChangesetItemcL||_||_||_||_d|_dSr)modrerZnameorig_opt)rgmsnr/s rriz*WbAdminConfigFileBE.ChangesetItem.__init__s)DHDLDJDI DMMMrc|jtkrd}n%|jtkrd}n|jtkrd}||jdz|jzdzt |jzz }|jr|dt |jzdzz }|dzS) N+-*:=z;[]z ) rADDDELETECHANGErerrrZr)rgrs rrz*WbAdminConfigFileBE.ChangesetItem.__repr__sx3V##V## #di/#5DJG GA} 5TC ...44u9 rN)rrrrirrrr ChangesetItemrs2 ! ! !     rrcg|_i|_d|_d|_i|_g|_d|_||_||_|j |_ i|_ d|_ | dS)NrLF) file_lines original_opts file_nameneeds_root_for_file_read changesetsections apply_formrrrr opt_rindexoption_set_statsreload_possible_options)rgrrs rrizWbAdminConfigFileBE.__init__su(-% , $6  $ $$&&&&&rc|jSr)rrns rget_file_contentz$WbAdminConfigFileBE.get_file_contents rc|jSr)rrns rget_option_set_statsz(WbAdminConfigFileBE.get_option_set_stats $$rc|jj}|r8t|dkr%t|turt |}|rt|dkra|jjsd}n2|jjj|jjj |jjj f}tdt|zntdt|z| ||jj|_dS)NrL)r;rz(Got server version "%s" from the server zNote! Workbench uses server version '%s' from the server instance profile. Make the entry empty to auto pick version from the server. )rserver_versionrrDtuplerrtarget_version majorNumber minorNumber releaseNumberrrtransform_opts_for target_ospossible_options)rgrs rrz+WbAdminConfigFileBE.reload_possible_optionss),;  Jc.11R77N##500!9.!I!I x#n"5"5";";<. ]!*!%!z8WbAdminConfigFileBE.transform_opts_for..sc"V*VXY_V`FaFarkeycontrolsr@positionwidth)r(addedskippedskipped_no_valuer zPrepared options set for server version '%s' on '%s' platform: added - %i, skipped - %i, skipped with no value - %i, deprecated - %i)rrropts opts_listr2r9racopyupdaterfrXnormalize_booloption_alt_namesrsort functools cmp_to_keyrrrC)rgrrSpostabsrrr no_valuetabnametabcontr new_tab_contr@grpnamegrpcontgrprrYrZcoptrs rrz&WbAdminConfigFileBE.transform_opts_fors ^9L9L9L9LhhhWYYY1=.X)-+ )+ ) %WguLF&-! #! #"'!(I"&&C!S((4^S_UU%#qLG$#s**,S->OO%&!OJ$&sNHEEE&#y~~ N E*** --- $,,&1A1AY1N1N.2.A.A$y/.R.RDO$($9$9$v,$G$GMMD597G4LDOD11M""RUXY_U`"`aaa A  )"67a7a"b"b ccc"'//J c""""%*6]]L "'*L $$)L ! 1HC(DMM,:eY`wQ[!\!\ UYgiqsxzACKMWXXX Y Y Y rc|dd|ddg}||vr|d||S)Nr_r)replaceinsert)rgrnamess rr z$WbAdminConfigFileBE.option_alt_namessLc3''c3)?)?@ u   LLD ! ! ! rcRd}|j|}||d}|SrrrX)rgrodefoptions rget_option_defz"WbAdminConfigFileBE.get_option_defs0$$T**  !9D rcH|j|dddS)N)NNNr;r4)rgrs rget_option_locationz'WbAdminConfigFileBE.get_option_locations&##D*<==qrrBBrchfdt|jDS)Ncg|]}|v| Srr)rrfragments rrz>WbAdminConfigFileBE.get_options_containing..s#SSS(dBRBRBRBRBRr)listrkeys)rgr<s `rget_options_containingz*WbAdminConfigFileBE.get_options_containings3SSSS$t';';'='=">">SSSSrc:d}t|tkr|}n}|r@t|tust|tur|}|dks|dks |dks|dkrd}n |dks|dks|d ks |d ks|d krd}|S) NFcheckedontrue1T uncheckedofffalserL0)rDrqrlower)rgrZr-s rrz"WbAdminConfigFileBE.normalize_bool"s ;;$  CC &$u++,,U s0B0B  !!Ud]]evooRU+%%%5G;K;KuXZ{{^cgj^j^j rc*||}d}d}|ud|vr|d}|r|}d|vr4|d}|r*t|tur|}|dkr||}||fS)NrDr r )r7rIrDrqr)rgr option_def option_typeoption_defaults rget_option_type_and_defaultz/WbAdminConfigFileBE.get_option_type_and_default3s((..    !##!+F!3 6"-"3"3"5"5KJ&&!+I!6!&:&:$&F&F%3%9%9%;%;Ni''!%!4!4^!D!D^,,rTc||_d|_ t|n5#t$r&}|jtjkrd|_Yd}~n d}~wYnxYwg}d} ||}nZ#ttf$rF}|jtjkr|}n$|rtj dd|zdddnYd}~dSYd}~nd}~wwxYw| ||r|dS)NFTRead Configuration Filez\Configuration file '%s' can not be found. New file will be created when changes are applied.rrL) rropenIOErrorerrnoEACCESread_mysql_cfg_fileOSErrorENOENTr show_warningparse_file_contents)rgr warn_missingerrorr exceptiones ropen_configuration_filez+WbAdminConfigFileBE.open_configuration_fileHsA"(-%  OOOO 5 5 5{el**04-  D  ..y99GG!   w%,&& *+D,JKT,T*.B8888FFFFF    )))  G  s, AA  AA00C6CCc,td|zd}|js td|jj|t jd}tdt|pgzn0#t$r#}td|zd|_Yd}~nd}~wwxYw|jrtd|jj d}| t j } td |jj|||}nE#t$r8}td |z|jj d|d}~wwxYwtd |rd |d DSgS)NzReading config file "%s" zTrying to read without sudo )as_user user_passwordz%i bytes read from file z8Permissin denied; sudo needed to read config file: "%r" TzTrying to read with sudo rz Reading... zInvalid password error: "%r" zConfig file read c8g|]}|dS) )rstrip)rrhs rrz;WbAdminConfigFileBE.read_mysql_cfg_file..s$HHHDDKK''HHHr )rrr server_helperrrCURRENTr!r password_handlerget_password_forADMINr reset_password_forsplit)rgrrr]rar`errs rrUz'WbAdminConfigFileBE.read_mysql_cfg_fileis.:;;;, 5 59:::,4EEiY^YfvzE{{5GMr8J8JJLLLL( 5 5 5UXYYZZZ04------ 5  (  2 3 3 3 L9JJ6RRM( g .))),4EEiQXZghh'   :S@AAA -@@HHH   &'''  HHGMM$4G4GHHH HIs0AA:: B'B""B'.0D E!)3EE!ch|sd}|jj}t|j\}}d} ||s||||rd}tj}n-|jj d|}tj } | |j|d||n<#t$r/}|jj d|rd}Yd}~|d}~wwxYw ||j} || dS)NrLTr) cached_onlyz.wba.bakF)rrfr rcheck_path_existscreate_directorycheck_dir_writablerrgrhrirjset_file_content_and_backupr rkrUrY) rguser_modified_file_contenthelper directoryfilename first_trypasswordr`rmdatas rsave_config_filez$WbAdminConfigFileBE.save_config_filesb) ,)+ &+(77 8  ++I66 3'' 222((33 &-<8II&^gIhh+ 224>C]_ikrt|}}}}'    -@@HHH %IHHHH   ''77   &&&&&s'C C?#C:8C::C?Nc|i|_t|tust|tur||_nt d|jj}|st}td|zg|_ |j i}d}t|jD]9\}}| d}t|dkr |ddkr|ddkr|ddkr2| d }|j ||f|d dkr|d }d } |d krt|}d} ||krQ|d| } d} | |vr || } nt%|} | || <||dzd} | r| || n| |d | dr]|| dd} | r<| d| kr#t%||d} | || dd<| || <|| } | M| ddkr4| r||  } nd} t%||| } | |d| z<;||_t1|j t3jd|_ |jjdkrt|jjrt9fd|j Dsmt;jddzddd|j t|jf|jdzdzdSdSdS)NzInternal error. File data passed is not in expected format. This is a bug, we would greatly appreciate if you file a bug report at http://bugs.mysql.com.z'Parsing options only from section "%s" rLz r#;[z[]z!includerTFr;skip-r disabledbyrDr c:t|d|dSrr)rys rrz9WbAdminConfigFileBE.parse_file_contents..sWZ[\]^[_abcdaeWfWfrrc3*K|] \}}|kVdSrr)r_line_sectionres r z:WbAdminConfigFileBE.parse_file_contents.."s/8r8rQ`QVX`W9L8r8r8r8r8r8rrrPzConfiguration file did not contain section [%s], so a new one was added. If that is not correct, please fix the section name in the Server Instance Editor and reopen the administrator.r] )rrDr=rrrrconfig_file_sectiondefault_sectionrrrrUstripr!rfrIfindrc startswithr7rXrrsortedr"r# admin_enabledanyrrX)rg file_datafilter_by_sectioncur_file_original_optscurrent_sectionr[rhsliner$ has_value option_namer6rZr5res @rrYz'WbAdminConfigFileBE.parse_file_contentss/  ??d " "d9oo&>&>'DOOxyy y /C  0 /  %%' " O#DO44B YB Y$ 9--u::>>aCeAh#ooQx3*/++d*;*; ,,a-ABBBB++J771<<$jjoo$( "99"%e**C(-I*.???*/+*;*;*=*=K%)F +.DDD)? )L)/)@)@FL 6{ C%*#a%&&ME(7 & a 7 7 7 7 & a 6 6 6*55g>>Y'+':':;qrr?'K'K#'!QDHH\,B,Bk,Q,Q-3OQ -U-UFNT$:;qrr?$KJP$:;$G'+':':;'G'G#'#38H8HI8U8U (1%6484G4G4N4N0N05-3OQ-N-NFRX$:7;;N$O!7D "4=i6JKfKf6g6ghhhDM%9 b==%G   , :S8r8r8r8rdhdq8r8r8r5r5r :  "#<LMTTb"    M #do"6"6!@ A A A O " "3=5#8 9 9 9 9 9 : : : :rctd|d|d|d|d}|#|jjdkr |jjnt}||}|d}|j|}|d}|dkrz|d }td |d |d |d |d|d|d |Y||jvrPt t||d} |j|| _ | |j |<td|z|||j vr|j |=td|z|dkrVt t||d} td|dt| jd| |j |<dSdS||d} | dkr5t t$||d} || _ | |j |<dSdS||j vr6|j |} | j|kr| jtkr |j |=dSdSdSt t|||} ||jvr6|j|j|kr |j|} t$| _| | _ | |j |<dS)NzAdding option: "", "r TrLrDrr r zadding boolean option "z" with value = "z", default = "", orig_opt = "z", disabledby = "z", definition = "zadded delete ci for "%s" z%Removing existing changeset for "%s" rzAdding ci=ADD for "z" with value "rF)rrrrr7rXrrrrrrrrrrZrrvrrer) rgrrZrer5rLrrrMciorig_opt_value existing_cirYs r option_addedz WbAdminConfigFileBE.option_added/s} uuugggNPPP =E ?AEATAhlnAnAnd)==uDG""4((&)) %))$//XXl++ ) # #!XXi00N JSWSWSWY^Y^Y^`n`n`npxpxpxzDzDzDFJFJFJK M M M%!333,::67DRVWWB"&"4Z"@BK+-DN4(;dBCCC4>))t,G$NOOO!T)) -::3wWWBJTTTSVWYW_S`S`S`S`accc+-DN4(((*)"&!4!4X\\!__!E!E!U**-::67DRYZZB"*BK+-DN4((( +*t~%%"nT2 &'11"&00 N40002100)66sGT5QQ4---$2DT2J2RV]2]2],T2C#BF"%BK')t$$$rc td|z|j|}|r|jtkr |j|=dS||}|d}|dkrv|d}|d}d}|j|} |d} td|d| d | d |d | | dkrL|td dS||jvr.t t||d}||j|<dSdS|d kr.t t||| }||j|<dSdStd| dkr|tddSt t||d}|j||_ ||j|<||jvr.t t||d}||j|<dSdS| dkrMt t||d}|j||_ ||j|<dS|d kr#t t||| }n"t t||| }|j||_ ||j|<dS||jvrBd} t t||| }|j||_ ||j|<dS||jvr"|j|}|j|kr |j|=dSdSdS)Nzopt removed "%s" rDr rr rFz removing "rz", off_value = "z ", odef = "r z1Error, option definition does not have disabledbyTz got orig optz0Error, option definition does not have disbledbyrLdel)rrrXrrr7rrrCrrrrrre) rgrreecir5rLrrMrr off_valuerZs roption_removedz"WbAdminConfigFileBE.option_removedqs&-... n  &&  37c>>t$ F""4((hhv&& ) # #,//J!XXi00NB)--d33HI J\`\`\`bjbjbjlululuw{w{w{| ~ ~ ~ ,,!)QRRRRR%T-???!4!B!B3Q[]a!b!bB9;DN:666@?&--0>>sGTS\]]/1t,,,.-n%%% ,,!)PQQQQQ0>>vwPTVXYY&*&8&<&">BK+-DN4(((%--0>>vwPTV_``0>>vwPTV_``"&"4"8"8">">BK+-DN4(((t)))(66vweTT"06 ')t$$$ 4>))-BzW,, N4000*),,rcltd|d|dt|turtd|d|||jvrB|j|}t t|||}||_||j |<dSt t||||j |<dS)NzOption changed: "rr zWarning setting optionzfrom non-tuple value) rrDrrCrrrrrrr)rgrrZrerYrs roption_changedz"WbAdminConfigFileBE.option_changeds DDD%%%@BBB ;;e # # *D2H% P P P 4% % %$T*C$2267D%PPBBK#%DN4 #6#D#DS'SWY^#_#_DN4 rc$g}|jD]r\}}|}|j|krL||jvr(|||j|jfW||}|2|dr||dd}|H| ddkr/t|}|dkrd}|||ft|dr=|||fI|||ft|S)NrrrDr rrHr) ritemsrrerrfrZr7rrXrhasattr)rgreoptionsrrYr5ovalues r get_optionszWbAdminConfigFileBE.get_optionssw-3355 @ @KT3::<))NND$.*>*D#EFFFF..t44D|(@(@|#2248<<'DHHV,<,< ,I,I!$S!\11%(Ff~6666"399;;88@#NND#))++2C2C2E2E+FGGGG#NND#))+++>???rc$d|jDS)Ncg|] }|d Srrrs rrz4WbAdminConfigFileBE.get_sections..s,,,!,,,r)rrns r get_sectionsz WbAdminConfigFileBE.get_sectionss,,dm,,,,rcddg}t|jdz }t|jD]V\}}|d|krE|d|d<||kr|j|dzddz |d<?t|j|d<W|S)Nrr;r)r!rrUr)rg section_namer- sections_nrr[secs rget_section_line_nr_rangez-WbAdminConfigFileBE.get_section_line_nr_ranges"g$-((1, t}-- 2 2EAc1v%%QA{??!]1q51!4q8CFF 11CF rcbi}|D])}|dD]}|dD]}|d||d<*d}|jD]R}||j}|s|jt t fvr|dkr|jdkr |d|jzz }S|S)Nr@rrDrrLrwz+Option '%s' is blank, but should be a path )rJrrXrrrrrZ) rgr option_typesitemgroupcontrolerrorschangeotypes rvalidate_changesz$WbAdminConfigFileBE.validate_changess NN$$ D DDh D D$Z0DDG4;FOL11D Dn++-- _ _F $$V[11E "(zfc]**J&&|r))"PSYS^"^^ rc  jdStfdjDd}fd}tj}|tj|g}tj j }|D]} |j \}}t|jtust|jt ur(tt#||j|_n||j|_|jt&krt)d|zt+|j} t+|j} t/t1| | D]s} |j| } t5d| d|jdd } |j|  d t7|j| zd z} |j | z|| <t| | krat/| | D]N} t8t<|j|j |j| }| |O| | krt/| | D]x} d ||j| <t8tB|j|j |j"| }| |yg|jtBkr.|jD]$\}}|d kr|d kr|j dz||<d ||<%|jt<kr>#|j}|r|ddkrt|jtust|jt urq|d}|jD]_}|8|$||j d z|%dzd zn|$||j d z|dz }`|j1|$|d|j d z|jzd z|$|d|j d ztMd|D]}|jt<kr|j}|ddkrt|j}|t6us |t6ur0|$|d|j d z|jzd z|$|d|j d z|jzd ztMdtOj(}tRj*+|d_,t[j,d}d }|D]/}|.d|z}|/|0|0tcj2j3_4d|D}d|D}||z }d }tkj6j |dD]!}||7d r|n|d zz }"|sd}d } t[j,d}|8}|0n4#tr$r'}dj,zd zt7|z}Yd}~nd}~wwxYwj4:||j;dS)NcVg|]%}|d|df&Sr)r)rrrgs rrz5WbAdminConfigFileBE.apply_changes..s4```Qad4#A#A!A$#G#GH```rcT|}t|turt|}|Sr)rDrqrA)r/rvs rmap_boolz3WbAdminConfigFileBE.apply_changes..map_bools&BAww$VVIrct|j|j}|jtkr8|dkr2t|jd|jd}|Sr)rrrre)rrr sections_maps rsort_fnz2WbAdminConfigFileBE.apply_changes..sort_fn#sUAE!%  Au||Q QY/2L4KA4NOOHrrzApplying change "%r" z line_nr "rr rez = rLr Tz = 0 r;r zCan't add optionzmysql_workbench_config.tempwrccBg|]}|j|j|j|jfSrrrerrZrrs rrz5WbAdminConfigFileBE.apply_changes..s)VVVbfbj"'28DVVVrcBg|]}|j|j|j|jfSrrrs rrz5WbAdminConfigFileBE.apply_changes..s*(o(o(oUW"&"*bgrx)P(o(o(or)rrrzThere are no changes.rzCan not read file ) ! F````RVR_```aa           dn++--.. ,W55 666 ]4?33 > .> .A,0,L,LQV,T,T )[.AG}}$$QW (>(>s8QW5566"(17++u2Q6777&)!*oo&)!'ll#s?4GHHII::Ajooa00GJ!***MOOO!F .!&QWQZ!84!?*+&6/Jw''#%888"?4GHH770>>sAIqvWXW^_`Wabb+22266667%':::"#6HH779; 1:??1#5#560>>vqyRSRXZ[ZdZhZhijZkZkll+2226666&#$:..KD%"i//Nd4J4J+,6H+< 4((+- 4(( . #*..qy99 .;q>Q#6#6AG}},,QW 0F0F!,Q!"((A } * 1 1&!&5.177SV<<:WZ^:^ _ _ _ _ * 1 1&!&4- H H H"aKFF (7.&--k!nafunqw>VY]>]^^^^&--k!naftmLLLL,---% . .Au||*195 q>Q&& MME||u||"))+a.!&5.17:RUY:YZZZZ"))+a.!&5.17:RUY:YZZZZ,---%'' gll74QRRD'--  D F##c)A JJqMMMM &dDL$:MNNVVvVVV(o(o[n(o(o(o%:: %$/zqQQQ @ @A D!1!1?AAq4x ?LL 32L [+S11D $  JJLLLL [ [ [ 4t7J JT QTWXYTZTZ Z       [ \+STTTTTs1=Z// [ 9[[ c ||j}||dS#t$r.}t jdd|jd|dddYd}~dSd}~wwxYw)Nz$Could not Re-read configuration filez An error occurred while reading z: rrL)rUrrYrrr)rgrzrs rrevertzWbAdminConfigFileBE.reverts "++DN;;D  $ $T * * * * * " " "  !G!GAEQTQTU"b " " " " " " " " " "s/3 A+#A&&A+)Tr)rrrrrirrrrrr r7r9r?rrNr^rUr{rYrrrrrrrrrrrrrrs*'''"%%%ggg&%%% 999xCCC TTT "---*B   F ' ' 'hi:i:i:i:^?*?*?*DL1L1L1^```"2---   &LULULU^"""""rrcdSrr)ctxliness rrecreate_cfg_withrsDrc|d}|d}d}d|vr |d}ntd}|r||d<|jd}|jd|f|jd|zdzdS)Ncfg_besettingsrzsys.config.sectionrrr) __import__ serverInforrfr)rrrrres r init_cfg_bers ]F:H D }}6{&!!  CK!"67G OAw<((( S7]U233333rcd}tj|d<|t_tt|d|d|d<dS)Nc||dSrr)rgrrr{s rrzunit_test_0..shows*+++++r saved_showrrr)rrrr)rrs r unit_test_0rsM,,,#(C K' c*o(F(FIWWCMMMrctdf}d}|d}t|ddk}|sd}|||fS)NzChecking clean config berLrrrz6Clean config be has non-zero number of stored options.)rr!r)rrrrchecks r unit_test_1rsV 0 1D C ]F ""8,, - - 2E GF % rctdf}d}d}|d}d}|D]*}||}|dkr |d|zdzz }d}+d }|D]*}||}|dkr |d |zdzz }d}+|d}|||fS) NzChecking normalize_boolTrLr)rArBrCzFailed norm to True from 'z' F)rErFrGrLzFailed norm to False from ')rr)rrstatusrrrJr/nvs r unit_test_2rs / 0D F C ]F &F   " "1 % % :: /!3e; ;CF .F   " "1 % % ;; 014u< ) rrrrrrr test_vectorrYrZs r unit_test_3r s A BD F C:H ]Fgll29;;(QRRG-4H)* g&v66K**844!! e +   C(((C  ;!#((4 (8(8(:(:#;#;<<.verify_options!4]3z?5S5SUXYbUc!d!ddH C"v))(3344GDMU$:$:FC}rr)3307rrzAdding option failed F)3308rzChanging option failed rzOption remove failed)rrrrrrrrrrrrrrr!r) rrrrrrr curstatusrrs ` @r unit_test_4rs 4 5D F C:H79w||BIKKQs7t7ttH)*W1s:1O1OQTU^Q_```CMFF        8444 (=9QRRY  w &)X666 (=9STTY  w &(+++  6  h ' '((1,, %% &# rctdf}d}d}|d}tjtjdx|jd<}t t|d|dx|d<}t|||_ | | d d | | d |j vrd }|d z }d |j vrd }|dz }n<|j d }|d}|dkrd }|dz }|||fS)NzCRemoving boolean with default true and disabledby (opt not in file)TrLrz tmp/wb_admin_config_file_be5.cnfrrr partitionrzskip-partitionFz'skip-partition was not added on disablez%partition was not added. Check parserrrzRBroken parser. Partition must have value 'disabledby' when skip-partition is used!)rrrrrrrrrrr rrrrXrv) rrrrrrrrvrZs r unit_test_5r=sb [ \D F C:H79w||BIKKQs7t7ttH)*W0s:1O1OQTU^Q_```CMFF  +x000  v333 88&... 66"&&{33  L F g gC &# rctdf}d}d}|d}tjtjdx|jd<}t t|d|dx|d<}t|||_ | | d d | | |j d }|d }|d z }nW|d }|d |dkr#d }|dt#|zdz|dzz }|||fS)Nz4Removing boolean with default true (opt not in file)TrLrz tmp/wb_admin_config_file_be6.cnfrrrz temp-poolrFz,temp-pool is not in file, or was not parsed.rrFzFValue written in file is not the same as the off value in definition. z, )rrrrrrrrrrr rrrrXr7rvr) rrrrrrrrYr5s r unit_test_6r\sn L MD F C:H79w||BIKKQs7t7ttH)*W0s:1O1OQTU^Q_```CMFF  +x000     " "; / /C { ==$$[11 771::e $ $F [^abe^f^ffimmptuzp{{ {C &# rctdf}d}d}|d}tjtjdx|jd<}t t|d|dx|d<}t|||_ | | d d | | |j d }|d }|d z }|||fS) Nz:Switching off boolean with default false (opt not in file)TrLrz tmp/wb_admin_config_file_be7.cnfrrr core-filerFztdf}d}d}|d}tjtjdx|jd<}t t|d|dx|d<}t|||_ | | d d d | | d }|j D]}d |d krd}n |sd }|dz }|||fS)Nz9Checking turn on of special skip option (skip-networking)TrLrz!tmp/wb_admin_config_file_be10.cnfrrrzskip-networkingrrFz z#skip-networking was written wrongly)rrrrrrrrrrr rrrr) rrrrrrrfoundrhs r unit_test_10r's> Q RD F C:H79w||BIKKQt7u7uuH)*W0s:1O1OQTU^Q_```CMFF  )68<<<   E!  9 5 5 5 5E E 6 5 44 &# rctdf}d}d}|d}tjtjdx|jd<}t |d}|d|d |tt|d|d x|d <}t|||_ | |d d d|| d|jd dkrd}|dz }|||fS)NzGChecking turn on bool opt = false (def != false, on=name) (opt in file)TrLrz!tmp/wb_admin_config_file_be11.cnfrr [mysqld] zenable-named-pipe = 0 rrzenable-named-piperrrFzValue is not TruerrrrrrrQrrrrrrr rrrrvrrrrrrfrs r unit_test_11r-sZ _ `D F C:H79w||BIKKQt7u7uuH)*W WcAGGLGG %&&&GGIII0s:1O1OQTU^Q_```CMFF  +VX>>>   v#$78<Checking turn on bool opt with disabledby=skip-* (opt in file)TrLrz!tmp/wb_admin_config_file_be12.cnfrrr)z skip-new rrr"rrrFzmerge is not set.r*r+s r unit_test_12r/!sW V WD F C:H79w||BIKKQt7u7uuH)*W WcAGGLGGLGGIII0s:1O1OQTU^Q_```CMFF  vx000   v#E*..q1111 "" &# rctdf}d}d}|d}tjtjdx|jd<}t |d}|d||d }|j }d |_ tt|d|d x|d <} t||| _ | | d d | | d| jd krd}|dz }||_ |||fSNzDisabling innodbTrLrz!tmp/wb_admin_config_file_be13.cnfrrr)r)rr;rinnodbrFz,innodb option appeared in file after removalrrrrrrrQrrr(rrrrr rrrrX rrrrrrr,rr(rs r unit_test_13r6<\ ( )D F C:H79w||BIKKQt7u7uuH)*W WcAGGLGGIII)nGoGGO0s:1O1OQTU^Q_```CMFF  (H---   v#''1111 ==GO &# rctdf}d}d}|d}tjtjdx|jd<}t |d}|d||d }|j }d |_ tt|d|d x|d <} t||| _ | | d d | | d| jd krd}|dz }||_ |||fSr1r4r5s r unit_test_13_r9[r7rctdf}d}d}|d}tjtjdx|jd<}t |d}|d||d }|j }d |_ tt|d|d x|d <} t||| _ | | d d d| | | jd } d| krd}|dz }n d| dkrd}|dz }||_ |||fS)Nzs*<(K3 MMMr)DrrSrrrrr>rVrrrrrrrrr wb_commonr r r r r workbench.logrrrrwb_server_controlrworkbench.utilsrr"pysourcerrrr%r2r9rHraobjectrcrrrrrrrrrrr rrrrr r$r'r-r/r6r9r<r>rrrrEs\,  PPPPPPPPPPPPPPPPPPllllllllllllllEEEEEEEEEEEE,+++++444444 ^+++ F(    444v-+-+-+-+-+V-+-+-+b   J/J/J/J/J/$J/J/J/\c "c "c "c "c "&c "c "c "P   444$XXX   02222j>8.###L222j866>>!!!Hr