""" from oslo_db import options as db_options from oslo_db.sqlalchemy import models from oslo_db.sqlalchemy import types as db_types import six.moves.urllib.parse as urlparse from sqlalchemy import Boolean, Column, DateTime, Index from sqlalchemy import ForeignKey, Integer from sqlalchemy import schema, String, Text from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import orm from ironic.common import paths from ironic.conf import CONF _DEFAULT_SQL_CONNECTION = 'sqlite:///' + paths.state_path_def('ironic.sqlite') db_options.set_defaults(CONF, _DEFAULT_SQL_CONNECTION, 'ironic.sqlite') def table_args(): engine_name = urlparse.urlparse(CONF.database.connection).scheme if engine_name == 'mysql': return { 'mysql_engine': CONF.database.mysql_engine, 'mysql_charset': "utf8" } return None class IronicBase(models.TimestampMixin, models.ModelBase):
from sqlalchemy import Boolean, Column, DateTime from sqlalchemy import ForeignKey, Integer 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', default='InnoDB', 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 if engine_name == 'mysql': return {'mysql_engine': cfg.CONF.database.mysql_engine, 'mysql_charset': "utf8"} return None class JsonEncodedType(TypeDecorator):
# 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. from oslo.config import cfg from ironic.common import paths from ironic.openstack.common.db.sqlalchemy import session as db_session from ironic.openstack.common import rpc from ironic import version _DEFAULT_SQL_CONNECTION = 'sqlite:///' + paths.state_path_def('$sqlite_db') def parse_args(argv, default_config_files=None): db_session.set_defaults(sql_connection=_DEFAULT_SQL_CONNECTION, sqlite_db='ironic.sqlite') rpc.set_defaults(control_exchange='ironic') cfg.CONF(argv[1:], project='ironic', version=version.version_string(), default_config_files=default_config_files)
from ironic.common import exception from ironic.common import paths from ironic.common import states from ironic.common import utils from ironic.conductor import task_manager from ironic.drivers import base from ironic.openstack.common import excutils from ironic.openstack.common import log as logging from ironic.openstack.common import loopingcall opts = [ cfg.StrOpt("terminal", default="shellinaboxd", help="path to baremetal terminal program"), cfg.StrOpt("terminal_cert_dir", default=None, help="path to baremetal terminal SSL cert(PEM)"), cfg.StrOpt( "terminal_pid_dir", default=paths.state_path_def("baremetal/console"), help="path to directory stores pidfiles of baremetal_terminal", ), cfg.IntOpt("ipmi_power_retry", default=10, help="Maximum seconds to retry IPMI operations"), ] CONF = cfg.CONF CONF.register_opts(opts) LOG = logging.getLogger(__name__) VALID_BOOT_DEVICES = ["pxe", "disk", "safe", "cdrom", "bios"] @contextlib.contextmanager def _make_password_file(password):
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 from sqlalchemy import ForeignKey, Integer 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", default="InnoDB", 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 if engine_name == "mysql": return {"mysql_engine": cfg.CONF.database.mysql_engine, "mysql_charset": "utf8"} return None class JsonEncodedType(TypeDecorator): """Abstract base type serialized as json-encoded string in db."""
from ironic.common import states from ironic.common import utils from ironic.drivers import base from ironic.openstack.common import jsonutils as json from ironic.openstack.common import log as logging from ironic.openstack.common import loopingcall opts = [ cfg.StrOpt('terminal', default='shellinaboxd', help='path to baremetal terminal program'), cfg.StrOpt('terminal_cert_dir', default=None, help='path to baremetal terminal SSL cert(PEM)'), cfg.StrOpt('terminal_pid_dir', default=paths.state_path_def('baremetal/console'), help='path to directory stores pidfiles of baremetal_terminal'), cfg.IntOpt('ipmi_power_retry', default=5, help='Maximum seconds to retry IPMI operations'), ] CONF = cfg.CONF CONF.register_opts(opts) LOG = logging.getLogger(__name__) def _make_password_file(password): fd, path = tempfile.mkstemp() os.fchmod(fd, stat.S_IRUSR | stat.S_IWUSR)