Add ref_url column to the buildset reporter table

This change adds a ref_url column to the zuul_buildset sql table to be able
to render change/ref url when querying buildset.

Change-Id: I91a9a3e5e3b362885e36fa0993b07c750adc69d3
This commit is contained in:
Tristan Cacqueray 2017-09-12 23:09:34 +00:00
parent 175a2fdf77
commit 305a21586b
4 changed files with 43 additions and 1 deletions

View File

@ -69,7 +69,7 @@ class TestSQLConnection(ZuulDBTestCase):
insp = sa.engine.reflection.Inspector( insp = sa.engine.reflection.Inspector(
self.connections.connections['resultsdb'].engine) self.connections.connections['resultsdb'].engine)
self.assertEqual(10, len(insp.get_columns(buildset_table))) self.assertEqual(11, len(insp.get_columns(buildset_table)))
self.assertEqual(10, len(insp.get_columns(build_table))) self.assertEqual(10, len(insp.get_columns(build_table)))
def test_sql_results(self): def test_sql_results(self):
@ -109,6 +109,8 @@ class TestSQLConnection(ZuulDBTestCase):
self.assertEqual('SUCCESS', buildset0['result']) self.assertEqual('SUCCESS', buildset0['result'])
self.assertEqual('Build succeeded.', buildset0['message']) self.assertEqual('Build succeeded.', buildset0['message'])
self.assertEqual('tenant-one', buildset0['tenant']) self.assertEqual('tenant-one', buildset0['tenant'])
self.assertEqual('https://hostname/%d' % buildset0['change'],
buildset0['ref_url'])
buildset0_builds = conn.execute( buildset0_builds = conn.execute(
sa.sql.select([reporter.connection.zuul_build_table]). sa.sql.select([reporter.connection.zuul_build_table]).

View File

@ -0,0 +1,38 @@
# Copyright 2017 Red Hat, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""Add ref_url column
Revision ID: 5efb477fa963
Revises: 60c119eb1e3f
Create Date: 2017-09-12 22:50:29.307695
"""
# revision identifiers, used by Alembic.
revision = '5efb477fa963'
down_revision = '60c119eb1e3f'
branch_labels = None
depends_on = None
from alembic import op
import sqlalchemy as sa
def upgrade():
op.add_column('zuul_buildset', sa.Column('ref_url', sa.String(255)))
def downgrade():
op.drop_column('zuul_buildset', 'ref_url')

View File

@ -91,6 +91,7 @@ class SQLConnection(BaseConnection):
sa.Column('change', sa.Integer, nullable=True), sa.Column('change', sa.Integer, nullable=True),
sa.Column('patchset', sa.Integer, nullable=True), sa.Column('patchset', sa.Integer, nullable=True),
sa.Column('ref', sa.String(255)), sa.Column('ref', sa.String(255)),
sa.Column('ref_url', sa.String(255)),
sa.Column('result', sa.String(255)), sa.Column('result', sa.String(255)),
sa.Column('message', sa.TEXT()), sa.Column('message', sa.TEXT()),
sa.Column('tenant', sa.String(255)), sa.Column('tenant', sa.String(255)),

View File

@ -43,6 +43,7 @@ class SQLReporter(BaseReporter):
change=change, change=change,
patchset=patchset, patchset=patchset,
ref=ref, ref=ref,
ref_url=item.change.url,
result=item.current_build_set.result, result=item.current_build_set.result,
message=self._formatItemReport( message=self._formatItemReport(
item, with_jobs=False), item, with_jobs=False),