]> git.ipfire.org Git - pbs.git/commitdiff
distributions: Refactor
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 21 Jun 2022 13:03:21 +0000 (13:03 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 21 Jun 2022 13:03:21 +0000 (13:03 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/distribution.py
src/database.sql

index 7d84794318b95d511e613bdf2f2220c98f7833fb..1085bac43e041dec6d4f3669d37d40cd33a32334 100644 (file)
@@ -2,9 +2,7 @@
 
 import logging
 
-from . import arches
 from . import base
-from . import builds
 from . import packages
 from . import sources
 
@@ -53,9 +51,6 @@ class Distribution(base.DataObject):
        def __repr__(self):
                return "<%s %s>" % (self.__class__.__name__, self.name)
 
-       def __iter__(self):
-               return iter(self.repositories)
-
        @property
        def info(self):
                return {
@@ -94,30 +89,23 @@ class Distribution(base.DataObject):
        def sname(self):
                return self.data.sname
 
-       @property
-       def identifier(self):
-               return self.sname
-
        @property
        def slogan(self):
                return self.data.slogan
 
-       def get_arches(self):
-               res = self.db.query("SELECT arch FROM distributions_arches \
-                       WHERE distro_id = %s ORDER BY arch", self.id)
-
-               return sorted((row.arch for row in res), key=arches.priority)
+       @property
+       def description(self):
+               return self.data.description
 
-       def set_arches(self, arches):
-               self.db.execute("DELETE FROM distro_arches WHERE distro_id = %s", self.id)
+       # Arches
 
-               for arch in arches:
-                       self.db.execute("INSERT INTO distro_arches(distro_id, arch) \
-                               VALUES(%s, %s)", self.id, arch)
+       def get_arches(self):
+               return self.data.arches
 
-               self.arches = sorted(arches)
+       def set_arches(self, arches):
+               self._set_attribute("arches", arches)
 
-       arches = lazy_property(get_arches, set_arches)
+       arches = property(get_arches, set_arches)
 
        @property
        def vendor(self):
@@ -139,10 +127,6 @@ class Distribution(base.DataObject):
 
        tag = property(get_tag, set_tag)
 
-       @property
-       def description(self):
-               return self.data.description or ""
-
        @lazy_property
        def repositories(self):
                _repositories = self.backend.repos._get_repositories("SELECT * FROM repositories \
index 232dc9305f012004affb3f349028341f2bb5fe09..3a4704b4b14497468307504c94086077f32d66c1 100644 (file)
@@ -435,25 +435,14 @@ CREATE TABLE public.distributions (
     vendor text NOT NULL,
     contact text,
     tag text NOT NULL,
-    deleted boolean DEFAULT false NOT NULL
+    deleted boolean DEFAULT false NOT NULL,
+    arches text[] DEFAULT ARRAY[]::text[] NOT NULL,
+    created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
 );
 
 
 ALTER TABLE public.distributions OWNER TO pakfire;
 
---
--- Name: distributions_arches; Type: TABLE; Schema: public; Owner: pakfire
---
-
-CREATE TABLE public.distributions_arches (
-    id integer NOT NULL,
-    distro_id integer NOT NULL,
-    arch text NOT NULL
-);
-
-
-ALTER TABLE public.distributions_arches OWNER TO pakfire;
-
 --
 -- Name: distributions_id_seq; Type: SEQUENCE; Schema: public; Owner: pakfire
 --
@@ -475,27 +464,6 @@ ALTER TABLE public.distributions_id_seq OWNER TO pakfire;
 ALTER SEQUENCE public.distributions_id_seq OWNED BY public.distributions.id;
 
 
---
--- Name: distro_arches_id_seq; Type: SEQUENCE; Schema: public; Owner: pakfire
---
-
-CREATE SEQUENCE public.distro_arches_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.distro_arches_id_seq OWNER TO pakfire;
-
---
--- Name: distro_arches_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pakfire
---
-
-ALTER SEQUENCE public.distro_arches_id_seq OWNED BY public.distributions_arches.id;
-
-
 --
 -- Name: filelists; Type: TABLE; Schema: public; Owner: pakfire
 --
@@ -1615,13 +1583,6 @@ ALTER TABLE ONLY public.builds_watchers ALTER COLUMN id SET DEFAULT nextval('pub
 ALTER TABLE ONLY public.distributions ALTER COLUMN id SET DEFAULT nextval('public.distributions_id_seq'::regclass);
 
 
---
--- Name: distributions_arches id; Type: DEFAULT; Schema: public; Owner: pakfire
---
-
-ALTER TABLE ONLY public.distributions_arches ALTER COLUMN id SET DEFAULT nextval('public.distro_arches_id_seq'::regclass);
-
-
 --
 -- Name: images_types id; Type: DEFAULT; Schema: public; Owner: pakfire
 --
@@ -1791,6 +1752,14 @@ ALTER TABLE ONLY public.arches
     ADD CONSTRAINT arches_name UNIQUE (name);
 
 
+--
+-- Name: distributions distributions_pkey; Type: CONSTRAINT; Schema: public; Owner: pakfire
+--
+
+ALTER TABLE ONLY public.distributions
+    ADD CONSTRAINT distributions_pkey PRIMARY KEY (id);
+
+
 --
 -- Name: arches idx_2197943_primary; Type: CONSTRAINT; Schema: public; Owner: pakfire
 --
@@ -1863,22 +1832,6 @@ ALTER TABLE ONLY public.builds_watchers
     ADD CONSTRAINT idx_2198033_primary PRIMARY KEY (id);
 
 
---
--- Name: distributions idx_2198039_primary; Type: CONSTRAINT; Schema: public; Owner: pakfire
---
-
-ALTER TABLE ONLY public.distributions
-    ADD CONSTRAINT idx_2198039_primary PRIMARY KEY (id);
-
-
---
--- Name: distributions_arches idx_2198048_primary; Type: CONSTRAINT; Schema: public; Owner: pakfire
---
-
-ALTER TABLE ONLY public.distributions_arches
-    ADD CONSTRAINT idx_2198048_primary PRIMARY KEY (id);
-
-
 --
 -- Name: images_types idx_2198057_primary; Type: CONSTRAINT; Schema: public; Owner: pakfire
 --
@@ -2109,13 +2062,6 @@ CREATE UNIQUE INDEX builders_name ON public.builders USING btree (name) WHERE (d
 CREATE INDEX builds_watchers_build_id ON public.builds_watchers USING btree (build_id);
 
 
---
--- Name: distributions_arches_distro_id; Type: INDEX; Schema: public; Owner: pakfire
---
-
-CREATE INDEX distributions_arches_distro_id ON public.distributions_arches USING btree (distro_id);
-
-
 --
 -- Name: distributions_sname; Type: INDEX; Schema: public; Owner: pakfire
 --
@@ -2514,22 +2460,6 @@ ALTER TABLE ONLY public.builds_watchers
     ADD CONSTRAINT builds_watchers_user_id FOREIGN KEY (user_id) REFERENCES public.users(id);
 
 
---
--- Name: distributions_arches distributions_arches_arch; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
---
-
-ALTER TABLE ONLY public.distributions_arches
-    ADD CONSTRAINT distributions_arches_arch FOREIGN KEY (arch) REFERENCES public.arches(name);
-
-
---
--- Name: distributions_arches distro_arches_distro_id; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
---
-
-ALTER TABLE ONLY public.distributions_arches
-    ADD CONSTRAINT distro_arches_distro_id FOREIGN KEY (distro_id) REFERENCES public.distributions(id);
-
-
 --
 -- Name: filelists filelists_pkg_id; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
 --