Example #1
0
def main():
    # init conf and logging
    conf = cfg.CONF
    conf.register_cli_opts(config.OPTS)
    conf.register_opts(config.OPTS)
    conf()

    logging.setup('driverlog')
    LOG.info('Logging enabled')

    MEMCACHED_URI_PREFIX = r'^memcached:\/\/'
    stripped = re.sub(MEMCACHED_URI_PREFIX, '', cfg.CONF.runtime_storage_uri)
    if not stripped:
        exit(1)

    memcached_uri = stripped.split(',')
    memcached = memcache.Client(memcached_uri)

    default_data = utils.read_json_from_uri(cfg.CONF.default_data_uri)
    if not default_data:
        LOG.critical('Unable to load default data')
        return not 0

    ci_ids_map = {}
    for driver in default_data['drivers']:
        vendor = driver['vendor']
        driver_name = driver['name']
        for os_version in driver['os_versions']:
            if os_version['verification'] == 'external_ci_verification':
                ci_id = os_version['ci_id']
                ci_ids_map[ci_id] = (vendor, driver_name)

    persisted_data = {}
    if not cfg.CONF.force_update:
        persisted_data = memcached.get('driverlog:update') or {}

    for record in update_generator(memcached,
                                   default_data,
                                   ci_ids_map,
                                   force_update=cfg.CONF.force_update):
        LOG.info('Got new record from Gerrit: %s', record)

        key = record.keys()[0]
        if key not in persisted_data:
            persisted_data.update(record)
        else:
            persisted_os_versions = persisted_data[key]['os_versions_map']
            for os_version, info in record[key]['os_versions_map'].iteritems():
                if os_version not in persisted_os_versions:
                    persisted_os_versions[os_version] = info
                else:
                    persisted_os_versions[os_version].update(info)

    memcached.set('driverlog:update', persisted_data)
Example #2
0
def main():
    # init conf and logging
    conf = cfg.CONF
    conf.register_cli_opts(config.OPTS)
    conf.register_opts(config.OPTS)
    conf()

    logging.setup('driverlog')
    LOG.info('Logging enabled')

    MEMCACHED_URI_PREFIX = r'^memcached:\/\/'
    stripped = re.sub(MEMCACHED_URI_PREFIX, '', cfg.CONF.runtime_storage_uri)
    if not stripped:
        exit(1)

    memcached_uri = stripped.split(',')
    memcached = memcache.Client(memcached_uri)

    default_data = utils.read_json_from_uri(cfg.CONF.default_data_uri)
    if not default_data:
        LOG.critical('Unable to load default data')
        return not 0

    ci_ids_map = {}
    for driver in default_data['drivers']:
        vendor = driver['vendor']
        driver_name = driver['name']
        for os_version in driver['os_versions']:
            if os_version['verification'] == 'external_ci_verification':
                ci_id = os_version['ci_id']
                ci_ids_map[ci_id] = (vendor, driver_name)

    persisted_data = {}
    if not cfg.CONF.force_update:
        persisted_data = memcached.get('driverlog:update') or {}

    for record in update_generator(memcached, default_data, ci_ids_map,
                                   force_update=cfg.CONF.force_update):
        LOG.info('Got new record from Gerrit: %s', record)

        key = record.keys()[0]
        if key not in persisted_data:
            persisted_data.update(record)
        else:
            persisted_os_versions = persisted_data[key]['os_versions_map']
            for os_version, info in record[key]['os_versions_map'].iteritems():
                if os_version not in persisted_os_versions:
                    persisted_os_versions[os_version] = info
                else:
                    persisted_os_versions[os_version].update(info)

    memcached.set('driverlog:update', persisted_data)
Example #3
0
def main():
    conf_file = os.getenv('DRIVERLOG_CONF')
    if conf_file and os.path.isfile(conf_file):
        conf(default_config_files=[conf_file])
        app.config['DEBUG'] = cfg.CONF.debug
        app.config['CONF'] = cfg.CONF
        LOG.info('DriverLog.dashboard is configured via "%s"', conf_file)
    else:
        conf(project='driverlog')

    logging.setup('driverlog')

    app.run(cfg.CONF.listen_host, cfg.CONF.listen_port)
Example #4
0
def main():
    conf_file = os.getenv('DRIVERLOG_CONF')
    if conf_file and os.path.isfile(conf_file):
        conf(default_config_files=[conf_file])
        app.config['DEBUG'] = cfg.CONF.debug
        app.config['CONF'] = cfg.CONF
        LOG.info('DriverLog.dashboard is configured via "%s"', conf_file)
    else:
        conf(project='driverlog')

    logging.setup('driverlog')

    app.run(cfg.CONF.listen_host, cfg.CONF.listen_port)
Example #5
0
def main():
    # init conf and logging
    conf = cfg.CONF
    conf.register_cli_opts(config.OPTS)
    conf.register_opts(config.OPTS)
    conf()

    logging.setup('driverlog')
    LOG.info('Logging enabled')

    MEMCACHED_URI_PREFIX = r'^memcached:\/\/'
    stripped = re.sub(MEMCACHED_URI_PREFIX, '', cfg.CONF.runtime_storage_uri)
    if not stripped:
        exit(1)

    memcached_uri = stripped.split(',')
    memcached_inst = memcache.Client(memcached_uri)

    default_data = utils.read_json_from_uri(cfg.CONF.default_data_uri)
    if not default_data:
        LOG.critical('Unable to load default data')
        return not 0

    process(memcached_inst, default_data, cfg.CONF.force_update)
Example #6
0
def main():
    # init conf and logging
    conf = cfg.CONF
    conf.register_cli_opts(config.OPTS)
    conf.register_opts(config.OPTS)
    conf()

    logging.setup('driverlog')
    LOG.info('Logging enabled')

    MEMCACHED_URI_PREFIX = r'^memcached:\/\/'
    stripped = re.sub(MEMCACHED_URI_PREFIX, '', cfg.CONF.runtime_storage_uri)
    if not stripped:
        exit(1)

    memcached_uri = stripped.split(',')
    memcached_inst = memcache.Client(memcached_uri)

    default_data = utils.read_json_from_uri(cfg.CONF.default_data_uri)
    if not default_data:
        LOG.critical('Unable to load default data')
        return not 0

    process(memcached_inst, default_data, cfg.CONF.force_update)
Example #7
0
def main():
    # init conf and logging
    conf = cfg.CONF
    conf.register_cli_opts(config.OPTS)
    conf.register_opts(config.OPTS)
    conf()

    logging.setup('driverlog')
    LOG.info('Logging enabled')

    MEMCACHED_URI_PREFIX = r'^memcached:\/\/'
    stripped = re.sub(MEMCACHED_URI_PREFIX, '', cfg.CONF.runtime_storage_uri)
    if not stripped:
        exit(1)

    memcached_uri = stripped.split(',')
    memcache_inst = memcache.Client(memcached_uri)

    default_data = utils.read_json_from_uri(cfg.CONF.default_data_uri)
    if not default_data:
        LOG.critical('Unable to load default data')
        return not 0

    ci_ids_map = collections.defaultdict(set)
    for driver in default_data['drivers']:
        vendor = driver['vendor']
        driver_name = driver['name']
        if 'ci_id' in driver:
            ci_id = driver['ci_id']
            ci_ids_map[ci_id].add((vendor, driver_name))

        driver['os_versions_map'] = {}
        if 'releases' in driver:
            for release in driver['releases']:
                driver['os_versions_map'][release] = {
                    'success': True,
                    'comment': 'self-tested verification'
                }

    update = {}
    if not cfg.CONF.force_update:
        update = memcache_inst.get('driverlog:update') or {}

    has_update = False

    for record in update_generator(memcache_inst,
                                   default_data,
                                   ci_ids_map,
                                   force_update=cfg.CONF.force_update):
        LOG.info('Got new record from Gerrit: %s', record)
        has_update = True

        key = record.keys()[0]
        if key not in update:
            update.update(record)
        else:
            os_version = record[key]['os_versions_map'].keys()[0]
            info = record[key]['os_versions_map'].values()[0]
            if os_version in update[key]['os_versions_map']:
                update[key]['os_versions_map'][os_version].update(info)
            else:
                update[key]['os_versions_map'][os_version] = info

    memcache_inst.set('driverlog:default_data', default_data)
    memcache_inst.set('driverlog:update', update)

    old_dd_hash = memcache_inst.get('driverlog:default_data_hash')
    new_dd_hash = _get_hash(default_data)
    memcache_inst.set('driverlog:default_data_hash', new_dd_hash)

    if has_update or old_dd_hash != new_dd_hash:
        memcache_inst.set('driverlog:update_hash', time.time())
Example #8
0
File: web.py Project: Mirantis/oscp
from driverlog.processor import config


# Application objects ---------

app = flask.Flask(__name__)
app.config.from_object(__name__)
app.config.from_envvar('DASHBOARD_CONF', silent=True)
app.config['APPLICATION_ROOT'] = '/myapp'
app.register_blueprint(api.blueprint)

LOG = logging.getLogger(__name__)

conf = cfg.CONF
conf.register_opts(config.OPTS)
logging.setup('dashboard')
LOG.info('Logging enabled')

conf_file = os.getenv('DRIVERLOG_CONF')
if conf_file and os.path.isfile(conf_file):
    conf(default_config_files=[conf_file])
    app.config['DEBUG'] = cfg.CONF.debug
    app.config['CONF'] = cfg.CONF
else:
    LOG.info('Conf file is empty or not exist')


# Handlers ---------

@app.route('/')
@decorators.templated()
Example #9
0
def main():
    # init conf and logging
    conf = cfg.CONF
    conf.register_cli_opts(config.OPTS)
    conf.register_opts(config.OPTS)
    conf()

    logging.setup('driverlog')
    LOG.info('Logging enabled')

    MEMCACHED_URI_PREFIX = r'^memcached:\/\/'
    stripped = re.sub(MEMCACHED_URI_PREFIX, '', cfg.CONF.runtime_storage_uri)
    if not stripped:
        exit(1)

    memcached_uri = stripped.split(',')
    memcache_inst = memcache.Client(memcached_uri)

    default_data = utils.read_json_from_uri(cfg.CONF.default_data_uri)
    if not default_data:
        LOG.critical('Unable to load default data')
        return not 0

    ci_ids_map = collections.defaultdict(set)
    for driver in default_data['drivers']:
        vendor = driver['vendor']
        driver_name = driver['name']
        if 'ci_id' in driver:
            ci_id = driver['ci_id']
            ci_ids_map[ci_id].add((vendor, driver_name))

        driver['os_versions_map'] = {}
        if 'releases' in driver:
            for release in driver['releases']:
                driver['os_versions_map'][release] = {
                    'success': True,
                    'comment': 'self-tested verification'
                }

    update = {}
    if not cfg.CONF.force_update:
        update = memcache_inst.get('driverlog:update') or {}

    has_update = False

    for record in update_generator(memcache_inst, default_data, ci_ids_map,
                                   force_update=cfg.CONF.force_update):
        LOG.info('Got new record from Gerrit: %s', record)
        has_update = True

        key = record.keys()[0]
        if key not in update:
            update.update(record)
        else:
            os_version = record[key]['os_versions_map'].keys()[0]
            info = record[key]['os_versions_map'].values()[0]
            if os_version in update[key]['os_versions_map']:
                update[key]['os_versions_map'][os_version].update(info)
            else:
                update[key]['os_versions_map'][os_version] = info

    memcache_inst.set('driverlog:default_data', default_data)
    memcache_inst.set('driverlog:update', update)

    old_dd_hash = memcache_inst.get('driverlog:default_data_hash')
    new_dd_hash = _get_hash(default_data)
    memcache_inst.set('driverlog:default_data_hash', new_dd_hash)

    if has_update or old_dd_hash != new_dd_hash:
        memcache_inst.set('driverlog:update_hash', time.time())
Example #10
0
from driverlog.openstack.common import log as logging
from driverlog.processor import config

# Application objects ---------

app = flask.Flask(__name__)
app.config.from_object(__name__)
app.config.from_envvar('DASHBOARD_CONF', silent=True)
app.config['APPLICATION_ROOT'] = '/myapp'
app.register_blueprint(api.blueprint)

LOG = logging.getLogger(__name__)

conf = cfg.CONF
conf.register_opts(config.OPTS)
logging.setup('dashboard')
LOG.info('Logging enabled')

conf_file = os.getenv('DRIVERLOG_CONF')
if conf_file and os.path.isfile(conf_file):
    conf(default_config_files=[conf_file])
    app.config['DEBUG'] = cfg.CONF.debug
    app.config['CONF'] = cfg.CONF
else:
    LOG.info('Conf file is empty or not exist')

# Handlers ---------


@app.route('/')
@decorators.templated()