From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id E94DA158041 for ; Sun, 3 Mar 2024 07:53:48 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 41D99E29DA; Sun, 3 Mar 2024 07:53:48 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 1B7D6E29DA for ; Sun, 3 Mar 2024 07:53:48 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 1EBED33BDFF for ; Sun, 3 Mar 2024 07:53:47 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id AEDCC1049 for ; Sun, 3 Mar 2024 07:53:45 +0000 (UTC) From: "Magnus Granberg" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Magnus Granberg" Message-ID: <1709452409.d8186f7796fbd57c68beafeb53978d3a2d20fc23.zorry@gentoo> Subject: [gentoo-commits] proj/tinderbox-cluster:master commit in: sql/, buildbot_gentoo_ci/steps/, buildbot_gentoo_ci/db/ X-VCS-Repository: proj/tinderbox-cluster X-VCS-Files: buildbot_gentoo_ci/db/model.py buildbot_gentoo_ci/db/projects.py buildbot_gentoo_ci/steps/logs.py sql/gentoo_ci_schema.sql X-VCS-Directories: buildbot_gentoo_ci/steps/ buildbot_gentoo_ci/db/ sql/ X-VCS-Committer: zorry X-VCS-Committer-Name: Magnus Granberg X-VCS-Revision: d8186f7796fbd57c68beafeb53978d3a2d20fc23 X-VCS-Branch: master Date: Sun, 3 Mar 2024 07:53:45 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 8fd0bc66-f2ed-4a7c-95fd-fff5d2d6c0b1 X-Archives-Hash: fbc061595892c567b0811acb05c766d3 commit: d8186f7796fbd57c68beafeb53978d3a2d20fc23 Author: Magnus Granberg gentoo org> AuthorDate: Sun Mar 3 07:53:29 2024 +0000 Commit: Magnus Granberg gentoo org> CommitDate: Sun Mar 3 07:53:29 2024 +0000 URL: https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=d8186f77 Add bugsettings to project Signed-off-by: Magnus Granberg gentoo.org> buildbot_gentoo_ci/db/model.py | 13 +++++++ buildbot_gentoo_ci/db/projects.py | 41 +++++++++++++++++++++- buildbot_gentoo_ci/steps/logs.py | 8 ++++- sql/gentoo_ci_schema.sql | 71 ++++++++++++++++++++++++++++++++++++++- 4 files changed, 130 insertions(+), 3 deletions(-) diff --git a/buildbot_gentoo_ci/db/model.py b/buildbot_gentoo_ci/db/model.py index dea3e15..448e67f 100644 --- a/buildbot_gentoo_ci/db/model.py +++ b/buildbot_gentoo_ci/db/model.py @@ -152,6 +152,18 @@ class Model(base.DBConnectorComponent): nullable=False), ) + # projects bugs settings + projects_bugs = sautils.Table( + "projects_bugs", metadata, + sa.Column('id', sa.Integer, primary_key=True), + sa.Column('project_uuid', sa.String(36), + sa.ForeignKey('projects.uuid', ondelete='CASCADE'), + nullable=False), + sa.Column('enabled', sa.Boolean, default=False), + sa.Column('auto_assigne', sa.Boolean, default=False), + sa.Column('extra_summery', sa.String(255), nullable=False), + ) + # What repository's use by projects projects_repositorys = sautils.Table( "projects_repositorys", metadata, @@ -167,6 +179,7 @@ class Model(base.DBConnectorComponent): sa.Column('build', sa.Boolean, default=False), sa.Column('test', sa.Boolean, default=False), sa.Column('test_mr', sa.Boolean, default=False), + sa.Column('bug', sa.Boolean, default=False), ) # projects etc/portage settings diff --git a/buildbot_gentoo_ci/db/projects.py b/buildbot_gentoo_ci/db/projects.py index 7ffac97..23cabde 100644 --- a/buildbot_gentoo_ci/db/projects.py +++ b/buildbot_gentoo_ci/db/projects.py @@ -79,6 +79,21 @@ class ProjectsConnectorComponent(base.DBConnectorComponent): res = yield self.db.pool.do(thd) return res + @defer.inlineCallbacks + def getRepositorySettingByProjUuidAndRepoUuid(self, project_uuid, repository_uuid): + def thd(conn): + tbl = self.db.model.projects_repositorys + q = tbl.select() + q = q.where(tbl.c.project_uuid == project_uuid) + q = q.where(tbl.c.repository_uuid == repository_uuid) + res = conn.execute(q) + row = res.fetchone() + if not row: + return None + return self._row2dict_projects_repositorys(conn, row) + res = yield self.db.pool.do(thd) + return res + @defer.inlineCallbacks def getRepositorysByProjectUuid(self, uuid, auto=True): def thd(conn): @@ -212,6 +227,20 @@ class ProjectsConnectorComponent(base.DBConnectorComponent): res = yield self.db.pool.do(thd) return res + @defer.inlineCallbacks + def getBugsSettingsByProjectUuid(self, uuid): + def thd(conn): + tbl = self.db.model.projects_bugs + q = tbl.select() + q = q.where(tbl.c.project_uuid == uuid) + res = conn.execute(q) + row = res.fetchone() + if not row: + return None + return self._row2dict_projects_bugs(conn, row) + res = yield self.db.pool.do(thd) + return res + def _row2dict(self, conn, row): return dict( uuid=row.uuid, @@ -243,7 +272,8 @@ class ProjectsConnectorComponent(base.DBConnectorComponent): pkgcheck=pkgcheck, build=row.build, test=row.test, - test_mr=row.test_mr + test_mr=row.test_mr, + bug=row.bug ) def _row2dict_projects_workers(self, conn, row): @@ -312,3 +342,12 @@ class ProjectsConnectorComponent(base.DBConnectorComponent): status=row.status, type=row.type ) + + def _row2dict_projects_bugs(self, conn, row): + return dict( + id=row.id, + project_uuid=row.project_uuid, + enabled=row.enabled, + auto_assigne=row.auto_assigne, + extra_summery=row.extra_summery + ) diff --git a/buildbot_gentoo_ci/steps/logs.py b/buildbot_gentoo_ci/steps/logs.py index 34aee29..84f5058 100644 --- a/buildbot_gentoo_ci/steps/logs.py +++ b/buildbot_gentoo_ci/steps/logs.py @@ -494,8 +494,14 @@ class SetupBugReportSteps(BuildStep): def run(self): self.gentooci = self.master.namedServices['services'].namedServices['gentooci'] bug_config = self.gentooci.config.project['bug_config'] + bug_settings_data = yield self.gentooci.db.projects.getBugsSettingsByProjectUuid(self.getProperty("project_data")['uuid']) + project_repository_settings = yield self.gentooci.db.projects.getRepositorySettingByProjUuidAndRepoUuid(self.getProperty("project_data")['uuid'], self.getProperty('repository_data')['uuid']) # add bug enable profile and repo + make_bugreport = False if bug_config['enable'] and self.getProperty('status') == 'failed' and self.getProperty('error_dict')['title_found'] and not self.getProperty('bgo'): + if bug_settings_data['enable'] and project_repository_settings['bug']: + make_bugreport = True + if make_bugreport: aftersteps_list = [] #Post p = Properties() @@ -506,7 +512,7 @@ class SetupBugReportSteps(BuildStep): bug_args['user'] = bug_config['user'] bug_args['passwd'] = yield p.render(util.Secret("bugs_password")) bug_params = {} - title = separator.join([bug_config['extra_summery'], self.getProperty('error_dict')['cpv'], self.getProperty('error_dict')['title_nice']]) + title = separator.join([bug_config['extra_summery'], bug_settings_data['extra_summery'], self.getProperty('error_dict')['cpv'], self.getProperty('error_dict')['title_nice']]) # bug title max 170 if len(title) >= 170: title = title[:167] + '...' diff --git a/sql/gentoo_ci_schema.sql b/sql/gentoo_ci_schema.sql index 1a4284f..133b98a 100644 --- a/sql/gentoo_ci_schema.sql +++ b/sql/gentoo_ci_schema.sql @@ -503,6 +503,43 @@ CREATE TABLE public.projects ( ALTER TABLE public.projects OWNER TO buildbot; +-- +-- Name: projects_bugs; Type: TABLE; Schema: public; Owner: buildbot +-- + +CREATE TABLE public.projects_bugs ( + id integer NOT NULL, + project_uuid character varying(36), + enabled boolean, + auto_assigne boolean, + extra_summery character varying(255) +); + + +ALTER TABLE public.projects_bugs OWNER TO buildbot; + +-- +-- Name: projects_bugs_id_seq; Type: SEQUENCE; Schema: public; Owner: buildbot +-- + +CREATE SEQUENCE public.projects_bugs_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE public.projects_bugs_id_seq OWNER TO buildbot; + +-- +-- Name: projects_builds_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: buildbot +-- + +ALTER SEQUENCE public.projects_bugs_id_seq OWNED BY public.projects_bugs.id; + + -- -- Name: projects_builds; Type: TABLE; Schema: public; Owner: buildbot -- @@ -760,7 +797,8 @@ CREATE TABLE public.projects_repositorys ( pkgcheck public.projects_repositorys_pkgcheck, build boolean, test boolean, - test_mr boolean + test_mr boolean, + bug boolean ); @@ -1031,6 +1069,13 @@ ALTER TABLE public.workers_images OWNER TO buildbot; ALTER TABLE ONLY public.portages_makeconf ALTER COLUMN id SET DEFAULT nextval('public.portages_makeconf_id_seq'::regclass); +-- +-- Name: projects_bugs id; Type: DEFAULT; Schema: public; Owner: buildbot +-- + +ALTER TABLE ONLY public.projects_bugs ALTER COLUMN id SET DEFAULT nextval('public.projects_bugs_id_seq'::regclass); + + -- -- Name: projects_builds id; Type: DEFAULT; Schema: public; Owner: buildbot -- @@ -1206,6 +1251,22 @@ ALTER TABLE ONLY public.portages_makeconf ADD CONSTRAINT portages_makeconf_unique UNIQUE (id); +-- +-- Name: projects_builds projects_bugs_pkey; Type: CONSTRAINT; Schema: public; Owner: buildbot +-- + +ALTER TABLE ONLY public.projects_bugs + ADD CONSTRAINT projects_bugs_pkey PRIMARY KEY (id); + + +-- +-- Name: projects_builds projects_bugs_unique; Type: CONSTRAINT; Schema: public; Owner: buildbot +-- + +ALTER TABLE ONLY public.projects_bugs + ADD CONSTRAINT projects_bugs_unique UNIQUE (id); + + -- -- Name: projects_builds projects_builds_pkey; Type: CONSTRAINT; Schema: public; Owner: buildbot -- @@ -1558,6 +1619,14 @@ ALTER TABLE ONLY public.projects_portages_package ADD CONSTRAINT project_portage_package_pkey FOREIGN KEY (project_uuid) REFERENCES public.projects(uuid) NOT VALID; +-- +-- Name: projects_bugs projects_fkey; Type: FK CONSTRAINT; Schema: public; Owner: buildbot +-- + +ALTER TABLE ONLY public.projects_bugs + ADD CONSTRAINT projects_fkey FOREIGN KEY (project_uuid) REFERENCES public.projects(uuid) NOT VALID; + + -- -- Name: projects_builds projects_fkey; Type: FK CONSTRAINT; Schema: public; Owner: buildbot --