summaryrefslogtreecommitdiffstats
path: root/nova/db
diff options
context:
space:
mode:
authormasumotok <masumotok@nttdata.co.jp>2012-01-06 23:54:54 +0900
committermasumotok <masumotok@nttdata.co.jp>2012-01-13 15:24:28 +0900
commit8e57055cecef909b4d210baeedb5dad2d155a0a2 (patch)
tree8ff40760f9ae0ab6bcbce26149a8a54d742cbdef /nova/db
parent6d80851279052a30b98e465106f158cb2afdb6a5 (diff)
First implementation of bp/live-migration-resource-calc
Fix based on revewer's comment upgraded the migration version nova/db/sqlalchemy/migrate_repo/versions/069_block_migration.py rebase on master Change-Id: Ia762f8dec761c3d595bc6fcd39f127f6d92306d2
Diffstat (limited to 'nova/db')
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/069_block_migration.py50
-rw-r--r--nova/db/sqlalchemy/models.py1
2 files changed, 51 insertions, 0 deletions
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/069_block_migration.py b/nova/db/sqlalchemy/migrate_repo/versions/069_block_migration.py
new file mode 100644
index 000000000..a16cd4dc8
--- /dev/null
+++ b/nova/db/sqlalchemy/migrate_repo/versions/069_block_migration.py
@@ -0,0 +1,50 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2010 United States Government as represented by the
+# Administrator of the National Aeronautics and Space Administration.
+# 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 Boolean, Column, DateTime, Integer, MetaData
+from sqlalchemy import Table, Text
+from nova import log as logging
+
+meta = MetaData()
+
+# Add disk_available_least column to compute_nodes table.
+# Thinking about qcow2 image support, both compressed and virtual disk size
+# has to be considered.
+# disk_available stores "total disk size - used disk(compressed disk size)",
+# while disk_available_least stores
+# "total disk size - used disk(virtual disk size)".
+# virtual disk size is used for kvm block migration.
+
+compute_nodes = Table('compute_nodes', meta,
+ Column('id', Integer(), primary_key=True, nullable=False))
+
+disk_available_least = Column('disk_available_least', Integer(), default=0)
+
+
+def upgrade(migrate_engine):
+ meta.bind = migrate_engine
+ try:
+ compute_nodes.create_column(disk_available_least)
+ except Exception:
+ logging.error(_("progress column not added to compute_nodes table"))
+ raise
+
+
+def downgrade(migrate_engine):
+ meta.bind = migrate_engine
+ compute_nodes.drop_column(disk_available_least)
diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py
index cdcef7179..92c9bb27f 100644
--- a/nova/db/sqlalchemy/models.py
+++ b/nova/db/sqlalchemy/models.py
@@ -147,6 +147,7 @@ class ComputeNode(BASE, NovaBase):
# above, since it is copied from <cpu> tag of getCapabilities()
# (See libvirt.virtConnection).
cpu_info = Column(Text, nullable=True)
+ disk_available_least = Column(Integer)
class Certificate(BASE, NovaBase):