From: Michael Tremer Date: Wed, 12 Oct 2022 14:24:46 +0000 (+0000) Subject: distros: Implement creating new distros X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8dc57b8fd3206afb95da841df447a2ca13d7fd4b;p=pbs.git distros: Implement creating new distros Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/distribution.py b/src/buildservice/distribution.py index 13417199..d48410f0 100644 --- a/src/buildservice/distribution.py +++ b/src/buildservice/distribution.py @@ -4,6 +4,7 @@ import logging import pakfire from . import base +from . import misc from . import packages from . import sources from .decorators import * @@ -37,6 +38,23 @@ class Distributions(base.Object): return self._get_distribution("SELECT * FROM distributions \ WHERE slug = %s AND deleted IS FALSE", slug) + def create(self, name, tag): + slug = misc.normalize(name) + + # Insert into the database + return self._get_distribution(""" + INSERT INTO + distributions( + name, slug, tag + ) + VALUES( + %s, %s, %s + ) + RETURNING + *""", + name, slug, tag, + ) + class Distribution(base.DataObject): table = "distributions" diff --git a/src/database.sql b/src/database.sql index 74920049..9e5eb7a5 100644 --- a/src/database.sql +++ b/src/database.sql @@ -341,10 +341,10 @@ CREATE TABLE public.distributions ( id integer NOT NULL, name text NOT NULL, slug text NOT NULL, - slogan text NOT NULL, - description text, - vendor text NOT NULL, - contact text, + slogan text DEFAULT ''::text NOT NULL, + description text DEFAULT ''::text NOT NULL, + vendor text DEFAULT ''::text NOT NULL, + contact text DEFAULT ''::text NOT NULL, tag text NOT NULL, deleted boolean DEFAULT false NOT NULL, arches text[] DEFAULT ARRAY[]::text[] NOT NULL,