BIOS Settings: Add bios_interface db field

Add bios_interface DB field, database migration,
and object entry for node bios functionality.

Co-Authored-By: Yolanda Robla Mota <yroblamo@redhat.com>
Depends-On: I48c96d5da0cb747b3ca3fceea9b4ffa85a9ebe22
Change-Id: I3a4f92fa880deef6e7882819afbadde2aff06161
Partial-Bug: #1712032
This commit is contained in:
Zenghui Shi 2017-12-13 17:21:47 +08:00
parent 3ca9ec58f3
commit c7e938cd57
3 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,31 @@
# 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 bios interface
Revision ID: 2d13bc3d6bba
Revises: 82c315d60161
Create Date: 2017-09-27 14:42:42.107321
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = '2d13bc3d6bba'
down_revision = '82c315d60161'
def upgrade():
op.add_column('nodes', sa.Column('bios_interface',
sa.String(length=255), nullable=True))

View File

@ -170,6 +170,7 @@ class Node(Base):
inspection_started_at = Column(DateTime, nullable=True)
extra = Column(db_types.JsonEncodedDict)
bios_interface = Column(String(255), nullable=True)
boot_interface = Column(String(255), nullable=True)
console_interface = Column(String(255), nullable=True)
deploy_interface = Column(String(255), nullable=True)

View File

@ -705,6 +705,13 @@ class MigrationCheckersMixin(object):
bios_settings.c.name == setting['name'])).execute().first()
self.assertEqual('on', setting['value'])
def _check_2d13bc3d6bba(self, engine, data):
nodes = db_utils.get_table(engine, 'nodes')
col_names = [column.name for column in nodes.c]
self.assertIn('bios_interface', col_names)
self.assertIsInstance(nodes.c.bios_interface.type,
sqlalchemy.types.String)
def test_upgrade_and_version(self):
with patch_with_engine(self.engine):
self.migration_api.upgrade('head')