]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Remove status* fields from HealthMonitor model
authorEugene Nikanorov <enikanorov@mirantis.com>
Fri, 2 Aug 2013 19:35:27 +0000 (23:35 +0400)
committerEugene Nikanorov <enikanorov@mirantis.com>
Fri, 2 Aug 2013 19:47:09 +0000 (23:47 +0400)
Status and status_description fields of HealthMonitor
model are never changed during lifetime of the object
and doesn't represent the status of it's pysical
implementation. Instead, status and status_description
of PoolMonitorAssociation is used. Another reason for
removing those fields is that HealthMonitor acts as
template which is instantiated on device. Status field
for template makes no sense.

fixes bug 1207650

Change-Id: Iea9d7f73c3a2db43c553ed06a64fe5ff42427167

neutron/db/loadbalancer/loadbalancer_db.py
neutron/db/migration/alembic_migrations/versions/35c7c198ddea_lbaas_healthmon_del_status.py [new file with mode: 0644]
neutron/tests/unit/db/loadbalancer/test_db_loadbalancer.py

index 3c9511310f9c39a0a6907e48b068086830a32d1a..4c9fd7195b50a7ef7ceb042d7e87c6e98a0331be 100644 (file)
@@ -130,8 +130,7 @@ class Pool(model_base.BASEV2, models_v2.HasId, models_v2.HasTenant,
     vip = orm.relationship(Vip, backref='pool')
 
 
-class HealthMonitor(model_base.BASEV2, models_v2.HasId, models_v2.HasTenant,
-                    models_v2.HasStatusDescription):
+class HealthMonitor(model_base.BASEV2, models_v2.HasId, models_v2.HasTenant):
     """Represents a v2 neutron loadbalancer healthmonitor."""
 
     type = sa.Column(sa.Enum("PING", "TCP", "HTTP", "HTTPS",
@@ -667,9 +666,7 @@ class LoadBalancerPluginDb(LoadBalancerPluginBase,
                'delay': health_monitor['delay'],
                'timeout': health_monitor['timeout'],
                'max_retries': health_monitor['max_retries'],
-               'admin_state_up': health_monitor['admin_state_up'],
-               'status': health_monitor['status'],
-               'status_description': health_monitor['status_description']}
+               'admin_state_up': health_monitor['admin_state_up']}
         # no point to add the values below to
         # the result if the 'type' is not HTTP/S
         if res['type'] in ['HTTP', 'HTTPS']:
@@ -692,8 +689,7 @@ class LoadBalancerPluginDb(LoadBalancerPluginBase,
                                        http_method=v['http_method'],
                                        url_path=v['url_path'],
                                        expected_codes=v['expected_codes'],
-                                       admin_state_up=v['admin_state_up'],
-                                       status=constants.ACTIVE)
+                                       admin_state_up=v['admin_state_up'])
             context.session.add(monitor_db)
         return self._make_health_monitor_dict(monitor_db)
 
diff --git a/neutron/db/migration/alembic_migrations/versions/35c7c198ddea_lbaas_healthmon_del_status.py b/neutron/db/migration/alembic_migrations/versions/35c7c198ddea_lbaas_healthmon_del_status.py
new file mode 100644 (file)
index 0000000..a0f9b83
--- /dev/null
@@ -0,0 +1,56 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+#
+# Copyright 2013 OpenStack Foundation
+#
+#    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.
+#
+
+"""remove status from HealthMonitor
+
+Revision ID: 35c7c198ddea
+Revises: 11c6e18605c8
+Create Date: 2013-08-02 23:14:54.037976
+
+"""
+
+# revision identifiers, used by Alembic.
+revision = '35c7c198ddea'
+down_revision = '11c6e18605c8'
+
+# Change to ['*'] if this migration applies to all plugins
+
+migration_for_plugins = ['*']
+
+from alembic import op
+import sqlalchemy as sa
+
+
+from neutron.db import migration
+
+
+def upgrade(active_plugin=None, options=None):
+    if not migration.should_run(active_plugin, migration_for_plugins):
+        return
+    op.drop_column('healthmonitors', 'status')
+    op.drop_column('healthmonitors', 'status_description')
+
+
+def downgrade(active_plugin=None, options=None):
+    if not migration.should_run(active_plugin, migration_for_plugins):
+        return
+
+    op.add_column('healthmonitors', sa.Column('status',
+                                              sa.String(16),
+                                              nullable=False))
+    op.add_column('healthmonitors', sa.Column('status_description',
+                                              sa.String(255)))
index 6b94ded66b483194d8b7c915adf708a62b09f501..9ccab978dba9ce43c875d61e0235800cfdd768d4 100644 (file)
@@ -831,8 +831,7 @@ class TestLoadBalancer(LoadBalancerPluginDbTestCase):
                 ('delay', 30),
                 ('timeout', 10),
                 ('max_retries', 3),
-                ('admin_state_up', True),
-                ('status', 'ACTIVE')]
+                ('admin_state_up', True)]
         with self.health_monitor() as monitor:
             for k, v in keys:
                 self.assertEqual(monitor['health_monitor'][k], v)
@@ -843,8 +842,7 @@ class TestLoadBalancer(LoadBalancerPluginDbTestCase):
                 ('delay', 20),
                 ('timeout', 20),
                 ('max_retries', 2),
-                ('admin_state_up', False),
-                ('status', 'PENDING_UPDATE')]
+                ('admin_state_up', False)]
         with self.health_monitor() as monitor:
             data = {'health_monitor': {'delay': 20,
                                        'timeout': 20,
@@ -915,8 +913,7 @@ class TestLoadBalancer(LoadBalancerPluginDbTestCase):
                     ('delay', 30),
                     ('timeout', 10),
                     ('max_retries', 3),
-                    ('admin_state_up', True),
-                    ('status', 'ACTIVE')]
+                    ('admin_state_up', True)]
             req = self.new_show_request('health_monitors',
                                         monitor['health_monitor']['id'],
                                         fmt=self.fmt)