Ñò –­PSc@sfddkZddkiZddklZddklZeiZdZ dZ dZ dZ dZ d ZdZdZdZdZdZd Zd Zd Zd Zd ZdZdefd„ƒYZdd„Zdd„Zdd„Zdd„Z dd„Z!dd„Z"dd„Z#e$ddd„Z%e$ddd„Z&dd„Z'ddd„Z(ddd„Z)dS(iÿÿÿÿN(tglobal_settings(t DebugValuesiiiiiis/usr/bin/svcprops/usr/sbin/svcadms/usr/sbin/svccfgs /usr/bin/svcss/usr/sbin/zlogintNonzeroExitExceptioncBs#eZd„Zd„Zd„ZRS(cCs||_||_||_dS(N(tcmdt return_codetoutput(tselfRRR((s-/usr/lib/python2.6/vendor-packages/pkg/smf.pyt__init__<s  cCs t|ƒS(N(tstr(R((s-/usr/lib/python2.6/vendor-packages/pkg/smf.pyt __unicode__AscCsd|i|i|ifS(Ns-Cmd %s exited with status %d, and output '%s'(RRR(R((s-/usr/lib/python2.6/vendor-packages/pkg/smf.pyt__str__Gs(t__name__t __module__RR R (((s-/usr/lib/python2.6/vendor-packages/pkg/smf.pyR;s  c Cstidƒ}|o1tii||didƒƒf|d}n|o:tidƒ}|djo t}n||f|}ny@ti |dti dti ƒ}|i i ƒ}|iƒ}Wn(tj o}td||f‚nX|djot|||ƒ‚n|S( Nt smf_cmds_dirit/it bin_zlogintstdouttstderrscannot execute %s: %s(Rt get_valuetostpathtjointlstriptNonet zlogin_patht subprocesstPopentPIPEtSTDOUTRt readlinestwaittOSErrort RuntimeErrorR(targstzonetcmds_dirRtproctbuftrette((s-/usr/lib/python2.6/vendor-packages/pkg/smf.pyt__callLs& %    cCs§t|d|ƒ}|ptSd|idgƒjotS|iddƒ}|dj od|jotStS|iddƒ}|dj od|jotStS(s return state of smf service R"t maintenancesrestarter/statesgeneral_ovr/enabledttruesgeneral/enabledN( t get_propstSMF_SVC_UNKNOWNtgettSMF_SVC_MAINTENANCERtSMF_SVC_TMP_ENABLEDtSMF_SVC_TMP_DISABLEDtSMF_SVC_ENABLEDtSMF_SVC_DISABLED(tfmriR"tpropststatus((s-/usr/lib/python2.6/vendor-packages/pkg/smf.pyt get_statees  cCst|d|ƒtjS(NR"(R6R/(R3R"((s-/usr/lib/python2.6/vendor-packages/pkg/smf.pyt is_disabledysc Csnt|tƒot|gƒ}nd}x>|iƒD]0}t}x%|D]}||jo t}qIqIW|}|idƒo|idddƒ}nd|jo| oq6n|i|ƒ|opt dddd |f}y:t |d |ƒ} x!| D]} |i | i ƒƒqþWWqft j o q6qfXq6titd ƒƒtitd ƒtƒƒq6W|S( s2 Walk a set of fmris checking that each is fully specifed with an instance. If an FMRI is not fully specified and does not contain at least one special match character from fnmatch(5) the fmri is dropped from the set that is returned and an error message is logged. s*?[!^ssvc:tit:s-Hs-oR3s%sR"sCFMRI pattern might implicitly match more than one service instance.s4Actuators for %(attr)s will not be run for %(fmri)s.(t isinstancet basestringtsettcopytFalsetTruet startswithtreplacetremovet svcs_pathR(taddtrstripRtloggerterrort_tlocals( tattrtfmrisR"tcharsR3tis_globtcttmp_fmriRt instancestinstance((s-/usr/lib/python2.6/vendor-packages/pkg/smf.pyt check_fmris|s:    c Csstd|f}yt|d|ƒ}Wntj ohSXtg}|D]}||iƒiddƒqJ~ƒS(Ns-cR"i(t svcprop_pathR(RtdicttstriptsplitR(tsvcfmriR"R!R%t_[1]tl((s-/usr/lib/python2.6/vendor-packages/pkg/smf.pyR+¦scCs3td|dd||ff}t|d|ƒdS(Ns-stsetprops%s=%sR"(t svccfg_pathR((R3tproptvalueR"R!((s-/usr/lib/python2.6/vendor-packages/pkg/smf.pytset_prop³scCs_tdd||f}t|d|ƒ}t|ƒdjptd|‚|didƒ}|S(Ns-cs-pR"isWas expecting one entry, got:%sis (RSR(tlentAssertionErrorRE(R3R\R"R!R%((s-/usr/lib/python2.6/vendor-packages/pkg/smf.pytget_prop·s !cCs«|pdSt|tƒo |f}ntdg}|o3|idƒ|djo|id|ƒqon|o|idƒntt|ƒt|ƒd|ƒdS(Ntenables-siÿÿÿÿs-T %ds-tR"(R:R;t svcadm_pathtappendR(ttuple(RKt temporaryt sync_timeoutR"R!((s-/usr/lib/python2.6/vendor-packages/pkg/smf.pyRb¾s    cCs–|pdSt|tƒo |f}ntddg}|djo|id|ƒn|o|idƒntt|ƒt|ƒd|ƒdS(Ntdisables-sis-T %ds-tR"(R:R;RcRdR(Re(RKRfRgR"R!((s-/usr/lib/python2.6/vendor-packages/pkg/smf.pyRhÎs  cCs\|pdSt|tƒo |f}ntd|g}tt|ƒt|ƒd|ƒdS(NtmarkR"(R:R;RcR(Re(tstateRKR"R!((s-/usr/lib/python2.6/vendor-packages/pkg/smf.pyRiÛs  cCs“|pdSt|tƒo |f}ntdg}|o3|idƒ|djo|id|ƒqontt|ƒt|ƒd|ƒdS(Ntrefreshs-siÿÿÿÿs-T %dR"(R:R;RcRdR(Re(RKRgR"R!((s-/usr/lib/python2.6/vendor-packages/pkg/smf.pyRkäs    cCs“|pdSt|tƒo |f}ntdg}|o3|idƒ|djo|id|ƒqontt|ƒt|ƒd|ƒdS(Ntrestarts-siÿÿÿÿs-T %dR"(R:R;RcRdR(Re(RKRgR"R!((s-/usr/lib/python2.6/vendor-packages/pkg/smf.pyRlñs    (*Rtpkg.pkgsubprocesst pkgsubprocessRt pkg.clientRtpkg.client.debugvaluesRRFR,R2R.R0R/R1tEXIT_OKt EXIT_FATALtEXIT_INVALID_OPTIONt EXIT_INSTANCEtEXIT_DEPENDENCYt EXIT_TIMEOUTRSRcR[RCRt ExceptionRRR(R6R7RRR+R^RaR>RbRhRiRkRl(((s-/usr/lib/python2.6/vendor-packages/pkg/smf.pytsD      *