diff --git a/deploy/db/tinkerbell-init.sql b/deploy/db/tinkerbell-init.sql index a4b359add..a438c9b4b 100644 --- a/deploy/db/tinkerbell-init.sql +++ b/deploy/db/tinkerbell-init.sql @@ -75,8 +75,10 @@ CREATE TABLE IF NOT EXISTS workflow_data ( , data JSONB ); +CREATE EXTENSION "uuid-ossp"; + CREATE TABLE IF NOT EXISTS events ( - id UUID UNIQUE NOT NULL + id UUID UNIQUE DEFAULT uuid_generate_v4() , resource_id UUID NOT NULL , resource_type int NOT NULL , event_type int NOT NULL @@ -100,3 +102,17 @@ $$ LANGUAGE plpgsql; CREATE TRIGGER events_channel AFTER INSERT ON events FOR EACH ROW EXECUTE PROCEDURE events_notify_changes() + +CREATE OR REPLACE FUNCTION insert_event() +RETURNS trigger AS $trigger1$ +BEGIN + IF (TG_OP = 'INSERT') THEN + INSERT INTO events(resource_id, resource_type, event_type, data) VALUES (new.workflow_id, 2, 0, new.action_list); + RETURN NEW; + END IF; +END; +$trigger1$ LANGUAGE plpgsql; + +CREATE TRIGGER workflow_trigger +AFTER INSERT ON workflow_state +FOR EACH ROW EXECUTE PROCEDURE insert_event()