First commit to infra-manifest
Change-Id: I2d0e40342bd197de5f38b5849cc018e64a059971
diff --git a/.gitreview b/.gitreview
new file mode 100644
index 0000000..581d1b3
--- /dev/null
+++ b/.gitreview
@@ -0,0 +1,6 @@
+[gerrit]
+host=gerrit.opencord.org
+port=29418
+project=infra-manifest.git
+defaultremote=origin
+defaultbranch=master
diff --git a/default.xml b/default.xml
new file mode 100644
index 0000000..419e60a
--- /dev/null
+++ b/default.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+# SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+-->
+<manifest>
+
+ <remote name="opencord"
+ fetch=".."
+ review="https://gerrit.opencord.org/"
+ revision="master" />
+ <default revision="master"
+ remote="opencord"
+ sync-j="4" />
+
+ <project path="infra-docs" name="infra-docs"/>
+
+ <project path="infra-ci-management" name="infra-ci-management"/>
+
+ <project path="ansible" name="ansible/onf-ansible"/>
+
+ <!-- Ansible Roles -->
+ <project path="ansible/roles/acme" name="ansible/role/acme"/>
+ <project path="ansible/roles/gerrit" name="ansible/role/gerrit"/>
+ <project path="ansible/roles/netbox" name="ansible/role/netbox"/>
+ <project path="ansible/roles/nginx" name="ansible/role/nginx"/>
+ <project path="ansible/roles/nodejs" name="ansible/role/nodejs"/>
+ <project path="ansible/roles/postgresql" name="ansible/role/postgresql"/>
+ <project path="ansible/roles/redis" name="ansible/role/redis"/>
+ <project path="ansible/roles/timesheets" name="ansible/role/timesheets"/>
+ <project path="ansible/roles/unifi" name="ansible/role/unifi"/>
+
+</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