Ñò ®6Tc@sîddkZddkZddkZddkZddkZddkZddkZddki i Z ddk i i ZddkZddkiZddkZddklZddklZlZlZeiZdefd„ƒYZdS(iÿÿÿÿN(tglobal_settings(t expanddirstget_pkg_otw_sizetEmptyItPkgPlancBs{eZdZddddddddd d d d d dgZedddddd gƒZeeeƒeƒjpt‚eeƒeZhe i i gd6hhe i i id6e i i id6e6d6e iid 6e i i d 6e i i d 6Zee i i gƒZd3d„Zed3d„ƒZed3d„ƒZed3d„ƒZd„Zd„Zd„Zd„Zed„Zd„Z d„Z!d„Z"e#e#ed„Z$d„Z%d3d3d„Z&d „Z'd!„Z(d"„Z)d#„Z*d$„Z+d%„Z,d&„Z-d'„Z.d(„Z/d)„Z0d*„Z1d+„Z2d,„Z3d-„Z4d.„Z5e6d/„ƒZ7d0„Z8e6d1„ƒZ9d2„Z:RS(4søA package plan takes two package FMRIs and an Image, and produces the set of actions required to take the Image from the origin FMRI to the destination FMRI. If the destination FMRI is None, the package is removed. t__destination_mfstt _executedt_license_statust __origin_mfstt__repair_actionst __xferfilest __xfersizet _autofix_pkgst_hashtactionstdestination_fmritimaget origin_fmrit pkg_summarytsrctdestcCs—d|_ti|_d|_ti|_tigggƒ|_||_ d|_ t |_ h|_ h|_d|_d|_g|_d|_dS(Niÿÿÿÿ(tNoneRtmanifesttNullFactoredManifestt_PkgPlan__destination_mfstRt_PkgPlan__origin_mfsttManifestDifferenceRRRtFalseRRt_PkgPlan__repair_actionst_PkgPlan__xferfilest_PkgPlan__xfersizeR R (tselfR((s8/usr/lib/python2.6/vendor-packages/pkg/client/pkgplan.pyt__init__us            c Cs£|itijpt‚|itijpt‚|ihjpt‚h}x$|iD]}t||ƒ|| %s s %s -> %s (RRt itertoolstchainR(RtsRR((s8/usr/lib/python2.6/vendor-packages/pkg/client/pkgplan.pyt__str__¿s  cCs4h|d6|d6td6td6|i|ids must-acceptR<N(4RRRt get_publishert publishertapxtUnknownPublishertsignature_policytcombineR t get_manifestR€Rtlisttgen_actions_by_typeR4tprocess_signaturest gen_actionst trust_anchorstcfgt get_policytSigningExceptiontpfmrit isinstancet BrokenChaintext_exstextendtbad_trust_anchorstexclude_contentRRt differenceRRtget_directoriesRtRdt directorytDirectoryActiontgetRRsRR8R9tgen_update_actionstgen_install_actionst_PkgPlan__add_licenseR?Rthashtset_license_status(Rt old_excludest new_excludest can_excludetdest_pubtsig_poltsigmantsigstet origin_dirst absent_dirstaRRtsrc_matdest_ma((s8/usr/lib/python2.6/vendor-packages/pkg/client/pkgplan.pytevaluate,sŽ                              ccs/x(|iiƒD]\}}||fVqWdS(s©A generator function that yields tuples of the form (license, entry). Where 'entry' is a dict containing the license status information.N(Rt iteritems(Rtlictentry((s8/usr/lib/python2.6/vendor-packages/pkg/client/pkgplan.pyt get_licenses¥s cCsG|i|}|dj o||ds