ó i'dWc@sÌdZddlmZddlmZddlmZddlm Z ddl m Z m Z m Z mZmZddlmZmZdZd Zd Zd Zd efd „ƒYZdefd„ƒYZdS(ss varshare.py - /var /var/share dataset creation checkpoint. Creates BE /var dataset and global /var/share dataset. iÿÿÿÿ(tUnifiedArchive(t InstallEngine(tAbstractCheckpoint(tTarget(tBEt FilesystemtOptionstZvoltZpool(t ArchiveSpectSoftwaretvars/vartVARSHAREs /var/sharetVarShareDatasetErrorcBs eZdZd„Zd„ZRS(s6Error generated during var/share filesystem processingcCstj|ƒ||_dS(N(t Exceptiont__init__tmsg(tselfR((s varshare.pyR/s cCs|jS(N(R(R((s varshare.pyt__str__3s(t__name__t __module__t__doc__RR(((s varshare.pyR ,s tVarShareDatasetcBsƒeZdZd„Zd„Zd„Zd„Zed„ƒZd„Z d„Z d„Z d „Z d „Z d „Zed „ZRS( s. class to create /var /var/share datasets cCsGtt|ƒj|ƒtƒ|_tƒ|_tƒ|_d|_dS(N( tsuperRRtlistt zpool_listt zvol_listtfs_listtNonet _root_pool(Rtname((s varshare.pyR;s    cCsdS(sZ Returns an estimate of the time this checkpoint will take in seconds i((R((s varshare.pytget_progress_estimateDscCsªtjƒj|_|jjdtjdtdtƒd|_|jjdt dtƒ|_ |jjdt ƒ|_ |jjdt ƒ|_|jjjdtƒ|_dS(s^ method for parsing data object cache (DOC) objects for use by the checkpoint Rt class_typetnot_found_is_erriN(Rt get_instancetdata_object_cachetdoctget_descendantsRtDESIREDtTruettargetRRRRRRtvolatileR tsw_nodes(R((s varshare.pyt parse_docJs cCsax$|jD]}|j|kr |Sq Wx3|jD](}|j|ksU|j|kr1|Sq1WdS(s Search the list of Zvol's and Filesystems in the DESIRED tree for matching name or mountpoint. Return the first matching object found. Paramaters: dsname - Dataset name to check for dsmp - Dataset mountpoint to check for N(RRRt mountpointR(Rtdsnametdsmptzvtfs((s varshare.pytin_dataset_listas cCsV|jdk r|jSx6g|jD]}|jr#|^q#D]}||_q<W|jS(s& Return root pool from list of zpools N(RRRtis_root(Rtzt root_pool((s varshare.pyR4ws , cCsH|jdk r4|jj|d|ƒ}||_|Std|ƒ‚dS(sÛ Add filesystem to root pool. Paramaters: fsname - Filesystem name to add. fsmp - Filesystem mountpoint in_be - Filesystem within BE or not R,sIFailed to add '%s' filesystem object, the root pool could not be located.N(R4Rtadd_filesystemtin_beR (RtfsnametfsmpR6R0((s varshare.pyR5‚s  c Cs^d}|j||ƒ}|dk r‹t|tƒrFtd|ƒ‚q‹|jjsqtd||jjfƒ‚n|j|krŸtd|j||fƒ‚n|j|kré|jdkoÆ|t k rétd|j||fƒ‚n|j r|t krtd|ƒ‚n|j r:|t kr:td|ƒ‚n|jt kr„t ƒ}|j t tdƒ}|j t tdƒ}|dk r¡|dkr¡||dRBR?RCR$R%RR'tcontentstarchive_objectstzoneRtlentAssertionErrort RuntimeErrort archive_typeRDRER( Rt arch_transfertswR^tsw_childtarchivetdeployable_obj_nametarch_objtdeployable_obj((s varshare.pyt_get_required_datasets@s:         cCsT|jjdƒ|jƒ||_x*|jƒD]\}}|j||ƒq0WdS(sE Primary execution method use by the Checkpoint parent class s$Executing Var Share Dataset AdditionN(RDRER+tdry_runRoRQ(RRpR0tmp((s varshare.pytexecute~s   (RRRRRR+R1tpropertyR4R5RQRGRFRARoRHRr(((s varshare.pyR7s     Ž  >N(Rtsolaris_install.archiveRtsolaris_install.engineRt!solaris_install.engine.checkpointRt Checkpointtsolaris_install.targetRtsolaris_install.target.logicalRRRRRtsolaris_install.transfer.infoR R R>RBR?RCRR R(((s varshare.pyts(