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

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. 

14 

15"""manila_init 

16 

17Revision ID: 162a3e673105 

18Revises: None 

19Create Date: 2014-07-23 17:51:57.077203 

20 

21""" 

22 

23# revision identifiers, used by Alembic. 

24revision = '162a3e673105' 

25down_revision = None 

26 

27from alembic import op 

28from oslo_log import log 

29from sqlalchemy import Boolean, Column, DateTime, ForeignKeyConstraint 

30from sqlalchemy import Integer, MetaData, String, Table, UniqueConstraint 

31 

32LOG = log.getLogger(__name__) 

33 

34 

35def upgrade(): 

36 migrate_engine = op.get_bind().engine 

37 meta = MetaData() 

38 

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 ) 

55 

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 ) 

69 

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 ) 

86 

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 ) 

106 

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 ) 

130 

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 ) 

145 

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 ) 

176 

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 ) 

192 

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 ) 

215 

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 ) 

230 

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 ) 

251 

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 ) 

272 

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 ) 

287 

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 ) 

302 

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 ) 

318 

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 ) 

334 

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 ) 

347 

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 ) 

362 

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] 

371 

372 with migrate_engine.begin() as conn: 

373 for table in tables: 

374 

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 

381 

382 

383def downgrade(): 

384 raise NotImplementedError('Downgrade from initial Manila install is not' 

385 ' supported.')