fuel-plugin-dns-updater/deployment_scripts/puppet/modules/dns_update/files/db_setup.py

42 lines
1.3 KiB
Python

#!/usr/bin/env python
#define db schema
from sqlalchemy import MetaData, create_engine
from sqlalchemy import Table, Column, ForeignKey
from sqlalchemy import String, Integer, DateTime, Text
from os_dns_updater.utils.cfg import DNS_CONF
dbcred = DNS_CONF["db_user"]+":"+DNS_CONF["db_password"]
dbaddr = "mysql://"+dbcred+"@localhost/"+DNS_CONF["db_name"]
dbengine = create_engine(dbaddr)
dbmeta = MetaData()
#create empty db manually or fuel plugin
def init_tables():
db_instance = Table("instance", dbmeta,
Column("id", Integer, primary_key=True),
Column("ip", String(20)),
Column("name", String(90)),
Column("uuid", String(40)),
Column("state", String(90)),
Column("dns_domain", String(90)),
Column("created_at", DateTime),
Column("updated_at", DateTime),
Column("deleted_at", DateTime)
)
db_event = Table("event", dbmeta,
#will be used for synchronization
Column("id", Integer, primary_key=True),
Column("fk_instance_id", Integer, ForeignKey("instance.id")),
Column("type", String(24)),#enum
Column("description", String(90)),
Column("date", DateTime)
)
dbmeta.drop_all(dbengine)
dbmeta.create_all(dbengine)
init_tables()