Пример #1
0
def get_vault():
    vault = getattr(flask.current_app, 'stackalytics_vault', None)
    if not vault:
        try:
            vault = {}
            runtime_storage_inst = runtime_storage.get_runtime_storage(
                cfg.CONF.runtime_storage_uri)
            vault['runtime_storage'] = runtime_storage_inst
            vault['memory_storage'] = memory_storage.get_memory_storage(
                memory_storage.MEMORY_STORAGE_CACHED)

            init_project_types(vault)
            init_releases(vault)

            flask.current_app.stackalytics_vault = vault
        except Exception as e:
            LOG.critical('Failed to initialize application: %s', e)
            LOG.exception(e)
            flask.abort(500)

    if not getattr(flask.request, 'stackalytics_updated', None):
        flask.request.stackalytics_updated = True
        memory_storage_inst = vault['memory_storage']
        have_updates = memory_storage_inst.update(
            vault['runtime_storage'].get_update(os.getpid()))

        if have_updates:
            init_project_types(vault)
            init_releases(vault)
            init_module_groups(vault)

    return vault
Пример #2
0
def get_vault():
    vault = getattr(app, 'stackalytics_vault', None)
    if not vault:
        try:
            vault = {}
            runtime_storage_inst = runtime_storage.get_runtime_storage(
                cfg.CONF.runtime_storage_uri)
            vault['runtime_storage'] = runtime_storage_inst
            vault['memory_storage'] = memory_storage.get_memory_storage(
                memory_storage.MEMORY_STORAGE_CACHED)

            init_project_types(vault)
            init_releases(vault)

            app.stackalytics_vault = vault
        except Exception as e:
            LOG.critical('Failed to initialize application: %s', e)
            LOG.exception(e)
            flask.abort(500)

    if not getattr(flask.request, 'stackalytics_updated', None):
        flask.request.stackalytics_updated = True
        memory_storage_inst = vault['memory_storage']
        have_updates = memory_storage_inst.update(
            vault['runtime_storage'].get_update(os.getpid()))

        if have_updates:
            init_project_types(vault)
            init_releases(vault)
            init_module_groups(vault)

    return vault
Пример #3
0
def get_vault():
    vault = getattr(app, 'stackalytics_vault', None)
    if not vault:
        vault = {}
        runtime_storage_inst = runtime_storage.get_runtime_storage(
            cfg.CONF.runtime_storage_uri)
        vault['runtime_storage'] = runtime_storage_inst
        vault['memory_storage'] = memory_storage.get_memory_storage(
            memory_storage.MEMORY_STORAGE_CACHED,
            vault['runtime_storage'].get_update(os.getpid()))

        releases = list(runtime_storage_inst.get_by_key('releases'))
        vault['start_date'] = releases[0]['end_date']
        vault['end_date'] = releases[-1]['end_date']
        start_date = releases[0]['end_date']
        for r in releases[1:]:
            r['start_date'] = start_date
            start_date = r['end_date']
        vault['releases'] = dict(
            (r['release_name'].lower(), r) for r in releases[1:])
        modules = runtime_storage_inst.get_by_key('repos')
        vault['modules'] = dict(
            (r['module'].lower(), r['project_type'].lower()) for r in modules)
        app.stackalytics_vault = vault

        init_project_types(vault)
    else:
        if not getattr(flask.request, 'stackalytics_updated', None):
            flask.request.stackalytics_updated = True
            memory_storage_inst = vault['memory_storage']
            memory_storage_inst.update(vault['runtime_storage'].get_update(
                os.getpid()))

    return vault
Пример #4
0
def get_vault():
    vault = getattr(app, 'stackalytics_vault', None)
    if not vault:
        vault = {}
        runtime_storage_inst = runtime_storage.get_runtime_storage(
            cfg.CONF.runtime_storage_uri)
        vault['runtime_storage'] = runtime_storage_inst
        vault['memory_storage'] = memory_storage.get_memory_storage(
            memory_storage.MEMORY_STORAGE_CACHED,
            vault['runtime_storage'].get_update(os.getpid()))

        releases = list(runtime_storage_inst.get_by_key('releases'))
        vault['start_date'] = releases[0]['end_date']
        vault['end_date'] = releases[-1]['end_date']
        start_date = releases[0]['end_date']
        for r in releases[1:]:
            r['start_date'] = start_date
            start_date = r['end_date']
        vault['releases'] = dict((r['release_name'].lower(), r)
                                 for r in releases[1:])
        modules = runtime_storage_inst.get_by_key('repos')
        vault['modules'] = dict((r['module'].lower(),
                                 r['project_type'].lower()) for r in modules)
        app.stackalytics_vault = vault

        init_project_types(vault)
    else:
        if not getattr(flask.request, 'stackalytics_updated', None):
            flask.request.stackalytics_updated = True
            memory_storage_inst = vault['memory_storage']
            memory_storage_inst.update(
                vault['runtime_storage'].get_update(os.getpid()))

    return vault
Пример #5
0
def get_vault():
    vault = getattr(app, 'stackalytics_vault', None)
    if not vault:
        vault = {}
        vault['runtime_storage'] = runtime_storage.get_runtime_storage(
            cfg.CONF.runtime_storage_uri)
        vault['persistent_storage'] = (
            persistent_storage.get_persistent_storage(
                cfg.CONF.persistent_storage_uri))
        vault['memory_storage'] = memory_storage.get_memory_storage(
            memory_storage.MEMORY_STORAGE_CACHED,
            vault['runtime_storage'].get_update(os.getpid()))

        releases = vault['persistent_storage'].get_releases()
        vault['releases'] = dict((r['release_name'].lower(), r)
                                 for r in releases)
        modules = vault['persistent_storage'].get_repos()
        vault['modules'] = dict((r['module'].lower(),
                                 r['project_type'].lower()) for r in modules)
        app.stackalytics_vault = vault

        init_project_types(vault)
    else:
        if not getattr(flask.request, 'stackalytics_updated', None):
            flask.request.stackalytics_updated = True
            memory_storage_inst = vault['memory_storage']
            memory_storage_inst.update(
                vault['runtime_storage'].get_update(os.getpid()))

    return vault
Пример #6
0
def get_vault():
    vault = getattr(flask.current_app, 'spectrometer_vault', None)
    if not vault:
        try:
            vault = {}
            runtime_storage_inst = runtime_storage.get_runtime_storage(
                cfg.CONF.runtime_storage_uri)
            vault['runtime_storage'] = runtime_storage_inst
            vault['memory_storage'] = memory_storage.get_memory_storage(
                memory_storage.MEMORY_STORAGE_CACHED)

            flask.current_app.spectrometer_vault = vault
        except Exception as e:
            LOG.critical('Failed to initialize application: %s', e)
            LOG.exception(e)
            flask.abort(500)

    time_now = utils.date_to_timestamp('now')
    may_update_by_time = (time_now > vault.get('vault_update_time', 0) +
                          cfg.CONF.dashboard_update_interval)
    if (may_update_by_time and
            not getattr(flask.request, 'spectrometer_updated', None)):
        flask.request.spectrometer_updated = True
        vault['vault_update_time'] = time_now
        memory_storage_inst = vault['memory_storage']
        have_updates = memory_storage_inst.update(
            compact_records(vault['runtime_storage'].get_update(os.getpid())))
        vault['runtime_storage_update_time'] = (
            vault['runtime_storage'].get_by_key('runtime_storage_update_time'))

        if have_updates:
            vault['cache'] = {}
            vault['cache_size'] = 0
            _init_releases(vault)
            _init_module_groups(vault)
            _init_project_types(vault)
            _init_user_index(vault)

    return vault
Пример #7
0
def get_vault():
    vault = getattr(flask.current_app, 'spectrometer_vault', None)
    if not vault:
        try:
            vault = {}
            runtime_storage_inst = runtime_storage.get_runtime_storage(
                cfg.CONF.runtime_storage_uri)
            vault['runtime_storage'] = runtime_storage_inst
            vault['memory_storage'] = memory_storage.get_memory_storage(
                memory_storage.MEMORY_STORAGE_CACHED)

            flask.current_app.spectrometer_vault = vault
        except Exception as e:
            LOG.critical('Failed to initialize application: %s', e)
            LOG.exception(e)
            flask.abort(500)

    time_now = utils.date_to_timestamp('now')
    may_update_by_time = (time_now > vault.get('vault_update_time', 0) +
                          cfg.CONF.dashboard_update_interval)
    if (may_update_by_time
            and not getattr(flask.request, 'spectrometer_updated', None)):
        flask.request.spectrometer_updated = True
        vault['vault_update_time'] = time_now
        memory_storage_inst = vault['memory_storage']
        have_updates = memory_storage_inst.update(
            compact_records(vault['runtime_storage'].get_update(os.getpid())))
        vault['runtime_storage_update_time'] = (
            vault['runtime_storage'].get_by_key('runtime_storage_update_time'))

        if have_updates:
            vault['cache'] = {}
            vault['cache_size'] = 0
            _init_releases(vault)
            _init_module_groups(vault)
            _init_project_types(vault)
            _init_user_index(vault)

    return vault