]> git.ipfire.org Git - pbs.git/commitdiff
builds: Move bugs into builds table
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 28 Jun 2022 15:45:36 +0000 (15:45 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 28 Jun 2022 15:45:36 +0000 (15:45 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/builds.py
src/database.sql

index e4089f83c9ccae895b07ae1477d5178b213d7784..51e62626b11492ea1c8c4caaaf866e1905d6c508 100644 (file)
@@ -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):
                """
index 331d14411d93a7d1e22f61631445c205ae724b2a..f45fad991bcc87db677e0f594604e6db06d62324 100644 (file)
@@ -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
 --