ó `WôVc@sŞddlZddlZddlZddlZddljjjjjj Z ddl TejZ dZ dadad„Zd„Zd„Zdd„Zdd „ZdS( i˙˙˙˙N(t*sapplication/security/compliancecCs°trt|krtSnyWtjjƒ}itd6|d6}|jtjƒtj j |ƒƒ}|a|aWn9tj j k rĞ}t ddt|t |ƒfƒnX|S(Ntservicetinstanceis#unable to access instance %s:%s: %s(t__smf_server_connection__t__smf_instance__tradtconnectt connect_unixt_FMRIt get_objecttsmfbtInstancetclienttADRGlobPatternt NotFoundErrortfataltstr(Rtrcutgloboptst smf_servertexc((s smf_util.pyt_smf_server_connects   c Cs‰t|ƒ}d||f}y'|j|ƒ}|jrB|jdSWn?tjjk r„}tddt|||t|ƒfƒnXdS(Ns%s/%siis2unable to access instance %s:%s property %s/%s: %s( RtreadSnapshotPropertytvaluesRR t ObjectErrorRRRtNone(Rtgrouptpropnamet rinstancetpropspectpropvalR((s smf_util.pyt _get_propval2s   !c Cs7t|ƒ}|j}g|D]}|j^q}||krşy7|j|ddƒ|jd|tjjtgƒWqşt k rĥ}t j ƒt ddt ||t|ƒfƒqşXnd||f} y |j| tjj|gƒWnFt k r2}t j ƒt ddt ||||t|ƒfƒnXdS(Nt applicationis%s/value_authorizationis5%s:%s: unable to create missing property group %s: %ss%s/%ss,%s:%s: unable to set property %s/%s = %s: %s(RtpgstnametcreatePGt writePropertyR t PropertyTypetASTRINGt AUTH_ASSESSt Exceptiont tracebackt print_excRRR( RRRtvalueRt propgroupstpgtpgnamesRR((s smf_util.pyt _set_propval?s(       !   tdefaultcCsCt|ddƒ}t|ddƒ}t|ddƒ}|||fS(Ntpolicyt benchmarktprofilet tailoring(R(RR2R3R4((s smf_util.pyt get_policyXscCs=t|dd|ƒt|dd|ƒt|dd|ƒdS(NR1R2R3R4(R/(R2R3R4R((s smf_util.pyt set_policy_s(tgettextR)Rt rad.connectt)rad.bindings.com.oracle.solaris.rad.smf_1tbindingstcomtoracletsolaristsmf_1R tcompliance.commont_RRRRRRR/R5R6(((s smf_util.pyts