From: Michael Tremer Date: Tue, 28 Jun 2022 15:45:36 +0000 (+0000) Subject: builds: Move bugs into builds table X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=80182ae19043e9ec8eb66296fceb6d74f3c3db3f;p=pbs.git builds: Move bugs into builds table Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/builds.py b/src/buildservice/builds.py index e4089f83..51e62626 100644 --- a/src/buildservice/builds.py +++ b/src/buildservice/builds.py @@ -700,35 +700,15 @@ class Build(base.DataObject): ## Bugs def get_bug_ids(self): - query = self.db.query("SELECT bug_id FROM builds_bugs \ - WHERE build_id = %s", self.id) - - return [b.bug_id for b in query] - - def add_bug(self, bug_id, user=None, log=True): - # Check if this bug is already in the list of bugs. - if bug_id in self.get_bug_ids(): - return + return self.data.bug_ids - self.db.execute("INSERT INTO builds_bugs(build_id, bug_id) \ - VALUES(%s, %s)", self.id, bug_id) + def set_bug_ids(self, bug_ids): + self._set_attribute("bug_ids", bug_ids or []) - # Log the event. - if log: - self.log("bug_added", user=user, bug_id=bug_id) - - def rem_bug(self, bug_id, user=None, log=True): - self.db.execute("DELETE FROM builds_bugs WHERE build_id = %s AND \ - bug_id = %s", self.id, bug_id) - - # Log the event. - if log: - self.log("bug_removed", user=user, bug_id=bug_id) + bug_ids = property(get_bug_ids, set_bug_ids) async def get_bugs(self): - bugs = self.get_bug_ids() - - return await self.backend.bugzilla.get_bugs(bugs) + return await self.backend.bugzilla.get_bugs(self.bug_ids) def _update_bugs_helper(self, repo): """ diff --git a/src/database.sql b/src/database.sql index 331d1441..f45fad99 100644 --- a/src/database.sql +++ b/src/database.sql @@ -177,46 +177,13 @@ CREATE TABLE public.builds ( distro_id integer NOT NULL, owner_id integer, priority integer DEFAULT 0 NOT NULL, - deleted boolean DEFAULT false NOT NULL + deleted boolean DEFAULT false NOT NULL, + bug_ids integer[] DEFAULT ARRAY[]::integer[] NOT NULL ); ALTER TABLE public.builds OWNER TO pakfire; --- --- Name: builds_bugs; Type: TABLE; Schema: public; Owner: pakfire --- - -CREATE TABLE public.builds_bugs ( - id integer NOT NULL, - build_id integer NOT NULL, - bug_id integer NOT NULL -); - - -ALTER TABLE public.builds_bugs OWNER TO pakfire; - --- --- Name: builds_bugs_id_seq; Type: SEQUENCE; Schema: public; Owner: pakfire --- - -CREATE SEQUENCE public.builds_bugs_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER TABLE public.builds_bugs_id_seq OWNER TO pakfire; - --- --- Name: builds_bugs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pakfire --- - -ALTER SEQUENCE public.builds_bugs_id_seq OWNED BY public.builds_bugs.id; - - -- -- Name: builds_bugs_updates; Type: TABLE; Schema: public; Owner: pakfire -- @@ -1510,13 +1477,6 @@ ALTER TABLE ONLY public.builders_history ALTER COLUMN id SET DEFAULT nextval('pu ALTER TABLE ONLY public.builds ALTER COLUMN id SET DEFAULT nextval('public.builds_id_seq'::regclass); --- --- Name: builds_bugs id; Type: DEFAULT; Schema: public; Owner: pakfire --- - -ALTER TABLE ONLY public.builds_bugs ALTER COLUMN id SET DEFAULT nextval('public.builds_bugs_id_seq'::regclass); - - -- -- Name: builds_bugs_updates id; Type: DEFAULT; Schema: public; Owner: pakfire -- @@ -1738,14 +1698,6 @@ ALTER TABLE ONLY public.builds ADD CONSTRAINT idx_2197988_primary PRIMARY KEY (id); --- --- Name: builds_bugs idx_2198002_primary; Type: CONSTRAINT; Schema: public; Owner: pakfire --- - -ALTER TABLE ONLY public.builds_bugs - ADD CONSTRAINT idx_2198002_primary PRIMARY KEY (id); - - -- -- Name: builds_bugs_updates idx_2198008_primary; Type: CONSTRAINT; Schema: public; Owner: pakfire -- @@ -2058,13 +2010,6 @@ CREATE INDEX idx_2197988_type ON public.builds USING btree (type); CREATE UNIQUE INDEX idx_2197988_uuid ON public.builds USING btree (uuid); --- --- Name: idx_2198002_build_id; Type: INDEX; Schema: public; Owner: pakfire --- - -CREATE UNIQUE INDEX idx_2198002_build_id ON public.builds_bugs USING btree (build_id, bug_id); - - -- -- Name: idx_2198018_build_id; Type: INDEX; Schema: public; Owner: pakfire -- @@ -2317,14 +2262,6 @@ ALTER TABLE ONLY public.builders_history ADD CONSTRAINT builders_history_user_id FOREIGN KEY (user_id) REFERENCES public.users(id); --- --- Name: builds_bugs builds_bug_build_id; Type: FK CONSTRAINT; Schema: public; Owner: pakfire --- - -ALTER TABLE ONLY public.builds_bugs - ADD CONSTRAINT builds_bug_build_id FOREIGN KEY (build_id) REFERENCES public.builds(id); - - -- -- Name: builds_comments builds_comments_build_id; Type: FK CONSTRAINT; Schema: public; Owner: pakfire --