Merge "Add Node.instance_info field"
This commit is contained in:
commit
213eb7a459
@ -297,6 +297,10 @@ class Node(base.APIBase):
|
|||||||
console_enabled = types.boolean
|
console_enabled = types.boolean
|
||||||
"Indicates whether the console access is enabled or disabled on the node."
|
"Indicates whether the console access is enabled or disabled on the node."
|
||||||
|
|
||||||
|
instance_info = {wtypes.text: types.MultiType(wtypes.text,
|
||||||
|
six.integer_types)}
|
||||||
|
"This node's instance info."
|
||||||
|
|
||||||
driver = wsme.wsattr(wtypes.text, mandatory=True)
|
driver = wsme.wsattr(wtypes.text, mandatory=True)
|
||||||
"The driver responsible for controlling the node"
|
"The driver responsible for controlling the node"
|
||||||
|
|
||||||
@ -377,7 +381,7 @@ class Node(base.APIBase):
|
|||||||
reservation=None, driver='fake', driver_info={}, extra={},
|
reservation=None, driver='fake', driver_info={}, extra={},
|
||||||
properties={'memory_mb': '1024', 'local_gb': '10',
|
properties={'memory_mb': '1024', 'local_gb': '10',
|
||||||
'cpus': '1'}, updated_at=time, created_at=time,
|
'cpus': '1'}, updated_at=time, created_at=time,
|
||||||
provision_updated_at=time)
|
provision_updated_at=time, instance_info={})
|
||||||
# NOTE(matty_dubs): The chassis_uuid getter() is based on the
|
# NOTE(matty_dubs): The chassis_uuid getter() is based on the
|
||||||
# _chassis_uuid variable:
|
# _chassis_uuid variable:
|
||||||
sample._chassis_uuid = 'edcad704-b2da-41d5-96d9-afd580ecfa12'
|
sample._chassis_uuid = 'edcad704-b2da-41d5-96d9-afd580ecfa12'
|
||||||
|
@ -0,0 +1,40 @@
|
|||||||
|
# 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 Node instance info
|
||||||
|
|
||||||
|
Revision ID: 31baaf680d2b
|
||||||
|
Revises: 3cb628139ea4
|
||||||
|
Create Date: 2014-03-05 21:09:32.372463
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = '31baaf680d2b'
|
||||||
|
down_revision = '3cb628139ea4'
|
||||||
|
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.add_column('nodes', sa.Column('instance_info',
|
||||||
|
sa.Text(),
|
||||||
|
nullable=True))
|
||||||
|
### end Alembic commands ###
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.drop_column('nodes', 'instance_info')
|
||||||
|
### end Alembic commands ###
|
@ -149,6 +149,7 @@ class Node(Base):
|
|||||||
target_provision_state = Column(String(15), nullable=True)
|
target_provision_state = Column(String(15), nullable=True)
|
||||||
provision_updated_at = Column(DateTime, nullable=True)
|
provision_updated_at = Column(DateTime, nullable=True)
|
||||||
last_error = Column(Text, nullable=True)
|
last_error = Column(Text, nullable=True)
|
||||||
|
instance_info = Column(JSONEncodedDict)
|
||||||
properties = Column(JSONEncodedDict)
|
properties = Column(JSONEncodedDict)
|
||||||
driver = Column(String(15))
|
driver = Column(String(15))
|
||||||
driver_info = Column(JSONEncodedDict)
|
driver_info = Column(JSONEncodedDict)
|
||||||
|
@ -20,6 +20,9 @@ from ironic.objects import utils
|
|||||||
|
|
||||||
class Node(base.IronicObject):
|
class Node(base.IronicObject):
|
||||||
|
|
||||||
|
# Version 1.1: Added instance_info
|
||||||
|
version = '1.1'
|
||||||
|
|
||||||
dbapi = db_api.get_instance()
|
dbapi = db_api.get_instance()
|
||||||
|
|
||||||
fields = {
|
fields = {
|
||||||
@ -32,6 +35,7 @@ class Node(base.IronicObject):
|
|||||||
'driver': utils.str_or_none,
|
'driver': utils.str_or_none,
|
||||||
'driver_info': utils.dict_or_none,
|
'driver_info': utils.dict_or_none,
|
||||||
|
|
||||||
|
'instance_info': utils.dict_or_none,
|
||||||
'properties': utils.dict_or_none,
|
'properties': utils.dict_or_none,
|
||||||
'reservation': utils.str_or_none,
|
'reservation': utils.str_or_none,
|
||||||
|
|
||||||
|
@ -512,3 +512,10 @@ class TestMigrations(BaseMigrationTestCase, WalkVersionsMixin):
|
|||||||
sqlalchemy.types.Boolean) or
|
sqlalchemy.types.Boolean) or
|
||||||
isinstance(nodes.c.console_enabled.type,
|
isinstance(nodes.c.console_enabled.type,
|
||||||
sqlalchemy.types.Integer))
|
sqlalchemy.types.Integer))
|
||||||
|
|
||||||
|
def _check_31baaf680d2b(self, engine, data):
|
||||||
|
nodes = db_utils.get_table(engine, 'nodes')
|
||||||
|
col_names = [column.name for column in nodes.c]
|
||||||
|
self.assertIn('instance_info', col_names)
|
||||||
|
self.assertIsInstance(nodes.c.instance_info.type,
|
||||||
|
sqlalchemy.types.TEXT)
|
||||||
|
@ -85,6 +85,7 @@ def get_test_node(**kw):
|
|||||||
'provision_updated_at': kw.get('provision_updated_at'),
|
'provision_updated_at': kw.get('provision_updated_at'),
|
||||||
'last_error': kw.get('last_error'),
|
'last_error': kw.get('last_error'),
|
||||||
'instance_uuid': kw.get('instance_uuid'),
|
'instance_uuid': kw.get('instance_uuid'),
|
||||||
|
'instance_info': kw.get('instance_info', fake_info),
|
||||||
'driver': kw.get('driver', 'fake'),
|
'driver': kw.get('driver', 'fake'),
|
||||||
'driver_info': kw.get('driver_info', fake_info),
|
'driver_info': kw.get('driver_info', fake_info),
|
||||||
'properties': kw.get('properties', properties),
|
'properties': kw.get('properties', properties),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user