core: added metadata for control upgrades.
This commit is contained in:
parent
b8e42f991d
commit
4d3bbcd18e
2 changed files with 39 additions and 2 deletions
|
|
@ -52,7 +52,8 @@ from rhodecode.lib.middleware.https_fixup import HttpsFixup
|
|||
from rhodecode.lib.middleware.vcs import VCSMiddleware
|
||||
from rhodecode.lib.plugins.utils import register_rhodecode_plugin
|
||||
from rhodecode.lib.utils2 import aslist as rhodecode_aslist
|
||||
from rhodecode.subscribers import scan_repositories_if_enabled
|
||||
from rhodecode.subscribers import (
|
||||
scan_repositories_if_enabled, write_metadata_if_needed)
|
||||
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
|
@ -296,6 +297,7 @@ def includeme(config):
|
|||
|
||||
# Add subscribers.
|
||||
config.add_subscriber(scan_repositories_if_enabled, ApplicationCreated)
|
||||
config.add_subscriber(write_metadata_if_needed, ApplicationCreated)
|
||||
|
||||
# Set the authorization policy.
|
||||
authz_policy = ACLAuthorizationPolicy()
|
||||
|
|
|
|||
|
|
@ -18,11 +18,12 @@
|
|||
# RhodeCode Enterprise Edition, including its added features, Support services,
|
||||
# and proprietary license terms, please see https://rhodecode.com/licenses/
|
||||
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import pylons
|
||||
import Queue
|
||||
import subprocess32
|
||||
import os
|
||||
|
||||
from pyramid.i18n import get_localizer
|
||||
from pyramid.threadlocal import get_current_request
|
||||
|
|
@ -134,6 +135,40 @@ def scan_repositories_if_enabled(event):
|
|||
repo2db_mapper(repositories, remove_obsolete=False)
|
||||
|
||||
|
||||
def write_metadata_if_needed(event):
|
||||
"""
|
||||
Writes upgrade metadata
|
||||
"""
|
||||
import rhodecode
|
||||
from rhodecode.lib import system_info
|
||||
from rhodecode.lib import ext_json
|
||||
|
||||
def write():
|
||||
fname = '.rcmetadata.json'
|
||||
ini_loc = os.path.dirname(rhodecode.CONFIG.get('__file__'))
|
||||
metadata_destination = os.path.join(ini_loc, fname)
|
||||
|
||||
dbinfo = system_info.SysInfo(system_info.database_info)()['value']
|
||||
del dbinfo['url']
|
||||
metadata = dict(
|
||||
desc='upgrade metadata info',
|
||||
created_on=datetime.datetime.utcnow().isoformat(),
|
||||
usage=system_info.SysInfo(system_info.usage_info)()['value'],
|
||||
platform=system_info.SysInfo(system_info.platform_type)()['value'],
|
||||
database=dbinfo,
|
||||
cpu=system_info.SysInfo(system_info.cpu)()['value'],
|
||||
memory=system_info.SysInfo(system_info.memory)()['value'],
|
||||
)
|
||||
|
||||
with open(metadata_destination, 'wb') as f:
|
||||
f.write(ext_json.json.dumps(metadata))
|
||||
|
||||
try:
|
||||
write()
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
class Subscriber(object):
|
||||
"""
|
||||
Base class for subscribers to the pyramid event system.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue