Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

64 lines (49 sloc) 2.261 kb
-- Tests for escalation
\set ON_ERROR_ROLLBACK 1
\set ON_ERROR_STOP true
SELECT set_config('search_path', 'jobmon, dblink, public', false);
SELECT plan(3);
UPDATE job_check_config SET escalate = 3 WHERE job_name = 'PG_JOBMON TEST WARNING JOB';
INSERT INTO job_status_text (alert_code, alert_text) SELECT max(alert_code+1), 'PG_JOBMON TEST ALERT LEVEL' FROM job_status_text;
INSERT INTO job_status_text (alert_code, alert_text) SELECT max(alert_code+1), 'PG_JOBMON TEST ALERT LEVEL' FROM job_status_text;
CREATE OR REPLACE FUNCTION jobmon_test_jobs_normal() RETURNS void
LANGUAGE plpgsql
AS $$
DECLARE
v_job_id bigint;
v_step_id bigint;
v_job_name text;
v_step_status boolean;
BEGIN
v_job_name := 'PG_JOBMON TEST WARNING JOB';
SELECT INTO v_job_id jobmon.add_job(v_job_name);
SELECT INTO v_step_id jobmon.add_step(v_job_id, 'Test step 1');
PERFORM jobmon.update_step(v_step_id, 'OK', 'Successful Step 1');
SELECT INTO v_step_id jobmon.add_step(v_job_id, 'Test step 2');
PERFORM jobmon.update_step(v_step_id, 'WARNING', 'Failed Step 2');
v_step_status := jobmon.sql_step(v_job_id, 'Test step 3', 'DELETE FROM tmp_test WHERE col3 = 0');
IF v_step_status = 'FALSE' THEN
RAISE NOTICE 'sql step failed as expected';
END IF;
PERFORM jobmon.fail_job(v_job_id, 2);
END
$$;
SELECT jobmon_test_jobs_normal();
SELECT jobmon_test_jobs_normal();
SELECT results_eq('SELECT max(alert_code) FROM job_check_log WHERE job_name = ''PG_JOBMON TEST WARNING JOB''',
ARRAY[3],
'Checking that alert_code got escalated properly');
SELECT jobmon_test_jobs_normal();
SELECT jobmon_test_jobs_normal();
SELECT jobmon_test_jobs_normal();
SELECT results_eq('SELECT max(alert_code) FROM job_check_log WHERE job_name = ''PG_JOBMON TEST WARNING JOB''',
ARRAY[4],
'Checking that alert_code got escalated properly again');
SELECT jobmon_test_jobs_normal();
SELECT jobmon_test_jobs_normal();
SELECT jobmon_test_jobs_normal();
SELECT jobmon_test_jobs_normal();
SELECT results_eq('SELECT max(alert_code) FROM job_check_log WHERE job_name = ''PG_JOBMON TEST WARNING JOB''',
ARRAY[5],
'Checking that alert_code got escalated properly again');
SELECT * FROM finish();
Jump to Line
Something went wrong with that request. Please try again.