1ec3d1a
## <summary>Puppet client daemon</summary>
1ec3d1a
## <desc>
1ec3d1a
##	

1ec3d1a
##	Puppet is a configuration management system written in Ruby.
1ec3d1a
##	The client daemon is responsible for periodically requesting the
1ec3d1a
##	desired system state from the server and ensuring the state of
1ec3d1a
##	the client system matches.
1ec3d1a
##	

1ec3d1a
## </desc>
1ec3d1a
1ec3d1a
########################################
1ec3d1a
## <summary>
1ec3d1a
##	Execute puppetca in the puppetca
1ec3d1a
##	domain.
1ec3d1a
## </summary>
1ec3d1a
## <param name="domain">
1ec3d1a
## <summary>
1ec3d1a
##	Domain allowed to transition.
1ec3d1a
## </summary>
1ec3d1a
## </param>
1ec3d1a
#
1ec3d1a
interface(`puppet_domtrans_puppetca',`
1ec3d1a
	gen_require(`
1ec3d1a
		type puppetca_t, puppetca_exec_t;
1ec3d1a
	')
1ec3d1a
1ec3d1a
	corecmd_search_bin($1)
1ec3d1a
	domtrans_pattern($1, puppetca_exec_t, puppetca_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
#####################################
1ec3d1a
## <summary>
1ec3d1a
##	Execute puppetca in the puppetca
1ec3d1a
##	domain and allow the specified
1ec3d1a
##	role the puppetca domain.
1ec3d1a
## </summary>
1ec3d1a
## <param name="domain">
1ec3d1a
##	<summary>
1ec3d1a
##	Domain allowed to transition.
1ec3d1a
##	</summary>
1ec3d1a
## </param>
1ec3d1a
## <param name="role">
1ec3d1a
##	<summary>
1ec3d1a
##	Role allowed access.
1ec3d1a
##	</summary>
1ec3d1a
## </param>
1ec3d1a
## <rolecap/>
1ec3d1a
#
1ec3d1a
interface(`puppet_run_puppetca',`
1ec3d1a
	gen_require(`
1ec3d1a
		type puppetca_t, puppetca_exec_t;
1ec3d1a
	')
1ec3d1a
1ec3d1a
	puppet_domtrans_puppetca($1)
1ec3d1a
	role $2 types puppetca_t;
1ec3d1a
')
1ec3d1a
1ec3d1a
################################################
1ec3d1a
## <summary>
1ec3d1a
##	Read / Write to Puppet temp files.  Puppet uses
1ec3d1a
##	some system binaries (groupadd, etc) that run in
1ec3d1a
##	a non-puppet domain and redirects output into temp
1ec3d1a
##	files.
1ec3d1a
## </summary>
1ec3d1a
## <param name="domain">
1ec3d1a
##	<summary>
1ec3d1a
##	Domain allowed access.
1ec3d1a
##	</summary>
1ec3d1a
## </param>
1ec3d1a
#
Chris PeBenito 9401ae1
interface(`puppet_rw_tmp', `
1ec3d1a
	gen_require(`
1ec3d1a
		type puppet_tmp_t;
1ec3d1a
	')
1ec3d1a
1ec3d1a
	allow $1 puppet_tmp_t:file rw_inherited_file_perms;
1ec3d1a
	files_search_tmp($1)
1ec3d1a
')
1ec3d1a
1ec3d1a
################################################
1ec3d1a
## <summary>
1ec3d1a
##	Read Puppet lib files.
1ec3d1a
## </summary>
1ec3d1a
## <param name="domain">
1ec3d1a
##	<summary>
1ec3d1a
##	Domain allowed access.
1ec3d1a
##	</summary>
1ec3d1a
## </param>
1ec3d1a
#
1ec3d1a
interface(`puppet_read_lib',`
1ec3d1a
	gen_require(`
1ec3d1a
		type puppet_var_lib_t;
1ec3d1a
	')
1ec3d1a
1ec3d1a
	read_files_pattern($1, puppet_var_lib_t, puppet_var_lib_t)
1ec3d1a
	files_search_var_lib($1)
1ec3d1a
')
1ec3d1a
1ec3d1a
###############################################
1ec3d1a
## <summary>
1ec3d1a
##  Manage Puppet lib files.
1ec3d1a
## </summary>
1ec3d1a
## <param name="domain">
1ec3d1a
##  <summary>
1ec3d1a
##  Domain allowed access.
1ec3d1a
##  </summary>
1ec3d1a
## </param>
1ec3d1a
#
1ec3d1a
interface(`puppet_manage_lib',`
1ec3d1a
    gen_require(`
1ec3d1a
        type puppet_var_lib_t;
1ec3d1a
    ')
1ec3d1a
1ec3d1a
    manage_files_pattern($1, puppet_var_lib_t, puppet_var_lib_t)
1ec3d1a
    files_search_var_lib($1)
1ec3d1a
')
1ec3d1a
1ec3d1a
######################################
1ec3d1a
## <summary>
1ec3d1a
##  Allow the specified domain to search puppet's log files.
1ec3d1a
## </summary>
1ec3d1a
## <param name="domain">
1ec3d1a
##  <summary>
1ec3d1a
##  Domain allowed access.
1ec3d1a
##  </summary>
1ec3d1a
## </param>
1ec3d1a
#
1ec3d1a
interface(`puppet_search_log',`
1ec3d1a
    gen_require(`
1ec3d1a
        type puppet_log_t;
1ec3d1a
    ')
1ec3d1a
1ec3d1a
    logging_search_logs($1)
1ec3d1a
    allow $1 puppet_log_t:dir search_dir_perms;
1ec3d1a
')
1ec3d1a
1ec3d1a
#####################################
1ec3d1a
## <summary>
e9032b5
##  Allow the specified domain to read puppet's log files.
e9032b5
## </summary>
e9032b5
## <param name="domain">
e9032b5
##  <summary>
e9032b5
##  Domain allowed access.
e9032b5
##  </summary>
e9032b5
## </param>
e9032b5
#
e9032b5
interface(`puppet_read_log',`
e9032b5
    gen_require(`
e9032b5
        type puppet_log_t;
e9032b5
    ')
e9032b5
e9032b5
    logging_search_logs($1)
e9032b5
	read_files_pattern($1, puppet_log_t, puppet_log_t)
e9032b5
')
e9032b5
e9032b5
####################################
e9032b5
## <summary>
e9032b5
##  Allow the specified domain to read puppet's config files.
e9032b5
## </summary>
e9032b5
## <param name="domain">
e9032b5
##  <summary>
e9032b5
##  Domain allowed access.
e9032b5
##  </summary>
e9032b5
## </param>
e9032b5
#
e9032b5
interface(`puppet_read_config',`
e9032b5
    gen_require(`
e9032b5
        type puppet_etc_t;
e9032b5
    ')
e9032b5
e9032b5
    logging_search_logs($1)
e9032b5
	list_dirs_pattern($1, puppet_etc_t, puppet_etc_t)
e9032b5
    read_files_pattern($1, puppet_etc_t, puppet_etc_t)
e9032b5
')
e9032b5
e9032b5
#####################################
e9032b5
## <summary>
1ec3d1a
##  Allow the specified domain to search puppet's pid files.
1ec3d1a
## </summary>
1ec3d1a
## <param name="domain">
1ec3d1a
##  <summary>
1ec3d1a
##  Domain allowed access.
1ec3d1a
##  </summary>
1ec3d1a
## </param>
1ec3d1a
#
1ec3d1a
interface(`puppet_search_pid',`
1ec3d1a
    gen_require(`
1ec3d1a
        type puppet_var_run_t;
1ec3d1a
    ')
1ec3d1a
	
1ec3d1a
	files_search_pids($1)
1ec3d1a
    allow $1 puppet_var_run_t:dir search_dir_perms;
1ec3d1a
')