mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 19:32:31 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			118 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| PATH="/opt/xcat/bin:/opt/xcat/sbin:/opt/xcat/share/xcat/tools:/usr/sbin:/usr/bin:/sbin:/bin:/root/bin"
 | |
| export PATH
 | |
| function runcmd(){
 | |
|     echo "Run command $* ..."
 | |
|     result=`$*`
 | |
|     if [[ $? -eq 0 ]];then
 | |
|         echo -e "Run command $* ... [Succeed]\n";
 | |
|         return 0;
 | |
|     else
 | |
|         echo -e "Run command $* ... [Failed]\n";
 | |
|         return 1;
 | |
|     fi
 | |
| }
 | |
| 
 | |
| # We should be using private networks
 | |
| TESTNODE=testnode
 | |
| TESTNODE_IP="192.168.3.1"
 | |
| 
 | |
| MASTER_PRIVATE_IP="192.168.1.1"
 | |
| MASTER_PRIVATE_NETMASK="255.255.0.0"
 | |
| MASTER_PRIVATE_NETWORK="192_168_0_0-255_255_0_0"
 | |
| 
 | |
| 
 | |
| function check_destiny() {
 | |
|     cmd="chdef ${TESTNODE} arch=ppc64le cons=ipmi groups=all ip=${TESTNODE_IP} mac=4e:ee:ee:ee:ee:0e netboot=$NETBOOT tftpserver=$MASTER_PRIVATE_IP xcatmaster=$MASTER_PRIVATE_IP";
 | |
|     runcmd $cmd;
 | |
|     lsdef ${TESTNODE}
 | |
| 
 | |
|     MASTERIP=`lsdef -t site -i master -c 2>&1 | awk -F'=' '{print $2}'`;
 | |
|     MASTERNET=`ifconfig  | awk "BEGIN{RS=\"\"}/\<$MASTERIP\>/{print \$1}"|head -n 1 | awk -F ' ' '{print $1}'|awk -F ":"  '{print \$1}' 2>&1`;
 | |
|     NET2=`netstat -i -a|grep -v Kernel|grep -v Iface |grep -v lo|grep -v $MASTERNET|head -n 1|awk '{print $1}'`;
 | |
| 
 | |
|     echo "MASTERIP=$MASTERIP"
 | |
|     echo "MASTERNET=$MASTERNET"
 | |
|     echo "NET2=$NET2"
 | |
| 
 | |
|     if [[ -z $NET2 ]];then
 | |
|         echo "There is no second network, could not verify the test"
 | |
|         return 1;
 | |
|     else
 | |
|         cmd="ip addr add $MASTER_PRIVATE_IP/$MASTER_PRIVATE_NETMASK dev $NET2";
 | |
|         runcmd $cmd;
 | |
|         echo "Check if ip addess $MASTER_PRIVATE_IP/$MASTER_PRIVATE_NETMASK is added for $NET2"
 | |
|         ip addr show $NET2
 | |
|         cmd="makenetworks";
 | |
|         runcmd $cmd;
 | |
|         tabdump networks
 | |
|         cmd="makehosts ${TESTNODE}"
 | |
|         runcmd $cmd
 | |
|         echo "Check if ${TESTNODE} can be found in /etc/hosts"
 | |
|         grep ${TESTNODE} /etc/hosts 
 | |
|         cmd="nodeset ${TESTNODE}  shell";
 | |
|         runcmd $cmd;
 | |
|         cmd="ip addr del $MASTER_PRIVATE_IP/$MASTER_PRIVATE_NETMASK dev $NET2";
 | |
|         runcmd $cmd;
 | |
|         echo "Check if 'nodeset ${TESTNODE} shell' is added to ${SHELLFOLDER}/${TESTNODE}"
 | |
|         echo "==============================================="
 | |
|         cat "${SHELLFOLDER}/${TESTNODE}"
 | |
|         echo "==============================================="
 | |
|         cat "${SHELLFOLDER}/${TESTNODE}" |grep "xcatd=${MASTER_PRIVATE_IP}:3001 destiny=shell";
 | |
|         if [[ $? -eq 0 ]] ;then
 | |
|             return 0;
 | |
|         else
 | |
|             echo "'nodeset ${TESTNODE} shell' FAILED";
 | |
|             return 1;
 | |
|         fi
 | |
|     fi
 | |
| }
 | |
| 
 | |
| function clear_env() {
 | |
|     rmdef -t network -o ${MASTER_PRIVATE_NETWORK}
 | |
|     makehosts -d ${TESTNODE}
 | |
|     rmdef ${TESTNODE}
 | |
|     if [[ $? -eq 0 ]];then
 | |
|        return 0;
 | |
|     else
 | |
|        return 1;
 | |
|     fi
 | |
| }
 | |
| 
 | |
| NETBOOT=""
 | |
| SHELLFOLDER=""
 | |
| while [ "$#" -ge "0" ]; do
 | |
|     case $1 in
 | |
|         "--check" )
 | |
|         NETBOOT=$2;
 | |
|         if [[ $NETBOOT =~ petitboot ]];then
 | |
|             SHELLFOLDER="/tftpboot/petitboot";
 | |
|         elif [[ $NETBOOT =~  xnba ]];then
 | |
|             SHELLFOLDER="/tftpboot/xcat/xnba/nodes"
 | |
|         else
 | |
|             SHELLFOLDER="/tftpboot/boot/grub2";
 | |
|         fi
 | |
|         check_destiny ;
 | |
|         if [[ $? -eq 1 ]];then
 | |
|             exit 1
 | |
|         else
 | |
|             exit 0
 | |
|         fi
 | |
|         ;;
 | |
|         "-c"|"--clear" )
 | |
|         clear_env;
 | |
|         if [[ $? -eq 1 ]];then
 | |
|             exit 1
 | |
|         else
 | |
|             exit 0
 | |
|         fi
 | |
|         ;;
 | |
|         *)
 | |
|         echo
 | |
|         echo "Error: Usage: $0: -cd|-c"
 | |
|         echo
 | |
|         exit 1;
 | |
|         ;;
 | |
|         esac
 | |
| done
 |