Add official openstack module group

Also add project types for 2 types of deliverables: service and library

Change-Id: I3e85102ac895e49a84f07f083883fd1c96cdd8f3
This commit is contained in:
Ilya Shakhat 2015-08-03 12:31:40 +03:00
parent 70c6fe1d63
commit 0a4daaf186
5 changed files with 63 additions and 9 deletions

View File

@ -14141,7 +14141,7 @@
{
"id": "openstack",
"title": "OpenStack",
"modules": ["tc-approved-release", "governance", "api-wg"]
"modules": ["openstack-official", "governance", "api-wg"]
},
{
"id": "tc-approved-release",
@ -14149,6 +14149,18 @@
"child": true,
"modules": ["tc-approved-release"]
},
{
"id": "type:service",
"title": "type:service",
"child": true,
"modules": ["type:service"]
},
{
"id": "type:library",
"title": "type:library",
"child": true,
"modules": ["type:library"]
},
{
"id": "stackforge",
"title": "Stackforge",

View File

@ -218,7 +218,7 @@
"properties": {
"id": {
"type": "string",
"pattern": "^[\\w-]+$"
"pattern": "^[\\w:-]+$"
},
"child": {
"type": "boolean"
@ -230,7 +230,7 @@
"type": ["array"],
"items": {
"type": "string",
"pattern": "^[\\w-]+$"
"pattern": "^[\\w:-]+$"
}
}
},

View File

@ -187,7 +187,7 @@
{
"id": "openstack",
"title": "OpenStack",
"modules": ["tc-approved-release", "governance", "python-openstackclient", "api-wg"]
"modules": ["openstack-official", "governance", "api-wg"]
},
{
"id": "tc-approved-release",
@ -195,6 +195,18 @@
"child": true,
"modules": ["tc-approved-release"]
},
{
"id": "type:service",
"title": "type:service",
"child": true,
"modules": ["type:service"]
},
{
"id": "type:library",
"title": "type:library",
"child": true,
"modules": ["type:library"]
},
{
"id": "stackforge",
"title": "Stackforge",

View File

@ -22,7 +22,15 @@ from stackalytics.processor import utils
LOG = logging.getLogger(__name__)
TAGS = ['tc-approved-release'] # list of supported tags
# list of supported tags
TAGS = ['tc-approved-release', 'type:service', 'type:library']
def _make_module_group(module_groups, name):
m = module_groups[name] # object created by defaultdict
m['tag'] = 'project_type'
m['module_group_name'] = name
return m
def read_projects_yaml(project_list_uri):
@ -30,10 +38,10 @@ def read_projects_yaml(project_list_uri):
content = yaml.safe_load(utils.read_uri(project_list_uri))
module_groups = collections.defaultdict(lambda: {'modules': []})
all_official = _make_module_group(module_groups, 'openstack-official')
for tag in TAGS:
m = module_groups[tag] # object created by defaultdict
m['tag'] = 'project_type'
m['module_group_name'] = tag
_make_module_group(module_groups, tag)
for name, project in six.iteritems(content):
group_id = '%s-group' % name.lower()
@ -49,6 +57,8 @@ def read_projects_yaml(project_list_uri):
module_groups[group_id]['modules'].append(module_name)
all_official['modules'].append(module_name)
tags = deliverable.get('tags', [])
for tag in tags:
if tag in TAGS:

View File

@ -79,7 +79,27 @@ class TestGovernance(testtools.TestCase):
'module_group_name': 'tc-approved-release',
'modules': ['sahara', 'sahara-extra', 'sahara-image-elements'],
'tag': 'project_type'
}
},
'type:library': {
'id': 'type:library',
'module_group_name': 'type:library',
'modules': ['python-saharaclient', 'sahara-dashboard'],
'tag': 'project_type'
},
'type:service': {
'id': 'type:service',
'module_group_name': 'type:service',
'modules': ['sahara', 'sahara-extra', 'sahara-image-elements'],
'tag': 'project_type'
},
'openstack-official': {
'id': 'openstack-official',
'module_group_name': 'openstack-official',
'modules': ['python-saharaclient', 'sahara',
'sahara-dashboard', 'sahara-extra',
'sahara-image-elements', 'sahara-specs'],
'tag': 'project_type'
},
}
actual = governance.read_projects_yaml('uri')