aboutsummaryrefslogtreecommitdiffstats
path: root/meta-openstack/recipes-support/deploychef/files/deploychef-inc
blob: 861ea390b0e0816df63b11ed737b4d627f5bf1d1 (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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/bin/sh
# deploychef_inc
#
# 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.
#
#This file is a helper file that implements functions
#used by the service-shutdown and run-postinsts scripts for 
#the deploychef package.

RPM_POSTINSTS_DIR=%SYSCONFDIR%/rpm-postinsts
LOG_DIR='/var/log/%PACKAGE_NAME%'
LOG_FILE=$LOG_DIR/deploychef.log
INITD_DIR=/etc/init.d

make_log_dir() {
    if [ ! -d $RPM_POSTINSTS_DIR ]; then
        mkdir -p $LOG_DIR
        echo "Log dir: $LOG_DIR created" > $LOG_FILE
    fi
}

execute_all_postinsts(){
    cd / #work-around for cinder-volume config file location
    echo "x$RPM_POSTINSTS_DIR" >> "$LOD_FILE"
    for i in `ls $RPM_POSTINSTS_DIR/ 2> /dev/null`; do
        i=$RPM_POSTINSTS_DIR/$i
        echo "Running postinst $i..." >> $LOG_FILE
        if [ -f $i ] && $i; then
            rm $i
        else
            echo "ERROR: postinst $i failed. $? " >> $LOG_FILE
        fi
    done
}

#Start/stop services pass in first argument as startup-list or shutdown-list
start_stop_services(){
    dir_name=%DEPLOYCHEF_ROOT_DIR%
    file_name=$dir_name/$1
    if [ -f $file_name ]; then
        services=$(sort -d $file_name)
        for service in $services; do
            start_stop=$(echo $service | awk -F'[0-9]+' '{print $1}')
            service=$(echo $service | awk -F'[SK][0-9]+' '{print $2}')
            if [ $service != postgresql ]; then
                if [ $start_stop = 'S' ]; then
                    if [ -e $INITD_DIR/$service ]; then
                        echo "Starting $INITD_DIR/$service" >> $LOG_FILE
                        if [ $service = 'cinder-volume' ]; then
                            $INITD_DIR/$service reload &
                        else
                            $INITD_DIR/$service start &
                        fi
                        wait
                    fi
                else
                    echo "Stopping $INITD_DIR/$service" >> $LOG_FILE
                    $INITD_DIR/$service stop &
                    wait
                fi
            fi
        done
    fi
}