13d36dc6c0f92fdddabeab24e6cf504001cb7de4
[yaml_builds.git] / tools / generate_yamls.sh
1 #!/bin/bash
2 ##############################################################################
3 # Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.        #
4 #                                                                            #
5 # Licensed under the Apache License, Version 2.0 (the "License"); you may    #
6 # not use this file except in compliance with the License.                   #
7 #                                                                            #
8 # You may obtain a copy of the License at                                    #
9 #       http://www.apache.org/licenses/LICENSE-2.0                           #
10 #                                                                            #
11 # Unless required by applicable law or agreed to in writing, software        #
12 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT  #
13 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.           #
14 # See the License for the specific language governing permissions and        #
15 # limitations under the License.                                             #
16 ##############################################################################
17
18 set -x
19
20 source $(dirname $0)/setenv.sh
21
22 if [ -z "$1" ]
23 then
24   echo "Please pass site name as command line argument"
25   exit -2
26 else
27   SITE=${SITE:-$1}
28   echo "SITE=$SITE"
29 fi
30
31 cd $YAML_BUILDS
32
33 # ECHO INPUT FILE TO LOGS FOR TROUBLESHOOTING
34 echo "#######################################"
35 echo "# USING INPUT FILE [${YAML_BUILDS}/${SITE}.yaml]"
36 echo "#######################################"
37 sed -E 's/(^.*password:).*/\1 ###PASSWORD REMOVED####/g' ${YAML_BUILDS}/${SITE}.yaml
38 echo "#######################################"
39
40 echo "# NOTE: root ssh key will be used for genesis_ssh_public_key if no key is provided"
41 RCKEY=$(cat ~/.ssh/id_rsa.pub | sed -e 's/[\/&]/\\&/g')
42 sed -i -e "s/genesis_ssh_public_key\: */genesis_ssh_public_key: \'$RCKEY\'/" $SITE.yaml
43
44 python ./scripts/jcopy.py $SITE.yaml ./tools/j2/set_site_env.sh ./tools/env_$SITE.sh
45 source ./tools/env_$SITE.sh
46
47 if [ ! -d "$AIRSHIP_TREASUREMAP" ] && [ -f "${AIRSHIP_TREASUREMAP}.tgz" ]; then
48   echo "Expanding [${AIRSHIP_TREASUREMAP}.tgz] to directory [$AIRSHIP_TREASUREMAP]."
49   mkdir -p "$AIRSHIP_TREASUREMAP"
50   tar xzvf "${AIRSHIP_TREASUREMAP}.tgz" --strip-components=1 -C "$AIRSHIP_TREASUREMAP"
51 fi
52
53 if [ ! -d "$AIRSHIP_TREASUREMAP" ]; then
54   echo "ERROR: Missing AIRSHIP_TREASUREMAP directory [$AIRSHIP_TREASUREMAP]."
55   exit -1
56 fi
57
58 if [ ! -d "$AIRSHIP_TEMPLATES" ]; then
59   echo "ERROR: Missing AIRSHIP_TEMPLATES directory [$AIRSHIP_TEMPLATES]."
60   exit -1
61 fi
62
63 echo "# Generating templates to $YAML_BUILDS/site/$SITE"
64 rm -rf $YAML_BUILDS/site/$SITE
65 mkdir -p $YAML_BUILDS/site/$SITE
66 python ./scripts/jcopy.py $SITE.yaml $AIRSHIP_TEMPLATES $YAML_BUILDS/site/$SITE
67
68 echo "# Merging config files to $AIRSHIP_TREASUREMAP/site/$SITE"
69 rm -rf $AIRSHIP_TREASUREMAP/site/$SITE
70 mkdir -p $AIRSHIP_TREASUREMAP/site/$SITE
71
72 cp -r $AIRSHIP_TREASUREMAP/site/seaworthy/* $AIRSHIP_TREASUREMAP/site/$SITE
73 cp -r $YAML_BUILDS/site/$SITE/* $AIRSHIP_TREASUREMAP/site/$SITE
74
75 CONFIG_COUNT=`find $AIRSHIP_TREASUREMAP/site/$SITE -type f | wc -l`
76 echo "#######################################"
77 echo "# Created site $AIRSHIP_TREASUREMAP/site/$SITE with $CONFIG_COUNT config files"
78 echo "#######################################"
79
80 # UNCOMMENT TO DEBUG/LINT GENERATED YAML FILES
81 #(
82 #echo "# Linting config files in $AIRSHIP_TREASUREMAP/site/$SITE"
83 #cd $AIRSHIP_TREASUREMAP
84 #$AIRSHIP_TREASUREMAP/tools/airship pegleg site -r /target lint $SITE -x P001 -x P005 || true
85 #)
86
87 echo "#######################################"
88 echo "# $0 finished"
89 echo "#######################################"