From fc7a85d8cb37daa198dc297e87bd7d67203d79ae Mon Sep 17 00:00:00 2001 From: zhangbailin Date: Sun, 19 Jan 2020 18:28:04 +0800 Subject: [PATCH] Add description column to device_profiles db Add 'description' column to the ``device_profiles`` table, and changes the ``DeviceProfile`` model. Partial-Implements: blueprint add-description-field-to-device-profiles Change-Id: I42ad7ee7dffa7348e80ccdb35a5d19db6d58c637 --- ...d8ac91fd20_add_description_field_to_dps.py | 19 +++++++++++++++++++ cyborg/db/sqlalchemy/models.py | 1 + .../tests/unit/db/test_db_device_profile.py | 10 +++++++++- cyborg/tests/unit/db/utils.py | 1 + 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 cyborg/db/sqlalchemy/alembic/versions/60d8ac91fd20_add_description_field_to_dps.py diff --git a/cyborg/db/sqlalchemy/alembic/versions/60d8ac91fd20_add_description_field_to_dps.py b/cyborg/db/sqlalchemy/alembic/versions/60d8ac91fd20_add_description_field_to_dps.py new file mode 100644 index 00000000..9dc2810f --- /dev/null +++ b/cyborg/db/sqlalchemy/alembic/versions/60d8ac91fd20_add_description_field_to_dps.py @@ -0,0 +1,19 @@ +"""add_description_field_to_dps + +Revision ID: 60d8ac91fd20 +Revises: 7a4fd0fc3f8c +Create Date: 2020-01-19 16:15:04.231512 + +""" + +# revision identifiers, used by Alembic. +revision = '60d8ac91fd20' +down_revision = '7a4fd0fc3f8c' + +from alembic import op +import sqlalchemy as sa + + +def upgrade(): + op.add_column('device_profiles', sa.Column('description', + sa.Text(), nullable=True)) diff --git a/cyborg/db/sqlalchemy/models.py b/cyborg/db/sqlalchemy/models.py index 7ac1c8f1..4f3d5b78 100644 --- a/cyborg/db/sqlalchemy/models.py +++ b/cyborg/db/sqlalchemy/models.py @@ -191,6 +191,7 @@ class DeviceProfile(Base): uuid = Column(String(36), nullable=False) name = Column(String(255), nullable=False, unique=True) profile_json = Column(Text, nullable=False) + description = Column(Text, nullable=True) class ExtArq(Base): diff --git a/cyborg/tests/unit/db/test_db_device_profile.py b/cyborg/tests/unit/db/test_db_device_profile.py index 627965cf..b390c2c2 100644 --- a/cyborg/tests/unit/db/test_db_device_profile.py +++ b/cyborg/tests/unit/db/test_db_device_profile.py @@ -31,19 +31,27 @@ class TestDbDeviceProfile(base.DbTestCase): queried_dp = self.dbapi.device_profile_get_by_uuid( self.context, created_dp['uuid']) self.assertEqual(created_dp['uuid'], queried_dp['uuid']) + self.assertIn('description', queried_dp) def test_get_by_id(self): created_dp = utils.create_test_device_profile(self.context) queried_dp = self.dbapi.device_profile_get_by_id( self.context, created_dp['id']) self.assertEqual(created_dp['id'], queried_dp['id']) + self.assertIn('description', queried_dp) - def test_update(self): + def test_update_with_name(self): created_dp = utils.create_test_device_profile(self.context) queried_dp = self.dbapi.device_profile_update( self.context, created_dp['uuid'], {'name': 'updated_name'}) self.assertEqual('updated_name', queried_dp['name']) + def test_update_with_description(self): + created_dp = utils.create_test_device_profile(self.context) + queried_dp = self.dbapi.device_profile_update( + self.context, created_dp['uuid'], {'description': 'fake-desc'}) + self.assertEqual('fake-desc', queried_dp['description']) + def test_list(self): uuids = [] for i in range(1, 4): diff --git a/cyborg/tests/unit/db/utils.py b/cyborg/tests/unit/db/utils.py index 81b380f8..5c7fd19f 100644 --- a/cyborg/tests/unit/db/utils.py +++ b/cyborg/tests/unit/db/utils.py @@ -177,6 +177,7 @@ def get_test_device_profile(**kw): 'id': kw.get('id', 1), 'uuid': kw.get('uuid', 'c0f43d55-03bf-4831-8639-9bbdb6be2478'), 'name': kw.get('name', 'name'), + 'description': kw.get('description', 'fake_dp_desc'), 'profile_json': kw.get( 'profile_json', '{"version": "1.0", \