summaryrefslogtreecommitdiffstats
path: root/networking-odl/networking_odl/db
diff options
context:
space:
mode:
Diffstat (limited to 'networking-odl/networking_odl/db')
-rw-r--r--networking-odl/networking_odl/db/db.py71
-rw-r--r--networking-odl/networking_odl/db/migration/alembic_migrations/versions/EXPAND_HEAD2
-rw-r--r--networking-odl/networking_odl/db/migration/alembic_migrations/versions/mitaka/contract/383acb0d38a0_initial_contract.py4
-rw-r--r--networking-odl/networking_odl/db/migration/alembic_migrations/versions/mitaka/expand/37e242787ae5_opendaylight_neutron_mechanism_driver_.py10
-rw-r--r--networking-odl/networking_odl/db/migration/alembic_migrations/versions/newton/expand/703dbf02afde_add_journal_maintenance_table.py52
-rw-r--r--networking-odl/networking_odl/db/models.py11
6 files changed, 2 insertions, 148 deletions
diff --git a/networking-odl/networking_odl/db/db.py b/networking-odl/networking_odl/db/db.py
index 31f4ce2..a8e7ade 100644
--- a/networking-odl/networking_odl/db/db.py
+++ b/networking-odl/networking_odl/db/db.py
@@ -12,8 +12,6 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
-import datetime
-
from sqlalchemy import asc
from sqlalchemy import func
from sqlalchemy import or_
@@ -163,72 +161,3 @@ def create_pending_row(session, object_type, object_uuid,
# Keep session flush for unit tests. NOOP for L2/L3 events since calls are
# made inside database session transaction with subtransactions=True.
session.flush()
-
-
-@db_api.retry_db_errors
-def delete_pending_rows(session, operations_to_delete):
- with session.begin():
- session.query(models.OpendaylightJournal).filter(
- models.OpendaylightJournal.operation.in_(operations_to_delete),
- models.OpendaylightJournal.state == odl_const.PENDING).delete(
- synchronize_session=False)
- session.expire_all()
-
-
-@db_api.retry_db_errors
-def _update_maintenance_state(session, expected_state, state):
- with session.begin():
- row = session.query(models.OpendaylightMaintenance).filter_by(
- state=expected_state).with_for_update().one_or_none()
- if row is None:
- return False
-
- row.state = state
- return True
-
-
-def lock_maintenance(session):
- return _update_maintenance_state(session, odl_const.PENDING,
- odl_const.PROCESSING)
-
-
-def unlock_maintenance(session):
- return _update_maintenance_state(session, odl_const.PROCESSING,
- odl_const.PENDING)
-
-
-def update_maintenance_operation(session, operation=None):
- """Update the current maintenance operation details.
-
- The function assumes the lock is held, so it mustn't be run outside of a
- locked context.
- """
- op_text = None
- if operation:
- op_text = operation.__name__
-
- with session.begin():
- row = session.query(models.OpendaylightMaintenance).one_or_none()
- row.processing_operation = op_text
-
-
-def delete_rows_by_state_and_time(session, state, time_delta):
- with session.begin():
- now = session.execute(func.now()).scalar()
- session.query(models.OpendaylightJournal).filter(
- models.OpendaylightJournal.state == state,
- models.OpendaylightJournal.last_retried < now - time_delta).delete(
- synchronize_session=False)
- session.expire_all()
-
-
-def reset_processing_rows(session, max_timedelta):
- with session.begin():
- now = session.execute(func.now()).scalar()
- max_timedelta = datetime.timedelta(seconds=max_timedelta)
- rows = session.query(models.OpendaylightJournal).filter(
- models.OpendaylightJournal.last_retried < now - max_timedelta,
- models.OpendaylightJournal.state == odl_const.PROCESSING,
- ).update({'state': odl_const.PENDING})
-
- return rows
diff --git a/networking-odl/networking_odl/db/migration/alembic_migrations/versions/EXPAND_HEAD b/networking-odl/networking_odl/db/migration/alembic_migrations/versions/EXPAND_HEAD
index 34912ba..95ad199 100644
--- a/networking-odl/networking_odl/db/migration/alembic_migrations/versions/EXPAND_HEAD
+++ b/networking-odl/networking_odl/db/migration/alembic_migrations/versions/EXPAND_HEAD
@@ -1 +1 @@
-703dbf02afde
+37e242787ae5
diff --git a/networking-odl/networking_odl/db/migration/alembic_migrations/versions/mitaka/contract/383acb0d38a0_initial_contract.py b/networking-odl/networking_odl/db/migration/alembic_migrations/versions/mitaka/contract/383acb0d38a0_initial_contract.py
index 43959c0..5a81be5 100644
--- a/networking-odl/networking_odl/db/migration/alembic_migrations/versions/mitaka/contract/383acb0d38a0_initial_contract.py
+++ b/networking-odl/networking_odl/db/migration/alembic_migrations/versions/mitaka/contract/383acb0d38a0_initial_contract.py
@@ -19,7 +19,6 @@ Create Date: 2015-09-03 22:27:49.306394
"""
-from neutron.db import migration
from neutron.db.migration import cli
@@ -28,9 +27,6 @@ revision = '383acb0d38a0'
down_revision = 'b89a299e19f9'
branch_labels = (cli.CONTRACT_BRANCH,)
-# milestone identifier, used by neutron-db-manage
-neutron_milestone = [migration.MITAKA]
-
def upgrade():
pass
diff --git a/networking-odl/networking_odl/db/migration/alembic_migrations/versions/mitaka/expand/37e242787ae5_opendaylight_neutron_mechanism_driver_.py b/networking-odl/networking_odl/db/migration/alembic_migrations/versions/mitaka/expand/37e242787ae5_opendaylight_neutron_mechanism_driver_.py
index 71d8273..b78993d 100644
--- a/networking-odl/networking_odl/db/migration/alembic_migrations/versions/mitaka/expand/37e242787ae5_opendaylight_neutron_mechanism_driver_.py
+++ b/networking-odl/networking_odl/db/migration/alembic_migrations/versions/mitaka/expand/37e242787ae5_opendaylight_neutron_mechanism_driver_.py
@@ -20,17 +20,10 @@ Revises: 247501328046
Create Date: 2015-10-30 22:09:27.221767
"""
-from neutron.db import migration
-
-
# revision identifiers, used by Alembic.
revision = '37e242787ae5'
down_revision = '247501328046'
-# milestone identifier, used by neutron-db-manage
-neutron_milestone = [migration.MITAKA]
-
-
from alembic import op
import sqlalchemy as sa
@@ -44,8 +37,7 @@ def upgrade():
sa.Column('operation', sa.String(36), nullable=False),
sa.Column('data', sa.PickleType, nullable=True),
sa.Column('state',
- sa.Enum('pending', 'processing', 'failed', 'completed',
- name='state'),
+ sa.Enum('pending', 'processing', 'failed', 'completed'),
nullable=False, default='pending'),
sa.Column('retry_count', sa.Integer, default=0),
sa.Column('created_at', sa.DateTime, default=sa.func.now()),
diff --git a/networking-odl/networking_odl/db/migration/alembic_migrations/versions/newton/expand/703dbf02afde_add_journal_maintenance_table.py b/networking-odl/networking_odl/db/migration/alembic_migrations/versions/newton/expand/703dbf02afde_add_journal_maintenance_table.py
deleted file mode 100644
index bbe0c46..0000000
--- a/networking-odl/networking_odl/db/migration/alembic_migrations/versions/newton/expand/703dbf02afde_add_journal_maintenance_table.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 2016 Red Hat Inc.
-#
-# 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 journal maintenance table
-
-Revision ID: 703dbf02afde
-Revises: 37e242787ae5
-Create Date: 2016-04-12 10:49:31.802663
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '703dbf02afde'
-down_revision = '37e242787ae5'
-
-from alembic import op
-from oslo_utils import uuidutils
-import sqlalchemy as sa
-
-from networking_odl.common import constants as odl_const
-
-
-def upgrade():
- maint_table = op.create_table(
- 'opendaylight_maintenance',
- sa.Column('id', sa.String(36), primary_key=True),
- sa.Column('state', sa.Enum(odl_const.PENDING, odl_const.PROCESSING,
- name='state'),
- nullable=False),
- sa.Column('processing_operation', sa.String(70)),
- sa.Column('lock_updated', sa.TIMESTAMP, nullable=False,
- server_default=sa.func.now(),
- onupdate=sa.func.now())
- )
-
- # Insert the only row here that is used to synchronize the lock between
- # different Neutron processes.
- op.bulk_insert(maint_table,
- [{'id': uuidutils.generate_uuid(),
- 'state': odl_const.PENDING}])
diff --git a/networking-odl/networking_odl/db/models.py b/networking-odl/networking_odl/db/models.py
index 0416ed1..94c3ef0 100644
--- a/networking-odl/networking_odl/db/models.py
+++ b/networking-odl/networking_odl/db/models.py
@@ -34,14 +34,3 @@ class OpendaylightJournal(model_base.BASEV2, HasId):
created_at = sa.Column(sa.DateTime, server_default=sa.func.now())
last_retried = sa.Column(sa.TIMESTAMP, server_default=sa.func.now(),
onupdate=sa.func.now())
-
-
-class OpendaylightMaintenance(model_base.BASEV2, HasId):
- __tablename__ = 'opendaylight_maintenance'
-
- state = sa.Column(sa.Enum(odl_const.PENDING, odl_const.PROCESSING),
- nullable=False)
- processing_operation = sa.Column(sa.String(70))
- lock_updated = sa.Column(sa.TIMESTAMP, nullable=False,
- server_default=sa.func.now(),
- onupdate=sa.func.now())