Ñò i'dWc@s<ddkZddklZlZdefd„ƒYZdS(iÿÿÿÿN(t ShadowListtShadowExceptionBaset ShadowZpoolcBsbeZdZdefd„ƒYZdefd„ƒYZdefd„ƒYZd„Zd„ZRS( s= ShadowZpool - class to hold and validate Zpool objects. tDuplicateZpoolNameErrorcBseZd„ZRS(cCsd||_dS(NsZpool name %s already inserted(tvalue(tselft zpool_name((s ../zpool.pyt__init__#s(t__name__t __module__R(((s ../zpool.pyR"stDuplicateMountpointErrorcBseZd„ZRS(cCsd||_dS(Nsmountpoint %s already specified(R(Rt mountpoint((s ../zpool.pyR's(RR R(((s ../zpool.pyR &stTooManyRootPoolsErrorcBseZd„ZRS(cCsd||_dS(Ns$Zpool %s already marked as root pool(R(RR((s ../zpool.pyR+s(RR R(((s ../zpool.pyR *sc Csk|ig}|iD]}||iq~jo|i|i|iƒƒn|io?x<|iD]-}|io|i|i|iƒƒqbqbWn|idjoti i d|iƒ}nti i |iƒ}xy|iD]n}|idjoti i d|iƒ}nti i |iƒ}||jo|i|i |ƒƒqâqâWt i|||ƒdS(Nt/(tnamet_shadowt set_errorRtis_rootR R tNonetostpathtjointabspathR Rtinsert(RtindexRt_[1]tzpooltvalue_mountpointtzpool_mountpoint((s ../zpool.pyR.s$1   %  cGsDti||Œd|_||_x|D]}|i|ƒq)WdS(Nszpool validation(RRtmod_idt containertappend(RRtargstentry((s ../zpool.pyRPs   ( RR t__doc__RRR R RR(((s ../zpool.pyRs  "(tos.pathRtsolaris_install.target.shadowRRR(((s ../zpool.pyts