1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Create configuration for code search."""
import argparse
import json
import urllib.request
import sys
DEFAULT_GERRIT = "https://gerrit.onap.org/r"
DEFAULT_GIT = "https://git.onap.org"
API_PROJECTS = "/projects/"
MAGIC_PREFIX = ")]}'"
def get_projects_list(gerrit):
"""Request list of all available projects from ONAP Gerrit."""
resp = urllib.request.urlopen(gerrit + API_PROJECTS)
resp_body = resp.read()
no_magic = resp_body[len(MAGIC_PREFIX):]
decoded = no_magic.decode("utf-8")
projects = json.loads(decoded)
return projects.keys()
def create_repos_list(projects, git):
"""Create a map of all projects to their repositories' URLs."""
repos_list = {}
for project in projects:
repos_list[project] = {
"url": "{}/{}".format(git, project),
"url-pattern": {
"base-url": "{url}/tree/{path}{anchor}",
"anchor": "#n{line}"
}
}
return repos_list
def parse_arguments():
"""Return parsed command-line arguments."""
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument('--gerrit', help='Gerrit address', default=DEFAULT_GERRIT)
parser.add_argument('--git', help='git address', default=DEFAULT_GIT)
return parser.parse_args()
def main():
"""Main entry point for the script."""
arguments = parse_arguments()
repos = create_repos_list(get_projects_list(arguments.gerrit), arguments.git)
config = {
"max-concurrent-indexers": 2,
"dbpath": "data",
"health-check-uri": "/healthz",
"repos": repos
}
print(json.dumps(config, sort_keys=True, indent=4, separators=(',', ': ')))
if __name__ == '__main__':
sys.exit(main())
|