6Tc@sddlZddlZddlZddlZddlZddlZddlZddlj j Z ddl j j ZddlZddljZddlZddlmZddlmZmZmZejZdefdYZdS(iN(tglobal_settings(t expanddirstget_pkg_otw_sizetEmptyItPkgPlancBsyeZdZddddddddd d d d d dgZedddddd gZeeeeksyteeeZie j j gd6iie j j jd6e j j jd6e6d6e jjd 6e j j d 6e j j d 6Zee j j gZd3dZed3dZed3dZed3dZdZdZdZdZedZdZ dZ!dZ"e#e#edZ$dZ%d3d3dZ&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/Z7d0Z8e6d1Z9d2Z:RS(4sA 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_summarytsrctdestcCsd|_tj|_d|_tj|_tjggg|_||_ d|_ t |_ i|_ i|_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.7/vendor-packages/pkg/client/pkgplan.pyt__init__us            cCs|jtjkst|jtjks0t|jiksEti}x$|jD]}t|||| %s s %s -> %s (RRt itertoolstchainR(RtsRR((s8/usr/lib/python2.7/vendor-packages/pkg/client/pkgplan.pyt__str__scCs4i|d6|d6td6td6|j|jds 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_directoriesRpRdt directorytDirectoryActiontgetRRoRR8R9tgen_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.7/vendor-packages/pkg/client/pkgplan.pytevaluate,s                                ccs/x(|jjD]\}}||fVqWdS(sA 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.7/vendor-packages/pkg/client/pkgplan.pyt get_licensesscCsC|j|}|dk r&||d\}}|j|r6|jjjjj||fPq6q6WdS|jj ||dS(s1move unpackaged contents to specified destinationiN( RRKRFRRRRRRctrecover(Rt local_pathtfull_destinationRR((s8/usr/lib/python2.7/vendor-packages/pkg/client/pkgplan.pyt salvage_from{s  cCs|jS(N(R(R((s8/usr/lib/python2.7/vendor-packages/pkg/client/pkgplan.pytdestination_manifestscCstj|_dS(N(RRR(R((s8/usr/lib/python2.7/vendor-packages/pkg/client/pkgplan.pytclear_dest_manifestscCs|jS(N(R(R((s8/usr/lib/python2.7/vendor-packages/pkg/client/pkgplan.pytorigin_manifestscCstj|_dS(N(RRR(R((s8/usr/lib/python2.7/vendor-packages/pkg/client/pkgplan.pytclear_origin_manifestsN(;R)t __module__t__doc__t __slots__t frozensett_PkgPlan__state__noserializetsetR#R$R&RftPkgFmriRtgenerictNSGt basestringRRR*R+RR t staticmethodR/R5R7R;RREReRRjRlRqRuRRRRRRRRRRRRRRRRRRRtpropertyRRRR(((s8/usr/lib/python2.7/vendor-packages/pkg/client/pkgplan.pyR.s         "     x               (tcopyRZR8RKRVRSt pkg.actionsR&tpkg.actions.directoryRRtpkg.client.api_errorstclientt api_errorsRtpkg.fmrit pkg.manifestRtpkg.misct pkg.clientRRRRRtobjectR(((s8/usr/lib/python2.7/vendor-packages/pkg/client/pkgplan.pyts