Allow long error messages for nodes
Change type of error message attribute for nodes from a 255 character long string, i.e., sa.String(255) to a text of variable lenght -- sa.Text. Change-Id: I5d1d83458d961302d4696ee5089197eacc420688 Closes-bug: #1578245
This commit is contained in:
parent
b36d190765
commit
78e45f1c03
|
@ -37,6 +37,7 @@ def upgrade():
|
||||||
upgrade_transaction_names()
|
upgrade_transaction_names()
|
||||||
upgrade_clusters_replaced_info_wrong_default()
|
upgrade_clusters_replaced_info_wrong_default()
|
||||||
upgrade_tasks_snapshot()
|
upgrade_tasks_snapshot()
|
||||||
|
upgrade_node_error_msg_to_allow_long_error_msg()
|
||||||
|
|
||||||
|
|
||||||
def downgrade():
|
def downgrade():
|
||||||
|
@ -44,6 +45,7 @@ def downgrade():
|
||||||
downgrade_clusters_replaced_info_wrong_default()
|
downgrade_clusters_replaced_info_wrong_default()
|
||||||
downgrade_transaction_names()
|
downgrade_transaction_names()
|
||||||
downgrade_deployment_history()
|
downgrade_deployment_history()
|
||||||
|
downgrade_node_error_msg_to_allow_long_error_msg()
|
||||||
|
|
||||||
|
|
||||||
def upgrade_deployment_history():
|
def upgrade_deployment_history():
|
||||||
|
@ -143,6 +145,12 @@ def upgrade_transaction_names():
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade_node_error_msg_to_allow_long_error_msg():
|
||||||
|
op.alter_column(table_name='nodes',
|
||||||
|
column_name='error_msg',
|
||||||
|
type_=sa.Text)
|
||||||
|
|
||||||
|
|
||||||
def downgrade_transaction_names():
|
def downgrade_transaction_names():
|
||||||
upgrade_enum(
|
upgrade_enum(
|
||||||
'tasks',
|
'tasks',
|
||||||
|
@ -151,3 +159,13 @@ def downgrade_transaction_names():
|
||||||
transaction_names_new,
|
transaction_names_new,
|
||||||
transaction_names_old
|
transaction_names_old
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade_node_error_msg_to_allow_long_error_msg():
|
||||||
|
connection = op.get_bind()
|
||||||
|
connection.execute(sa.text('''
|
||||||
|
UPDATE nodes SET error_msg = substring(error_msg for 255);
|
||||||
|
'''))
|
||||||
|
op.alter_column(table_name='nodes',
|
||||||
|
column_name='error_msg',
|
||||||
|
type_=sa.String(255))
|
||||||
|
|
|
@ -90,7 +90,7 @@ class Node(Base):
|
||||||
pending_deletion = Column(Boolean, default=False)
|
pending_deletion = Column(Boolean, default=False)
|
||||||
changes = relationship("ClusterChanges", backref="node")
|
changes = relationship("ClusterChanges", backref="node")
|
||||||
error_type = Column(Enum(*consts.NODE_ERRORS, name='node_error_type'))
|
error_type = Column(Enum(*consts.NODE_ERRORS, name='node_error_type'))
|
||||||
error_msg = Column(String(255))
|
error_msg = Column(Text)
|
||||||
timestamp = Column(DateTime, nullable=False)
|
timestamp = Column(DateTime, nullable=False)
|
||||||
online = Column(Boolean, default=True)
|
online = Column(Boolean, default=True)
|
||||||
labels = Column(
|
labels = Column(
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
|
||||||
import alembic
|
import alembic
|
||||||
|
|
||||||
from nailgun.db import db
|
from nailgun.db import db
|
||||||
|
@ -117,3 +119,30 @@ class TestTransactionsNames(base.BaseAlembicMigrationTest):
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class TestNodeErrorMessage(base.BaseAlembicMigrationTest):
|
||||||
|
|
||||||
|
def test_upgrade_node_error_msg_to_allow_long_error_msg(self):
|
||||||
|
nodes = self.meta.tables['nodes']
|
||||||
|
self.assertIsInstance(nodes.columns['error_msg'].type, sa.Text)
|
||||||
|
|
||||||
|
node_uuid = '26b508d0-0d76-4159-bce9-f67ec2765480'
|
||||||
|
long_error_msg = ''.join('a' for i in range(500))
|
||||||
|
|
||||||
|
db.execute(
|
||||||
|
nodes.insert(),
|
||||||
|
[{
|
||||||
|
'uuid': node_uuid,
|
||||||
|
'cluster_id': None,
|
||||||
|
'group_id': None,
|
||||||
|
'status': 'discover',
|
||||||
|
'meta': '{}',
|
||||||
|
'mac': 'aa:aa:aa:aa:aa:aa',
|
||||||
|
'error_msg': long_error_msg,
|
||||||
|
'timestamp': datetime.datetime.utcnow(),
|
||||||
|
}]
|
||||||
|
)
|
||||||
|
|
||||||
|
node = db.query(nodes).filter_by(uuid=node_uuid).first()
|
||||||
|
self.assertEqual(long_error_msg, node.error_msg)
|
||||||
|
|
Loading…
Reference in New Issue