ó ¸sWc@s@dZddlmZddlmZdefd„ƒYZdS(s*Name Service Switch classes used by nscfg.iÿÿÿÿ(tprint_functioni(tNssbasetNsswitchcBsUeZdZdZdZdZdZdZdZdZ dZ dgZ id d6d d 6d d 6d d 6d d 6d d6d d6d d6d d6d d6d d6d d6d d6d d6d d6d d6d d6d d6d d6d d6d d6d d6dd 6dd!6Z d7Z d.Zd Zd/Zd Zd0Zd!Zd8d9fZd2Zd3„Zd4„Zd5„Zd6„ZRS(:s}Name Service Switch class. Represents the configuration of the name service switch. See nsswitch.conf(4) for details.ssvc:/system/name-service/switchs nsswitch.confs/etctconfigtdefaultit1991s$# See nsswitch.conf(4) for details. tastringthosttpasswordtgrouptnetworktprotocoltrpctethertnetmaskt bootparamt publickeytnetgroupt automounttaliastservicetprintertprojectt auth_attrt prof_attrttnrhtpttnrhdbtsudoertbooleantenable_passwd_compattenable_group_compattpasswdthoststipnodestnetworkst protocolstetherstnetmaskst bootparamstaliasestservicestprinterstsudoerstfilest passwd_compatt group_compats user filess%solaris.smf.value.name-service.switchcCstj|ƒdS(N(Rt__init__(tself((scommon/nsswitch.pyR._sc Cs·|jdƒi}t}|jddƒ}t|ƒtdƒkrX|dkrXt}nt}|jddƒ}t|ƒtdƒkr|dkrt}n|jƒ}|dksÁ|dkrÊd}n|jd|ƒx“|jjƒD]‚}|jd |ƒ|||<|jd|j|ƒ}|jd |ƒ|dkrX|dkrX|||| |jkrg|tkrWwcn|jd} n |j| } | dkr| d }n| dkr¦| d }n|j | |j | | d fƒWqcqcqcXqcW|jd|ƒ|r!|dkr!d} |j | |j | dfƒn|rY|dkrYd} |j | |j | dfƒn|jri|jS|jdƒ|j|jƒs|jS|jƒs¢|jS|jdƒt} xz|D]r\} }}|jd| ||ƒ||jkröq¼n|j|j| ||ƒs¼|jd| ||ƒ|jSq¼W|jdƒ|j|jƒsX|jS|jdƒ|jƒsx|jS|jdƒ|jS(s^Import to SMF. Configure SMF from nsswitch.conf file. The default props are always reset.s!importing legacy nsswitch.conf...s loaded legacy: t#is t iÿÿÿÿR1s PROCESS LINE: iis trying: t:R!RR3R2R Rs processed db: tniss delete customizations.s loading pg...s adding: s ERR adding: s committing pg...s validating pg...ssuccessful import.N(R4R5R9t load_legacyR:t startswithtfindtendswithtsplittlenR8tappendt EN_PWD_COMPATtALLPROPSt EN_GRP_COMPATR>R;R?tno_writetSUCCESSt delcust_pgtDEFPGRBtcommittDEFPVALt add_prop_valtvalidate(R/RERFtpwd_valRHtgrp_valtlinestltidxtvalstkeytmapterrR0tptypetval((scommon/nsswitch.pyt import_to_smf“s²       !             %            cCsZ|jdƒ|jdƒ|j|jƒs3|jS|jƒsF|jS|jdƒ|jS(sUnconfigure SMF. Reset DEFPG.sunconfiguring nsswitch...sDelete customizations.ssuccessful unconfigure.(R4R^R_RBR`R](R/((scommon/nsswitch.pyt unconfig_smføs    (spasswdsgroupR sipnodesR"R#R R$R%R&RRRsaliasesR(R)RRRRRR*(sdefaultRsfiles(RRs user files(t__name__t __module__t__doc__tSERVICEtLEGACYt LEGACYDIRR_tDEFPROPtGROUPtCOPY_YRtDOCtALLPGSRZR=RatDEFPTYPER>RYR?R[tUNCPROPt VALUE_AUTHR.RMRoRp(((scommon/nsswitch.pyRsh      1 eN(Rst __future__RtnssbaseRR(((scommon/nsswitch.pyts