Esempio n. 1
0
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))
Esempio n. 2
0
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))
Esempio n. 3
0
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:
Esempio n. 4
0
"""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)
Esempio n. 5
0
                ],
                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)
Esempio n. 6
0
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()
Esempio n. 7
0
#    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'
Esempio n. 8
0
File: heat.py Progetto: 0xffea/solum
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',
Esempio n. 9
0
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
Esempio n. 10
0
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
            )