4 #
5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License (the License).
7 # You may not use this file except in compliance with the License.
8 #
9 # You can obtain a copy of the license at usr/src/CDDL.txt
10 # or http://www.opensolaris.org/os/licensing.
11 # See the License for the specific language governing permissions
12 # and limitations under the License.
13 #
14 # When distributing Covered Code, include this CDDL HEADER in each
15 # file and include the License file at usr/src/CDDL.txt.
16 # If applicable, add the following below this CDDL HEADER, with the
17 # fields enclosed by brackets [] replaced with your own identifying
18 # information: Portions Copyright [yyyy] [name of copyright owner]
19 #
20 # CDDL HEADER END
21 #
22
23 #
24 # Copyright 2007 Sun Microsystems, Inc. All rights reserved.
25 # Use is subject to license terms.
26
27 #ident "%Z%%M% %I% %E% SMI"
28 #
29 # Method for the PostrgresSQL agents and the smf manifest
30 #
31 # This method is called by the GDS, manifest, by the optional probe script of the smf method.
32 #
33 # it is started with options and up to 2 parameters:
34 #
35 #
36 # $1 start stop or probe
37 # $2 is the smf service tag name. It is used only if the parameter $1 is probe
38 #
39
40 MYNAME=`basename ${0}`
41 MYDIR=`dirname ${0}`
42
43 . ${MYDIR}/../etc/config
44 . ${MYDIR}/../lib/functions_static
45 . ${MYDIR}/functions
46
47 debug_message "Method: ${MYNAME} ${*} - Begin"
48 ${SET_DEBUG}
49
50 # get the options for gds and the zsh command, amend as appropriate
51
52 while getopts 'R:G:P:' opt
53 do
54 case "${opt}" in
55 R) RESOURCE=${OPTARG};;
56 G) RESOURCEGROUP=${OPTARG};;
57 P) PARFILE=${OPTARG};;
58 *) exit 1;;
59 esac
60 done
61
62 # if no option is set ($OPTIND is 1 in this case), use the smf properties
63
64 if [ ${OPTIND} -gt 1 ]
65 then
66 shift $((${OPTIND} - 1))
67 else
68
69 . /lib/svc/share/smf_include.sh
70
71 # Setting SMF_FMRI in case of validate and probe
72
73 if [ -z "${SMF_FMRI}" ]
74 then
75 SMF_FMRI=${2}
76 fi
77
78 # getting the necessary parameters and filling the variables usually filled
79 # in from options
80
81 get_fmri_parameters
82 fi
83
84 # set some generic variables
85
86 LOGFILE=/var/tmp/${RESOURCE}_logfile
87
88 case ${1} in
89 start)
90
91 # start application PostrgresSQL
92
93 # exit from start, if the options are wrong
94
95 validate_options
96 rc_val=${?}
97 if [ ${rc_val} -ne 0 ]
98 then
99 terminate ${1} ${rc_val}
100 fi
101
102 rm ${LOGFILE} 2>/dev/null
103
104 # check the content of the options
105
106 if validate
107 then
108
109 # source the parameter file before the actual start
110
111 . ${PARFILE}
112
113 start_pgs
114 rc_val=${?}
115
116 if [ ${rc_val} -eq 0 ]
117 then
118 log_message notice "start_command rc<${rc_val}>"
119 debug_message "Method: ${MYNAME} - End (Exit 0)"
120 else
121 log_message err "start_command rc<${rc_val}>"
122 fi
183 then
184 /usr/bin/newtask -p ${Project} ${MYDIR}/probe_smf_pgs ${SMF_FMRI}
185 rc_val=$?
186 else
187 check_pgs
188 rc_val=$?
189 fi
190 fi;;
191
192 validate)
193
194 # validate the parameters for application PostrgresSQL
195
196 validate_options
197 rc_val=${?}
198 if [ ${rc_val} -ne 0 ]
199 then
200 terminate ${1} ${rc_val}
201 fi
202
203 rm ${LOGFILE} 2>/dev/null
204
205 if validate
206 then
207 rc_val=0
208 else
209 rc_val=1
210 fi;;
211
212 esac
213
214 # terminate with the right return code, either with an smf specific or the gds/zsh based
215 # return code
216
217 debug_message "Method: ${MYNAME} ${*} - End terminating"
218 terminate ${1} ${rc_val}
|
4 #
5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License (the License).
7 # You may not use this file except in compliance with the License.
8 #
9 # You can obtain a copy of the license at usr/src/CDDL.txt
10 # or http://www.opensolaris.org/os/licensing.
11 # See the License for the specific language governing permissions
12 # and limitations under the License.
13 #
14 # When distributing Covered Code, include this CDDL HEADER in each
15 # file and include the License file at usr/src/CDDL.txt.
16 # If applicable, add the following below this CDDL HEADER, with the
17 # fields enclosed by brackets [] replaced with your own identifying
18 # information: Portions Copyright [yyyy] [name of copyright owner]
19 #
20 # CDDL HEADER END
21 #
22
23 #
24 # Copyright 2008 Sun Microsystems, Inc. All rights reserved.
25 # Use is subject to license terms.
26
27 #ident "%Z%%M% %I% %E% SMI"
28 #
29 # Method for the PostrgresSQL agents and the smf manifest
30 #
31 # This method is called by the GDS, manifest, by the optional probe script of the smf method.
32 #
33 # it is started with options and up to 2 parameters:
34 #
35 #
36 # $1 start, stop, validate, check_stdby, start_ssh_agent or probe
37 # $2 is the smf service tag name. It is used only if the parameter $1 is probe
38 #
39
40 MYNAME=`basename ${0}`
41 MYDIR=`dirname ${0}`
42
43 . ${MYDIR}/../etc/config
44 . ${MYDIR}/../lib/functions_static
45 . ${MYDIR}/functions
46
47 debug_message "Method: ${MYNAME} ${*} - Begin"
48 ${SET_DEBUG}
49
50 # get the options for gds and the zsh command, amend as appropriate
51
52 while getopts 'R:G:P:' opt
53 do
54 case "${opt}" in
55 R) RESOURCE=${OPTARG};;
56 G) RESOURCEGROUP=${OPTARG};;
57 P) PARFILE=${OPTARG};;
58 *) exit 1;;
59 esac
60 done
61
62 # if no option is set ($OPTIND is 1 in this case), use the smf properties
63
64 if [ ${OPTIND} -gt 1 ]
65 then
66 shift $((${OPTIND} - 1))
67 else
68
69 . /lib/svc/share/smf_include.sh
70
71 # Setting SMF_FMRI in case of validate and probe and check_stdby
72
73 if [ -z "${SMF_FMRI}" ]
74 then
75 SMF_FMRI=${2}
76 fi
77
78 # getting the necessary parameters and filling the variables usually filled
79 # in from options
80
81 get_fmri_parameters
82 fi
83
84 # set some generic variables
85
86 LOGFILE=/var/tmp/${RESOURCE}_logfile
87
88 case ${1} in
89 start)
90
91 # start application PostrgresSQL
92
93 # exit from start, if the options are wrong
94
95 validate_options
96 rc_val=${?}
97 if [ ${rc_val} -ne 0 ]
98 then
99 terminate ${1} ${rc_val}
100 fi
101
102 ${RM} ${LOGFILE} 2>/dev/null
103
104 # check the content of the options
105
106 if validate
107 then
108
109 # source the parameter file before the actual start
110
111 . ${PARFILE}
112
113 start_pgs
114 rc_val=${?}
115
116 if [ ${rc_val} -eq 0 ]
117 then
118 log_message notice "start_command rc<${rc_val}>"
119 debug_message "Method: ${MYNAME} - End (Exit 0)"
120 else
121 log_message err "start_command rc<${rc_val}>"
122 fi
183 then
184 /usr/bin/newtask -p ${Project} ${MYDIR}/probe_smf_pgs ${SMF_FMRI}
185 rc_val=$?
186 else
187 check_pgs
188 rc_val=$?
189 fi
190 fi;;
191
192 validate)
193
194 # validate the parameters for application PostrgresSQL
195
196 validate_options
197 rc_val=${?}
198 if [ ${rc_val} -ne 0 ]
199 then
200 terminate ${1} ${rc_val}
201 fi
202
203 if validate
204 then
205 rc_val=0
206 else
207 rc_val=1
208 fi;;
209
210 check_stdby)
211
212 # Check if the current host is configured as a PostgreSQL standby host
213
214 validate_options
215 rc_val=${?}
216 if [ ${rc_val} -ne 0 ]
217 then
218 terminate ${1} ${rc_val}
219 fi
220
221 ${RM} ${LOGFILE} 2>/dev/null
222
223 # check the content of the options
224
225 if validate
226 then
227
228 # Source the parameter file, to get the necessary informations for
229 # the check.
230
231 . ${PARFILE}
232
233 if check_stdby
234 then
235 rc_val=0
236 else
237 rc_val=1
238 fi
239 else
240 rc_val=1
241 fi;;
242
243 start_ssh_agent)
244
245 # start an ssh-agent and decrypt the private ssh-key.
246
247 validate_options
248 rc_val=${?}
249 if [ ${rc_val} -ne 0 ]
250 then
251 terminate ${1} ${rc_val}
252 fi
253
254 ${RM} ${LOGFILE} 2>/dev/null
255
256 # check the content of the options
257
258 if validate
259 then
260
261 # Source the parameter file, to get the informations for the start
262 # of the ssh-agent.
263
264 . ${PARFILE}
265
266 SSH_PASSPHRASE=`${CAT} /tmp/${RESOURCE}-phrase`
267 if start_ssh_agent ${SSH_PASSPHRASE}
268 then
269 rc_val=0
270 else
271 rc_val=1
272 fi
273 else
274 rc_val=1
275 fi;;
276
277 esac
278
279 # terminate with the right return code, either with an smf specific or the gds/zsh based
280 # return code
281
282 debug_message "Method: ${MYNAME} ${*} - End terminating"
283 terminate ${1} ${rc_val}
|