summaryrefslogtreecommitdiffstats
path: root/bootstrap/codesearch/create_config.py
diff options
context:
space:
mode:
Diffstat (limited to 'bootstrap/codesearch/create_config.py')
-rwxr-xr-xbootstrap/codesearch/create_config.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/bootstrap/codesearch/create_config.py b/bootstrap/codesearch/create_config.py
new file mode 100755
index 000000000..4009e51df
--- /dev/null
+++ b/bootstrap/codesearch/create_config.py
@@ -0,0 +1,46 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+"""Create configuration for code search."""
+
+import json
+import urllib.request
+import sys
+
+ONAP_GERRIT = "https://gerrit.onap.org/r"
+API_PROJECTS = "/projects/"
+
+MAGIC_PREFIX = ")]}'"
+
+
+def get_projects_list():
+ """Request list of all available projects from ONAP Gerrit."""
+ resp = urllib.request.urlopen(ONAP_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):
+ """Create a map of all projects to their repositories' URLs."""
+ return {p: {"url": "{}/{}.git".format(ONAP_GERRIT, p)} for p in projects}
+
+
+def main():
+ """Main entry point for the script."""
+ repos = create_repos_list(get_projects_list())
+ 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())