Add initial set of repos and validation toolset

Change-Id: I7cf8127bfdce6d1a1abe591a8157ad53887b7e4e
diff --git a/.gitreview b/.gitreview
new file mode 100644
index 0000000..5801a9f
--- /dev/null
+++ b/.gitreview
@@ -0,0 +1,6 @@
+[gerrit]
+host=gerrit.opencord.org
+port=29418
+project=voltha-test-manifest.git
+defaultremote=origin
+defaultbranch=master
diff --git a/default.xml b/default.xml
new file mode 100644
index 0000000..04be4f2
--- /dev/null
+++ b/default.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright 2018-present Open Networking Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<manifest>
+
+  <remote  name="opencord"
+           fetch=".."
+           review="https://gerrit.opencord.org/"
+           revision="master" />
+  <default revision="master"
+           remote="opencord"
+           sync-j="4" />
+
+  <project path="bbsim" name="bbsim"/>
+  <project path="cordctl" name="cordctl"/>
+  <project path="kafka-topic-exporter" name="kafka-topic-exporter"/>
+  <project path="omci-sim" name="omci-sim"/>
+  <project path="sadis-server" name="sadis-server"/>
+  <project path="voltctl" name="voltctl"/>
+  <project path="voltha-bbsim" name="voltha-bbsim"/>
+  <project path="voltha-go" name="voltha-go"/>
+  <project path="voltha-openolt-adapter" name="voltha-openolt-adapter"/>
+  <project path="voltha-openonu-adapter" name="voltha-openonu-adapter"/>
+  <project path="voltha-protos" name="voltha-protos"/>
+
+</manifest>
diff --git a/manifest.dtd b/manifest.dtd
new file mode 100644
index 0000000..0bd6b1c
--- /dev/null
+++ b/manifest.dtd
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright 2018-present Open Networking Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<!ELEMENT manifest (notice?,
+                    remote*,
+                    default?,
+                    manifest-server?,
+                    remove-project*,
+                    project*,
+                    extend-project*,
+                    repo-hooks?)>
+<!ELEMENT notice (#PCDATA)>
+<!ELEMENT remote EMPTY>
+<!ATTLIST remote name         ID    #REQUIRED>
+<!ATTLIST remote alias        CDATA #IMPLIED>
+<!ATTLIST remote fetch        CDATA #REQUIRED>
+<!ATTLIST remote pushurl      CDATA #IMPLIED>
+<!ATTLIST remote review       CDATA #IMPLIED>
+<!ATTLIST remote revision     CDATA #IMPLIED>
+<!ELEMENT default EMPTY>
+<!ATTLIST default remote      IDREF #IMPLIED>
+<!ATTLIST default revision    CDATA #IMPLIED>
+<!ATTLIST default dest-branch CDATA #IMPLIED>
+<!ATTLIST default sync-j      CDATA #IMPLIED>
+<!ATTLIST default sync-c      CDATA #IMPLIED>
+<!ATTLIST default sync-s      CDATA #IMPLIED>
+<!ELEMENT manifest-server EMPTY>
+<!ATTLIST manifest-server url CDATA #REQUIRED>
+<!ELEMENT project (annotation*,
+                   project*,
+                   copyfile*,
+                   linkfile*)>
+<!ATTLIST project name        CDATA #REQUIRED>
+<!ATTLIST project path        CDATA #IMPLIED>
+<!ATTLIST project remote      IDREF #IMPLIED>
+<!ATTLIST project revision    CDATA #IMPLIED>
+<!ATTLIST project dest-branch CDATA #IMPLIED>
+<!ATTLIST project groups      CDATA #IMPLIED>
+<!ATTLIST project sync-c      CDATA #IMPLIED>
+<!ATTLIST project sync-s      CDATA #IMPLIED>
+<!ATTLIST project upstream CDATA #IMPLIED>
+<!ATTLIST project clone-depth CDATA #IMPLIED>
+<!ATTLIST project force-path CDATA #IMPLIED>
+<!ELEMENT annotation EMPTY>
+<!ATTLIST annotation name  CDATA #REQUIRED>
+<!ATTLIST annotation value CDATA #REQUIRED>
+<!ATTLIST annotation keep  CDATA "true">
+<!ELEMENT copyfile EMPTY>
+<!ATTLIST copyfile src  CDATA #REQUIRED>
+<!ATTLIST copyfile dest CDATA #REQUIRED>
+<!ELEMENT linkfile EMPTY>
+<!ATTLIST linkfile src CDATA #REQUIRED>
+<!ATTLIST linkfile dest CDATA #REQUIRED>
+<!ELEMENT extend-project EMPTY>
+<!ATTLIST extend-project name CDATA #REQUIRED>
+<!ATTLIST extend-project path CDATA #IMPLIED>
+<!ATTLIST extend-project groups CDATA #IMPLIED>
+<!ELEMENT remove-project EMPTY>
+<!ATTLIST remove-project name  CDATA #REQUIRED>
+<!ELEMENT repo-hooks EMPTY>
+<!ATTLIST repo-hooks in-project CDATA #REQUIRED>
+<!ATTLIST repo-hooks enabled-list CDATA #REQUIRED>
+<!ELEMENT include EMPTY>
+<!ATTLIST include name CDATA #REQUIRED>
diff --git a/validate_manifest.sh b/validate_manifest.sh
new file mode 100755
index 0000000..d66c384
--- /dev/null
+++ b/validate_manifest.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+
+# Copyright 2018-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# validate_manifest.sh
+#
+# Validates the repo manifest, per the DTD format given here:
+# https://gerrit.googlesource.com/git-repo/+/master/docs/manifest-format.txt
+
+echo "Verifying default.xml using manifest.dtd"
+
+# check that xmllint is available
+if ! [ -x "$(command -v xmllint)" ]
+then
+  echo "Please install 'xmllint' to use this script"
+  exit 1
+fi
+
+# run the verification
+xmllint --noout --dtdvalid manifest.dtd default.xml
+status=$?
+
+if [ $status -ne 0 ]
+then
+  echo "FAILURE: default.xml isn't valid - exit status: $status"
+  exit $status
+else
+  echo "SUCCESS: default.xml validated correctly"
+  exit 0
+fi