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
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",
'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']:
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)
--- /dev/null
+# 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)))
('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)
('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,
('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)