updated templates and scripts for Airship 1.3
[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 python ./scripts/jcopy.py $SITE.yaml ./tools/j2/set_site_env.sh ./tools/env_$SITE.sh
41 source ./tools/env_$SITE.sh
42
43 if [ ! -d "$AIRSHIP_TREASUREMAP" ] && [ -f "${AIRSHIP_TREASUREMAP}.tgz" ]; then
44   echo "Expanding [${AIRSHIP_TREASUREMAP}.tgz] to directory [$AIRSHIP_TREASUREMAP]."
45   mkdir -p "$AIRSHIP_TREASUREMAP"
46   tar xzvf "${AIRSHIP_TREASUREMAP}.tgz" --strip-components=1 -C "$AIRSHIP_TREASUREMAP"
47 fi
48
49 if [ ! -d "$AIRSHIP_TREASUREMAP" ]; then
50   echo "ERROR: Missing AIRSHIP_TREASUREMAP directory [$AIRSHIP_TREASUREMAP]."
51   exit -1
52 fi
53
54 if [ ! -d "$AIRSHIP_TEMPLATES" ]; then
55   echo "ERROR: Missing AIRSHIP_TEMPLATES directory [$AIRSHIP_TEMPLATES]."
56   exit -1
57 fi
58
59 echo "# Generating templates to $YAML_BUILDS/site/$SITE"
60 rm -rf $YAML_BUILDS/site/$SITE
61 mkdir -p $YAML_BUILDS/site/$SITE
62 python ./scripts/jcopy.py $SITE.yaml $AIRSHIP_TEMPLATES $YAML_BUILDS/site/$SITE
63
64 echo "# Merging config files to $AIRSHIP_TREASUREMAP/site/$SITE"
65 rm -rf $AIRSHIP_TREASUREMAP/site/$SITE
66 mkdir -p $AIRSHIP_TREASUREMAP/site/$SITE
67
68 cp -r $AIRSHIP_TREASUREMAP/site/seaworthy/* $AIRSHIP_TREASUREMAP/site/$SITE
69 cp -r $YAML_BUILDS/site/$SITE/* $AIRSHIP_TREASUREMAP/site/$SITE
70
71 CONFIG_COUNT=`find $AIRSHIP_TREASUREMAP/site/$SITE -type f | wc -l`
72 echo "#######################################"
73 echo "# Created site $AIRSHIP_TREASUREMAP/site/$SITE with $CONFIG_COUNT config files"
74 echo "#######################################"
75
76 (
77 echo "# Linting config files in $AIRSHIP_TREASUREMAP/site/$SITE"
78 cd $AIRSHIP_TREASUREMAP
79 $AIRSHIP_TREASUREMAP/tools/airship pegleg site -r /target lint $SITE -x P001 -x P005 || true
80 )
81
82 echo "#######################################"