def notify(_context, message): """Notifies the recipient of the desired event given the model. Log notifications using OpenStack's default logging system. """ priority = message.get("priority", CONF.default_notification_level) priority = priority.lower() logger = logging.getLogger("solum.openstack.common.notification.%s" % message["event_type"]) getattr(logger, priority)(jsonutils.dumps(message))
def notify(_context, message): """Notifies the recipient of the desired event given the model. Log notifications using OpenStack's default logging system. """ priority = message.get('priority', CONF.default_notification_level) priority = priority.lower() logger = logging.getLogger( 'solum.openstack.common.notification.%s' % message['event_type']) getattr(logger, priority)(jsonutils.dumps(message))
from oslo_db import exception as db_exc from oslo_db.sqlalchemy import models from six import moves from sqlalchemy import exc as sqla_exc from sqlalchemy.ext import declarative from sqlalchemy.orm import exc as orm_exc from sqlalchemy import types from solum.common import exception from solum.common import yamlutils from solum import objects from solum.objects import sqlalchemy as object_sqla from solum.openstack.common import log as logging from solum.openstack.common import uuidutils LOG = logging.getLogger(__name__) def retry(fun): """Decorator to retry a DB call if certain exception was received.""" @functools.wraps(fun) def _wrapper(*args, **kwargs): max_retries = kwargs.pop('max_retries', 3) for tries in range(max_retries): try: return fun(*args, **kwargs) except (db_exc.DBDeadlock, orm_exc.StaleDataError, exception.ResourceExists): LOG.warning("Failed DB call %s. Retrying %s more times." % (fun.__name__, max_retries - tries - 1)) if tries + 1 >= max_retries:
"""Solum common internal object model""" import collections import copy import functools import six from solum.objects import fields from solum.openstack.common.gettextutils import _ from solum.openstack.common import log as logging from solum.openstack.common.rpc import common as rpc_common import solum.openstack.common.rpc.serializer from solum.openstack.common import versionutils LOG = logging.getLogger('object') class NotSpecifiedSentinel: pass class ObjectException(Exception): """Base Object Exception.""" class UnsupportedObjectError(ObjectException): def __init__(self, **kwargs): super(ObjectException, self).__init__( _('Unsupported object type %(objtype)s') % kwargs)
], help='Add python stack traces to SQL as comment strings'), cfg.IntOpt('pool_timeout', default=None, deprecated_opts=[ cfg.DeprecatedOpt('sqlalchemy_pool_timeout', group='DATABASE') ], help='If set, use this value for pool_timeout with sqlalchemy'), ] CONF = cfg.CONF CONF.register_opts(sqlite_db_opts) CONF.register_opts(database_opts, 'database') LOG = logging.getLogger(__name__) _ENGINE = None _MAKER = None _SLAVE_ENGINE = None _SLAVE_MAKER = None def set_defaults(sql_connection, sqlite_db, max_pool_size=None, max_overflow=None, pool_timeout=None): """Set defaults for configuration variables.""" cfg.set_defaults(database_opts, connection=sql_connection) cfg.set_defaults(sqlite_db_opts, sqlite_db=sqlite_db)
import docker from docker import errors from oslo_config import cfg from requests.packages.urllib3 import exceptions as req_exp from solum.common import exception as exc from solum.common import solum_swiftclient from solum.openstack.common import log as solum_log from solum.uploaders import tenant_logger from solum.worker.lp_handlers import utils from swiftclient import exceptions as swiftexp LOG = solum_log.getLogger(__name__) cfg.CONF.import_opt('task_log_dir', 'solum.worker.config', group='worker') cfg.CONF.import_opt('docker_daemon_url', 'solum.worker.config', group='worker') cfg.CONF.import_opt('docker_build_timeout', 'solum.worker.config', group='worker') cfg.CONF.import_opt('container_mem_limit', 'solum.worker.config', group='worker') log_dir = cfg.CONF.worker.task_log_dir docker_daemon_url = cfg.CONF.worker.docker_daemon_url build_timeout = cfg.CONF.worker.docker_build_timeout mem_limit = cfg.CONF.worker.container_mem_limit MAX_GIT_CLONE_RETRY = 5 GIT_CLONE_TIMEOUT = 900 # 15 minutes cloner_gid = os.getgid()
# limitations under the License. import datetime as dt import json import logging import time from oslo.config import cfg from solum.openstack.common import log as openstack_logger import solum.uploaders.local as local_uploader import solum.uploaders.swift as swift_uploader cfg.CONF.import_group('worker', 'solum.worker.handlers.shell') LOG = openstack_logger.getLogger(__name__) class TenantLogger(object): def __init__(self, ctxt, assem, deployer_log_dir, stage): strategy = cfg.CONF.worker.log_upload_strategy LOG.debug("User log upload strategy: %s" % strategy) self.ctxt = ctxt self.assem = assem self.stage = stage # Note: assembly type is used by uploader self.assem.type = 'app'
from swiftclient import exceptions as swiftexp import yaml from solum.api.handlers import userlog_handler from solum.common import catalog from solum.common import clients from solum.common import exception from solum.common import heat_utils from solum.common import repo_utils from solum.common import solum_swiftclient from solum import objects from solum.objects import assembly from solum.openstack.common import log as openstack_logger from solum.uploaders import tenant_logger as tlog LOG = openstack_logger.getLogger(__name__) STATES = assembly.States SERVICE_OPTS = [ cfg.IntOpt('max_attempts', default=600, help=('Number of attempts to query the Heat stack for ' 'finding out the status of the created stack and ' 'getting url of the DU created in the stack')), cfg.IntOpt('du_attempts', default=500, help=('Number of attempts to query the Docker DU for ' 'finding out the status of the created app and ' 'getting url of the DU created in the stack')), cfg.IntOpt('wait_interval',
import time import docker from docker import errors from oslo_config import cfg from requests.packages.urllib3 import exceptions as req_exp from solum.common import exception as exc from solum.common import solum_swiftclient from solum.openstack.common import log as solum_log from solum.uploaders import tenant_logger from solum.worker.app_handlers import utils from swiftclient import exceptions as swiftexp LOG = solum_log.getLogger(__name__) cfg.CONF.import_opt('task_log_dir', 'solum.worker.config', group='worker') cfg.CONF.import_opt('docker_daemon_url', 'solum.worker.config', group='worker') cfg.CONF.import_opt('docker_build_timeout', 'solum.worker.config', group='worker') cfg.CONF.import_opt('container_mem_limit', 'solum.worker.config', group='worker') log_dir = cfg.CONF.worker.task_log_dir docker_daemon_url = cfg.CONF.worker.docker_daemon_url build_timeout = cfg.CONF.worker.docker_build_timeout mem_limit = cfg.CONF.worker.container_mem_limit MAX_GIT_CLONE_RETRY = 5
import collections import copy import functools import six from solum.objects import fields from solum.openstack.common.gettextutils import _ from solum.openstack.common import log as logging from solum.openstack.common.rpc import common as rpc_common import solum.openstack.common.rpc.serializer from solum.openstack.common import versionutils LOG = logging.getLogger('object') class NotSpecifiedSentinel: pass class ObjectException(Exception): """Base Object Exception.""" class UnsupportedObjectError(ObjectException): def __init__(self, **kwargs): super(ObjectException, self).__init__( _('Unsupported object type %(objtype)s') % kwargs )