1
# Copyright 2011 OpenStack LLC.
3
# Licensed under the Apache License, Version 2.0 (the "License"); you may
4
# not use this file except in compliance with the License. You may obtain
5
# a copy of the License at
7
# http://www.apache.org/licenses/LICENSE-2.0
9
# Unless required by applicable law or agreed to in writing, software
10
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12
# License for the specific language governing permissions and limitations
15
from sqlalchemy import Column, Integer, Float, MetaData, Table
18
def upgrade(migrate_engine):
20
meta.bind = migrate_engine
21
instance_types = Table('instance_types', meta, autoload=True)
22
networks = Table('networks', meta, autoload=True)
24
rxtx_base = Column('rxtx_base', Integer)
25
rxtx_factor = Column('rxtx_factor', Float, default=1)
26
instance_types.create_column(rxtx_factor)
27
networks.create_column(rxtx_base)
29
base = migrate_engine.execute("select min(rxtx_cap) as min_rxtx from "
30
"instance_types where rxtx_cap > 0").scalar()
31
base = base if base > 1 else 1
32
update_i_type_sql = ("update instance_types set rxtx_factor = rxtx_cap"
33
"/%s where rxtx_cap > 0" % base)
34
migrate_engine.execute(update_i_type_sql)
35
migrate_engine.execute("update networks set rxtx_base = %s" % base)
37
instance_types.c.rxtx_quota.drop()
38
instance_types.c.rxtx_cap.drop()
41
def downgrade(migrate_engine):
43
meta.bind = migrate_engine
44
instance_types = Table('instance_types', meta, autoload=True)
45
networks = Table('networks', meta, autoload=True)
47
rxtx_quota = Column('rxtx_quota', Integer)
48
rxtx_cap = Column('rxtx_cap', Integer)
49
instance_types.create_column(rxtx_quota)
50
instance_types.create_column(rxtx_cap)
52
base = migrate_engine.execute("select min(rxtx_base) from networks "
53
"where rxtx_base > 0").scalar()
54
base = base if base > 1 else 1
56
update_i_type_sql = ("update instance_types set rxtx_cap = "
57
"rxtx_factor * %s" % base)
58
migrate_engine.execute(update_i_type_sql)
60
instance_types.c.rxtx_factor.drop()
61
networks.c.rxtx_base.drop()