Ñò ¸npVc @sÌddklZddkZddkZddkZddkZddklZddkl Z ddkl Z de fd„ƒYZ d „Z d „Z d „Zed joeƒZeieƒndS( iÿÿÿÿ(tprint_functionN(t OptionParseri(t openLocked(tSSSDChangeConftSSSDConfigFilecBseZd„Zd„Zd„Zdd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z ed „Zed„ZRS(cCsKti|ƒ||_t|idtƒ}|i|ƒ|_|iƒdS(Ni€(Rt__init__tfilenameRtFalsetparsetoptstclose(tselfRtf((sB/usr/lib/python2.6/site-packages/SSSDConfig/sssd_upgrade_config.pyR!s   cCs2ti|||iƒti||idƒdS(s2 Copy the file we operate on to a backup location i€N(tshutiltcopyt backup_suffixtostchmod(R t file_name((sB/usr/lib/python2.6/site-packages/SSSDConfig/sssd_upgrade_config.pyt _backup_file)scCsZ|iddƒd}|pdSyt|dƒSWntj otdƒ‚nXdS(Ntsssdtconfig_file_versioniitvalues"config_file_version not an integer(tget_option_indextintt ValueErrort SyntaxError(R tver((sB/usr/lib/python2.6/site-packages/SSSDConfig/sssd_upgrade_config.pyt get_version/stoptioncCsQxJ|iƒD]<\}}|i|||ƒ\}}|o||d6d?d@6dAdB6dCdD6dEdF6dGdH6dIdJ6dKdL6dMdN6dOdP6dQdR6d1dS6dTdU6dVdW6dXdY6dGdZ6d[d\6d]d^6d_d`6dadb6dcdd6dedf6dgdh6didj6dkdl6dmdn6dodp6dqdr6}hdsdt6dudv6dwdx6dydz6d{d|6d}d~6dd€6}hdd‚6dƒd„6}|i|d…ƒ|i|d|ƒ|i|d|ƒ|i|d|ƒ|i|d|ƒ|i|d…d†d‡ƒ|i|d…d†dƒ\}}| oD|ddˆjo3hd†d‰6dd6dŠd…6}|d…id‹|ƒn|d…dŠjoE|i|ddŒ|iƒƒ|i ddŒƒ|i|d|ƒn|d…dŽjoAd|d…|i||ƒ\}}|o||d<|i|ƒndS(NR(Rtappend(R topttto_nameRSt from_nameR%R&((sB/usr/lib/python2.6/site-packages/SSSDConfig/sssd_upgrade_config.pyt_update_if_existsþs cCshdd6dd6dd6dd6dd6}hdd 6d d 6d d 6}|id|dƒhdd6dd6dd6dd6g}|i|dddƒ|i|dddƒ|i|dddƒ|i|dddƒ|i|ddd ƒ|id!|ƒ|id!d|iƒƒ|id!d|iƒƒhd"d#6d$d%6d&d'6d(d)6d*d+6d,d-6d.d/6}|i|ƒ|id d|iƒƒ|id |ƒh}|i|ƒ|id d|iƒƒ|id |ƒ|iddƒ|iddƒ|iddƒ|iddƒdS(0Ntreconnection_retriess debug-levelt debug_levelsdebug-timestampstdebug_timestampstcommandRes services/nsstnsss services/pamtpams services/dpR;R<RR"RRt2RtsettactionR`R9tactiveServicest sbus_timeoutsservices/monitort sbusTimeoutt re_expressiontnamess re-expressionsfull-name-formatRtEnumCacheTimeouttenum_cache_timeouttEntryCacheTimeouttentry_cache_timeouttEntryCacheNoWaitRefreshTimeouttentry_cache_nowait_timeouttEntryNegativeTimeoutsentry_negative_timeout t filterUserst filter_userst filterGroupst filter_groupstfilterUsersInGroupstfilter_users_in_groups(R'tNoneRìt add_sectionRYRÝtupdateRB(R t service_kwtnames_kwtsssd_kwtnss_kwtpam_kw((sB/usr/lib/python2.6/site-packages/SSSDConfig/sssd_upgrade_config.pyt_migrate_servicessX                    cCsq|o|i|iƒn|iƒt|dƒ}|i|iƒ}|i|ƒ|iƒti |dƒdS(Ntwbi€( RRRLtopentdumpR twriteR RR(R t out_file_nametbackuptoftoutput((sB/usr/lib/python2.6/site-packages/SSSDConfig/sssd_upgrade_config.pyt v2_changesDs   cCs…|o|i|iƒn|iƒ|iƒ|iƒt|dƒ}|i|iƒ}|i|ƒ|i ƒt i |dƒdS(NRi€( RRRRçRLRRR RR RR(R RRRR((sB/usr/lib/python2.6/site-packages/SSSDConfig/sssd_upgrade_config.pyt upgrade_v2Ss     (t__name__t __module__RRRR'R8RLRYR_RæRçRìRRORR(((sB/usr/lib/python2.6/site-packages/SSSDConfig/sssd_upgrade_config.pyR s        q   @ c Cs*tƒ}|iddddddddd d ƒ|id d dd ddddd dƒ|idddddddtddƒ|idddddddtddƒ|iƒ\}}t|ƒdjo>tti ?ddi g}|D] }||qì~ƒfdS|i p|i |_ n|S(Ns-fs--filetdestRtdefaults/etc/sssd/sssd.confthelpsSet input file to FILEtmetavartFILEs-os --outfiletoutfilesSet output file to OUTFILEtOUTFILEts --no-backupRõt store_falseRspDo not provide backup file after conversion. The script copies the original file with the suffix .bak by defaults-vs --verboset store_truetverboses Be verboseisStray arguments: %st ( Rt add_optionRRORt parse_argsRNtprinttsyststderrRAR"R(tparsertoptionstargsRGta((sB/usr/lib/python2.6/site-packages/SSSDConfig/sssd_upgrade_config.pyt parse_optionsgs(       9 cCs|ot|ƒndS(N(R+(tmsgR'((sB/usr/lib/python2.6/site-packages/SSSDConfig/sssd_upgrade_config.pyR'‚sc Csîtƒ}|ptti?dfdSyt|iƒ}Wn{tj o6tti ƒ|iƒtti?d|ifdSt j o.}td|ƒtti ƒ|iƒdSXt i dƒ|i ƒ}|djoktd|iƒy|i|i|iƒWqêt j o.}td|ƒtti ƒ|iƒdSXn£|djoktd|iƒy|i|i|iƒWqêt j o.}td|ƒtti ƒ|iƒdSXn+td |i|i ƒfd tiƒdSd S( NsCannot parse optionsisCannot parse config file %ss ERROR: %si?is$Looks like v2, only checking changess&Looks like v1, performing full upgrades=Can only upgrade from v1 to v2, file %s looks like version %dtfilei(R2R+R,R-RRRR't tracebackt format_exct ExceptionRtumaskRRR"RR(R/tconfigtetversion((sB/usr/lib/python2.6/site-packages/SSSDConfig/sssd_upgrade_config.pytmain†sF       &t__main__(t __future__RRR,R R5toptparseRt ipachangeconfRRRR2R'R<Rtrettexit(((sB/usr/lib/python2.6/site-packages/SSSDConfig/sssd_upgrade_config.pyts    ÿH   +