~ubuntu-branches/ubuntu/saucy/nova/saucy-proposed

« back to all changes in this revision

Viewing changes to nova/db/sqlalchemy/migrate_repo/versions/002_bexar.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short
  • Date: 2012-05-24 13:12:53 UTC
  • mfrom: (1.1.55)
  • Revision ID: package-import@ubuntu.com-20120524131253-ommql08fg1en06ut
Tags: 2012.2~f1-0ubuntu1
* New upstream release.
* Prepare for quantal:
  - Dropped debian/patches/upstream/0006-Use-project_id-in-ec2.cloud._format_image.patch
  - Dropped debian/patches/upstream/0005-Populate-image-properties-with-project_id-again.patch
  - Dropped debian/patches/upstream/0004-Fixed-bug-962840-added-a-test-case.patch
  - Dropped debian/patches/upstream/0003-Allow-unprivileged-RADOS-users-to-access-rbd-volumes.patch
  - Dropped debian/patches/upstream/0002-Stop-libvirt-test-from-deleting-instances-dir.patch
  - Dropped debian/patches/upstream/0001-fix-bug-where-nova-ignores-glance-host-in-imageref.patch 
  - Dropped debian/patches/0001-fix-useexisting-deprecation-warnings.patch
* debian/control: Add python-keystone as a dependency. (LP: #907197)
* debian/patches/kombu_tests_timeout.patch: Refreshed.
* debian/nova.conf, debian/nova-common.postinst: Convert to new ini
  file configuration
* debian/patches/nova-manage_flagfile_location.patch: Refreshed

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# vim: tabstop=4 shiftwidth=4 softtabstop=4
2
 
 
3
 
# Copyright 2010 United States Government as represented by the
4
 
# Administrator of the National Aeronautics and Space Administration.
5
 
# All Rights Reserved.
6
 
#
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
10
 
#
11
 
#         http://www.apache.org/licenses/LICENSE-2.0
12
 
#
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
17
 
#    under the License.
18
 
 
19
 
from sqlalchemy import Boolean, Column, DateTime, ForeignKey
20
 
from sqlalchemy import Integer, MetaData, String, Table, Text
21
 
from nova import log as logging
22
 
 
23
 
LOG = logging.getLogger(__name__)
24
 
 
25
 
 
26
 
def upgrade(migrate_engine):
27
 
    # Upgrade operations go here. Don't create your own engine;
28
 
    # bind migrate_engine to your metadata
29
 
    meta = MetaData()
30
 
    meta.bind = migrate_engine
31
 
 
32
 
    # load tables for fk
33
 
    volumes = Table('volumes', meta, autoload=True)
34
 
 
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)
39
 
 
40
 
    #
41
 
    # New Tables
42
 
    #
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),
49
 
            Column('user_id',
50
 
                   String(length=255, convert_unicode=False,
51
 
                          assert_unicode=None,
52
 
                          unicode_error=None, _warn_on_bytestring=False)),
53
 
            Column('project_id',
54
 
                   String(length=255, convert_unicode=False,
55
 
                          assert_unicode=None,
56
 
                          unicode_error=None, _warn_on_bytestring=False)),
57
 
            Column('file_name',
58
 
                   String(length=255, convert_unicode=False,
59
 
                          assert_unicode=None,
60
 
                          unicode_error=None, _warn_on_bytestring=False)),
61
 
            )
62
 
 
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,
71
 
                          assert_unicode=None,
72
 
                          unicode_error=None, _warn_on_bytestring=False)),
73
 
            Column('instance_id', Integer()),
74
 
            Column('password',
75
 
                   String(length=255, convert_unicode=False,
76
 
                          assert_unicode=None,
77
 
                          unicode_error=None, _warn_on_bytestring=False)),
78
 
            Column('port', Integer(), nullable=True),
79
 
            Column('pool_id',
80
 
                   Integer(),
81
 
                   ForeignKey('console_pools.id')),
82
 
            )
83
 
 
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),
90
 
            Column('address',
91
 
                   String(length=255, convert_unicode=False,
92
 
                          assert_unicode=None,
93
 
                          unicode_error=None, _warn_on_bytestring=False)),
94
 
            Column('username',
95
 
                   String(length=255, convert_unicode=False,
96
 
                          assert_unicode=None,
97
 
                          unicode_error=None, _warn_on_bytestring=False)),
98
 
            Column('password',
99
 
                   String(length=255, convert_unicode=False,
100
 
                          assert_unicode=None,
101
 
                          unicode_error=None, _warn_on_bytestring=False)),
102
 
            Column('console_type',
103
 
                   String(length=255, convert_unicode=False,
104
 
                          assert_unicode=None,
105
 
                          unicode_error=None, _warn_on_bytestring=False)),
106
 
            Column('public_hostname',
107
 
                   String(length=255, convert_unicode=False,
108
 
                          assert_unicode=None,
109
 
                          unicode_error=None, _warn_on_bytestring=False)),
110
 
            Column('host',
111
 
                   String(length=255, convert_unicode=False,
112
 
                          assert_unicode=None,
113
 
                          unicode_error=None, _warn_on_bytestring=False)),
114
 
            Column('compute_host',
115
 
                   String(length=255, convert_unicode=False,
116
 
                          assert_unicode=None,
117
 
                          unicode_error=None, _warn_on_bytestring=False)),
118
 
            )
119
 
 
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',
127
 
                   Integer(),
128
 
                   ForeignKey('instances.id')),
129
 
            Column('action',
130
 
                   String(length=255, convert_unicode=False,
131
 
                          assert_unicode=None,
132
 
                          unicode_error=None, _warn_on_bytestring=False)),
133
 
            Column('error',
134
 
                   Text(length=None, convert_unicode=False,
135
 
                        assert_unicode=None,
136
 
                        unicode_error=None, _warn_on_bytestring=False)),
137
 
            )
138
 
 
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()),
146
 
            Column('host',
147
 
                   String(length=255, convert_unicode=False,
148
 
                          assert_unicode=None,
149
 
                          unicode_error=None, _warn_on_bytestring=False)),
150
 
            Column('volume_id',
151
 
                   Integer(),
152
 
                   ForeignKey('volumes.id'),
153
 
                   nullable=True),
154
 
            )
155
 
 
156
 
    tables = [certificates, console_pools, consoles, instance_actions,
157
 
              iscsi_targets]
158
 
    for table in tables:
159
 
        try:
160
 
            table.create()
161
 
        except Exception:
162
 
            LOG.info(repr(table))
163
 
            LOG.exception('Exception while creating table')
164
 
            meta.drop_all(tables=tables)
165
 
            raise
166
 
 
167
 
    auth_tokens.c.user_id.alter(type=String(length=255,
168
 
                                            convert_unicode=False,
169
 
                                            assert_unicode=None,
170
 
                                            unicode_error=None,
171
 
                                            _warn_on_bytestring=False))
172
 
 
173
 
    #
174
 
    # New Columns
175
 
    #
176
 
    instances_availability_zone = Column(
177
 
            'availability_zone',
178
 
            String(length=255, convert_unicode=False, assert_unicode=None,
179
 
                   unicode_error=None, _warn_on_bytestring=False))
180
 
 
181
 
    instances_locked = Column('locked',
182
 
                    Boolean(create_constraint=True, name=None))
183
 
 
184
 
    networks_cidr_v6 = Column(
185
 
            'cidr_v6',
186
 
            String(length=255, convert_unicode=False, assert_unicode=None,
187
 
                   unicode_error=None, _warn_on_bytestring=False))
188
 
 
189
 
    networks_ra_server = Column(
190
 
            'ra_server',
191
 
            String(length=255, convert_unicode=False, assert_unicode=None,
192
 
                   unicode_error=None, _warn_on_bytestring=False))
193
 
 
194
 
    services_availability_zone = Column(
195
 
            'availability_zone',
196
 
            String(length=255, convert_unicode=False, assert_unicode=None,
197
 
                   unicode_error=None, _warn_on_bytestring=False))
198
 
 
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)
204
 
 
205
 
 
206
 
def downgrade(migrate_engine):
207
 
    meta = MetaData()
208
 
    meta.bind = migrate_engine
209
 
 
210
 
    # load tables for fk
211
 
    volumes = Table('volumes', meta, autoload=True)
212
 
 
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)
217
 
 
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)
223
 
 
224
 
    # table order matters, don't change
225
 
    tables = [certificates, consoles, console_pools, instance_actions,
226
 
              iscsi_targets]
227
 
    for table in tables:
228
 
        table.drop()
229
 
 
230
 
    auth_tokens.c.user_id.alter(type=Integer())
231
 
 
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')