deb-murano/murano/db/cfapi_models.py
zhurong 80d92d8111 Add models and migration for new service broker db
Create all stuff which is needed for cf db migration: models, migration
This will be used to generate a new service broker db.
This is the first step in separation service broker db from
murano db.

partial-implement: bp separate-service-broker-from-murano
Change-Id: I2a71c0e864fb806c73287293eac04746ef6b2cae
2016-05-18 22:04:57 -04:00

62 lines
1.9 KiB
Python

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""
SQLAlchemy models for service broker data
"""
from oslo_db.sqlalchemy import models
import sqlalchemy as sa
from sqlalchemy.ext import declarative
class _ServiceBrokerBase(models.ModelBase):
pass
Base = declarative.declarative_base(cls=_ServiceBrokerBase)
class CFOrganization(Base):
__tablename__ = "cf_orgs"
id = sa.Column(sa.String(255), primary_key=True)
tenant = sa.Column(sa.String(255), nullable=False)
class CFSpace(Base):
__tablename__ = "cf_spaces"
id = sa.Column(sa.String(255), primary_key=True)
environment_id = sa.Column(sa.String(255), nullable=False)
class CFServiceInstance(Base):
__tablename__ = 'cf_serv_inst'
id = sa.Column(sa.String(255), primary_key=True)
service_id = sa.Column(sa.String(255), nullable=False)
environment_id = sa.Column(sa.String(255), nullable=False)
tenant = sa.Column(sa.String(255), nullable=False)
def register_models(engine):
"""Creates database tables for all models with the given engine."""
models = (CFSpace, CFOrganization, CFServiceInstance)
for model in models:
model.metadata.create_all(engine)
def unregister_models(engine):
"""Drops database tables for all models with the given engine."""
models = (CFOrganization, CFSpace, CFServiceInstance)
for model in models:
model.metadata.drop_all(engine)