mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 11:22:27 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			196 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			196 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| #
 | |
| # warn_if_bad           Put out warning message(s) if $1 has bad RC.
 | |
| #
 | |
| #       $1      0 (pass) or non-zero (fail).
 | |
| #       $2+     Remaining arguments printed only if the $1 is non-zero.
 | |
| #
 | |
| #       Incoming $1 is returned unless it is 0
 | |
| #
 | |
| function warn_if_bad()
 | |
| {
 | |
| 	local -i rc="$1"
 | |
| 	local script="${0##*/}"
 | |
| 
 | |
| 	# Ignore if no problems
 | |
| 	[ "${rc}" -eq "0" ] && return 0
 | |
| 
 | |
| 	# Broken
 | |
| 	shift
 | |
| 	echo "${script}: $@" >&2
 | |
| 	return "${rc}"
 | |
| }
 | |
| 
 | |
| #
 | |
| # exit_if_bad           Put out error message(s) if $1 has bad RC.
 | |
| #
 | |
| #       $1      0 (pass) or non-zero (fail).
 | |
| #       $2+     Remaining arguments printed only if the $1 is non-zero.
 | |
| #
 | |
| #               Exits with 1 unless $1 is 0
 | |
| #
 | |
| function exit_if_bad()
 | |
| {
 | |
| 	warn_if_bad "$@" || exit 1
 | |
| 	return 0
 | |
| }
 | |
| 
 | |
| #
 | |
| # internal_setup        Script setup
 | |
| #
 | |
| #       Returns 0 on success.
 | |
| #       Exits (not returns) with 1 on failure.
 | |
| #
 | |
| function internal_setup()
 | |
| {
 | |
| 	shopt -s extglob
 | |
| 
 | |
| 	# Trap exit for internal_cleanup function.
 | |
| 	trap "internal_cleanup" EXIT
 | |
| 
 | |
| 	umask 0077
 | |
| 
 | |
| 	TMP_DIR="$(mktemp -d "/tmp/${0##*/}.XXXXXXXX" 2>/dev/null)"
 | |
| 	[ -d "${TMP_DIR}" ]
 | |
| 	exit_if_bad "$?" "Make temporary directory failed."
 | |
| 
 | |
| 	custom_setup
 | |
| }
 | |
| 
 | |
| #
 | |
| # internal_cleanup      Script cleanup (reached via trap 0)
 | |
| #
 | |
| #       Destory any temporarily facility created by internal_setup.
 | |
| #
 | |
| function internal_cleanup()
 | |
| {
 | |
| 	custom_cleanup
 | |
| 
 | |
| 	[ -d "${TMP_DIR}" ] && rm -rf "${TMP_DIR}"
 | |
| }
 | |
| 
 | |
| #
 | |
| # custom_setup
 | |
| #
 | |
| function custom_setup()
 | |
| {
 | |
| 	:
 | |
| }
 | |
| 
 | |
| #
 | |
| # custom_cleanup
 | |
| #
 | |
| function custom_cleanup()
 | |
| {
 | |
| 	:
 | |
| }
 | |
| 
 | |
| internal_setup
 | |
| 
 | |
| function make_bogus_grub2_nodes()
 | |
| {
 | |
| 	local i
 | |
| 	# grub2
 | |
| 	for i in {001..005}
 | |
| 	do
 | |
| 		mkdef -t node -o tz${i} \
 | |
| 			arch=ppc64 cons=hmc groups=lpar mgt=hmc \
 | |
| 			netboot=grub2 \
 | |
| 			ip=10.99.1.$((10#${i})) \
 | |
| 			mac=e6:d4:d2:3a:ad:0$((10#${i})) \
 | |
| 			profile=compute os=rhels7.99
 | |
| 	done
 | |
| }
 | |
| 
 | |
| function make_bogus_petitboot_nodes()
 | |
| {
 | |
| 	local i
 | |
| 	# petitboot
 | |
| 	for i in {001..005}
 | |
| 	do
 | |
| 		mkdef -t node -o tz${i} \
 | |
| 			arch=ppc64le cons=bmc groups=ipmi mgt=ipmi \
 | |
| 			netboot=petitboot \
 | |
| 			ip=10.99.1.$((10#${i})) \
 | |
| 			mac=e6:d4:d2:3a:ad:0$((10#${i})) \
 | |
| 			profile=compute os=rhels7.99
 | |
| 	done
 | |
| }
 | |
| 
 | |
| function make_bogus_xnba_nodes()
 | |
| {
 | |
| 	local i
 | |
| 	# xnba
 | |
| 	for i in {001..005}
 | |
| 	do
 | |
| 		mkdef -t node -o tz${i} \
 | |
| 			arch=x86_64 cons=kvm groups=kvm mgt=kvm \
 | |
| 			netboot=xnba \
 | |
| 			ip=10.99.1.$((10#${i})) \
 | |
| 			mac=e6:d4:d2:3a:ad:0$((10#${i})) \
 | |
| 			profile=compute os=rhels7.99
 | |
| 	done
 | |
| }
 | |
| 
 | |
| function destory_bogus_nodes()
 | |
| {
 | |
| 	rmdef -t node tz001+4
 | |
| }
 | |
| 
 | |
| umask 0022
 | |
| 
 | |
| function make_bogus_ppc64le_osimage()
 | |
| {
 | |
| 	mkdef "rhels7.99-ppc64le-install-compute" \
 | |
| 		-u profile=compute provmethod=install \
 | |
| 		osvers=rhels7.99 osarch=ppc64le
 | |
| 	mkdir -p /install/rhels7.99/ppc64le/ppc/ppc64le
 | |
| 	echo blah >/install/rhels7.99/ppc64le/ppc/ppc64le/vmlinuz
 | |
| 	echo blah >/install/rhels7.99/ppc64le/ppc/ppc64le/initrd.img
 | |
| }
 | |
| 
 | |
| function make_bogus_ppc64_osimage()
 | |
| {
 | |
| 	mkdef "rhels7.99-ppc64-install-compute" \
 | |
| 		-u profile=compute provmethod=install \
 | |
| 		osvers=rhels7.99 osarch=ppc64
 | |
| 	mkdir -p /install/rhels7.99/ppc64/ppc/ppc64
 | |
| 	echo blah >/install/rhels7.99/ppc64/ppc/ppc64/vmlinuz
 | |
| 	echo blah >/install/rhels7.99/ppc64/ppc/ppc64/initrd.img
 | |
| }
 | |
| 
 | |
| #function make_bogus_ppc64_osimage()
 | |
| #{
 | |
| #	mkdef "rhels6.99-ppc64-install-compute" \
 | |
| #		-u profile=compute provmethod=install \
 | |
| #		osvers=rhels6.99 osarch=ppc64
 | |
| #	mkdir -p /install/rhels6.99/ppc64/ppc/{chrp,ppc64}
 | |
| #	echo blah >/install/rhels6.99/ppc64/ppc/ppc64/vmlinuz
 | |
| #	echo blah >/install/rhels6.99/ppc64/ppc/ppc64/initrd.img
 | |
| #	echo blah >/install/rhels6.99/ppc64/ppc/chrp/yaboot
 | |
| #}
 | |
| 
 | |
| function make_bogus_x64_osimage()
 | |
| {
 | |
| 	mkdef "rhels6.99-x86_64-install-compute" \
 | |
| 		-u profile=compute provmethod=install \
 | |
| 		osvers=rhels6.99 osarch=x86_64
 | |
| 	mkdir -p /install/rhels6.99/x86_64/images/pxeboot
 | |
| 	echo blah >/install/rhels6.99/x86_64/images/pxeboot/vmlinuz
 | |
| 	echo blah >/install/rhels6.99/x86_64/images/pxeboot/initrd.img
 | |
| }
 | |
| 
 | |
| function destory_bogus_osimages()
 | |
| {
 | |
| 	local o
 | |
| 	for o in \
 | |
| 		rhels7.99-ppc64le-install-compute \
 | |
| 		rhels7.99-ppc64-install-compute \
 | |
| 		rhels6.99-ppc64-install-compute \
 | |
| 		rhels6.99-x86_64-install-compute
 | |
| 	do
 | |
| 		rmdef -t osimage ${o}
 | |
| 	done
 | |
| }
 |