# -*- coding: utf-8 -*-
host_ip = "192.168.121.1"
+synced_folder = "/vagrant"
$replace_dns = <<-SCRIPT
HOST_IP="$1"
Vagrant.configure("2") do |config|
config.vm.box = "generic/ubuntu1804"
+ config.vm.synced_folder ".", synced_folder, type: "rsync", rsync__exclude: "Vagrantfile"
config.vm.provision "replace_dns", type: :shell, run: "always", inline: $replace_dns, args: host_ip
config.vm.provision "dependencies", type: :shell, inline: <<-SHELL
export DEBIAN_FRONTEND=noninteractive
export GOPATH="${HOME}/go"
go get -u github.com/hound-search/hound/cmds/...
SHELL
+ config.vm.provision "generate_config", type: :shell, privileged: false, inline: <<-SHELL
+ python3 #{synced_folder}/create_config.py
+ SHELL
end
--- /dev/null
+#!/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())