[c@sLddkZddkZddkZddkZddkZddkZddkZddkZddkTddk Z ddk l Z l Z ddk Z ddk lZddklZddkZddklZddklZddklZd Zd efd YZd Zd Zed ZeefZhdd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d d!6d d"6d d#6d d$6d d%6d&d'6d&d(6d)d*6d)d+6d,d-6d.d/6Ze ei!Z"d0e#fd1YZ$d2dEd3YZ%d4dFd5YZ&ddGd6YZ'de'fd7YZ(de(fd8YZ)de'fd9YZ*de*fd:YZ+de*fd;YZ,de,fd<YZ-de-fd=YZ.d e-fd>YZ/d&e/fd?YZ0d,e/fd@YZ1d)e/fdAYZ2d.e/fdBYZ3dCZ4dDZ5dS(HiN(t*(t ParsingErrort ConfigParser(tConfigPreProcessor(tfill(tproxy(t_(t utf8_widths2.7t DeprecatedIntcBseZdZRS(sV A simple int subclass that used to check when a deprecated constant is used. (t__name__t __module__t__doc__(((s//usr/lib/python2.6/site-packages/yum/plugins.pyRDsiitConfigPluginConduittconfigtPostConfigPluginConduitt postconfigtInitPluginConduittinittArgsPluginConduittargstDownloadPluginConduitt predownloadt postdownloadtPreRepoSetupPluginConduitt prereposetuptPostRepoSetupPluginConduitt postreposetupt PluginConduittclosetcleantMainPluginConduittpretranst posttranstpreverifytranstpostverifytranstexcludetDepsolvePluginConduitt preresolvet postresolvetHistoryPluginConduitt historybegint historyendtCompareProvidersPluginConduittcompare_providerstVerifyPluginConduittverify_packaget PluginYumExitcBs&eZdZdddZdZRS(s3Used by plugins to signal that yum should stop tcCs||_||_dS(N(tvaluettranslation_domain(tselfR0R1((s//usr/lib/python2.6/site-packages/yum/plugins.pyt__init__ns cCs,|ioti|i|iS|iSdS(N(R1tgettexttdgettextR0(R2((s//usr/lib/python2.6/site-packages/yum/plugins.pyt__str__qs (R R R R3R6(((s//usr/lib/python2.6/site-packages/yum/plugins.pyR.kst YumPluginscBsbeZdZddddddZdZdZedZdZ dZ dZ RS( s( Manager class for Yum plugins. c Cs-|p dg}n||_||_t||_||_d|_tid|_ ||_ ||_ |djo t }nt |ttfp |f}nttg}|D]} |t| q~jo|i itidn|i|h|_ti|id|iddS(svInitialise the instance. @param base: The @param searchpath: A list of paths to look for plugin modules. @param optparser: The OptionParser instance for this run (optional). Use to allow plugins to extend command line options. @param types: A sequence specifying the types of plugins to load. This should be sequnce containing one or more of the TYPE_... constants. If None (the default), all plugins will be loaded. @param pluginconfpath: A list of paths to look for plugin configuration files. Defaults to "/etc/yum/pluginconf.d". s/etc/yum/pluginconf.dsyum.verbose.YumPluginsseDeprecated constant TYPE_INTERFACE during plugin initialization. Please use TYPE_INTERACTIVE instead.RR N(NN(t searchpathtpluginconfpathtweakreftbaset optparsertNonetcmdlinetloggingt getLoggertverbose_loggertdisabledPluginstenabledPluginst ALL_TYPESt isinstancetlistttupletidtTYPE_INTERFACEtlogt logginglevelstINFO_2t_importpluginstcmdlinestatexittregistertrun( R2R;R8R<ttypesR9tdisabledtenabledt_[1]tt((s//usr/lib/python2.6/site-packages/yum/plugins.pyR3|s*          4   cKsti|d}|djotd|nt|}xf|i|D]W\}}|iiti d|||i |\}}||||i ||qMWdS(s5Run all plugin functions for the given slot. sunknown slot name "%s"s$Running "%s" handler for "%s" pluginN( tSLOT_TO_CONDUITtgetR=t ValueErrortevalt _pluginfuncsRARJRKtDEBUG_4t_pluginsR;(R2tslotnametkwargst conduitclstmodnametfuncRtconf((s//usr/lib/python2.6/site-packages/yum/plugins.pyRQs    c Cs!h|_h|_xtD]}g|i|(R2toptstcommands((s//usr/lib/python2.6/site-packages/yum/plugins.pyt setCmdLinefsN( R R R R=R3RQRMt staticmethodRRrRR(((s//usr/lib/python2.6/site-packages/yum/plugins.pyR7ws,  . W tDummyYumPluginscBs eZdZdZdZRS(s This class provides basic emulation of the YumPlugins class. It exists so that calls to plugins.run() don't fail if plugins aren't in use. cOsdS(N((R2RR_((s//usr/lib/python2.6/site-packages/yum/plugins.pyRQqscOsdS(N((R2RR_((s//usr/lib/python2.6/site-packages/yum/plugins.pyRts(R R R RQR(((s//usr/lib/python2.6/site-packages/yum/plugins.pyRls cBseZdZdZdZd dZdZdZd dZ d dZ d dZ d d Z d d Z d ZRS( cCsC||_||_||_tid|_tid|_dS(Ns yum.pluginsyum.verbose.plugin(t_parentt_baset_confR?R@tloggerRA(R2tparentR;Rc((s//usr/lib/python2.6/site-packages/yum/plugins.pyR3xs    cCs&ti|}|ii||dS(N(RKtlogLevelFromDebugLevelRARJ(R2tleveltmsgtconverted_level((s//usr/lib/python2.6/site-packages/yum/plugins.pytinfoscCs&ti|}|ii||dS(N(RKtlogLevelFromErrorLevelRRJ(R2RRR((s//usr/lib/python2.6/site-packages/yum/plugins.pyRscCso|id||iiiotS|iiiotS|oh|d6nh}t|ii|SdS(sOReturn a yes or no response, either from assumeyes already being set, or from prompting the user. :param msg: the message to show to the user :param prompt: the question to ask the user (optional); defaults to 'Is this ok [y/N]: ' :return: 1 if the response is yes, and 0 if the response is no itpromptN( RRRctassumenoRt assumeyesRtboolt userconfirm(R2RRR_((s//usr/lib/python2.6/site-packages/yum/plugins.pytpromptYNscCsddk}|iS(Ni(tyumt __version__(R2R((s//usr/lib/python2.6/site-packages/yum/plugins.pyt getYumVersions cCs |iiS(sReturn the optparse.OptionParser instance for this execution of Yum In the "config" and "init" slots a plugin may add extra options to this instance to extend the command line options that Yum exposes. In all other slots a plugin may only read the OptionParser instance. Any modification of the instance at this point will have no effect. See the getCmdLine() method for details on how to retrieve the parsed values of command line options. @return: the global optparse.OptionParser instance used by Yum. May be None if an OptionParser isn't in use. (RR<(R2((s//usr/lib/python2.6/site-packages/yum/plugins.pyt getOptParserscCs"ti|i||ti|S(s4Read a string value from the plugin's own configuration file @param section: Configuration file section to read. @param opt: Option name to read. @param default: Value to read if option is missing. @return: String option value read, or default if option was missing. (R RRtOption(R2tsectiontopttdefault((s//usr/lib/python2.6/site-packages/yum/plugins.pyt confStrings cCs"ti|i||ti|S(sZRead an integer value from the plugin's own configuration file @param section: Configuration file section to read. @param opt: Option name to read. @param default: Value to read if option is missing. @return: Integer option value read, or default if option was missing or could not be parsed. (R RRt IntOption(R2RRR((s//usr/lib/python2.6/site-packages/yum/plugins.pytconfInts cCs"ti|i||ti|S(sURead a float value from the plugin's own configuration file @param section: Configuration file section to read. @param opt: Option name to read. @param default: Value to read if option is missing. @return: Float option value read, or default if option was missing or could not be parsed. (R RRt FloatOption(R2RRR((s//usr/lib/python2.6/site-packages/yum/plugins.pyt confFloats cCs"ti|i||ti|S(sYRead a boolean value from the plugin's own configuration file @param section: Configuration file section to read. @param opt: Option name to read. @param default: Value to read if option is missing. @return: Boolean option value read, or default if option was missing or could not be parsed. (R RRR(R2RRR((s//usr/lib/python2.6/site-packages/yum/plugins.pytconfBools cCs"ti|i||ti|S(s_Read a boolean value from the plugin's own configuration file :param section: configuration file section to read :param opt: option name to read :param default: value to read if the option is missing :return: boolean option value read, or *default* if the option was missing or could not be parsed (R RRt ListOption(R2RRR((s//usr/lib/python2.6/site-packages/yum/plugins.pytconfLists cCs|iii|dS(N(Rtrun_with_package_namesR(R2tname((s//usr/lib/python2.6/site-packages/yum/plugins.pytregisterPackageNamesN(R R R3RRR=RRRRRRRRR(((s//usr/lib/python2.6/site-packages/yum/plugins.pyRws       cBseZdZdZRS(cCstidthtit6tit6tit 6ti t 6}|t jo!t ti||||n|tjo!t ti||||nQ|tjoC|||}t ti||t ti|ti|ndS(sRegister a yum configuration file option. @param name: Name of the new option. @param valuetype: Option type (PLUG_OPT_BOOL, PLUG_OPT_STRING ...) @param where: Where the option should be available in the config file. (PLUG_OPT_WHERE_MAIN, PLUG_OPT_WHERE_REPO, ...) @param default: Default value for the option if not set by the user. suregisterOpt() will go away in a future version of Yum. Please manipulate config.YumConf and config.RepoConf directly.N(twarningstwarntDeprecationWarningR RtPLUG_OPT_STRINGRt PLUG_OPT_INTRt PLUG_OPT_BOOLRtPLUG_OPT_FLOATtPLUG_OPT_WHERE_MAINtsetattrtYumConftPLUG_OPT_WHERE_REPOtRepoConftPLUG_OPT_WHERE_ALLtInherit(R2Rt valuetypetwhereRttype2opttoption((s//usr/lib/python2.6/site-packages/yum/plugins.pyt registerOpts      ! ! cCs@t|ido|ii|ntitddS(NtregisterCommands&registration of commands not supported(RvRRRRR(R2tcommand((s//usr/lib/python2.6/site-packages/yum/plugins.pyR s(R R RR(((s//usr/lib/python2.6/site-packages/yum/plugins.pyR s cBseZdZRS(cCs |iiS(N(RRc(R2((s//usr/lib/python2.6/site-packages/yum/plugins.pytgetConfs(R R R(((s//usr/lib/python2.6/site-packages/yum/plugins.pyRscBseZdZdZRS(cCs |iiS(N(RRc(R2((s//usr/lib/python2.6/site-packages/yum/plugins.pyRscCs |iiS(stReturn Yum's container object for all configured repositories. @return: Yum's RepoStorage instance (Rtrepos(R2((s//usr/lib/python2.6/site-packages/yum/plugins.pytgetReposs(R R RR(((s//usr/lib/python2.6/site-packages/yum/plugins.pyRs cBseZdZdZRS(cCs#ti||||||_dS(N(RR3t_args(R2RR;RcR((s//usr/lib/python2.6/site-packages/yum/plugins.pyR3&scCs|iS(N(R(R2((s//usr/lib/python2.6/site-packages/yum/plugins.pytgetArgs*s(R R R3R(((s//usr/lib/python2.6/site-packages/yum/plugins.pyR$s cBseZdZdZRS(cCs |iiS(s{Return parsed command line options. @return: (options, commands) as returned by OptionParser.parse_args() (RR>(R2((s//usr/lib/python2.6/site-packages/yum/plugins.pyt getCmdLine/scCs |iiS(sReturn a representation of local RPM database. This allows querying of installed packages. @return: rpmUtils.RpmDBHolder instance (Rtrpmdb(R2((s//usr/lib/python2.6/site-packages/yum/plugins.pytgetRpmDB6s(R R RR(((s//usr/lib/python2.6/site-packages/yum/plugins.pyR-s cBseZdZRS(cCs |iiS(sMReturn group information. @return: yum.comps.Comps instance (Rtcomps(R2((s//usr/lib/python2.6/site-packages/yum/plugins.pyt getGroups@s(R R R(((s//usr/lib/python2.6/site-packages/yum/plugins.pyR>scBs&eZddZdZdZRS(cCs,ti||||||_||_dS(N(RR3t_pkglistt_errors(R2RR;Rctpkglistterrors((s//usr/lib/python2.6/site-packages/yum/plugins.pyR3Is cCs|iS(sYReturn a list of package objects representing packages to be downloaded. (R(R2((s//usr/lib/python2.6/site-packages/yum/plugins.pytgetDownloadPackagesNscCs|iphS|iS(sReturn a dictionary of download errors. The returned dictionary is indexed by package object. Each element is a list of strings describing the error. (R(R2((s//usr/lib/python2.6/site-packages/yum/plugins.pyt getErrorsTs N(R R R=R3RR(((s//usr/lib/python2.6/site-packages/yum/plugins.pyRGs  cBs/eZddZdZdZdZRS(cCs-|o |i}nd}|iii|S(N(RHR=RtpkgSacktreturnPackages(R2trepotarg((s//usr/lib/python2.6/site-packages/yum/plugins.pyt getPackages`s cCs|ii|S(s Retrieve a package object from the packages loaded by Yum using nevra information @param nevra: A tuple holding (name, epoch, version, release, arch) for a package @return: A PackageObject instance (or subclass) (RtgetPackageObject(R2tnevra((s//usr/lib/python2.6/site-packages/yum/plugins.pytgetPackageByNevragscCs|iii|dS(N(Rtsackt delPackage(R2tpo((s//usr/lib/python2.6/site-packages/yum/plugins.pyRqscCs |iiS(N(RttsInfo(R2((s//usr/lib/python2.6/site-packages/yum/plugins.pyt getTsInfotsN(R R R=RRRR(((s//usr/lib/python2.6/site-packages/yum/plugins.pyR^s  cBs/eZdgdZedZdZRS(cCs,ti||||||_||_dS(N(RR3t resultcodet resultstring(R2RR;Rctrescodetrestring((s//usr/lib/python2.6/site-packages/yum/plugins.pyR3xs cCs |iiS(sDBoolean indicating if depsolving failed due to missing dependencies.(Rt_missing_requires(R2((s//usr/lib/python2.6/site-packages/yum/plugins.pytmissing_requires}scCs&did|ii|iDS(Ns css#x|]\}}||VqWdS(N((t.0tprefixR((s//usr/lib/python2.6/site-packages/yum/plugins.pys s (RuRtpretty_output_restringR(R2((s//usr/lib/python2.6/site-packages/yum/plugins.pyR sN(R R R=R3tpropertyR R (((s//usr/lib/python2.6/site-packages/yum/plugins.pyR$wscBseZhddZRS(cCs,ti||||||_||_dS(N(RR3tpackagestreqpo(R2RR;Rctproviders_dictR((s//usr/lib/python2.6/site-packages/yum/plugins.pyR3s N(R R R=R3(((s//usr/lib/python2.6/site-packages/yum/plugins.pyR*scBseZdgdZRS(cCs)ti|||||ii|_dS(N(RR3Rthistory(R2RR;RcRR((s//usr/lib/python2.6/site-packages/yum/plugins.pyR3sN(R R R=R3(((s//usr/lib/python2.6/site-packages/yum/plugins.pyR'scBseZdZRS(cCs#ti||||||_dS(N(RR3R-(R2RR;RcR-((s//usr/lib/python2.6/site-packages/yum/plugins.pyR3s(R R R3(((s//usr/lib/python2.6/site-packages/yum/plugins.pyR,scCs+|id\}}t|t|fS(Nt.(Rtint(tapivertmajtmin((s//usr/lib/python2.6/site-packages/yum/plugins.pytparseverscCsPt|}t|}|d|djodS|d|djodSdS(s<Return true if API version "a" supports API version "b" ii(R(tatb((s//usr/lib/python2.6/site-packages/yum/plugins.pyRs  ((((6RmRqRRROR4R?RKt constantsR RRRRRttextwrapRRR:RRRtyum.i18nRRRRt TYPE_COREtTYPE_INTERACTIVERIRDRWRptkeysRit ExceptionR.R7RRR RRRRRRRR$R*R'R,RR(((s//usr/lib/python2.6/site-packages/yum/plugins.pyts                 u'