diff --git a/ironic/db/sqlalchemy/api.py b/ironic/db/sqlalchemy/api.py index 1d29353ae7..e740e94c14 100644 --- a/ironic/db/sqlalchemy/api.py +++ b/ironic/db/sqlalchemy/api.py @@ -21,13 +21,11 @@ import datetime from oslo.config import cfg from oslo.db import exception as db_exc -from oslo.db import options as db_options from oslo.db.sqlalchemy import session as db_session from oslo.db.sqlalchemy import utils as db_utils from sqlalchemy.orm.exc import NoResultFound from ironic.common import exception -from ironic.common import paths from ironic.common import states from ironic.common import utils from ironic.db import api @@ -43,9 +41,6 @@ CONF.import_opt('heartbeat_timeout', LOG = log.getLogger(__name__) -_DEFAULT_SQL_CONNECTION = 'sqlite:///' + paths.state_path_def('ironic.sqlite') -db_options.set_defaults(CONF, _DEFAULT_SQL_CONNECTION, 'ironic.sqlite') - _FACADE = None diff --git a/ironic/db/sqlalchemy/models.py b/ironic/db/sqlalchemy/models.py index 12a56754ec..50cf9c885f 100644 --- a/ironic/db/sqlalchemy/models.py +++ b/ironic/db/sqlalchemy/models.py @@ -21,6 +21,7 @@ SQLAlchemy models for baremetal data. import json from oslo.config import cfg +from oslo.db import options as db_options from oslo.db.sqlalchemy import models import six.moves.urllib.parse as urlparse from sqlalchemy import Boolean, Column, DateTime @@ -29,6 +30,8 @@ from sqlalchemy import schema, String, Text from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.types import TypeDecorator, TEXT +from ironic.common import paths + sql_opts = [ cfg.StrOpt('mysql_engine', @@ -36,13 +39,17 @@ sql_opts = [ help='MySQL engine to use.') ] +_DEFAULT_SQL_CONNECTION = 'sqlite:///' + paths.state_path_def('ironic.sqlite') + + cfg.CONF.register_opts(sql_opts, 'database') +db_options.set_defaults(cfg.CONF, _DEFAULT_SQL_CONNECTION, 'ironic.sqlite') def table_args(): - engine_name = urlparse.urlparse(cfg.CONF.database_connection).scheme + engine_name = urlparse.urlparse(cfg.CONF.database.connection).scheme if engine_name == 'mysql': - return {'mysql_engine': cfg.CONF.mysql_engine, + return {'mysql_engine': cfg.CONF.database.mysql_engine, 'mysql_charset': "utf8"} return None @@ -109,6 +116,7 @@ class Chassis(Base): __tablename__ = 'chassis' __table_args__ = ( schema.UniqueConstraint('uuid', name='uniq_chassis0uuid'), + table_args() ) id = Column(Integer, primary_key=True) uuid = Column(String(36)) @@ -122,6 +130,7 @@ class Conductor(Base): __tablename__ = 'conductors' __table_args__ = ( schema.UniqueConstraint('hostname', name='uniq_conductors0hostname'), + table_args() ) id = Column(Integer, primary_key=True) hostname = Column(String(255), nullable=False) @@ -135,7 +144,8 @@ class Node(Base): __table_args__ = ( schema.UniqueConstraint('uuid', name='uniq_nodes0uuid'), schema.UniqueConstraint('instance_uuid', - name='uniq_nodes0instance_uuid')) + name='uniq_nodes0instance_uuid'), + table_args()) id = Column(Integer, primary_key=True) uuid = Column(String(36)) # NOTE(deva): we store instance_uuid directly on the node so that we can @@ -165,7 +175,8 @@ class Port(Base): __tablename__ = 'ports' __table_args__ = ( schema.UniqueConstraint('address', name='uniq_ports0address'), - schema.UniqueConstraint('uuid', name='uniq_ports0uuid')) + schema.UniqueConstraint('uuid', name='uniq_ports0uuid'), + table_args()) id = Column(Integer, primary_key=True) uuid = Column(String(36)) address = Column(String(18))