Merge "Deploy steps - DB model"
This commit is contained in:
commit
936f4c206c
@ -0,0 +1,33 @@
|
|||||||
|
# All Rights Reserved.
|
||||||
|
#
|
||||||
|
# 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 deploy_step to node
|
||||||
|
|
||||||
|
Revision ID: b9117ac17882
|
||||||
|
Revises: fb3f10dd262e
|
||||||
|
Create Date: 2018-06-19 22:31:45.668156
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = 'b9117ac17882'
|
||||||
|
down_revision = 'fb3f10dd262e'
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
op.add_column('nodes', sa.Column('deploy_step', sa.Text(),
|
||||||
|
nullable=True))
|
@ -144,6 +144,7 @@ class Node(Base):
|
|||||||
driver_info = Column(db_types.JsonEncodedDict)
|
driver_info = Column(db_types.JsonEncodedDict)
|
||||||
driver_internal_info = Column(db_types.JsonEncodedDict)
|
driver_internal_info = Column(db_types.JsonEncodedDict)
|
||||||
clean_step = Column(db_types.JsonEncodedDict)
|
clean_step = Column(db_types.JsonEncodedDict)
|
||||||
|
deploy_step = Column(db_types.JsonEncodedDict)
|
||||||
resource_class = Column(String(80), nullable=True)
|
resource_class = Column(String(80), nullable=True)
|
||||||
|
|
||||||
raid_config = Column(db_types.JsonEncodedDict)
|
raid_config = Column(db_types.JsonEncodedDict)
|
||||||
|
@ -100,6 +100,9 @@ def node_post_data(**kw):
|
|||||||
node.pop('chassis_id')
|
node.pop('chassis_id')
|
||||||
node.pop('tags')
|
node.pop('tags')
|
||||||
node.pop('traits')
|
node.pop('traits')
|
||||||
|
# TODO(mgoddard): Remove this once the deploy_step field is supported in
|
||||||
|
# the API.
|
||||||
|
node.pop('deploy_step')
|
||||||
|
|
||||||
# NOTE(jroll): pop out fields that were introduced in later API versions,
|
# NOTE(jroll): pop out fields that were introduced in later API versions,
|
||||||
# unless explicitly requested. Otherwise, these will cause tests using
|
# unless explicitly requested. Otherwise, these will cause tests using
|
||||||
|
@ -719,6 +719,13 @@ class MigrationCheckersMixin(object):
|
|||||||
self.assertIsInstance(nodes_tbl.c.fault.type,
|
self.assertIsInstance(nodes_tbl.c.fault.type,
|
||||||
sqlalchemy.types.String)
|
sqlalchemy.types.String)
|
||||||
|
|
||||||
|
def _check_b9117ac17882(self, engine, data):
|
||||||
|
nodes = db_utils.get_table(engine, 'nodes')
|
||||||
|
col_names = [column.name for column in nodes.c]
|
||||||
|
self.assertIn('deploy_step', col_names)
|
||||||
|
self.assertIsInstance(nodes.c.deploy_step.type,
|
||||||
|
sqlalchemy.types.String)
|
||||||
|
|
||||||
def test_upgrade_and_version(self):
|
def test_upgrade_and_version(self):
|
||||||
with patch_with_engine(self.engine):
|
with patch_with_engine(self.engine):
|
||||||
self.migration_api.upgrade('head')
|
self.migration_api.upgrade('head')
|
||||||
|
@ -196,6 +196,7 @@ def get_test_node(**kw):
|
|||||||
'driver_internal_info': kw.get('driver_internal_info',
|
'driver_internal_info': kw.get('driver_internal_info',
|
||||||
fake_internal_info),
|
fake_internal_info),
|
||||||
'clean_step': kw.get('clean_step'),
|
'clean_step': kw.get('clean_step'),
|
||||||
|
'deploy_step': kw.get('deploy_step'),
|
||||||
'properties': kw.get('properties', properties),
|
'properties': kw.get('properties', properties),
|
||||||
'reservation': kw.get('reservation'),
|
'reservation': kw.get('reservation'),
|
||||||
'maintenance': kw.get('maintenance', False),
|
'maintenance': kw.get('maintenance', False),
|
||||||
|
Loading…
Reference in New Issue
Block a user