Moved default parameters from code to config file
The following parameters are configured via stackalytics.conf: * default_metric * default_project_type * default_release (latest from default_data if None) Implements blueprint: move-defaults-to-config Change-Id: Ie3cacb9594f86401afa8b9a60621712b72fbf002
This commit is contained in:
parent
4e2726b27c
commit
eb3bebbaa6
@ -14,8 +14,10 @@
|
||||
# limitations under the License.
|
||||
|
||||
import flask
|
||||
from oslo.config import cfg
|
||||
from six.moves.urllib import parse
|
||||
|
||||
from dashboard import vault
|
||||
from stackalytics.openstack.common import log as logging
|
||||
|
||||
|
||||
@ -23,9 +25,6 @@ LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
DEFAULTS = {
|
||||
'metric': 'commits',
|
||||
'release': 'icehouse',
|
||||
'project_type': 'openstack',
|
||||
'review_nth': 5,
|
||||
}
|
||||
|
||||
@ -33,7 +32,6 @@ METRIC_LABELS = {
|
||||
'loc': 'Lines of code',
|
||||
'commits': 'Commits',
|
||||
'marks': 'Reviews',
|
||||
'tm_marks': 'Top Mentors',
|
||||
'emails': 'Emails',
|
||||
'bpd': 'Drafted Blueprints',
|
||||
'bpc': 'Completed Blueprints',
|
||||
@ -43,7 +41,6 @@ METRIC_TO_RECORD_TYPE = {
|
||||
'loc': 'commit',
|
||||
'commits': 'commit',
|
||||
'marks': 'mark',
|
||||
'tm_marks': 'mark',
|
||||
'emails': 'email',
|
||||
'bpd': 'bpd',
|
||||
'bpc': 'bpc',
|
||||
@ -54,6 +51,19 @@ DEFAULT_STATIC_ACTIVITY_SIZE = 100
|
||||
|
||||
|
||||
def get_default(param_name):
|
||||
if 'release' not in DEFAULTS:
|
||||
release = cfg.CONF.default_release
|
||||
if not release:
|
||||
runtime_storage_inst = vault.get_vault()['runtime_storage']
|
||||
releases = runtime_storage_inst.get_by_key('releases')
|
||||
if releases:
|
||||
release = releases[-1]['release_name']
|
||||
else:
|
||||
release = 'all'
|
||||
DEFAULTS['release'] = release.lower()
|
||||
DEFAULTS['metric'] = cfg.CONF.default_metric.lower()
|
||||
DEFAULTS['project_type'] = cfg.CONF.default_project_type.lower()
|
||||
|
||||
if param_name in DEFAULTS:
|
||||
return DEFAULTS[param_name]
|
||||
else:
|
||||
|
@ -37,3 +37,12 @@
|
||||
|
||||
# The address of file with list of programs
|
||||
# program_list_uri = https://raw.github.com/openstack/governance/master/reference/programs.yaml
|
||||
|
||||
# Default metric
|
||||
# default_metric = marks
|
||||
|
||||
# Default release, the most recent if not set
|
||||
# default_release =
|
||||
|
||||
# Default project type
|
||||
# default_project_type = openstack
|
||||
|
@ -46,4 +46,10 @@ OPTS = [
|
||||
default=('https://raw.github.com/openstack/governance/'
|
||||
'master/reference/programs.yaml'),
|
||||
help='The address of file with list of programs'),
|
||||
cfg.StrOpt('default-metric', default='marks',
|
||||
help='Default metric'),
|
||||
cfg.StrOpt('default-release',
|
||||
help='Default release, the most recent if not set'),
|
||||
cfg.StrOpt('default-project-type', default='openstack',
|
||||
help='Default project type'),
|
||||
]
|
||||
|
@ -37,7 +37,8 @@ class TestAPIModules(test_api.TestAPI):
|
||||
test_api.make_records(record_type=['commit'],
|
||||
module=['glance', 'nova', 'nova-cli'])):
|
||||
|
||||
response = self.app.get('/api/1.0/modules?project_type=all')
|
||||
response = self.app.get('/api/1.0/modules?'
|
||||
'project_type=all&metric=commits')
|
||||
modules = json.loads(response.data)['modules']
|
||||
self.assertEqual(
|
||||
[{'id': 'glance', 'text': 'glance', 'tag': 'module'},
|
||||
@ -50,7 +51,7 @@ class TestAPIModules(test_api.TestAPI):
|
||||
'project type')
|
||||
|
||||
response = self.app.get('/api/1.0/modules?module=nova-group&'
|
||||
'project_type=integrated')
|
||||
'project_type=integrated&metric=commits')
|
||||
modules = json.loads(response.data)['modules']
|
||||
self.assertEqual(
|
||||
[{'id': 'glance', 'text': 'glance', 'tag': 'module'},
|
||||
@ -61,7 +62,7 @@ class TestAPIModules(test_api.TestAPI):
|
||||
'project type')
|
||||
|
||||
response = self.app.get('/api/1.0/modules?query=glance&'
|
||||
'project_type=all')
|
||||
'project_type=all&metric=commits')
|
||||
modules = json.loads(response.data)['modules']
|
||||
self.assertEqual(
|
||||
[{'id': 'glance', 'text': 'glance', 'tag': 'module'}],
|
||||
|
@ -34,7 +34,8 @@ class TestAPIUsers(test_api.TestAPI):
|
||||
'modules': ['nova', 'glance']}]},
|
||||
test_api.make_records(record_type=['commit'], module=['nova'],
|
||||
user_id=['john_doe', 'bill_smith'])):
|
||||
response = self.app.get('/api/1.0/users?module=nova')
|
||||
response = self.app.get('/api/1.0/users?'
|
||||
'module=nova&metric=commits')
|
||||
users = json.loads(response.data)['users']
|
||||
self.assertEqual(2, len(users))
|
||||
self.assertIn({'id': 'john_doe', 'text': 'John Doe'}, users)
|
||||
@ -49,7 +50,8 @@ class TestAPIUsers(test_api.TestAPI):
|
||||
'modules': ['nova', 'glance']}]},
|
||||
test_api.make_records(record_type=['commit'], module=['nova'],
|
||||
user_name=['John Doe', 'Bill Smith'])):
|
||||
response = self.app.get('/api/1.0/users?module=nova&query=doe')
|
||||
response = self.app.get('/api/1.0/users?'
|
||||
'module=nova&query=doe&metric=commits')
|
||||
users = json.loads(response.data)['users']
|
||||
self.assertEqual(1, len(users))
|
||||
self.assertIn({'id': 'john_doe', 'text': 'John Doe'}, users)
|
||||
|
Loading…
x
Reference in New Issue
Block a user