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)
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)
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)
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())
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()
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()