aboutsummaryrefslogtreecommitdiffstats
path: root/meta-openstack/recipes-support/deploychef/files/run-postinsts
blob: 35d46f0868ce542a3bbaa0e7895c185ce1f718c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/sh
# run-postinsts
#
# Copyright (c) 2014 Wind River Systems, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.

# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
# After chefsolo generates our config and scripts, we call this script
# to run the posinstall script and start the services
#
#
RPM_POSTINSTS_DIR=$1
LOG_DIR='/var/log/%PACKAGE_NAME%/'
mkdir -p $LOG_DIR
if [ ! -d $RPM_POSTINSTS_DIR ]; then
     echo "Post Install script dir not set"
     exit 1
fi
cd / #work-around for cinder-volume config file location
echo "x$RPM_POSTINSTS_DIR" > "$LOD_DIR"log.run-postinsts
for i in `ls $RPM_POSTINSTS_DIR 2> /dev/null`; do
	i=$RPM_POSTINSTS_DIR$i
	echo "Running postinst $i..."
	if [ -f $i ] && $i; then
		rm $i
	else
		echo "ERROR: postinst $i failed. $? " >> "$LOG_DIR"log.run-postinsts
	fi
done


#Start all the modules specified in startup-list
INITD_DIR=/etc/init.d/
services=$(cat %DEPLOYCHEF_ROOT_DIR%/startup-list)
for service in $services; do
    service=$(echo $service | awk -F'S..' '{print $2}')
    if [ -e $INITD_DIR$service ]; then
        if [ $service = 'cinder-volume' ]; then
            $INITD_DIR$service reload
        else
            $INITD_DIR$service start
        fi
        sleep 1
    fi
done

#Restart cloud service cloud-init
/etc/init.d/cloud-init start