Coverage for manila/db/migrations/alembic/versions/162a3e673105_manila_init.py: 90%
39 statements
« prev ^ index » next coverage.py v7.11.0, created at 2026-02-18 22:19 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2026-02-18 22:19 +0000
1# Copyright 2012 OpenStack LLC.
2#
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
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
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
13# under the License.
15"""manila_init
17Revision ID: 162a3e673105
18Revises: None
19Create Date: 2014-07-23 17:51:57.077203
21"""
23# revision identifiers, used by Alembic.
24revision = '162a3e673105'
25down_revision = None
27from alembic import op
28from oslo_log import log
29from sqlalchemy import Boolean, Column, DateTime, ForeignKeyConstraint
30from sqlalchemy import Integer, MetaData, String, Table, UniqueConstraint
32LOG = log.getLogger(__name__)
35def upgrade():
36 migrate_engine = op.get_bind().engine
37 meta = MetaData()
39 services = Table(
40 'services', meta,
41 Column('created_at', DateTime),
42 Column('updated_at', DateTime),
43 Column('deleted_at', DateTime),
44 Column('deleted', Integer, default=0),
45 Column('id', Integer, primary_key=True, nullable=False),
46 Column('host', String(length=255)),
47 Column('binary', String(length=255)),
48 Column('topic', String(length=255)),
49 Column('report_count', Integer, nullable=False),
50 Column('disabled', Boolean),
51 Column('availability_zone', String(length=255)),
52 mysql_engine='InnoDB',
53 mysql_charset='utf8'
54 )
56 quotas = Table(
57 'quotas', meta,
58 Column('id', Integer, primary_key=True, nullable=False),
59 Column('created_at', DateTime),
60 Column('updated_at', DateTime),
61 Column('deleted_at', DateTime),
62 Column('deleted', Integer, default=0),
63 Column('project_id', String(length=255)),
64 Column('resource', String(length=255), nullable=False),
65 Column('hard_limit', Integer),
66 mysql_engine='InnoDB',
67 mysql_charset='utf8'
68 )
70 quota_classes = Table(
71 'quota_classes', meta,
72 Column('created_at', DateTime(timezone=False)),
73 Column('updated_at', DateTime(timezone=False)),
74 Column('deleted_at', DateTime(timezone=False)),
75 Column('deleted', Integer, default=0),
76 Column('id', Integer(), primary_key=True),
77 Column('class_name',
78 String(length=255),
79 index=True),
80 Column('resource',
81 String(length=255)),
82 Column('hard_limit', Integer(), nullable=True),
83 mysql_engine='InnoDB',
84 mysql_charset='utf8',
85 )
87 quota_usages = Table(
88 'quota_usages', meta,
89 Column('created_at', DateTime(timezone=False)),
90 Column('updated_at', DateTime(timezone=False)),
91 Column('deleted_at', DateTime(timezone=False)),
92 Column('deleted', Integer, default=0),
93 Column('id', Integer(), primary_key=True),
94 Column('user_id', String(length=255)),
95 Column('project_id',
96 String(length=255),
97 index=True),
98 Column('resource',
99 String(length=255)),
100 Column('in_use', Integer(), nullable=False),
101 Column('reserved', Integer(), nullable=False),
102 Column('until_refresh', Integer(), nullable=True),
103 mysql_engine='InnoDB',
104 mysql_charset='utf8',
105 )
107 reservations = Table(
108 'reservations', meta,
109 Column('created_at', DateTime(timezone=False)),
110 Column('updated_at', DateTime(timezone=False)),
111 Column('deleted_at', DateTime(timezone=False)),
112 Column('deleted', Integer, default=0),
113 Column('id', Integer(), primary_key=True),
114 Column('user_id', String(length=255)),
115 Column('uuid',
116 String(length=36),
117 nullable=False),
118 Column('usage_id', Integer(), nullable=False),
119 Column('project_id',
120 String(length=255),
121 index=True),
122 Column('resource',
123 String(length=255)),
124 Column('delta', Integer(), nullable=False),
125 Column('expire', DateTime(timezone=False)),
126 ForeignKeyConstraint(['usage_id'], ['quota_usages.id']),
127 mysql_engine='InnoDB',
128 mysql_charset='utf8',
129 )
131 project_user_quotas = Table(
132 'project_user_quotas', meta,
133 Column('id', Integer, primary_key=True, nullable=False),
134 Column('created_at', DateTime),
135 Column('updated_at', DateTime),
136 Column('deleted_at', DateTime),
137 Column('deleted', Integer, default=0),
138 Column('user_id', String(length=255), nullable=False),
139 Column('project_id', String(length=255), nullable=False),
140 Column('resource', String(length=25), nullable=False),
141 Column('hard_limit', Integer, nullable=True),
142 mysql_engine='InnoDB',
143 mysql_charset='utf8',
144 )
146 shares = Table(
147 'shares', meta,
148 Column('created_at', DateTime),
149 Column('updated_at', DateTime),
150 Column('deleted_at', DateTime),
151 Column('deleted', String(length=36), default='False'),
152 Column('id', String(length=36), primary_key=True, nullable=False),
153 Column('user_id', String(length=255)),
154 Column('project_id', String(length=255)),
155 Column('host', String(length=255)),
156 Column('size', Integer),
157 Column('availability_zone',
158 String(length=255)),
159 Column('status', String(length=255)),
160 Column('scheduled_at', DateTime),
161 Column('launched_at', DateTime),
162 Column('terminated_at', DateTime),
163 Column('display_name', String(length=255)),
164 Column('display_description', String(length=255)),
165 Column('snapshot_id', String(length=36)),
166 Column('share_network_id', String(length=36), nullable=True),
167 Column('share_server_id', String(length=36), nullable=True),
168 Column('share_proto', String(255)),
169 Column('export_location', String(255)),
170 Column('volume_type_id', String(length=36)),
171 ForeignKeyConstraint(['share_network_id'], ['share_networks.id']),
172 ForeignKeyConstraint(['share_server_id'], ['share_servers.id']),
173 mysql_engine='InnoDB',
174 mysql_charset='utf8'
175 )
177 access_map = Table(
178 'share_access_map', meta,
179 Column('created_at', DateTime),
180 Column('updated_at', DateTime),
181 Column('deleted_at', DateTime),
182 Column('deleted', String(length=36), default='False'),
183 Column('id', String(length=36), primary_key=True, nullable=False),
184 Column('share_id', String(36), nullable=False),
185 Column('access_type', String(255)),
186 Column('access_to', String(255)),
187 Column('state', String(255)),
188 ForeignKeyConstraint(['share_id'], ['shares.id']),
189 mysql_engine='InnoDB',
190 mysql_charset='utf8'
191 )
193 share_snapshots = Table(
194 'share_snapshots', meta,
195 Column('created_at', DateTime),
196 Column('updated_at', DateTime),
197 Column('deleted_at', DateTime),
198 Column('deleted', String(length=36), default='False'),
199 Column('id', String(length=36), primary_key=True, nullable=False),
200 Column('user_id', String(length=255)),
201 Column('project_id', String(length=255)),
202 Column('share_id', String(36), nullable=False),
203 Column('size', Integer),
204 Column('status', String(length=255)),
205 Column('progress', String(length=255)),
206 Column('display_name', String(length=255)),
207 Column('display_description', String(length=255)),
208 Column('share_size', Integer),
209 Column('share_proto', String(length=255)),
210 Column('export_location', String(255)),
211 ForeignKeyConstraint(['share_id'], ['shares.id']),
212 mysql_engine='InnoDB',
213 mysql_charset='utf8'
214 )
216 share_metadata = Table(
217 'share_metadata', meta,
218 Column('created_at', DateTime),
219 Column('updated_at', DateTime),
220 Column('deleted_at', DateTime),
221 Column('deleted', Integer, default=0),
222 Column('id', Integer, primary_key=True, nullable=False),
223 Column('share_id', String(length=36), nullable=False),
224 Column('key', String(length=255), nullable=False),
225 Column('value', String(length=1023), nullable=False),
226 ForeignKeyConstraint(['share_id'], ['shares.id']),
227 mysql_engine='InnoDB',
228 mysql_charset='utf8'
229 )
231 security_services = Table(
232 'security_services', meta,
233 Column('created_at', DateTime),
234 Column('updated_at', DateTime),
235 Column('deleted_at', DateTime),
236 Column('deleted', String(length=36), default='False'),
237 Column('id', String(length=36), primary_key=True, nullable=False),
238 Column('project_id', String(length=36), nullable=False),
239 Column('type', String(length=32), nullable=False),
240 Column('dns_ip', String(length=64), nullable=True),
241 Column('server', String(length=255), nullable=True),
242 Column('domain', String(length=255), nullable=True),
243 Column('user', String(length=255), nullable=True),
244 Column('password', String(length=255), nullable=True),
245 Column('name', String(length=255), nullable=True),
246 Column('description', String(length=255), nullable=True),
247 Column('status', String(length=16)),
248 mysql_engine='InnoDB',
249 mysql_charset='utf8',
250 )
252 share_networks = Table(
253 'share_networks', meta,
254 Column('created_at', DateTime),
255 Column('updated_at', DateTime),
256 Column('deleted_at', DateTime),
257 Column('deleted', String(length=36), default='False'),
258 Column('id', String(length=36), primary_key=True, nullable=False),
259 Column('project_id', String(length=36), nullable=False),
260 Column('user_id', String(length=36)),
261 Column('neutron_net_id', String(length=36), nullable=True),
262 Column('neutron_subnet_id', String(length=36), nullable=True),
263 Column('network_type', String(length=32), nullable=True),
264 Column('segmentation_id', Integer, nullable=True),
265 Column('cidr', String(length=64), nullable=True),
266 Column('ip_version', Integer, nullable=True),
267 Column('name', String(length=255), nullable=True),
268 Column('description', String(length=255), nullable=True),
269 mysql_engine='InnoDB',
270 mysql_charset='utf8',
271 )
273 share_servers = Table(
274 'share_servers', meta,
275 Column('created_at', DateTime),
276 Column('updated_at', DateTime),
277 Column('deleted_at', DateTime),
278 Column('deleted', String(length=36), default='False'),
279 Column('id', String(length=36), primary_key=True, nullable=False),
280 Column('share_network_id', String(length=36), nullable=True),
281 Column('host', String(length=255), nullable=True),
282 Column('status', String(length=32)),
283 ForeignKeyConstraint(['share_network_id'], ['share_networks.id']),
284 mysql_engine='InnoDB',
285 mysql_charset='utf8',
286 )
288 share_server_backend_details = Table(
289 'share_server_backend_details', meta,
290 Column('created_at', DateTime),
291 Column('updated_at', DateTime),
292 Column('deleted_at', DateTime),
293 Column('deleted', String(length=36), default=0),
294 Column('id', Integer, primary_key=True, nullable=False),
295 Column('share_server_id', String(length=36), nullable=False),
296 Column('key', String(length=255), nullable=False),
297 Column('value', String(length=1023), nullable=False),
298 ForeignKeyConstraint(['share_server_id'], ['share_servers.id']),
299 mysql_engine='InnoDB',
300 mysql_charset='utf8'
301 )
303 network_allocations = Table(
304 'network_allocations', meta,
305 Column('created_at', DateTime),
306 Column('updated_at', DateTime),
307 Column('deleted_at', DateTime),
308 Column('deleted', String(length=36), default='False'),
309 Column('id', String(length=36), primary_key=True, nullable=False),
310 Column('ip_address', String(length=64), nullable=True),
311 Column('mac_address', String(length=32), nullable=True),
312 Column('share_server_id', String(length=36), nullable=False),
313 Column('status', String(length=32)),
314 ForeignKeyConstraint(['share_server_id'], ['share_servers.id']),
315 mysql_engine='InnoDB',
316 mysql_charset='utf8',
317 )
319 ss_nw_association = Table(
320 'share_network_security_service_association', meta,
321 Column('created_at', DateTime),
322 Column('updated_at', DateTime),
323 Column('deleted_at', DateTime),
324 Column('deleted', Integer, default=0),
325 Column('id', Integer, primary_key=True, nullable=False),
326 Column('share_network_id', String(length=36), nullable=False),
327 Column('security_service_id', String(length=36), nullable=False),
328 ForeignKeyConstraint(['share_network_id'], ['share_networks.id']),
329 ForeignKeyConstraint(['security_service_id'],
330 ['security_services.id']),
331 mysql_engine='InnoDB',
332 mysql_charset='utf8',
333 )
335 volume_types = Table(
336 'volume_types', meta,
337 Column('created_at', DateTime),
338 Column('updated_at', DateTime),
339 Column('deleted_at', DateTime),
340 Column('deleted', String(length=36), default='False'),
341 Column('id', String(length=36), primary_key=True, nullable=False),
342 Column('name', String(length=255)),
343 UniqueConstraint('name', 'deleted', name='vt_name_uc'),
344 mysql_engine='InnoDB',
345 mysql_charset='utf8'
346 )
348 volume_type_extra_specs = Table(
349 'volume_type_extra_specs', meta,
350 Column('created_at', DateTime),
351 Column('updated_at', DateTime),
352 Column('deleted_at', DateTime),
353 Column('deleted', Boolean),
354 Column('id', Integer, primary_key=True, nullable=False),
355 Column('volume_type_id', String(length=36), nullable=False),
356 Column('key', String(length=255)),
357 Column('value', String(length=255)),
358 ForeignKeyConstraint(['volume_type_id'], ['volume_types.id']),
359 mysql_engine='InnoDB',
360 mysql_charset='utf8'
361 )
363 # create all tables
364 # Take care on create order for those with FK dependencies
365 tables = [quotas, services, quota_classes, quota_usages,
366 reservations, project_user_quotas, security_services,
367 share_networks, ss_nw_association,
368 share_servers, network_allocations, shares, access_map,
369 share_snapshots, share_server_backend_details,
370 share_metadata, volume_types, volume_type_extra_specs]
372 with migrate_engine.begin() as conn:
373 for table in tables:
375 try:
376 table.create(conn, checkfirst=True)
377 except Exception:
378 LOG.info(repr(table))
379 LOG.exception('Exception while creating table.')
380 raise
383def downgrade():
384 raise NotImplementedError('Downgrade from initial Manila install is not'
385 ' supported.')