mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-24 16:05:41 +00:00 
			
		
		
		
	RH7/Centos7 and recent versions of fedora relocate `/*bin/*` into `/usr/*bin/`. This causes conflicts for upgrades against xCAT-genesis-scripts-* packages which expect the `/bin` a to be a directory while `xCAT-genesis-base-*` packages provide a link. Relocating all files into `/usr` fixes that conflict and allows a clean upgrade from all old versions.
		
			
				
	
	
		
			65 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| log_label="xcat.genesis.getipmi"
 | |
| 
 | |
| allowcred.awk &
 | |
| CREDPID=$!
 | |
| if [ -z "$XCATDEST" ]; then
 | |
| 	XCATDEST=$1
 | |
| fi
 | |
| 
 | |
| # This section only works in genesis
 | |
| if [ -z "$XCATDEST" ]; then
 | |
| 	for parm in `cat /proc/cmdline` ; do
 | |
| 		if echo $parm |grep xcatd= > /dev/null; then
 | |
| 			XCATDEST=`echo $parm |awk -F= '{print $2}'`
 | |
| 		fi
 | |
| 	done
 | |
| fi
 | |
| # This section works in diskless/diskful
 | |
| # The environment MASTER_IP and XCATDPORT is exported by mypostscript
 | |
| if [ -z "$XCATDEST" ]; then
 | |
|     XCATDEST=$MASTER_IP:$XCATDPORT
 | |
| fi
 | |
| 
 | |
| for LANCHAN in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16; do 
 | |
|    if ipmitool channel info $LANCHAN 2> /dev/null | grep 802.3 > /dev/null 2>&1 && ipmitool raw 0xc 2 $LANCHAN 5 0 0 > /dev/null 2>&1; 
 | |
|      then break; 
 | |
|    fi; 
 | |
| done
 | |
| BMCMAC=`ipmitool lan print $LANCHAN|grep ^MAC|awk '{print $4}'` #bmcconfig may opt to use DHCP, if so we need to feed up the mac address
 | |
| #TODO: need a way to get the DUID the service processor may use, perhaps reserve that for 'ibmsetup' since spec doesn't touch ipv6?
 | |
| IPMIMFG=`ipmitool mc info |grep "^Manufacturer ID"|awk  '{print $4}'`
 | |
| XPROD=`ipmitool mc info | grep "^Product ID"|awk '{print $4}'`
 | |
| if [ "$IPMIMFG" == "42817" -a "$XPROD" == "16975" ]; then
 | |
|     ISOPENBMC=1
 | |
| else
 | |
|     ISOPENBMC=0
 | |
| fi
 | |
| echo "<xcatrequest>
 | |
| <command>getbmcconfig</command>
 | |
| <callback_port>300</callback_port>
 | |
| <isopenbmc>$ISOPENBMC</isopenbmc>
 | |
| <bmcmac>$BMCMAC</bmcmac>
 | |
| </xcatrequest>" > /tmp/bmcreq.xml
 | |
| rm -f /tmp/ipmicfg.xml
 | |
| while [ ! -f /tmp/ipmicfg.xml ] || grep error /tmp/ipmicfg.xml; do
 | |
| 	if [ -f /tmp/ipmicfg.xml ]; then
 | |
| 		timer=60
 | |
| 		while [ $timer -gt 0 ]; do
 | |
| 			sleep 1
 | |
| 			echo -en  "Retrying in $timer seconds  \r"
 | |
| 			timer=$(($timer-1));
 | |
| 		done
 | |
| 	fi
 | |
| 	echo -en "                                                         \r";
 | |
| 	
 | |
| 	if [ -f /etc/xcat/cert.pem -a -f /etc/xcat/certkey.pem ]; then #use client cert if available
 | |
| 		cat /tmp/bmcreq.xml | openssl s_client -key /etc/xcat/certkey.pem -cert /etc/xcat/cert.pem -connect $XCATDEST -quiet 2> /dev/null > /tmp/ipmicfg.xml
 | |
| 	else
 | |
| 		cat /tmp/bmcreq.xml | openssl s_client -connect $XCATDEST -quiet 2> /dev/null > /tmp/ipmicfg.xml
 | |
| 	fi
 | |
| done
 | |
| rm /tmp/bmcreq.xml
 | |
| kill $CREDPID
 |