%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python2.7/site-packages/salt/config/
Upload File :
Create Path :
Current File : //usr/lib/python2.7/site-packages/salt/config/__init__.pyc

�
���^c	@@s�)dZddlmZmZmZmZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlmZddlmZddlmZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Zddl!Zddl"Zddl#Zy4ddl$Z$e%e$d�s�e&d��ne'Z(Wne&k
r�e)Z(nXej*e+�Z,d	Z-d
Z.dZ/dZ0d
Z1ddgZ2dZ3ej4j5j6�r dZ7dZ8dZ9ndZ7dZ8ej4j:j;�Z9d�Z<e<�dZ=e<�dZ>ej?j@ej?jAej?jAeB��dd�ZCi�ejDeEfd6ejDeFfd6ejDd6ejDd6ejDd6ejDd6ejDeFfd 6ejDeFfd!6ejDd"6eGd#6eFd$6eGd%6eFd&6ejDd'6eGd(6eGd)6eGd*6ejDd+6eGd,6eGd-6eFd.6ejDd/6ejDd06ejDd16ejDd26ejDd36ejDd46eHejDfd56ejDd66eEd76eGd86ejDd96ejDd:6eFd;6ejDd<6ejDd=6eEd>6eEd?6eGd@6eGdA6eId�ejDfdB6eGdC6eId�ejDfdD6eGdE6ejDdF6eId�ejDfdG6ejDdH6eEdI6eGdJ6ejDdK6ejDdL6ejDdM6eGdN6eGdO6eHdP6eHdQ6eEdR6eEdS6ejDdT6ejDdU6eEdV6ejDdW6eEdX6eEdY6eEdZ6eEd[6eEd\6eEd]6eEd^6eEd_6eEd`6eEda6eEdb6eHdc6eGdd6eGde6eGdf6eFdg6eGdh6eGdi6eFdj6ejDdk6eId�eGfdl6eFdm6eFdn6eFdo6eFdp6eFdq6eFdr6eFds6ejDdt6ejDdu6eId�ejDfdv6ejDdw6ejDdx6ejDdy6eKejDfdz6eHd{6eFd|6eFd}6eFd~6eGd6eGd�6eGd�6eGd�6eGd�6eGd�6eGd�6eGd�6eGd�6ejDd�6eGd�6eGd�6eGd�6eLd�6eLd�6eGd�6eLd�6eGd�6eHd�6eGd�6eId�ejDfd�6eId�ejDfd�6ejDd�6eGejDfd�6eEd�6eLd�6eId�eFfd�6eGd�6eLd�6eLd�6eGd�6eFd�6eFd�6eEejDfd�6eFd�6eFd�6eEd�6eEd�6ejDd�6ejDd�6ejDd�6eGd�6eLd�6eLd�6eLd�6ejDd�6eFd�6eFd�6eFd�6eFd�6eFd�6eFd�6eFd�6eFd�6eGd�6eHd�6eGd�6eGd�6eGd�6ejDd�6eGd�6eGd�6eGd�6eFd�6eFd�6eFd�6eFd�6eFd�6eFd�6eFd�6eFd�6eGd�6eGd�6ejDd�6ejDd�6eGd�6ejDd�6ejDd�6ejDd�6eEd�6eGd�6eGd�6eEd�6eGd�6ejDd�6ejDd�6ejDd�6eEd�6eEd�6eEd�6eEd�6eGd�6eGd�6eEd�6eEd�6eEd�6eGd�6eEd�6ejDd�6ejDd�6ejDd�6ejDd�6eEd�6eEd�6eEd�6eEd�6eEd�6ejDd�6ejDd�6ejDd�6ejDd�6ejDd�6eEd�6eEd�6eEd�6eEd�6ejDd�6ejDd�6eEd�6eEd�6eEd�6eFd�6eGd�6eGd�6eFd�6ejDd�6eGd�6ejDd�6eGd�6eGd6ejDd6eEd6ejDd6eGd6eHd6eGd6ejDeEfd6ejDd6eGd	6eEd
6eGd6eHd6eHd
6eGd6eHd6eFd6eGeHfd6eGd6eFd6eEejDfd6eEejDfd6eEd6eGd6eGd6eGd6eGd6eGd6eGd6ejDd6ejDd6eFd6eGd 6eFd!6eHd"6eGd#6eGd$6eGd%6ejDd&6ejDd'6eGd(6eGd)6eFd*6eEd+6eFd,6eFd-6eFd.6eEd/6eGd06ejDd16ejDd26eHeEfd36eHd46eGd56ejDd66eFd76ejDd86ejDd96ejDd:6ejDd;6eFd<6eFd=6eEd>6eEd?6eGd@6ejDdA6ejDdB6eGdC6ejDdD6ejDdE6ejDdF6eEdG6eFdH6eFdI6eGdJ6eFdK6eHdL6eHdM6eGdN6eGdO6eGdP6eGdQ6eGdR6eFdS6ejDdT6eFdU6eFdV6eFdW6eFdX6eGdY6eGdZ6eFd[6eLd\6eFd]6ejDd^6ejDd_6eGd`6ejDda6eLdb6ejDdc6ejDdd6eLde6eGdf6ejDdg6ejDdh6eGdi6eFdj6eLdk6eGdl6ejDdm6eFdn6eFdo6eGdp6eGdq6eGdr6eGds6eFdt6eFdu6eGdv6eEdw6ejDdx6eEdy6eFdz6eGd{6eFd|6eId�ejDfd}6eId�ejDfd~6eGd6eGd�6eGd�6eGd�6eGd�6eGd�6eFd�6ejDd�6eLd�6eLd�6eFd�6eFd�6eGd�6eEd�6eGd�6ejDd�6ejDd�6ejDd�6eFd�6eEd�6eFd�6ejDd�6eFd�6eFd�6eGd�6eGd�6ejDd�6ejDd�6ejDeEfd�6eHeGeId�fd�6eGd�6eGd�6eGd�6eHd�6eHd�6ejDd�6ejDd�6eFd�6eGd�6eFd�6eGd�6eGd�6eGd�6ejDeEfd�6eHd�6eHeGfd�6eHd�6eGd�6eGd�6eGd�6eId�ejDfd�6ejDd�6eGd�6ZMi d�d�6d�d6d�d6d�d6d�d6d�d6dd 6dd!6d�d6d�d"6e)d#6dd$6e)d%6dd&6e)d)6e)dR6e)d*6d�d'6d�d/6ej4j:j;�d16ejNjOd26ej?j@ejNjPd�d��d36d�d46id56ej?j@ejNjQd��d66gd76e)d86e)d�6d�d�6e)d�6ej?j@ejNjPd��d96ej?j@ejNjRd��d:6dd;6d�d<6d�d=6gd>6gd?6dd76e)d@6e'dA6ddB6e)dC6ddD6e)dE6e)d�6d�d�6e)d�6e)d6e)d�6d�d�6d�d�6ej?j@ejNjQd�d��d�6d�dF6ddG6d�dH6gdI6d�dL6dd�6d�d�6dd�6iejNjSgd�6d�6d�dM6e)dN6e)dO6iejNjTejNjUgd�6dP6d�d6gd6d�d6e)d6e)d6d�d6gd6gd6d�gd6e'd6e)d6iejNjVejNjWgd�6dQ6d�d�gdR6gdS6d�dT6d�dU6d�gdV6e3d�6e3d�6e3d�6e3d�6e3d�6e3d�6e3d�6dd�6dd�6d�d�6d�d�6e'd�6e'd�6d�d�6d�d�6e)d�6d�d�6d�d�6d�d�6e2d�6e'd�6gd�6d�d�6d�d�6dd�6d�d�6d�d�6e)d�6d�d�6d�d�6d�d�6gd�6gd�6gd�6gd�6e'd�6e'd�6gd�6d�d�d�gd�6e2d�6e)d�6e)d�6d�dW6ddd�gdX6gdY6gdZ6gd[6gd\6gd]6gd_6gd^6gd`6gda6gdb6id6id
6idc6e'dd6e)de6e'd 6d�d!6e'df6ddg6e'dh6e)di6ddj6e7dk6e=d�6ddl6d�dm6d�dn6d�do6d�d�6ej?j@ejNjXd��dt6d�du6ddv6e-dw6e.dx6e/dy6e0dz6e1d�6id{6dd|6dd}6d�d~6e'd6e)d�6d�d&6e)d�6e'd�6e)d�6e'd�6d�d�6e)d�6e'd�6e)d�6e)d�6e)dJ6d�dK6d�d�6dd�6e)d�6dd�6e'd�6id�6e)d�6d�d�6e)d�6gd�6d�d�6dd�6e'd�6d�d�6d�d�6e'd�6d�d�6d�d�6d�d[6d�d86ej?j@ejNjTd�d��d96ej?j@ejNjTd�d��d:6d�d;6d�d<6d�d=6d�gd>6d�gd?6dd�6e'd@6d�dA6d�dB6e)dC6d�dD6d�dE6d�dF6e2dG6ej?j@ejNjYd��d�6d�d�6dd,6d�d-6d�d.6gd/6e'd�6d�d�6dd�6dd�6ddH6ddI6e'dP6e)dQ6d�dS6d�dT6d�dV6d�dW6e8dX6e)d#6e)dY6e)dZ6ej?j@eCd�d6ej?j@eCd�d6ddj6ddk6e'dl6d�dm6d�dn6d�do6e)dp6e)dq6e'dr6e'ds6d�dt6d�du6e)dv6gdw6e)d6ddz6dd}6dd~6e)d6e)d6e'd�6e'd�6d�d�6dd�6d�d�6d�d�6d
d�6gd�6e'd�6d�d�6d�d�6d�d�6dd�6d�d�6dd�6e)d�6e)d�6e)d�6dd�6dd�6id�6id�6e)d�6id
ddgd6ddddgd6d�6e)d�6id�6e'di6ZZiGd�d�6dd�6d�d�6d�d�6dd�6e9d16d�d�6ej?j@ejNjRd�d:6dd;6d�d�6d�d6dd�6e)d�6ejNjOd26ej?j@ejNjPd�d�d36d�d06ej?j@ejNjQd�d66iejNjTejNjUgd�6dP6iejNj[gd�6d�6iejNjVejNjWgd�6dQ6d�d�gdR6gdS6d�dT6d�dU6d�gdV6dd�6d�d�6dd�6iejNjSgd�6d�6d�d6gd6ddB6e)dC6ddD6d�d6dNdM6e'dN6e3d�6e3d�6e3d�6e3d�6e3d�6e3d�6e3d�6dd�6dd�6d�d�6d�d�6e'd�6e'd�6d�d�6d�d�6e)d�6d�d�6d�d�6d�d�6e2d�6e'd�6e'd�6gd�6d�d�6d�d�6dd�6d�d�6d�d�6e)d�6d�d�6d�d�6d�d�6gd�6gd�6gd�6gd�6e'd�6e'd�6gd�6d�d�d�gd�6e2d�6e)d�6gd�6d�d�6d�d�6d�d�6dd�6gd�6gd�6gd�6gd�6e'd�6e)d�6e)d�6gd�6d�d�6d�d�6dd�6dd�6dd�6gd�6gd�6gd�6gd�6d�d~6e)d-6dd.6d�d�6d�d�6gd�6gd�6gd�6d�d�6e)d�6e'd�6d�d�6e)d�6e)d6e)d�6d�d�6d�d�6e)d6id6e)d6dd6dd6e)d	6ej?j@ejNjXd�d6ej?j@ejNjYd �d!6gda6gd
6gdb6e'd6id6id
6e)d6id6d"d6e)d6e)d6e)d6d�d6dd6ej?j@ejNjQdd��d�6gd\6e)d6d�d6d�dm6gd6gd6d�gd6e'd6e)d6e)d6e'd6d#d6d�dW6ddd�gdX6ej?j@ejNjPd�d96e)de6e)d 6d�d=6gd>6gd?6e)d@6d�dF6ddG6id"6e)d#6e)d$6e'd%6d�d&6d$d'6e)d(6e'd)6e)d%6e7dk6e=d�6ddl6d&dp6d'dq6d(dr6d)ds6ej?j@ejNjXd�dt6d�du6ddv6e-dw6e.dx6e/dy6e0dz6e1d�6id{6dd|6dd}6ej?j@ejNjYd*�d�6d+d*6d�d�6gd+6dd,6d�d-6d�d.6gd/6d�d�6dd�6gd�6gd�6d
d�6e'd06d,d16e)d�6e'd�6d�d�6e)d�6e'd�6e)d�6e)d�6d�d26dd�6id36id46e)d56e)d�6e)d�6ej?j@ejNjXd-�d66e'd�6e)d�6dd�6dd�6d.d�6ej?j@ejNjTd�d��d96ej?j@ejNjTd�d��d:6d�d;6d�gd>6d�gd?6dd�6e'd@6d�dA6d�dB6e)dC6d�dD6d�dE6d�dF6e2dG6d�dK6idL6idM6e)dN6e)dO6e'd�6d�d�6dd�6dd�6e'dR6d�dS6d�dT6d�dU6dd\6d�d]6e)d/6d�d^6d�d06d1d_6e)d`6d�da6ddb6d�dc6d1dd6d2de6e)df6ej?j@ejNjXd3�dg6ej?j@ejNj\d4d5�dh6ej?j@eCd6�d76ej?j@eCd8�d96ej?j@eCd:�d;6ddj6d2dk6e'dl6d�dm6d�dn6d�do6e)dp6e'dq6e)dr6e'ds6d�dt6d�du6e)dv6gdw6ej?j@ejNjQdd<�dx6gdy6e)d{6dd|6d�d'6e)d(6d+d+6e)d,6e)d6e)d6e)d�6e'd�6e'd�6e)d=6dd�6d�d�6d�d�6d>d?6d@dA6dd�6dd�6d	d�6e)d�6e)d�6d�d�6d�d�6dd�6id�6id�6e'dd6d�d�6d�d�6e'd�6dBd�6e)d�6e)d�6e)d�6id�6e'd�6e'd�6e)d�6e)d�6Z]iej?j@ejNjPdC�d96ej?j@ejNjXdC�dt6e)d�6e'd�6ej?j@ejNjQdCd��d�6d6d�d�d�gd76dDd�6e)d�6e)d�6d�d�6e'd�6e'd�6e'd�6dd�6ej?j@ejNjPd�dC�d36ej?j@ejNjQdC�d66ej?j@ejNjRdC�d:6Z^ie'd�6dEd�6d�dF6ej?j@ejNjQdG�d66dHdS6d�dI6dJdK6ddL6e)dM6e)dN6dOdP6ej?j@ejNjXdG�dt6d�du6ddv6e-dw6e.dx6e/dy6e0dz6e1d�6id{6dd|6dd}6dd�6dd�6Z_iej?j@ejNjYdQ�dR6ej?j@ejNjXdS�dT6d�d�6Z`iej?j@ejNjPdU�dV6ejNjUdW6ejNjWdX6ejNjadY6ej?j@ejNjXdU�dZ6d[d\6d]d^6ej?j@ejNjQdU�d_6ej?j@ejNjbd`�da6dbdcdddegdf6ej?j@ejNjQdUdg�dh6dd�6didj6d�dk6ej?j@ejNjcdU�dl6Zdidmd�6Zeidnd�6Zfdo�Zgdp�Zhdq�Zidr�Zjds�Zkdt�Zldu�Zmdv�Znddw�Zode'dx�Zpe)dy�Zqdz�Zrd{�Zsd|de)e'dd�d}�Ztd~de)e'dd�Zud�d|ddd��Zvdd��Zwd�dddddddd��Zxdd��Zyd��Zzd�dd��Z{dd��Z|d�dd��Z}dd��Z~de'd��Zd�e'd�d��Z�dd��Z�d��Z�d��Z�d��Z�e)d��Z�d��Z�d��Z�dde)dd��Z�d��Z�d�de)d��Z�ddd��Z�d�dd��Z�d��Z�d��Z�d��Z�dS(�uF
All salt configuration loading and defaults should be in this module
i(tabsolute_importtprint_functiontunicode_literalst
generatorsN(tdeepcopy(tsix(turlparseuvirtual_memoryuVersion of psutil too old.u%H:%M:%Su%Y-%m-%d %H:%M:%Su[%(levelname)-8s] %(message)su\%(asctime)s,%(msecs)03d [%(name)-17s:%(lineno)-4d][%(levelname)-8s][%(process)d] %(message)su[JID: %(jid)s]u#+refs/heads/*:refs/remotes/origin/*u+refs/tags/*:refs/tags/*i<utcpi����uSYSTEMuipcicC@s�tr'tjd	kr'tj�j}nJddl}ddl}i|j�d6}|jj	j
|�}|d}t|dd
g�S(u_
    Gather some system data and then calculate
    buffer space.

    Result is in bytes.
    iiNukernelu	mem_totalg�������?i
i(iiii�(t
HAS_PSUTILtpsutiltversion_infotvirtual_memoryttotaltplatformtsalt.grains.coretsystemtgrainstcoret_memdatatmax(t	total_memRtsalttos_dataR((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyt_gather_buffer_spaceKs
g�?udaemonsufloumasterumaster_portumaster_typeumaster_uri_formatusource_interface_nameusource_addressusource_ret_portusource_publish_portu
master_fingerumaster_shuffleumaster_alive_intervalumaster_failbackumaster_failback_intervalumaster_sign_key_nameumaster_sign_pubkeyuverify_master_pubkey_signualways_verify_signatureumaster_pubkey_signatureumaster_use_pubkey_signatureumaster_statsumaster_stats_event_iteru
syndic_fingeru	key_cacheuuseruroot_dirupki_diruiduid_functionucachediruappend_minionid_config_dirsu
cache_jobsu	conf_fileusock_dirusock_pool_sizeubackup_modeurendererurenderer_whitelisturenderer_blacklistufailharduautoload_dynamic_modulesusaltenvulock_saltenvu	pillarenvupillarenv_from_saltenvu	state_topustate_top_saltenvustartup_statesusls_listusnapper_statesusnapper_states_configutop_fileufile_clientulocaluuse_master_when_localu
file_rootsupillar_rootsuon_demand_ext_pillarudecrypt_pillarudecrypt_pillar_delimiterudecrypt_pillar_defaultudecrypt_pillar_renderersu	hash_typeuoptimization_orderudisable_modulesudisable_returnersuwhitelist_modulesumodule_dirsu
returner_dirsustates_dirsugrains_dirsurender_dirsuoutputter_dirsu
utils_dirsu	providersuclean_dynamic_modulesu	open_modeumultiprocessinguprocess_count_maxumine_enabledumine_return_jobu
mine_intervaluipc_modeuipv6ufile_buffer_sizeutcp_pub_portu
tcp_pull_portutcp_master_pub_portutcp_master_pull_portutcp_master_publish_pullutcp_master_workersulog_fileu	log_levelulog_level_logfileulog_datefmtulog_datefmt_logfileulog_fmt_consoleulog_fmt_logfileulog_granular_levelsulog_rotate_max_bytesulog_rotate_backup_countumax_event_sizeuenable_legacy_startup_eventsutestu
cython_enableuenable_gpu_grainsuenable_zip_modulesushow_timeoutushow_jidu
unique_jidu
state_verboseustate_outputustate_output_diffustate_auto_orderustate_eventsuacceptance_wait_timeuacceptance_wait_time_maxurejected_retryu
loop_intervalu
verify_envugrainsupermissive_pki_accessukey_passusigning_key_passudefault_includeu
update_urluupdate_restart_servicesu	retry_dnsuretry_dns_counturesolve_dns_fallbacku	recon_maxu
recon_defaulturecon_randomizeureturn_retry_timerureturn_retry_timer_maxuevent_returnuevent_return_queueuevent_return_queue_max_secondsuevent_return_whitelistuevent_return_blacklistuevent_match_typeupidfileurange_serveru
tcp_keepaliveutcp_keepalive_idleutcp_keepalive_cntutcp_keepalive_intvlu	interfaceupublish_portu	auth_modeuzmq_backlogupub_hwmuipc_write_bufferuworker_threadsuret_portu	keep_jobsuarchive_jobsumaster_rootsuadd_proxymodule_to_optsuproxy_merge_pillar_in_optsuproxy_deep_merge_pillar_in_optsu#proxy_merge_pillar_in_opts_strategyuproxy_mines_pillaruproxy_always_aliveuproxy_keep_aliveuproxy_keep_alive_intervaluroots_update_intervaluazurefs_update_intervalugitfs_update_intervaluhgfs_update_intervaluminionfs_update_intervalus3fs_update_intervalusvnfs_update_intervalugit_pillar_ssl_verifyugit_pillar_global_lockugit_pillar_userugit_pillar_passwordugit_pillar_insecure_authugit_pillar_privkeyugit_pillar_pubkeyugit_pillar_passphraseugit_pillar_refspecsugit_pillar_includesugit_pillar_verify_configu
gitfs_remotesugitfs_insecure_authu
gitfs_privkeyugitfs_pubkeyugitfs_passphraseugitfs_env_whitelistugitfs_env_blacklistugitfs_saltenv_whitelistugitfs_saltenv_blacklistugitfs_ssl_verifyugitfs_global_locku
gitfs_saltenvugitfs_ref_typesugitfs_refspecsugitfs_disable_saltenv_mappinguhgfs_remotesuhgfs_mountpointu	hgfs_rootu	hgfs_baseuhgfs_branch_methoduhgfs_env_whitelistuhgfs_env_blacklistuhgfs_saltenv_whitelistuhgfs_saltenv_blacklistu
svnfs_remotesusvnfs_mountpointu
svnfs_rootusvnfs_trunkusvnfs_branchesu
svnfs_tagsusvnfs_env_whitelistusvnfs_env_blacklistusvnfs_saltenv_whitelistusvnfs_saltenv_blacklistuminionfs_envuminionfs_mountpointuminionfs_whitelistuminionfs_blacklistu
ext_pillarupillar_versionupillar_optsupillar_cacheupillar_cache_ttlupillar_cache_backendupillar_safe_render_errorupillar_source_merging_strategyupillar_merge_listsupillar_includes_override_slsutop_file_merging_strategyu	env_orderudefault_topuping_on_rotateupeerupreserve_minion_cacheu
syndic_masterusyndic_failoverusyndic_forward_all_eventsurunner_dirsuclient_acl_verifyu
publisher_aclupublisher_acl_blacklistusudo_aclu
external_authutoken_expireutoken_expire_user_overrideu	file_recvufile_recv_max_sizeufile_ignore_regexufile_ignore_globufileserver_backendufileserver_followsymlinksufileserver_ignoresymlinksufileserver_limit_traversalufileserver_verify_configupermissive_aclukeep_acl_in_tokenueauth_acl_moduleueauth_tokensumax_open_filesuauto_acceptuautosign_timeoutumaster_topsumaster_tops_firstu
order_mastersu	job_cacheu
ext_job_cacheumaster_job_cacheujob_cache_store_endtimeuminion_data_cacheupublish_sessionureactorureactor_refresh_intervalureactor_worker_threadsureactor_worker_hwmuenginesurunner_returnsuserialusearchu
nodegroupsussh_list_nodegroupsussh_use_home_keyukey_logfileurandom_startup_delayuwinrepo_source_diruwinrepo_diruwinrepo_dir_nguwinrepo_cachefileuwinrepo_cache_expire_maxuwinrepo_cache_expire_minuwinrepo_remotesuwinrepo_remotes_nguwinrepo_ssl_verifyuwinrepo_useruwinrepo_passworduwinrepo_insecure_authuwinrepo_privkeyuwinrepo_pubkeyuwinrepo_passphraseuwinrepo_refspecsumodules_max_memoryugrains_refresh_everyuenable_lspciusyndic_waitu	jinja_envu
jinja_sls_envujinja_lstrip_blocksujinja_trim_blocksuminion_id_cachinguminion_id_lowercaseusign_pub_messagesukeysizeu	transportugather_job_timeoutuauth_timeoutu
auth_triesumaster_triesu
auth_safemodeu
random_masterurandom_reauth_delayusyndic_event_forward_timeoutusyndic_jid_forward_cache_hwmu
ssh_passwdussh_portussh_sudou
ssh_sudo_userussh_timeoutussh_userussh_scan_portsussh_scan_timeoutussh_identities_onlyussh_log_fileussh_config_fileussh_merge_pillaru
ioflo_verboseuioflo_perioduioflo_realtimeuioflo_console_logdiru	raet_portu
raet_alt_porturaet_mutableu	raet_mainuraet_clear_remotesuraet_clear_remote_mastersuraet_road_bufcnturaet_lane_bufcntucluster_modeucluster_mastersusqlite_queue_diru
queue_dirsu
ping_intervalucli_summaryumax_minionsuusernameupasswordu
zmq_filteringu	con_cacheurotate_aes_keyucache_sreqsucmd_safeudummy_publisherurest_timeoutu	sudo_useruhttp_connect_timeoutuhttp_request_timeoutu
http_max_bodyubootstrap_delayuproxy_merge_grains_in_moduleuminion_restart_commandupub_retu
proxy_hostuproxy_usernameuproxy_passwordu
proxy_portuno_proxyuminion_jid_queue_hwmucacheumemcache_expire_secondsumemcache_max_itemsumemcache_full_cleanupumemcache_debuguthin_extra_modsumin_extra_modsureturnusslumultifunc_orderedubeacons_before_connectuscheduler_before_connectuextmod_whitelistuextmod_blacklistudjango_auth_pathudjango_auth_settingsutcp_authentication_retriesuallow_minion_key_revokeusalt_cp_chunk_sizeuminion_sign_messagesudrop_messages_signature_failurequire_minion_sign_messagesupass_to_ext_pillarsu!docker.compare_container_networksu	discoveryuscheduleuauth_eventsuminion_data_cache_eventsuenable_ssh_minionsu
thoriumenvuthorium_topunetapi_allow_raw_shellu0.0.0.0usaltustrudefaultui�umaster_signupkiuminionugrains_cachei,ugrains_cache_expirationugrains_deep_mergeu
jinja|yamlusmartiudiskuextmodsuextension_modulesutop.slsuthorium_intervalubaseu
thorium_rootsuremoteumergeidurootsulibvirtuvirtkeyu:ugpgugit_pillar_baseugit_pillar_branchugit_pillar_envugit_pillar_rootugitfs_mountpointu
gitfs_rootu
gitfs_baseu
gitfs_userugitfs_passwordubranchutagushausha256iixii�i�iuwarningulog_fmt_jidiufullustate_aggregateurooti
uminion.d/*.confii'i�usalt://win/repo-ng/uwinurepourepo-ngu	winrepo.pi`Tiu-https://github.com/saltstack/salt-winrepo.gitu0https://github.com/saltstack/salt-winrepo-ng.gituwinrepo_branchusalt-minion.pidurange:80iuzeromqiu
minion.flouminion_floscriptu
caller.floucaller_floscriptg�������?urestart_on_erroruzmq_monitorg4@gN@iu
startswithulocalfsiuAliasesuLinksu
IPAMConfigustaticu	IPAddressuGatewayuGlobalIPv6AddressuIPv6Gatewayu	automatici�utimeoutiubranchesutrunkutagsumasterofmastersurandomusyndicusyndic_log_fileusalt-syndic.pidusyndic_pidfilei��i��ulocal_cacheuenforce_mine_cachei�i�i�i�usalt-master.pidi�Qumsgpackukeyumaster.d/*.confu
regen_thinussh_priv_passwdu22g{�G�z�?usshu.sshuconfigu
master.floumaster_floscriptu
worker.flouworker_floscriptu	maint.floumaintenance_floscriptuqueuesu	dummy_pubupython2upython2_binupython3upython3_bini�uproxyuproxy.d/*.confucloud.conf.d/*.confussh_authucloudiuosubootstrap-saltuscriptustart_actionuenable_hard_mapsudelete_sshkeysucloud.deploy.dudeploy_scripts_search_pathusalt-api.piduapi_pidfileuapiuapi_logfileuspmu
spm_conf_fileuformula_pathupillar_pathureactor_pathuspm_logfileuspm.d/*.confuspm_default_includeu/etc/salt/spm.reposuspm_repos_configu
spm_cache_diru	spm_buildu
spm_build_diruCVSu.hgu.gitu.svnuspm_build_excludeupackages.dbuspm_dbuignoreu
spm_repo_dupsu
spm_node_typeu
spm_share_dirucloud.profiles.d/*.confucloud.providers.d/*.confcC@s�x�tj|�D]s\}}tj|�}||krM|j|�||<nt|ttf�sog||<nt||�||<qW|S(u)
    Normalize file or pillar roots.
    (Rt	iteritemst	text_typetpopt
isinstancetlistttuplet_expand_glob_path(t
file_rootstsaltenvtdirstnormalized_saltenv((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyt_normalize_roots�s
cC@s@t|t�s6tjd�ittjjg�d6St|�S(uz
    If the pillar_roots option has a key that is None then we will error out,
    just replace it with an empty list
    uDThe pillar_roots parameter is not properly formatted, using defaultsubase(	RtdicttlogtwarningRRtsyspathstBASE_PILLAR_ROOTS_DIRR"(tpillar_roots((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyt_validate_pillar_roots�s
cC@s@t|t�s6tjd�ittjjg�d6St|�S(ux
    If the file_roots option has a key that is None then we will error out,
    just replace it with an empty list
    uBThe file_roots parameter is not properly formatted, using defaultsubase(	RR#R$R%RRR&tBASE_FILE_ROOTS_DIRR"(R((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyt_validate_file_roots�s
cC@sug}xh|D]`}y9tj|�r>|jtj|��n
|j|�Wq
tk
rl|j|�q
Xq
W|S(u[
    Applies shell globbing to a set of directories and returns
    the expanded paths
    (tglobt	has_magictextendtappendt	Exception(Rtunglobbed_pathtpath((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyR�s

c
C@s�d�}g}d}x�tj|�D]�\}}|tkr%|d
kr�t|d
kr_q%q�yd
t|krxw%nWq�tk
r�q�Xnt|t|�r�q%nt|tj�r�|jd�r�q%ntt|d�r�yYt||�t|t	t
f�r;|j|j||t
|�jt|j��nWq%ttfk
r�|j|j||t
|�jt|j��q%Xq%n|j|j||t
|�j|t|���q%q%Wt|jd�t	�r�dj|d�|d<ntjjj�r^|jd�dkr^d	|kr^|d	jd
�r^d
|d	jdd�|d	<nx|D]}tj|�qeW|r�tStS(ua
    Check that all of the types of values passed into the config are
    of the right types
    c@swyt|�}Wntk
r'|jSX�fd��g}�||�dj|d �}|d|d7}|SdS(Nc@slxe|D]]}t|t�r,�||�qy|j|j�Wqtk
rctjd|�qXqWdS(Nu:Unable to interpret type %s while validating configuration(RRR/t__name__tAttributeErrorR$R%(ttypest
type_tupletitem(t	get_types(s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyR8s

u, i����u or (tlent	TypeErrorR3tjoin(t
valid_typet	num_typesR5tret((R8s8/usr/lib/python2.7/site-packages/salt/config/__init__.pytformat_multi_opt�s

u`Config option '{0}' with value {1} has an invalid type of {2}, a {3} is required for this optionusdb://u__call__ureturnu,u	transporturaetusock_diru
\\.\mailslot\u:uN(RRt
VALID_OPTStNoneR:Rtstring_typest
startswiththasattrRR#R/tformatttypeR3t
ValueErrortgetR;RtutilsRt
is_windowstreplaceR$R%tFalsetTrue(toptsR?terrorsterrtkeytvalterror((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyt_validate_opts�sd	

!		'!
cC@s�|jdi�}t|t�s>tjd�|jd�nxtt|�D]f}tjd|dtj	�s�d|kr�d|ks�|d
krKtj
d|�|j|�qKqKWd	S(u
    Ensure we're not using any invalid ssh_minion_opts. We want to make sure
    that the ssh_minion_opts does not override any pillar or fileserver options
    inherited from the master config. To add other items, modify the if
    statement in the for loop below.
    ussh_minion_optsu#Invalidly-formatted ssh_minion_optsu
^[a-z0-9]+fs_tflagsupillarussh_merge_pillarufileserver_backendu7'%s' is not a valid ssh_minion_opts parameter, ignoringN(ufileserver_backend(RHRR#R$RSRRtretmatcht
IGNORECASER%(RNtssh_minion_optstopt_name((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyt_validate_ssh_minion_optsfs
cC@sG|dj|d�r|dS|djd�r:|dSdj|�S(uH
    Append a domain to the existing id if it doesn't already exist
    uidu
append_domainu.u{0[id]}.{0[append_domain]}(tendswithRE(RN((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyt_append_domain}s
c	C@sMtjd|�tjjj|d��}ytjjj|�pFi}WnMtjjjk
r�}dj	||�}tj
|�tjj|��nXt
|t�s�dj	|t|��}tj
|�tjj|��nd|kr?t
|dtj�stj|d�|d<q?tjjj|d�|d<n|SWdQXdS(uR
    Read in a config file from a given path and process it into a dictionary
    uReading configuration from %suru+Error parsing configuration file: {0} - {1}uKError parsing configuration file: {0} - conf should be a document, not {1}.uidN(R$tdebugRRItfilestfopentyamlt	safe_loadt	YAMLErrorRERSt
exceptionstSaltConfigurationErrorRR#RFRRBRtdatatdecode(R2t	conf_filet	conf_optsRPtmessage((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyt_read_conf_file�s$

 cC@ss|rtjj|�r|S|ro|dk	rotjj||�}tjj|�rotjd||�|Sn|S(u�
    Return an absolute path. In case ``relative_to`` is passed and ``path`` is
    not an absolute path, we try to prepend ``relative_to`` to ``path``and if
    that path exists, return that one
    u;Relative path '%s' converted to existing absolute path '%s'N(tosR2tisabsRAR;tisfileR$R^(R2trelative_tot_abspath((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyt_absolute_path�s
cC@s�|dkriS|dkriddl}|j|j�j�}tjd|j|j|�t	d}nt
jj||�}|s�t
j
j|�r�|}n||kr�|}n|}t
j
j|�sgdj|�}t
j
j|�rgtjd||�tjjj|d��E}tjjj|d��$}	|	j�|j|	j��WdQXWdQXqgni}
tjjj
j|�r�yt|�}
||
d<Wq�tjjk
r�}tj|�|r�tjtj j!j"�q�q�Xntjd	|�|
S(
u�
    Returns configuration dict from parsing either the file described by
    ``path`` or the environment variable described by ``env_var`` as YAML.
    iNu�The function '%s()' defined in '%s' is not yet using the new 'default_path' argument to `salt.config.load_config()`. As such, the '%s' environment variable will be ignoredu	conf_fileu{0}.templateuWriting %s based on %suwuruMissing configuration file: %s(#RAtinspecttgetframeinfotcurrentframetf_backR$R%tfunctiontfilenametDEFAULT_MASTER_OPTSRltenvironRHR2RnRER^RRIR_R`treadlinetwritetreadtvalidatetis_readableRkRdReRStsystexittdefaultst	exitcodest
EX_GENERIC(R2tenv_vartdefault_pathtexit_on_config_errorsRrtprevious_frametenv_pathttemplatetouttifileRNRS((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pytload_config�sD
		
%
 cC@s�|s
iS|dkriSt|tj�r8|g}ni}x�|D]�}tjj|�}tjj|�s�tjjtjj	|�|�}nt
j
|�}|s�|r�tjd|�q�nx
t
|�D]�}tjd|�yt|�}WnKtjjk
rD}	tj|	�|r;tjtjjj�qEi}nX|jdi�}
|
r}d|kr}|dj|
�n|jdg�}|r�|jt|||��ntjjj||tt�q�WqEW|S(uf
    Parses extra configuration file(s) specified in an include list in the
    main config file.
    uMWarning parsing configuration file: "include" path/glob '%s' matches no filesu!Including configuration from '%s'uscheduleuincludeN(RARRRBRlR2t
expanduserRmR;tdirnameR,R$R%tsortedR^RkRRdReRSRR�R�R�R�RHtupdatetinclude_configRIt
dictupdateRM(tincludet	orig_pathtverboseR�t
configurationR2tglob_matchestfn_RNRStschedule((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyR��sD
$


$cC@s�tjj|d�}tjjjtj�}xY|D]Q}||kr5||}d}d}||ks|j	|tj�r�|t
|�}n|r�||ks�|j	|tj�r�|t
|�}n|r�|r�|}n�|r�|r�|}nn|r#|r#||kr|}qg|}nDtjjj
�rOtjj|�drOntjj|�rgq5ntjjj||�||<q5q5WdS(ug
    Prepends the options that represent filesystem paths with value of the
    'root_dir' option.
    uroot_diriN(RlR2tabspathRR&tROOT_DIRtrstriptsepRARCR9RIRRJt
splitdriveRmR;(RNtpath_optionstroot_dirtdef_root_dirtpath_optionR2ttmp_path_def_root_dirttmp_path_root_dir((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pytprepend_root_dir4	s2

"
	
			)cC@s�t|tj�r|g}nxv|D]n}i|d6|dd6}t||�tjj|d�r%|dtjkr%tjjd|d�q%q%WdS(uT
    Inserts path into python path taking into consideration 'root_dir' option.
    upathuroot_diriN(	RRRBR�RlR2tisdirRtinsert(RNtpathsR2R�((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pytinsert_system_pathe	s

uSALT_MINION_CONFIGc
	C@sO|dkrtj�}ntjj|d�s�tjjdd�}|r�tjj|d�}|r�tjj|�r�|tj|<q�q�nt	||td�}	|	jd|d�}
|	jdg�}|	j
t|
|dtd|��|	j
t||dt
d|��t|	|d|d	|�}||d
<t|�t|�|S(u^
    Reads in the minion configuration file and sets up special options

    This is useful for Minion-side operations, such as the
    :py:class:`~salt.client.Caller` class, and manually running the loader
    interface.

    .. code-block:: python

        import salt.config
        minion_opts = salt.config.minion_config('/etc/salt/minion')
    uSALT_CONFIG_DIRuminionu	conf_fileudefault_includeuincludeR�R�tcache_minion_idt	minion_idu__roleN(RAtDEFAULT_MINION_OPTStcopyRlRyRHR2R;RnR�R�R�RLRMtapply_minion_configt	apply_sdbRT(
R2R�R�R�tignore_config_errorsR�troletsalt_config_dirtenv_config_file_patht	overridestdefault_includeR�RN((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyt
minion_configs	s.	
	


uSALT_PROXY_CONFIGc	C@sR|d
krtj�}n|jt�tjj|d
�s�tjjdd
�}|r�tjj	|d�}|r�tjj
|�r�|tj|<q�q�nt||td�}|jd|d�}	|jdg�}
|jt|	|dt
d|��|jt|
|dtd|��t||d|d	|�}t|�t|�|S(ua
    Reads in the proxy minion configuration file and sets up special options

    This is useful for Minion-side operations, such as the
    :py:class:`~salt.client.Caller` class, and manually running the loader
    interface.

    .. code-block:: python

        import salt.config
        proxy_opts = salt.config.proxy_config('/etc/salt/proxy')
    uSALT_CONFIG_DIRuproxyu	conf_fileudefault_includeuincludeR�R�R�R�N(RAR�R�R�tDEFAULT_PROXY_MINION_OPTSRlRyRHR2R;RnR�R�RLRMR�R�RT(R2R�R�R�R�R�R�R�R�R�R�RN((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pytproxy_config�	s.
	
	

uSALT_MASTER_CONFIGc
C@s|dkrt}n|dkr*t}ni}t|||�}t|||�}|d|d<|d|d<|j|�|j|�idd6|jdtjj	�d6|jdd�d	6|jd
d�d6|d
d
6|dd6|dd6|dd6|dd6t
|jd|jd|jdtd����d6|jd|d�d6tjj
|d|jd|d��d6|dd6|dd6}	|j|	�ddd	ddddddg	}
x?d"D]7}t|j|d!��jd!kr�|
j|�q�q�Wt||
�|S(#Nu	conf_fileu_minion_conf_fileu_master_conf_fileusyndicu__roleuroot_dirusyndic_pidfileusalt-syndic.pidupidfileusyndic_log_fileusalt-syndic.logulog_fileu	log_leveluidupki_diru
syndic_masterumasteru	interfaceusyndic_master_portumaster_portusyndic_useruuserucachedirusyndic_sock_dirusock_dirusock_pool_sizeuextension_modulesu
autosign_fileuautoreject_fileu	token_diruautosign_grains_dirukey_logfileu(ulog_fileukey_logfileusyndic_log_file(RAR�Rxt
master_configR�R�RHRR&R�tintRlR2R;RtschemeR/R�(tmaster_config_pathtminion_config_pathtmaster_env_vartminion_env_vartminion_defaultstmaster_defaultsRNtmaster_optstminion_optstsyndic_optstprepend_root_dirst
config_key((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyt
syndic_config�	sX		

	!

!
cC@sddl}|dkr!|}nt|tj�rX|jd�rX|jjj||�St|t	�r�x�tj
|�D]1\}}|dkr�qwnt||�||<qwWnTt|t�rxBt
|�D]1\}}|dkr�q�nt||�||<q�Wn|S(u+
    Recurse for sdb:// links for opts
    iNusdb://(tsalt.utils.sdbRARRRBRCRItsdbtsdb_getR#RR�Rt	enumerate(RNtsdb_optsRRQtvalue((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyR�#
s 	!uSALT_CLOUD_CONFIGc	C@s+|rtjj|�}	ntjj}	t||tjj|	d��}
|dkrct	j
�}n|j|
�|}
|
jtjj
|
d|dt��|
jdg�}|
jtjj
||dt��d|
kr�|dkr�|
d}n2d|
kr'|r'|r'tjj|	d�}nt||	�}d|
kr[|dkr[|
d}n2d|
kr�|r�|r�tjj|	d�}nt||	�}d	|
kr�|dkr�|
d	}n2d	|
kr�|r�|r�tjj|	d
�}nt||	�}|
jd|jdd��}t|tj�r>|g}nx�t|�D]q\}
}tjj|�s�tjjtjj|�|�}ntjj|�r�|||
<qLn|j|
�qLW|jtjjtjjtjjt�d
dd���|
jdt|��|dk	r>|dk	r>tjjd��n{|dkr�|dkr�tjj|
jdtjjtjjd���}n-|dk	r�|dkr�tjj|�}n|d=|j|
�|}
|dk	r|dk	rtjjd��nB|dkrB|dkrB|
jdtjjtjjd��}n|dk	ro|dk	rotjjd��nB|dkr�|dkr�|
jd	tjjtjjd
��}nt |
|�}d|kr�|dk	r�tjjd��n|dk	rttjjtjj|�dd�}tjj!|�s>t"j"|�rttjjdj#tjjtjjd����qtn|d}n|dk	r�t$|�}n||d<|dkr�t%||�}n||d<t&|�dg}d|krt'|d�j(dkr|j|d�nt)||�|S(u;
    Read in the Salt Cloud config and return the dict
    ucloududefault_includeR�uincludeu
master_configumasteruproviders_configucloud.providersuprofiles_configucloud.profilesudeploy_scripts_search_pathucloud.deploy.du..udeploytdeploy_scripts_search_pathu<Only pass `master_config` or `master_config_path`, not both.ucachediruBOnly pass `providers_config` or `providers_config_path`, not both.u@Only pass `profiles_config` or `profiles_config_path`, not both.u	providersuvDo not mix the old cloud providers configuration with the passing a pre-configured providers configuration dictionary.ucloud.providers.du*u�Do not mix the old cloud providers configuration with the new one. The providers configuration should now go in the file `{0}` or a separate `*.conf` file within `cloud.providers.d/` which is relative to `{0}`.uprofilesulog_fileuN(*RlR2R�RR&t
CONFIG_DIRR�R;RAtDEFAULT_CLOUD_OPTSR�R�tconfigR�RLRHRMRqRRRBR�RmR�RR/R�t__file__RRdtSaltCloudConfigErrorR�tapply_cloud_configRnR,REtcloud_providers_configtvm_profiles_configR�RR�R�(R2R�R�R�R�tproviders_config_pathtproviders_configtprofiles_config_pathtprofiles_configt
config_dirR�R�R�tidxtentryRNtproviders_confdR�((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pytcloud_config<
s�
 


$
		
	
		$
	!	!			'



	%
cC@s|dkrt}n|j�}|r7|j|�nd|kr�|dj�}i|d<x�tj|�D]�\}}t|t�r=xe|D]�}d|kr�tj	j
dj|���n|d}d|kr�|jd�\}}n||dkri|d|<ndj||�|d<||d||<q�Wqmt|t
�rmd|krvtj	j
dj|���n|d}d|kr�|jd�\}}n||dkr�i|d|<ndj||�|d<||d||<qmqmWnt|�}|S(	u
    Return a cloud config
    u	providersudriveruUThe cloud provider alias '{0}' has an entry missing the required setting of 'driver'.u:u{0}:{1}uprovideruTThe cloud provider alias '{0}' has an entry missing the required setting of 'driver'N(RAR�R�R�RRRRRRdR�REtsplitR#t
old_to_new(R�R�R�t	providerstaliastdetailstdetailtdriver((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyR� sH	

	
	
c	C@s�d}x�|D]�}i}xO|j�D]A\}}||kr&|}|jdd
�d
}|||<q&q&W|j�}|r
||d<|jdi�i|d|<||d||<q
q
W|S(NuAWSu
CLOUDSTACKuDIGITALOCEANuEC2uGOGRIDuIBMSCEuJOYENTuLINODEu	OPENSTACKuPARALLELSRACKSPACEuSALTIFYu.iuprovideru	providers(uAWSu
CLOUDSTACKuDIGITALOCEANuEC2uGOGRIDuIBMSCEuJOYENTuLINODEu	OPENSTACKuPARALLELSRACKSPACEuSALTIFY(titemsR�tlowert
setdefault(	RNR�tprovidertprovider_configtoptRRR�tnamet	lprovider((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyR�cs2

uSALT_CLOUDVM_CONFIGcC@s�|dkrt}ntjj||tjjtjj	d��}|j
d|d�}|j
dg�}|jtjj||dt
��|jtjj||dt��t|||�S(u/
    Read in the salt cloud VM config file
    ucloud.profilesudefault_includeuincludeR�N(RAtVM_CONFIG_DEFAULTSRR�R�RlR2R;R&R�RHR�R�RLRMtapply_vm_profiles_config(R2R�R�R�R�R�R�((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyR��s		$c
C@s
|dkrt}n|j�}|r7|j|�ni}xptj|�D]_\}}|dkrkqMnt|t�s�tj	j
dj|���n||d<|||<qMWxVtj|j��D]?\}}d|krAd|d	kr�|d	jd�\}	}
|	|ks#|
||	krMt
jd
||d	�|j|�q�nd||	|
krvi||	|
d<n|||	|
d|<n|d	|kr�t
jd
||d	�|j|�q�nttt||d	j����}
||d	|
jdi�ji||6�dj||
�|d	<|||<q�n|jd�}||kr�t
jd
|||�|j|�q�nt|j|��}|jd�tjjj||�}d|d	krt|d	|kr	t
jd
||d	�|j|�q�nttt||d	j����}
||d	|
jdi�ji||6�dj||
�|d	<n�|d	jd�\}	}
|	|ks�|
||	kr�t
jd
||d	�|j|�q�n||	|
jdi�ji||6�|||<q�W|S(Nu	conf_fileuincludeudefault_includeuuseruSThe VM profiles configuration found in '{0[conf_file]}' is not in the proper formatuprofileuextendsu:uprovideru�The profile '%s' is defining '%s' as the provider. Since there is no valid configuration for that provider, the profile will be removed from the available listinguprofilesu{0[provider]}:{1}u�The '%s' profile is trying to extend data from '%s' though '%s' is not defined in the salt profiles loaded data. Not extending and removing from listing!(u	conf_fileuincludeudefault_includeuuser(RAR�R�R�RRRR#RRdR�RER�R$ttraceRtnexttiterRtkeysR�RSRRHRIR�(
R�R�R�R�tvmsRQRRtprofileR�R�R�textendstextended((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyR��s�		
"

&




&
uSALT_CLOUD_PROVIDERS_CONFIGcC@s�|dkrt}ntjj||tjjtjj	d��}|j
d|d�}|j
dg�}|jtjj||dt
��|jtjj||dt��t||�S(u=
    Read in the salt cloud providers configuration file
    ucloud.providersudefault_includeuincludeR�N(RAtPROVIDER_CONFIG_DEFAULTSRR�R�RlR2R;R&R�RHR�R�RLRMtapply_cloud_providers_config(R2R�R�R�R�R�((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyR�s		$cC@s*|dkrt}n|j�}|r7|j|�nxtj|j��D]h\}}d|krMtjd�t|�}x0tj|j	d��D]\}}|||<q�WPqMqMWi}d}xhtj|�D]W\}	}
|	dkr�q�nt
|
ttf�s|
g}
n�t
�}x�|
D]�}d	|krXd
|kr$tjd�q$q$n|d	|kr�tjd�tjjd
j|	|���n|j|d	�q$Wx~|
D]v}
d	|
kr�dj|�|
d	<|d7}n|	|kr�i||	<n|
d	}|||	kr�|
||	|<q�q�Wq�Wx+tr]t}xtj|j��D]�\}}x�tj|�D]�\}}i|||d<d
|kr�qqn|j	d
�}d|krh|jd�\}}||krtjjdj|d	||���n||j|�krEtjjdj|d	|||���ndj||�|d
<||d	<qq|j|�r�tjjdj|d	||���qq||kr�tjjdj|d	||���qq||j|�krdj||�|d
<qqd|j|�kr8dj|dj|��|d
<qq||d
<t}qqWqUW|s3Pq3q3Wx)tr�t}xtj|j��D]�\}}x�tj|�D]�\}}d
|kr�q�nd
|d
kr�t}q�n|j	d
�}|jd�\}}|j|�j|�j�}tjjj||�}||||<|jd�r�||||||<|||=q�q�Wq�W|saPqaqaWx�tj|j��D]�\}}xYtj|j��D]B\}}|jd�s�q�ntjd|�||j	|�q�W||s�|j	|�q�q�W|S(u9
    Apply the loaded cloud providers configuration.
    u.u7Please switch to the new providers configuration syntaxu	providersiu	conf_fileuincludeudefault_includeuuserudriveruextendsuiPlease check your cloud providers configuration. There's no 'driver' nor 'extends' definition referenced.u�You can only have one entry per cloud provider. For example, if you have a cloud provider configuration section named, 'production', you can only have a single entry for EC2, Joyent, Openstack, and so forth.uQThe cloud provider alias '{0}' has multiple entries for the '{1[driver]}' driver.u-only-extendable-{0}iuprofilesu:u�The '{0}' cloud provider entry in '{1}' is trying to extend data from '{2}' though '{2}' is not defined in the salt cloud providers loaded data.utThe '{0}' cloud provider entry in '{1}' is trying to extend data from '{2}:{3}' though '{3}' is not defined in '{1}'u{0}:{1}utThe '{0}' cloud provider entry in '{1}' is trying to extend from '{2}' and no provider was specified. Not extending!u-only-extendable-u�There's at least one cloud driver under the '%s' cloud provider alias which does not have the required 'driver' setting. Removing it from the available providers listing.N(u	conf_fileuincludeudefault_includeuuser(RAR�R�R�RRR$R%R�RRRRtsetRSRRdR�REtaddRMRLR�RHRIR�RCtinfo(R�R�R�R�tsettingst	prov_namet
prov_settingsR�t	ext_countRQRRthandled_providersR�R�R�tkeep_loopingtprovider_aliastentriesR�R�R�t	ext_aliast
ext_driverR�((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyR�/s�	"%	

	



	"		
		
	"""
c
C@s�|}|tkr=|j|d	�d	k	r=t||�}n|r`|r`d|kr�|dd	k	r�||d|dkr�t|t�r�|j|d|d|j��q�t|d|d|�}q�nd|dkr�|djd�\}}||dkr�||d|kr�|d||}||kr~t|t�rh|j||j��q{t||�}q~q�nDt	|dj|dd
��dkr�t
jd|d|d�n|d|dkr`|dj|d�}	|	tt
t|	j����}
||
kr]t|t�rG|j|
|j��qZt|
|�}q]q`n|r�|r�||kr�t||tj�r�t||d�}q�t|t�r�t||t�r�|j||j��q�t||�}n|S(uP
    Search and return a setting in a known order:

        1. In the virtual machine's configuration
        2. In the virtual machine's profile configuration
        3. In the virtual machine's provider configuration
        4. In the salt cloud configuration if global searching is enabled
        5. Return the provided default
    uprofileuprofilesu:udriveru	providersiu�The '%s' cloud provider definition has more than one entry. Your VM configuration should be specifying the provider as 'driver: %s:<driver-engine>'. Since it's not, we're returning the first definition which might not be what you intended.uN((RMRHRARRR#R�R�R�R9R$RSR�R�RR�R5t
GeneratorType(R�tvm_RNtdefaultt
search_globalR�R�R�R�t
alias_defstprovider_driver_defs((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pytget_cloud_config_value�sH$&"&""c	C@s�d|kr�|jd�\}}||dkr5tS||d|krMtSx[|D]S}|d||j|d�dkrT|tkr�tjd|||�ntSqTW|d||Sx�tj|d�D]�\}}x�tj|�D]�\}}	||kr||krq�nt}
xU|D]M}|	j|d�dkr"|tkretjd|||�nt}
Pq"q"W|
rq�n|	SWq�WtS(ud
    Check and return the first matching and fully configured cloud provider
    configuration.
    u:u	providersurThe required '%s' configuration setting is missing from the '%s' driver, which is configured under the '%s' alias.N(	R�RLRHRARMR$R%RR(RNR�t
required_keystlog_messagetaliasesR�R�RQtdriverstprovider_detailst
skip_provider((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pytis_provider_configuredJ
s>
$ 
	cC@s�dg}|jd�\}}ddddddg}d	d
dddd
ddddddg}|d||}	|d||d|}
|dkr�|
jdt�r�|jd�|jd�n:|dkrdtj|jd��kr|jd�n|dkr5dt|
j��kr5|jd�n||krm|jd�|dkr|jd�qn�|dkr�|jd�n}|dkrddddg}tg|D]}||	k^q��rtg|D]}||
k^q��r|j	|�qn||kr"|jd�nx0t|�D]"}
|
|	kr/|j
|
�q/q/W|r�x3t|�D]"}
|
|krh|j
|
�qhqhWnx@|D]8}
|
j|
d�dkr�tj
d|
||�tSq�WtS( u�
    Check if the requested profile contains the minimum required parameters for
    a profile.

    Required parameters include image and provider for all drivers, while some
    drivers also require size keys.

    .. versionadded:: 2015.8.0
    uprovideru:unovau
virtualboxulibvirtu	softlayeru	oneandoneuprofitbricksu
opennebulau	parallelsuproxmoxuscalewayusoftlayer_hwuvmwareuvsphereu	providersuprofilesulinodeu	clonefromugceusourceImageuex_disks_gce_structuimageu	datastoreublock_device_mappingublock_deviceuboot_volumeusizeusThe required '%s' configuration setting is missing from the '%s' profile, which is configured under the '%s' alias.(ulinodeu
virtualboxN(R�RHRLR/RRRR�tanyR.tremoveRAR$RSRM(RNR�tprofile_nameR	RR�R�tnon_image_driverstnon_size_driverstprovider_keytprofile_keytnova_image_keysRQR7((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pytis_profile_configured�
sR	
*$
L

cC@sUt}xHtj|�D]7\}}|tkrtjd|||�t}qqW|S(u�
    Check if the driver's dependencies are available.

    .. versionadded:: 2015.8.0

    driver
        The name of the driver.

    dependencies
        The dictionary of dependencies to check.
    uFMissing dependency: '%s'. The %s driver requires '%s' to be installed.(RMRRRLR$R%(R�tdependenciesR>RQR�((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pytcheck_driver_dependencies�
s

cC@s�tjj|�}y&tjj|�s7tj|�nWn8tk
rr}tjj|�r_qstjd|�nXy2tj	j
j|d��}|j|�WdQXWn)t
tfk
r�}tjd|�nXdS(u<
    Helper function, writes minion id to a cache file.
    u+Failed to create dirs to minion_id file: %suwNuCould not cache minion ID: %s(RlR2R�R�tmakedirstOSErrorR$RSRRIR_R`R{tIOError(R�t
cache_fileR2texctidf((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyt	_cache_id�
scC@s|jd�r|dSddlj}t|dtj�rO|d}i}npt|dt�r�tjtj|d��\}}|dkr�i}q�n#t
jd�tj
tjjj�|jd�\}}|jd�s�|j|�|d<ny�|j|||�}|s t�n|||�}t|tj�sJ|rt
jd||t|��tj
tjjj�nt
jd	|�|SWnptk
r�t
jd
||�tj
tjjj�n7tk
rt
jd|�tj
tjjj�nXdS(us
    Evaluate the function that determines the ID if the 'id_function'
    option is set and return the result
    uidiNuid_functionu9'id_function' option is neither a string nor a dictionaryu.ugrainsu<Function %s returned value "%s" of type %s instead of stringu#Evaluated minion ID from module: %su3Function arguments %s are incorrect for function %suFailed to load module %s(RHtsalt.loadertloaderRRRBR#R�RRAR$RSRR�RR�R�R�R�Rtraw_modtKeyErrorRFR�R:(RNR)tmod_funt
fun_kwargstmodtfuntid_modtnewid((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pytcall_id_functionsF
	"
	


c
	C@s�|ddkrtjj}n
|d}tjj}|jtjj�ri|jtjjd�d}ntjj	||j
tjj�d�}|jdt
�r�y�tjjj|��y}tjjj|j�j��}tjjj|�}|jtj�r/tjjj|jtjdd��}nWdQX|rd|dkrdtjd	||�|tfSWq�ttfk
r~q�Xnd
|kr�|jd
�dkr�tjdtjj	tjjd��n|jd
�r�t|�}ntjj j!�}|jd�r)|j"�}tjd|�nd
|kr�|jd
�dkr�|jd
�rstjd|d
|�q�tjd|�n|r�|jdt
�r�t#||�ntjj j$|�}	||	fS(un
    Guess the id of the minion.

    If CONFIG_DIR/minion_id exists, use the cached minion ID from that file.
    If no minion id is configured, use multiple sources to find a FQDN.
    If no FQDN is found you may get an ip address.

    Returns two values: the detected ID, and a boolean value noting whether or
    not an IP address is being used for the ID.
    uroot_dirii����u	minion_iduminion_id_cachinguNu	localhostu"Using cached minion ID from %s: %su__roleuminionu/Guessing ID. The id can be explicitly set in %suid_functionuminion_id_lowercaseu"Changed minion id %s to lowercase.u-Found minion id from external function %s: %su-Found minion id from generate_minion_id(): %s(%RARR&R�R�RCR�RlR2R;tlstripR�RHRMRIR_R`tstringutilst
to_unicodeRztstriptto_bytestcodecstBOMtto_strRKR$R^RLR#R"R2tnetworktgenerate_minion_idR�R'tis_ipv4(
RNR�R�R�tid_cacheR&R�tbnameR1R=((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pytget_id6sR
	!0!!c
C@sC|ddtfkr$d|d<dS|dtkrBi|d<dSddl}x�d
dfD]�\}}|dj|�}|dkr�q[nt|tj�s�|j|�s�t	||�r$dj
|d	jgt|�D]}|j|�r�|^q���}t
j|�tjj|��nt||�|d|<q[WdS(uI
    Resolves string names to integer constant in ssl configuration.
    usslNiu	cert_reqsuCERT_ussl_versionu	PROTOCOL_uCSSL option '{0}' must be set to one of the following values: '{1}'.u', '(u	cert_reqsuCERT_(ussl_versionu	PROTOCOL_(RARLRMtsslRHRRRBRCRDRER;tdirR$RSRRdRetgetattr(RNRARQtprefixRRRj((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyt_update_ssl_configws$

3=
cC@s�|jd�r�|jd�r[tjj|d�s�tjj|d|d�|d<q�q�tjj|dtjj|��|d<ndS(u<
    Adjusts the log_file based on the log_dir override
    ulog_dirulog_fileN(RHRlR2RmR;tbasename(R�tdefault_log_file((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyt_adjust_log_file_override�sc	C@s�|d*krt}n|d*kr*i}n|j�}d|d<t||d�|rg|j|�nd|kr�|dd*k	r�tjd�|d|d<q�tjd|d�|d|d<nxXt|d�D]F\}}|d+kr�|d}tjd
||�||d|<q�q�Wt	j
jjt
jjtjd��|d<t}|jd�s�|ru||d<q�t|d|�\|d<}n|r�d|kr�t|�|d<nx�|jdg�D]�}	|	d,kr	t
jj||	|d�}
|
||	<q�|	dkr�|	|kr�t
jj||	�}t
jj||dt
jj||	��}|||	<q�q�Wd|jdg�kr�t
jj|d�}
t
jj|
dd|d|
d�|d<nt|d�t|d�dkrt
jj|dd�|d<n|dtk|d<t|d�|d<t|d �|d <|jd�put
jj|dd!�|d<|jd"�p�t
jj|dd#�g|d"<t||d"�dddddg}x?d-D]7}t|j|d%��jd%kr�|j |�q�q�Wt!||�d&|kr9i|d&<n|jd'd%�d(kr^t"|d'<nd'|krwd|d'<n|d)j#�|d)<t$|�t%|�|S(.u-
    Returns minion configurations dict.
    uminionu__roleulog_fileuenvironmentusaltenvuxThe 'saltenv' and 'environment' minion config options cannot both be used. Ignoring 'environment' in favor of 'saltenv'.umThe 'environment' minion config option has been renamed to 'saltenv'. Using %s as the 'saltenv' config value.ufileserver_backendugituhgusvnufsu8Changed %s to %s in minion opts' fileserver_backend listiu__cliuidR�u
append_domainuappend_minionid_config_dirsupki_dirucachediruextension_modulesudefault_includeupidfileusaltiusock_diri
u
.salt-unixu	open_modeu
file_rootsupillar_rootsuextmodsu
utils_dirsuutilsukey_logfileuubeaconsuipc_write_bufferudynamicu	hash_typeN(ugituhgusvnuminion(upki_dirucachediruextension_modules(ulog_fileukey_logfile(&RAR�R�RHR�R$R%R�R^RRIR4R5RlR2RFRtargvRLRHR@R]R;R�R�R9RMR+R)R�RR�R/R�t_DFLT_IPC_WBUFFERR�REt_update_discovery_config(R�R�R�R�RNR�RRtnew_valtusing_ip_for_idt	directorytnewdirectorytinclude_dirtnew_include_dirtnewpath_listR�R�((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyR��s�		


 

.$  
!





cC@s|jd�dtfkr|dtkr8i|d<nidd6dd6dd6dd	6id
6}x<|dD]0}||krltjjdj|���qlqlW|jd�d
kr�x!ddd	gD]
}||=q�Wntjj	j
||dtt�|d<ndS(uS
    Update discovery config for all instances.

    :param opts:
    :return:
    u	discoveryiuattemptsiupausei�uportuanyumatchumappinguUnknown discovery option: {0}u__roleuminionN(RHRARLRMRRdReRERIR�R�(RNtdiscovery_configRQ((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyRK's
)"c
	C@s�|dkrt}ntjj|d�s�tjjdd�}|r�tjj|d�}|r�tjj|�r�|tj|<q�q�nt||td�}|jd|d�}|jdg�}|j	t
||dtd|��|j	t
||dtd|��t
||�}	t|	�t|	�|	jd�dkr[tjdi�|	d<ntjjj|	d�r�tjjj|	d�|	d<n|	jd	�d
kr�d|	kr�|	jd�nt|	�|	S(
u�
    Reads in the master configuration file and sets up default options

    This is useful for running the actual master daemon. For running
    Master-side client interfaces that need the master opts see
    :py:func:`salt.client.client_config`.
    uSALT_CONFIG_DIRumasteru	conf_fileudefault_includeuincludeR�R�u
nodegroupsu	transporturaetuaesN(RARxRlRyRHR2R;RnR�R�R�RLRMtapply_master_configR[RTRRIRftis_dictlisttrepack_dictlistRR�(
R2R�R�R�R�R�R�R�R�RN((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyR�;s6		




 !
c
C@sq|d<krt}n|d<kr*i}n|j�}d|d<t||d�|rg|j|�ntjjjt	j
jtj
d��|d<d|kr�|dd<k	r�tjd�|d|d<q�tjd	|d�|d|d<ntjr'd
|kr'tjjj|d
�|d
<nxXt|d�D]F\}}|d=kr8|d}tjd||�||d|<q8q8Wt|d�t|d�dkr�t	j
j|dd�|d<nt	j
j|dd�|d<t	j
j|dd�|d<|jd�p%t	j
j|dd�|d<|jd�pTt	j
j|dd�g|d<t||d�|jdd�d kr�t|d<nd|kr�d|d<nt}t}|jd!�s�t|d"d<�\|d!<}t}n|rd#|krt|�|d!<n|r)|d!cd$7<nd%dd&ddd'd(ddd)d*g}xWd>D]O}	|j|	d�}
|
d<kr�qWnt|
�j dkrW|j!|	�qWqWWt"||�|d-tk|d-<|d.tk|d.<t#|d/�|d/<t#|d0�|d0<|d1r�t$|d1tj%�r7|d1g}n t$|d1t&�rW|d1}ng|d1<xW|D]L}y"t'j(|�|d1j!|�Wqht)k
r�tjd2|�qhXqhWn|d3r�t$|d3tj%�r�|d3g|d3<q�n|d4d5kr5|jd6d<�r5tjd7|d8�d5|d4<n|j*d9d:�|d;j+�|d;<t,|�t-|�|S(?u-
    Returns master configurations dict.
    umasteru__roleulog_fileiu__cliuenvironmentusaltenvuxThe 'saltenv' and 'environment' master config options cannot both be used. Ignoring 'environment' in favor of 'saltenv'.umThe 'environment' master config option has been renamed to 'saltenv'. Using %s as the 'saltenv' config value.u
rest_cherrypyufileserver_backendugituhgusvnuminionufsu8Changed %s to %s in master opts' fileserver_backend listusock_dirucachediri
u
.salt-unixutokensu	token_dirusyndicsu
syndic_diruextension_modulesuextmodsu
utils_dirsuutilsuipc_write_bufferuudynamicuidR�u
append_domainu_masterupki_dirupidfileu
autosign_fileuautoreject_fileusqlite_queue_diruautosign_grains_dirukey_logfileussh_log_fileu	open_modeuauto_acceptu
file_rootsupillar_rootsufile_ignore_regexu/Unable to parse file_ignore_regex. Skipping: %sufile_ignore_globuworker_threadsiupeerudThe 'worker_threads' setting in '%s' cannot be lower than 3. Resetting it to the default value of 3.u	conf_fileupillar_source_merging_strategyusmartu	hash_typeN(ugituhgusvnuminion(ulog_fileukey_logfileussh_log_file(.RARxR�RHR�RRIR4R5RlR2RFRRIR$R%RtPY2RftencodeR�R^R9R;RHR�RJRLR@RMR]RR�R/R�R+RRBRRVtcompileR0R�R�RERK(
R�R�RNR�RRRLRMt
append_masterR�R�tlog_settingtignore_regextregex((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyRTks�		
  

$  

	








"


uSALT_CLIENT_CONFIGc
C@s|d
krt}ntjjj�}tjj|�rH|}d}ntjj	d�}d}i|j
dtjj|d��d6}|jt
|d|��tjj||�}|jt|||��d|krtjjtjj	|d��|d<ntjj|d�r�|j
dd�}tj|d�j|tjtj��kr�tjjj|d��}	|	j�j�|d	<Wd
QXq�n|ddkr�d
|d<nd|kr�djdtjjj|d�d|d�|d<nt|�|S(u%
    Load Master configuration data

    Usage:

    .. code-block:: python

        import salt.config
        master_opts = salt.config.client_config('/etc/salt/master')

    Returns a dictionary of the Salt Master configuration file with necessary
    options needed to communicate with a locally-running Salt Master daemon.
    This function searches for client specific configurations and adds them to
    the data from the master configuration.

    This is useful for master-side operations like
    :py:class:`~salt.client.LocalClient`.
    usaltrcu~u.saltrcu
token_fileu
salt_tokenR�utoken_expirei��utokenNu	interfaceu0.0.0.0u	127.0.0.1u
master_uriutcp://{ip}:{port}tiptporturet_port(RARxRRItxdgtxdg_config_dirRlR2R�R�RHR;R�R�R�R�Rntstattst_mtimettimetmktimet	localtimeR_R`R|R6REtzeromqt
ip_bracketRT(
R2R�R�txdg_dirtclient_config_dirtsaltrc_config_fileRNt
saltrc_configtexpiretfp_((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyt
client_configsJ		
		/"
	
cC@swt}|jt|dt��|ji|jdtd�d6|jdtd�d6�t|ddddg�|S(uu
    Read in the Salt Master config file and add additional configs that
    need to be stubbed out for salt-api
    R�uapi_pidfileupidfileuapi_logfileulog_file(tDEFAULT_API_OPTSR�RoRxRHR�(R2RN((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyt
api_config]s	
cC@s�tj�}|jt�t|dtd�}|jd|d�}|jdg�}|jt||dt��|jt||dt��t	||�}t
||�}t|ddd|�S(u�
    Read in the salt master config file and add additional configs that
    need to be stubbed out for spm

    .. versionadded:: 2015.8.0
    u
SPM_CONFIGu
spm_conf_fileuspm_default_includeuincludeR�R�R�(RxR�R�tDEFAULT_SPM_OPTSR�RHR�RLRMRTtapply_spm_configRo(R2R�R�R�R�((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyt
spm_configws
	
cC@s�|j�}t||d�|r3|j|�ndddddg}xWd	D]O}|j|d�}|d
kryqOnt|�jdkrO|j|�qOqOWt||�|S(uN
    Returns the spm configurations dict.

    .. versionadded:: 2015.8.1
    ulog_fileuformula_pathupillar_pathureactor_pathu
spm_cache_diru
spm_build_diruspm_logfileu(uspm_logfileN(	R�RHR�RHRARR�R/R�(R�R�RNR�R�R[((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyRs�s	

i<g �@i�i@Ii<g �@i�i@I(((�t__doc__t
__future__RRRRRlRVRR,RdR8tloggingR5R�Rtsalt.extRtsalt.ext.six.moves.urllib.parseRtsalt.utils.dataRtsalt.utils.dictupdatetsalt.utils.filestsalt.utils.networktsalt.utils.pathtsalt.utils.platformtsalt.utils.stringutilstsalt.utils.usertsalt.utils.validate.pathtsalt.utils.xdgtsalt.utils.yamltsalt.utils.zeromqt
salt.syspathstsalt.exceptionstsalt.defaults.exitcodesRRDtImportErrorRMRRLt	getLoggerR3R$t_DFLT_LOG_DATEFMTt_DFLT_LOG_DATEFMT_LOGFILEt_DFLT_LOG_FMT_CONSOLEt_DFLT_LOG_FMT_LOGFILEt_DFLT_LOG_FMT_JIDt_DFLT_REFSPECStDEFAULT_INTERVALRIRRJt_DFLT_IPC_MODEt
_MASTER_TRIESt_MASTER_USERtusertget_userRRJt_DFLT_IPC_RBUFFERR2R;R�R�tFLO_DIRRBRR�tboolR#RFRARtfloatR@R&R�R�t	CACHE_DIRtSOCK_DIRtBASE_THORIUM_ROOTS_DIRR*tSPM_FORMULA_PATHR'tSPM_PILLAR_PATHtLOGS_DIRtPIDFILE_DIRR�tBASE_MASTER_ROOTS_DIRtHOME_DIRRxR�R�RptSPM_REACTOR_PATHtSRV_ROOT_DIRt	SHARE_DIRRrR�R�R"R)R+RRTR[R]RkRqR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RRRR R'R2R@RERHR�RKR�RTRoRqRtRs(((s8/usr/lib/python2.7/site-packages/salt/config/__init__.pyt<module>s�	"


		

	








































































































	
	





		












					q		
	?9	1	/1C�C	&r�M9N			5A		�	0�R		

Zerion Mini Shell 1.0