[scheduler]
# This scheduler name
id = scheduler_01

## MANAGING ##
# scheduler_path = /usr/sbin/pulse2-scheduler

## NETWORK ##
# port = 8000
# host = 127.0.0.1
# username = username
# password = password
# enablessl = True
# If verifypeer is set, the scheduler will also connect to all the launchers
# using the following certificates.
# verifypeer = False
# cacert = /etc/mmc/pulse2/scheduler/keys/cacert.pem
# localcert = /etc/mmc/pulse2/scheduler/keys/privkey.pem

## SCHEDULING ##
# for some functions below, we add this factor, to prevent load peaks
# incertitude_factor = .2
#
# initial wait time, in seconds, to make stuff stabilize
# initial_wait = 2
#
# attempt to start (and stop) commands every n seconds
# awake_time = 600
#
# preemption settings : preempting every N second, run M commands
# preempt_amount = 50
# preempt_period = 1
#
# status settings : check every N second, +/- incertitude_factor %
# checkstatus_period = 900
#
# health logging : log some stats every N seconds, +/- incertitude_factor %
# loghealth_period = 60
#
# once per day, hour specified below (HH:MM:SS), the scheduler will
# analyse the database, looking to weird / broken commands;
# you should enable this if you see stalled commands in logs
# in this case, please specify an hour when the scheduler is
# not very used (8 pm can be a good choice: analyse_hour = 20:00:00)
# set to empty by default to disable analysis
# analyse_hour =
#
# attempt to clean states in commands every n seconds
# clean_states_time = 3600
# clean state that are going to be clean
# (from the launcher point of view, ie :
#  * stop -> the command is not running on the launcher but it's state in the db say it is)
#  * run -> the command
# possible states : run, stop
# active_clean_states =
#
# default database encoding (used to inject log files)
# dbencoding = utf-8
#
# scheduler mode, see doc !
# mode = async
#
# max number of slots to uses, for all launchers
# max_slots = 300
#
# locking system
# please use with caution: the only reason to activate this feature
# is for systems under heavy load; risk of double-preemption is
# drastically reduce using this, but your system will be even more slow
# lock_processed_commands = False

## Commands life ##
# Command max default authorized time (for each stage)
# max_command_time = 3600
#
# Command max upload time (aka 'upload' stage), override the previous one for looooong uploads
# max_upload_time = 21600
#
# Command max WOL wait-for-completion time: wait this ammount of second before going futher
# max_wol_time = 300

## NETWORKING ##
# prefered method to reach a client
# available:
# - fqdn: attempt to perform a DNS query on FQDN
# - hosts: same, no DNS query
# - ip: just try IP address
# - netbios: attempt to do a nmblookup on IP adress
# tests are performed using ping
# resolv_order = fqdn hosts netbios ip

## CHECKING ##
# in some situations itn may be useful to do some pre-checks on clients
# checks can be done against every information recorded into the "target" table
# the following informations are available:
# target_name => contain the target Hostname
# target_uuid => contain the target UUID
# target_ipaddr => contain the target IP addresses, only the first one is used
# target_macaddr => contain the target MAC adresses, only the first one is used
# The two following options are formated as follow:
# *_check = <data-to-ask>=<expected-value>,...
# for exemple:
# server_check = IP=ipaddr
# client_check = UUID=uuid,HOSTNAME=name
# => will ask to client if its UUID is 'target_uuid', HOSTNAME is 'target_name',
# and tell it to give us it's IP and check the IP's value is 'target_ipaddr'
# While checking things, we may also want to announce what we are currently try to
# do on client, for each stage, for example TRANFERT while transfering something:
# announce_check = transfert=TRANFERT (comma-separated list as for previous options)
# currently available keywords: transfert, execute, delete, inventory
# announce_check =
# server_check =
# client_check =

## Computer / Group assignment ##
# mg_assign_algo = default


[database]
# dbdriver = mysql
# dbhost = localhost
# dbport = 3306
# dbname = msc
# dbuser = mmc
# dbpasswd = mmc
# dbdebug = ERROR
# dbpoolrecycle = 60
# dbpooltimeout = 30
# SSL support
# dbsslenable = 0
# dbsslca =
# dbsslcert =
# dbsslkey =

[daemon]
# pidfile = /var/run/pulse2
# user = root
# group = root
# umask = 0077
# Example of non-root execution settings:
# user = mmc
# group = mmc
# umask = 0007
# setrlimit option allows to set process system resources usage. Syntax is:
# setrlimit = limit1 soft1 hard1 limit2 soft2 hard2 ...
# For example:
# setrlimit = RLIMIT_NOFILE 2048 2048 RLIMIT_CORE 0 0
# setrlimit =

# Our launchers
[launcher_01]
host=%(ipv4)s
port=8001
username = username
password = password
enablessl = True

[loggers]
keys=root

[handlers]
keys=hand01

[formatters]
keys=form01

[logger_root]
level=NOTSET
handlers=hand01

[handler_hand01]
class=FileHandler
level=INFO
formatter=form01
args=("%s" % %(pulse2_log_file_scheduler)s,)

[formatter_form01]
format=%%(asctime)s %%(levelname)s %%(message)s
