1
# vim: tabstop=4 shiftwidth=4 softtabstop=4
3
# Copyright 2010 United States Government as represented by the
4
# Administrator of the National Aeronautics and Space Administration.
7
# Licensed under the Apache License, Version 2.0 (the "License"); you may
8
# not use this file except in compliance with the License. You may obtain
9
# a copy of the License at
11
# http://www.apache.org/licenses/LICENSE-2.0
13
# Unless required by applicable law or agreed to in writing, software
14
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
15
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
16
# License for the specific language governing permissions and limitations
19
from sqlalchemy import Boolean, Column, DateTime, ForeignKey
20
from sqlalchemy import Integer, MetaData, String, Table, Text
21
from nova import log as logging
23
LOG = logging.getLogger(__name__)
26
def upgrade(migrate_engine):
27
# Upgrade operations go here. Don't create your own engine;
28
# bind migrate_engine to your metadata
30
meta.bind = migrate_engine
33
volumes = Table('volumes', meta, autoload=True)
35
instances = Table('instances', meta, autoload=True)
36
services = Table('services', meta, autoload=True)
37
networks = Table('networks', meta, autoload=True)
38
auth_tokens = Table('auth_tokens', meta, autoload=True)
43
certificates = Table('certificates', meta,
44
Column('created_at', DateTime(timezone=False)),
45
Column('updated_at', DateTime(timezone=False)),
46
Column('deleted_at', DateTime(timezone=False)),
47
Column('deleted', Boolean(create_constraint=True, name=None)),
48
Column('id', Integer(), primary_key=True, nullable=False),
50
String(length=255, convert_unicode=False,
52
unicode_error=None, _warn_on_bytestring=False)),
54
String(length=255, convert_unicode=False,
56
unicode_error=None, _warn_on_bytestring=False)),
58
String(length=255, convert_unicode=False,
60
unicode_error=None, _warn_on_bytestring=False)),
63
consoles = Table('consoles', meta,
64
Column('created_at', DateTime(timezone=False)),
65
Column('updated_at', DateTime(timezone=False)),
66
Column('deleted_at', DateTime(timezone=False)),
67
Column('deleted', Boolean(create_constraint=True, name=None)),
68
Column('id', Integer(), primary_key=True, nullable=False),
69
Column('instance_name',
70
String(length=255, convert_unicode=False,
72
unicode_error=None, _warn_on_bytestring=False)),
73
Column('instance_id', Integer()),
75
String(length=255, convert_unicode=False,
77
unicode_error=None, _warn_on_bytestring=False)),
78
Column('port', Integer(), nullable=True),
81
ForeignKey('console_pools.id')),
84
console_pools = Table('console_pools', meta,
85
Column('created_at', DateTime(timezone=False)),
86
Column('updated_at', DateTime(timezone=False)),
87
Column('deleted_at', DateTime(timezone=False)),
88
Column('deleted', Boolean(create_constraint=True, name=None)),
89
Column('id', Integer(), primary_key=True, nullable=False),
91
String(length=255, convert_unicode=False,
93
unicode_error=None, _warn_on_bytestring=False)),
95
String(length=255, convert_unicode=False,
97
unicode_error=None, _warn_on_bytestring=False)),
99
String(length=255, convert_unicode=False,
101
unicode_error=None, _warn_on_bytestring=False)),
102
Column('console_type',
103
String(length=255, convert_unicode=False,
105
unicode_error=None, _warn_on_bytestring=False)),
106
Column('public_hostname',
107
String(length=255, convert_unicode=False,
109
unicode_error=None, _warn_on_bytestring=False)),
111
String(length=255, convert_unicode=False,
113
unicode_error=None, _warn_on_bytestring=False)),
114
Column('compute_host',
115
String(length=255, convert_unicode=False,
117
unicode_error=None, _warn_on_bytestring=False)),
120
instance_actions = Table('instance_actions', meta,
121
Column('created_at', DateTime(timezone=False)),
122
Column('updated_at', DateTime(timezone=False)),
123
Column('deleted_at', DateTime(timezone=False)),
124
Column('deleted', Boolean(create_constraint=True, name=None)),
125
Column('id', Integer(), primary_key=True, nullable=False),
126
Column('instance_id',
128
ForeignKey('instances.id')),
130
String(length=255, convert_unicode=False,
132
unicode_error=None, _warn_on_bytestring=False)),
134
Text(length=None, convert_unicode=False,
136
unicode_error=None, _warn_on_bytestring=False)),
139
iscsi_targets = Table('iscsi_targets', meta,
140
Column('created_at', DateTime(timezone=False)),
141
Column('updated_at', DateTime(timezone=False)),
142
Column('deleted_at', DateTime(timezone=False)),
143
Column('deleted', Boolean(create_constraint=True, name=None)),
144
Column('id', Integer(), primary_key=True, nullable=False),
145
Column('target_num', Integer()),
147
String(length=255, convert_unicode=False,
149
unicode_error=None, _warn_on_bytestring=False)),
152
ForeignKey('volumes.id'),
156
tables = [certificates, console_pools, consoles, instance_actions,
162
LOG.info(repr(table))
163
LOG.exception('Exception while creating table')
164
meta.drop_all(tables=tables)
167
auth_tokens.c.user_id.alter(type=String(length=255,
168
convert_unicode=False,
171
_warn_on_bytestring=False))
176
instances_availability_zone = Column(
178
String(length=255, convert_unicode=False, assert_unicode=None,
179
unicode_error=None, _warn_on_bytestring=False))
181
instances_locked = Column('locked',
182
Boolean(create_constraint=True, name=None))
184
networks_cidr_v6 = Column(
186
String(length=255, convert_unicode=False, assert_unicode=None,
187
unicode_error=None, _warn_on_bytestring=False))
189
networks_ra_server = Column(
191
String(length=255, convert_unicode=False, assert_unicode=None,
192
unicode_error=None, _warn_on_bytestring=False))
194
services_availability_zone = Column(
196
String(length=255, convert_unicode=False, assert_unicode=None,
197
unicode_error=None, _warn_on_bytestring=False))
199
instances.create_column(instances_availability_zone)
200
instances.create_column(instances_locked)
201
networks.create_column(networks_cidr_v6)
202
networks.create_column(networks_ra_server)
203
services.create_column(services_availability_zone)
206
def downgrade(migrate_engine):
208
meta.bind = migrate_engine
211
volumes = Table('volumes', meta, autoload=True)
213
instances = Table('instances', meta, autoload=True)
214
services = Table('services', meta, autoload=True)
215
networks = Table('networks', meta, autoload=True)
216
auth_tokens = Table('auth_tokens', meta, autoload=True)
218
certificates = Table('certificates', meta, autoload=True)
219
consoles = Table('consoles', meta, autoload=True)
220
console_pools = Table('console_pools', meta, autoload=True)
221
instance_actions = Table('instance_actions', meta, autoload=True)
222
iscsi_targets = Table('iscsi_targets', meta, autoload=True)
224
# table order matters, don't change
225
tables = [certificates, consoles, console_pools, instance_actions,
230
auth_tokens.c.user_id.alter(type=Integer())
232
instances.drop_column('availability_zone')
233
instances.drop_column('locked')
234
networks.drop_column('cidr_v6')
235
networks.drop_column('ra_server')
236
services.drop_column('availability_zone')