<?xml version="1.0" encoding="iso-8859-1"?>

<spooler>
    <!-- Sample configuration for hobbit solution stack.

This configuration file contains:

1. Job solution

   - Job: hobbit_check_status

     This job is used as a standalone solution to check the job scheduler log file 
     and send respective status messages to the hobbit server.
     
     You will have to adjust the parameter url to address your hobbit server.


   Samples that generate warnings and errors:

   - Job: hobbit_sample_warning
     creates a warning for the job scheduler log file

   - Job: hobbit_sample_error
     creates an error for the job scheduler log file

  
2. Job chain solution: hobbit_messages with Job hobbit_send_message

   This job chain and job are used for order driven message passing.
   Orders can be submitted by any other jobs in case of warnings or errors.
   The job implementation for hobbit_send_message is the same as for hobbit_check_status.
   

   Samples that generate orders:

   - Job: hobbit_sample_order
     creates an order for the job chain -->
    <config>
        <jobs>

            <!-- This job checks the job scheduler log file for warnings and errors 
and sends respective status messages to a hobbit server.

Log rotation is considered. -->
            <job name="hobbit_check_status"
                 title="Check job scheduler log file and send status message to hobbit server">
                <description>
                    <include file="jobs/JobSchedulerHobbitMessageJob.xml"/>
                </description>
                <params>
                    <param name="url"
                           value="http://localhost/hobbit-cgi/bbmessage.sh"/>
                </params>
                <script java_class="sos.stacks.hobbit.JobSchedulerHobbitMessageJob"
                        language="java"/>
                <run_time let_run="no"
                          repeat="300"/>
            </job>

            <!-- This job resets previous warnings and errors -->
            <job name="hobbit_reset_status"
                 title="Reset warnings and errors for status messages to hobbit server">
                <description>
                    <include file="jobs/JobSchedulerHobbitMessageJob.xml"/>
                </description>
                <params>
                    <param name="type"
                           value="reset"/>
                </params>
                <script java_class="sos.stacks.hobbit.JobSchedulerHobbitMessageJob"
                        language="java"/>
                <run_time let_run="no"/>
            </job>

            <job name="hobbit_sample_warning"
                 title="Create sample warning for hobbit">
                <params/>
                <script language="javascript">
                    <![CDATA[
spooler_log.warn("sample warning for hobbit server launched");
                    ]]>
                </script>
                <run_time let_run="no"/>
            </job>

            <job name="hobbit_sample_error"
                 title="Create sample error for hobbit">
                <params/>
                <script language="javascript">
                    <![CDATA[
spooler_log.error("sample error for hobbit server launched");
                    ]]>
                </script>
                <run_time let_run="no"/>
            </job>

            <job name="hobit_sample_order"
                 title="Create order for hobbit message">
                <params>
                    <param name="job_chain"
                           value="hobbit_messages"/>
                </params>
                <script language="javascript">
                    <![CDATA[
var order = spooler.create_order();

var params = spooler.create_variable_set();
    params.set_var("color",   "yellow");
    params.set_var("message", "sample message by order");
    order.payload = params;

    spooler.job_chain(spooler_task.params.value("job_chain")).add_order(order);
                    ]]>
                </script>
                <run_time let_run="no"/>
            </job>

            <!-- This job runs in a job chain and accepts orders to send status messages 
to a hobbit server. -->
            <job name="hobbit_send_message"
                 title="Send status message to hobbit server"
                 order="yes"
                 idle_timeout="300">
                <description>
                    <include file="jobs/JobSchedulerHobbitMessageJob.xml"/>
                </description>
                <params>
                    <param name="url"
                           value="http://localhost/hobbit-cgi/bbmessage.sh"/>
                </params>
                <script java_class="sos.stacks.hobbit.JobSchedulerHobbitMessageJob"
                        language="java"/>
                <run_time let_run="no"
                          repeat="300"/>
            </job>

            <job name="scheduler_rotate_log"
                 title="Rotate and compress log files">
                <description>
                    <include file="jobs/JobSchedulerRotateLog.xml"/>
                </description>
                <script language="java"
                        java_class="sos.scheduler.job.JobSchedulerRotateLog"/>
                <run_time let_run="yes"
                          begin="00:00"
                          end="24:00"/>
            </job>
        </jobs>


        <job_chains>
            <job_chain name="hobbit_messages"
                       orders_recoverable="yes"
                       visible="yes">
                <job_chain_node state="0"
                                job="hobbit_send_message"
                                next_state="100"
                                error_state="1000"/>
                <job_chain_node state="100"/>
                <job_chain_node state="1000"/>
            </job_chain>
        </job_chains>
    </config>
</spooler>
