From a78fbd78e92dec26712bddc4405fe65397cfff46 Mon Sep 17 00:00:00 2001 From: Tim Simpson Date: Wed, 23 May 2012 11:06:33 -0500 Subject: [PATCH] Adding fields to get better feedback from the agents. * Adding an updated_at field to the ServiceStatuses table. * Adding an "agent_heartbeats" table to record agent pings. --- .../versions/003_service_statuses.py | 3 +- .../migrate_repo/versions/005_heartbeat.py | 48 +++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 reddwarf/db/sqlalchemy/migrate_repo/versions/005_heartbeat.py diff --git a/reddwarf/db/sqlalchemy/migrate_repo/versions/003_service_statuses.py b/reddwarf/db/sqlalchemy/migrate_repo/versions/003_service_statuses.py index cbdaaa1c5e..033c06feff 100644 --- a/reddwarf/db/sqlalchemy/migrate_repo/versions/003_service_statuses.py +++ b/reddwarf/db/sqlalchemy/migrate_repo/versions/003_service_statuses.py @@ -36,7 +36,8 @@ service_statuses = Table('service_statuses', meta, Column('id', String(36), primary_key=True, nullable=False), Column('instance_id', String(36), nullable=False), Column('status_id', Integer(), nullable=False), - Column('status_description', String(64), nullable=False)) + Column('status_description', String(64), nullable=False), + Column('updated_at', DateTime())) def upgrade(migrate_engine): diff --git a/reddwarf/db/sqlalchemy/migrate_repo/versions/005_heartbeat.py b/reddwarf/db/sqlalchemy/migrate_repo/versions/005_heartbeat.py new file mode 100644 index 0000000000..d5f73e38be --- /dev/null +++ b/reddwarf/db/sqlalchemy/migrate_repo/versions/005_heartbeat.py @@ -0,0 +1,48 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2011 OpenStack LLC. +# All Rights Reserved. +# +# 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. + +from sqlalchemy import ForeignKey +from sqlalchemy.schema import Column +from sqlalchemy.schema import MetaData +from sqlalchemy.schema import UniqueConstraint + +from reddwarf.db.sqlalchemy.migrate_repo.schema import Boolean +from reddwarf.db.sqlalchemy.migrate_repo.schema import create_tables +from reddwarf.db.sqlalchemy.migrate_repo.schema import DateTime +from reddwarf.db.sqlalchemy.migrate_repo.schema import drop_tables +from reddwarf.db.sqlalchemy.migrate_repo.schema import Integer +from reddwarf.db.sqlalchemy.migrate_repo.schema import BigInteger +from reddwarf.db.sqlalchemy.migrate_repo.schema import String +from reddwarf.db.sqlalchemy.migrate_repo.schema import Table + + +meta = MetaData() + +agent_heartbeats = Table('agent_heartbeats', meta, + Column('id', String(36), primary_key=True, nullable=False), + Column('instance_id', String(36), nullable=False), + Column('updated_at', DateTime())) + + +def upgrade(migrate_engine): + meta.bind = migrate_engine + create_tables([agent_heartbeats]) + + +def downgrade(migrate_engine): + meta.bind = migrate_engine + drop_tables([agent_heartbeats])