ó ¸sWc@s@dZddlmZddlmZdefd„ƒYZdS(s7Name Service Cache Daemon (nscd) classes used by nscfg.iÿÿÿÿ(tprint_functioni(tNssbasetNscdcBsgeZdZdZdZdZdZdZdZdZ dZ d dd d d d dddddddddddddddgZ d ddd dd dd!d"d#dd$d%dddddddgZ iZ d Zid&dgd'6d&dgd(6d&dgd)6Zid*d+gd,6d-d.gd/6d-d0gd16d-d2gd36d*d+gd46d-d5gd66d-dgd76Zi d8d96d:d;6d<d=6d>d?6d@dA6dBd 6dCdD6dEdF6dGdH6dIdJ6dKdL6dMdN6Zi d8dO6dGdP6dIdQ6dKdR6dSdT6dUdV6dWdX6dYdZ6d[dN6Zd\Zd]„Zd^„Zd_„Zd`„Zda„Zdb„Zdc„Zdd„Zde„Zdf„Zdg„ZRS(hs~Name Service Cache Daemon class. Represents the configuration of the name service cache. See nscd.conf(4) for details.ssvc:/system/name-service/caches nscd.confs/etctdefaulttit1994s-# See nscd(1m) and nscd.conf(4) for details. tconfigthosttpasswordtgrouptnetworktprotocoltrpctethertnetmaskt bootparamtnetgrouptservicetprintertprojectt auth_attrt exec_attrt prof_attrt user_attrttnrhtpttnrhdbthoststpasswdtnetworkst protocolstetherstnetmaskst bootparamstservicestprinterstastringtlogfilet debug_leveltdebug_componentstbooleanttruet enable_cachetintegert3600tpositive_time_to_livet5tnegative_time_to_livet20tkeep_hot_countt check_filest0tcheck_file_intervaltmaximum_entries_alloweditcacheitswitchitfrontendit self_creditadmini i@t smf_monitori€t nsw_stateitgetentitaccessitint_addriÿtallt cant_findtdebugterrortwarningitinfoitnoticei talerti@tcritiÿs$solaris.smf.value.name-service.cachecCsÉtj|ƒt|jƒdkrÅx:|jD]/}|j|j|ƒ}|j||j|Convert yes/no to true/false expected by the SMF boolean type.tfalseR(RRU(RVRWRX(RPRYRZR[((scommon/nscd.pyt truefalse†s    cCs¹yt|ƒ}Wn|jdƒdSX||jdkr?dSg}xJ|jjƒD]9}|dkrmqUn||j|@rU|j|ƒqUqUWt|ƒdkrµ|jdƒdS|S(s7Converts a debug_component integer to a SMF value list.s0Non integer component value found in legacy fileR?is(No component values found in legacy fileN(tintterr_msgtNonet debug_comptkeystappendRI(RPtstrvaluetinputtlistti((scommon/nscd.pytimport_component’s"   cCsÍ|jddƒ}|jd|ƒ|dks@t|ƒdkrDdSt|ƒdkrw|ddkrwt|jdƒSd}x3|D]+}y|j|}||O}Wq„q„Xq„W|dkrÃdSt|ƒS(s8Converts a debug_component SMF value list to an integer.RRsconfig/debug_componentssexport debug_components= iiR?N(tget_prop_val_listttraceitRaRItstrRb(RPRgtdbintRhtvalue((scommon/nscd.pytexport_component¦s "   cCs¹yt|ƒ}Wn|jdƒdSX||jdkr?dSg}xJ|jjƒD]9}|dkrmqUn||j|@rU|j|ƒqUqUWt|ƒdkrµ|jdƒdS|S(s3Converts a debug_level integer to a SMF value list.s2Non integer value debug value found in legacy fileR?is%Non debug values found in legacy fileN(R_R`RaR%RcRdRI(RPReRfRgRh((scommon/nscd.pyt import_level¹s"   cCs |jddƒ}|jd|ƒ|dks@t|ƒdkrDdSt|ƒdkrÊ|d}|dkr}t|jdƒSy@t|ƒ}|dkrœdS|dkr¸|dkr¸|SdSWqÊqÊXnd}x3|D]+}y|j|}||O}Wq×q×Xq×W|dkrdSt|ƒS( s4Converts a debug_level SMF value list to an integer.RRsconfig/debug_levelsexport debug_level= iiR?i N(RjRkRaRIRlR%R_(RPRgRYRhRmRn((scommon/nscd.pyt export_levelÍs6       cCs@|jdƒi}xu|jD]j}|j|j|ƒ}|jd|ƒ}|dkrt|ƒtdƒkr|dkr|||sð     !  !                                  cCsW|jdƒ|jdƒ|jdƒs0|jS|jƒsC|jS|jdƒ|jS(sUnconfigure SMF. Reset DEFPG.sunconfiguring nscd...s"Delete all service customizations.Rssuccessful unconfigure.(RsR”RzR•R“(RP((scommon/nscd.pyt unconfig_smfÄs    cCsï|jƒ}|dkrë|j|krë|j|krë|j|jƒ}|dkrèd}d}xo|jjƒD]^}|j|ddkr“qpn|d7}dj|j|fƒ}||krp|d7}qpqpW||kråtSqèqënt S(s/Is SMF populated with this service? True/FalseiiRRrN( tget_pgsRaRtRMt get_propsRORcRLRWR‹(RPtpgstpropstfndproptallpropRQttprop((scommon/nscd.pyt is_populatedÒs"       (t__name__t __module__t__doc__tSERVICEtLEGACYt LEGACYDIRRttDEFPROPtGROUPtCOPY_YRtDOCRNRwRJRMRKRORbR%t VALUE_AUTHRHR\R^RiRoRpRqR…R©RªR²(((scommon/nscd.pyRsˆ                    S † N(Rµt __future__RtnssbaseRR(((scommon/nscd.pyts