From ece616b08c9519cbe93a4356937afc6be04eb1df Mon Sep 17 00:00:00 2001 From: Jorrit Schaap <schaap@astron.nl> Date: Tue, 23 Oct 2018 13:45:01 +0000 Subject: [PATCH] SW-41: no special case for resource 117 anymore --- .../radb/sql/add_functions_and_triggers.sql | 64 ++++++++----------- 1 file changed, 28 insertions(+), 36 deletions(-) diff --git a/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/add_functions_and_triggers.sql b/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/add_functions_and_triggers.sql index 56504320b0c..9d4127f4ae7 100644 --- a/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/add_functions_and_triggers.sql +++ b/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/add_functions_and_triggers.sql @@ -896,9 +896,7 @@ BEGIN --update the resource usages affected by this claim --do this before we check for conflicts, because this claim might be shifted for example --which might influence the resource_usages which determine wheter a claim fits. - IF OLD.resource_id <> 117 THEN --20180903: skip checking of cep4 storage until JIRA SW-35 is solved. - PERFORM resource_allocation.process_old_claim_outof_resource_usages(OLD); - END IF; + PERFORM resource_allocation.process_old_claim_outof_resource_usages(OLD); END IF; --only check claim if status and/or claim_size and/or start/end time changed @@ -906,27 +904,25 @@ BEGIN OLD.claim_size <> NEW.claim_size OR OLD.starttime <> NEW.starttime OR OLD.endtime <> NEW.endtime)) THEN - IF NEW.resource_id <> 117 THEN --20180903: skip checking of cep4 storage until JIRA SW-35 is solved. - --check if claim fits or has conflicts - SELECT * FROM resource_allocation.has_conflict_with_overlapping_claims(NEW) INTO claim_has_conflicts; - - IF claim_has_conflicts THEN - IF NEW.status_id <> claim_conflict_status_id THEN - -- only set claims to conflict if task status <= queued - -- when a claim goes to conflict, then so does it's task, and we don't want that for running/finished/aborted tasks - IF EXISTS (SELECT 1 FROM resource_allocation.task - WHERE id=NEW.task_id - AND status_id = ANY(ARRAY[300, 335, 350, 400, 500])) THEN -- hardcoded tasks statuses <= queued - -- conflict with others, so set claim status to conflict - NEW.status_id := claim_conflict_status_id; - END IF; - END IF; - ELSE - -- no conflict (anymore) with others, so set claim status to tentative if currently in conflict - IF NEW.status_id = claim_conflict_status_id THEN - NEW.status_id := claim_tentative_status_id; + --check if claim fits or has conflicts + SELECT * FROM resource_allocation.has_conflict_with_overlapping_claims(NEW) INTO claim_has_conflicts; + + IF claim_has_conflicts THEN + IF NEW.status_id <> claim_conflict_status_id THEN + -- only set claims to conflict if task status <= queued + -- when a claim goes to conflict, then so does it's task, and we don't want that for running/finished/aborted tasks + IF EXISTS (SELECT 1 FROM resource_allocation.task + WHERE id=NEW.task_id + AND status_id = ANY(ARRAY[300, 335, 350, 400, 500])) THEN -- hardcoded tasks statuses <= queued + -- conflict with others, so set claim status to conflict + NEW.status_id := claim_conflict_status_id; END IF; END IF; + ELSE + -- no conflict (anymore) with others, so set claim status to tentative if currently in conflict + IF NEW.status_id = claim_conflict_status_id THEN + NEW.status_id := claim_tentative_status_id; + END IF; END IF; IF TG_OP = 'INSERT' OR TG_OP = 'UPDATE' THEN @@ -1002,14 +998,12 @@ BEGIN AND rc.endtime >= OLD.starttime AND rc.starttime < OLD.endtime LOOP - IF affected_claim.resource_id <> 117 THEN --20180903: skip checking of cep4 storage until JIRA SW-35 is solved. - --check if claim fits or has conflicts - SELECT * FROM resource_allocation.has_conflict_with_overlapping_claims(affected_claim) INTO claim_has_conflicts; + --check if claim fits or has conflicts + SELECT * FROM resource_allocation.has_conflict_with_overlapping_claims(affected_claim) INTO claim_has_conflicts; - IF NOT claim_has_conflicts THEN - -- no conflict (anymore) with others, so set claim status to tentative - UPDATE resource_allocation.resource_claim SET status_id=claim_tentative_status_id WHERE id = affected_claim.id; - END IF; + IF NOT claim_has_conflicts THEN + -- no conflict (anymore) with others, so set claim status to tentative + UPDATE resource_allocation.resource_claim SET status_id=claim_tentative_status_id WHERE id = affected_claim.id; END IF; END LOOP; END IF; @@ -1025,14 +1019,12 @@ BEGIN AND rc.endtime >= NEW.starttime AND rc.starttime < NEW.endtime LOOP - IF affected_claim.resource_id <> 117 THEN --20180903: skip checking of cep4 storage until JIRA SW-35 is solved. - --check if claim fits or has conflicts - SELECT * FROM resource_allocation.has_conflict_with_overlapping_claims(affected_claim) INTO claim_has_conflicts; + --check if claim fits or has conflicts + SELECT * FROM resource_allocation.has_conflict_with_overlapping_claims(affected_claim) INTO claim_has_conflicts; - IF claim_has_conflicts THEN - -- new conflict for affected_claim because this NEW claim is now claimed - UPDATE resource_allocation.resource_claim SET status_id=claim_conflict_status_id WHERE id = affected_claim.id; - END IF; + IF claim_has_conflicts THEN + -- new conflict for affected_claim because this NEW claim is now claimed + UPDATE resource_allocation.resource_claim SET status_id=claim_conflict_status_id WHERE id = affected_claim.id; END IF; END LOOP; END IF; -- GitLab