##// END OF EJS Templates
core: added metadata for control upgrades.
marcink -
r1392:970f8533 default
parent child Browse files
Show More
@@ -52,7 +52,8 b' from rhodecode.lib.middleware.https_fixu'
52 from rhodecode.lib.middleware.vcs import VCSMiddleware
52 from rhodecode.lib.middleware.vcs import VCSMiddleware
53 from rhodecode.lib.plugins.utils import register_rhodecode_plugin
53 from rhodecode.lib.plugins.utils import register_rhodecode_plugin
54 from rhodecode.lib.utils2 import aslist as rhodecode_aslist
54 from rhodecode.lib.utils2 import aslist as rhodecode_aslist
55 from rhodecode.subscribers import scan_repositories_if_enabled
55 from rhodecode.subscribers import (
56 scan_repositories_if_enabled, write_metadata_if_needed)
56
57
57
58
58 log = logging.getLogger(__name__)
59 log = logging.getLogger(__name__)
@@ -296,6 +297,7 b' def includeme(config):'
296
297
297 # Add subscribers.
298 # Add subscribers.
298 config.add_subscriber(scan_repositories_if_enabled, ApplicationCreated)
299 config.add_subscriber(scan_repositories_if_enabled, ApplicationCreated)
300 config.add_subscriber(write_metadata_if_needed, ApplicationCreated)
299
301
300 # Set the authorization policy.
302 # Set the authorization policy.
301 authz_policy = ACLAuthorizationPolicy()
303 authz_policy = ACLAuthorizationPolicy()
@@ -18,11 +18,12 b''
18 # RhodeCode Enterprise Edition, including its added features, Support services,
18 # RhodeCode Enterprise Edition, including its added features, Support services,
19 # and proprietary license terms, please see https://rhodecode.com/licenses/
19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20
20
21
21 import datetime
22 import logging
22 import logging
23 import pylons
23 import pylons
24 import Queue
24 import Queue
25 import subprocess32
25 import subprocess32
26 import os
26
27
27 from pyramid.i18n import get_localizer
28 from pyramid.i18n import get_localizer
28 from pyramid.threadlocal import get_current_request
29 from pyramid.threadlocal import get_current_request
@@ -134,6 +135,40 b' def scan_repositories_if_enabled(event):'
134 repo2db_mapper(repositories, remove_obsolete=False)
135 repo2db_mapper(repositories, remove_obsolete=False)
135
136
136
137
138 def write_metadata_if_needed(event):
139 """
140 Writes upgrade metadata
141 """
142 import rhodecode
143 from rhodecode.lib import system_info
144 from rhodecode.lib import ext_json
145
146 def write():
147 fname = '.rcmetadata.json'
148 ini_loc = os.path.dirname(rhodecode.CONFIG.get('__file__'))
149 metadata_destination = os.path.join(ini_loc, fname)
150
151 dbinfo = system_info.SysInfo(system_info.database_info)()['value']
152 del dbinfo['url']
153 metadata = dict(
154 desc='upgrade metadata info',
155 created_on=datetime.datetime.utcnow().isoformat(),
156 usage=system_info.SysInfo(system_info.usage_info)()['value'],
157 platform=system_info.SysInfo(system_info.platform_type)()['value'],
158 database=dbinfo,
159 cpu=system_info.SysInfo(system_info.cpu)()['value'],
160 memory=system_info.SysInfo(system_info.memory)()['value'],
161 )
162
163 with open(metadata_destination, 'wb') as f:
164 f.write(ext_json.json.dumps(metadata))
165
166 try:
167 write()
168 except Exception:
169 pass
170
171
137 class Subscriber(object):
172 class Subscriber(object):
138 """
173 """
139 Base class for subscribers to the pyramid event system.
174 Base class for subscribers to the pyramid event system.
General Comments 0
You need to be logged in to leave comments. Login now