ó ¸µiVc@s©dZddlZddlZddlZddlZddlZddlmZddlmZm Z m Z m Z ej dƒZ dejfd„ƒYZd„ZdS( s; x86 Solaris Boot variables backend support for pybootmgmt iÿÿÿÿN(tbootinfo(t"BootmgmtMalformedPropertyNameErrortBootmgmtArgumentErrortBootmgmtReadErrortBootmgmtWriteErrortbootmgmttBootenvBootVariablescBsƒeZdZdZd d„Zed„ƒZejd„ƒZd„Z d„Z d„Z d„Z d d „Z d „Zd „ZRS( siThis class supports manipulation of boot variables stored in the /boot/solaris/bootenv.rc file.s/boot/solaris/bootenv.rccCs3|tj|_t|_tt|ƒj|ƒdS(N(Rt BOOTENV_RCtBOOTENV_DOT_RCtFalset_dirtytsupert__init__(tselftsysroot((s5../../common/bootmgmt/backend/bootvars/x86/solaris.pyR /s cCs|jS(N(R (R ((s5../../common/bootmgmt/backend/bootvars/x86/solaris.pytdirty4scCsat|ƒtk r!tdƒ‚n|j|kr]tj|jjdt|ƒƒ||_ndS(Nsdirty is a bools : dirty => %s( ttypetboolt ValueErrorR tloggertdebugt __class__t__name__tstr(R tvalue((s5../../common/bootmgmt/backend/bootvars/x86/solaris.pyR8s cCsÏtt|ƒjdƒƒdkr8tdd|ƒ‚n|dkrStdƒ‚n||jkr™|j|d|krË||j|d|dkr¼tj|jƒ} tj|| j| jƒnWn'tk ræ} tjd | jƒnXy,|dkr tj||ƒnt|_Wnktk r€} ytj|ƒWn'tk r_} tjd| jƒnXtdd||f| ƒ‚nX|dk r°d||dtjdddfgSdSdS(Ntdirtdeletes!Error while writing to temporary sbootenv.rc (%s)s.newtwissetprop it is s%Couldn't chown temporary bootenv.rc: s(Couldn't clean up temporary bootenv.rc: s!Error while moving the temporary sbootenv.rc (%s) to %stfiles%(systemroot)stroottsysi¤(RttempfiletNamedTemporaryFileR R,RtnameRR)RRtlistRtwriteRtoststattchowntst_uidtst_gidtOSErrorRRtstrerrortshutiltmoveRtremoveRR( R tinsttalt_dirtfileobjterrR-t bvtempfileR.tlineRDtosetioe((s5../../common/bootmgmt/backend/bootvars/x86/solaris.pyRB’sf       $(         cCs t|jƒS(N(RR(R ((s5../../common/bootmgmt/backend/bootvars/x86/solaris.pyt__len__ÚscCs>g|jjƒD]\}\}}||f^q}|jƒS(N(Rtitemst__iter__(R txtytzt classic_dict((s5../../common/bootmgmt/backend/bootvars/x86/solaris.pyRWÝs4N(Rt __module__t__doc__RRR tpropertyRtsetterR#R&R'R6RBRURW(((s5../../common/bootmgmt/backend/bootvars/x86/solaris.pyR)s   ) H cCstS(N(R(((s5../../common/bootmgmt/backend/bootvars/x86/solaris.pytbootvars_backendâs(R]tloggingRCR>RJR=RRRRRRt getLoggerRt BootVariablesRR`(((s5../../common/bootmgmt/backend/bootvars/x86/solaris.pyts     "¹