Browse Source

Add tenant column to the buildset reporter table

This change adds a tenant column to the zuul_buildset sql table to be able
to filter results based on tenant.

Change-Id: I4eec8e9a32883c54da953b7279e0f8a8c86b943b
changes/56/484256/2
Tristan Cacqueray 4 years ago
parent
commit
64675206ee
  1. 3
      tests/unit/test_connection.py
  2. 38
      zuul/driver/sql/alembic_reporter/versions/f86c9871ee67_add_tenant_column.py
  3. 1
      zuul/driver/sql/sqlconnection.py
  4. 1
      zuul/driver/sql/sqlreporter.py

3
tests/unit/test_connection.py

@ -69,7 +69,7 @@ class TestSQLConnection(ZuulDBTestCase):
insp = sa.engine.reflection.Inspector(
self.connections.connections['resultsdb'].engine)
self.assertEqual(9, len(insp.get_columns(buildset_table)))
self.assertEqual(10, len(insp.get_columns(buildset_table)))
self.assertEqual(10, len(insp.get_columns(build_table)))
def test_sql_results(self):
@ -108,6 +108,7 @@ class TestSQLConnection(ZuulDBTestCase):
self.assertEqual(1, buildset0['patchset'])
self.assertEqual(1, buildset0['score'])
self.assertEqual('Build succeeded.', buildset0['message'])
self.assertEqual('tenant-one', buildset0['tenant'])
buildset0_builds = conn.execute(
sa.sql.select([reporter.connection.zuul_build_table]).

38
zuul/driver/sql/alembic_reporter/versions/f86c9871ee67_add_tenant_column.py

@ -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 tenant column
Revision ID: f86c9871ee67
Revises: 20126015a87d
Create Date: 2017-07-17 05:47:48.189767
"""
# revision identifiers, used by Alembic.
revision = 'f86c9871ee67'
down_revision = '20126015a87d'
branch_labels = None
depends_on = None
from alembic import op
import sqlalchemy as sa
def upgrade():
op.add_column('zuul_buildset', sa.Column('tenant', sa.String(255)))
def downgrade():
op.drop_column('zuul_buildset', 'tenant')

1
zuul/driver/sql/sqlconnection.py

@ -85,6 +85,7 @@ class SQLConnection(BaseConnection):
sa.Column('ref', sa.String(255)),
sa.Column('score', sa.Integer, nullable=True),
sa.Column('message', sa.TEXT()),
sa.Column('tenant', sa.String(255)),
)
zuul_build_table = sa.Table(

1
zuul/driver/sql/sqlreporter.py

@ -52,6 +52,7 @@ class SQLReporter(BaseReporter):
score=self.result_score,
message=self._formatItemReport(
item, with_jobs=False),
tenant=item.pipeline.layout.tenant.name,
)
buildset_ins_result = conn.execute(buildset_ins)
build_inserts = []

Loading…
Cancel
Save