From 22d14e483fad9c5266b9f2a0534c8dbbdbb7e1a0 Mon Sep 17 00:00:00 2001 From: hu-weihua Date: Tue, 31 May 2016 03:36:37 -0400 Subject: [PATCH] delete this file, replace by probe_utils.pm --- xCAT-probe/lib/perl/ProbeUtils.pm | 317 ------------------------------ 1 file changed, 317 deletions(-) delete mode 100644 xCAT-probe/lib/perl/ProbeUtils.pm diff --git a/xCAT-probe/lib/perl/ProbeUtils.pm b/xCAT-probe/lib/perl/ProbeUtils.pm deleted file mode 100644 index 8304fb76b..000000000 --- a/xCAT-probe/lib/perl/ProbeUtils.pm +++ /dev/null @@ -1,317 +0,0 @@ -package ProbeUtils; -use strict; -use File::Path; -use File::Copy; - -#----------------------------------------- -=head3 - Description: - Format output message depending on probe framework requirement - Format is [] : - The valid are debug, warning, failed and ok - Attribute: list by input sequence - output: where should output the message - num: the number of - 0: debug - 1: warning - 2: failed - 3: ok - msg: the information need to output - Return value: - 1 : Failed - 0 : success -=cut -#---------------------------------------- -sub send_msg { - my $output=shift; - $output=shift if(($output) && ($output =~ /ProbeUtils/)); - my $num = shift; - my $msg = shift; - my $flag; - - if ($num == 0) { - $flag = "[debug] :"; - }elsif($num == 1) { - $flag = "[warning]:"; - }elsif($num == 2) { - $flag = "[failed] :"; - }elsif($num == 3){ - $flag = "[ok] :"; - } - if($output eq "stdout"){ - print "$flag $msg\n"; - }else{ - if (!open (LOGFILE, ">> $output") ) { - return 1; - } - print LOGFILE "$flag $msg\n"; - close LOGFILE; - } - return 0; -} - -#------------------------------------------ -=head3 - Description: - Judge if a string is a IP address - Attribute: list by input sequence - addr: the string want to be judged - Return value: - 1 : yes - 0 : no -=cut -#------------------------------------------ -sub isIpAddr{ - my $addr = shift; - $addr=shift if(($addr) && ($addr =~ /ProbeUtils/)); - return 0 unless($addr); - return 0 if($addr !~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/); - return 0 if ($1 > 255 || $1 == 0 || $2 > 255 || $3 > 255 || $4 > 255); - return 1; -} - -#------------------------------------------ -=head3 - Description: - Judge if a IP address belongs to a network - Attribute: list by input sequence - net : network address, such like 10.10.10.0 - mask: network mask. suck like 255.255.255.0 - ip: a ip address - Return value: - 1 : yes - 0 : no -=cut -#------------------------------------------ -sub isIpBelongToNet{ - my $net=shift; - $net=shift if(($net) && ($net =~ /ProbeUtils/)); - my $mask=shift; - my $targetip=shift; - - return 0 if($net !~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/); - return 0 if($mask !~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/); - return 0 if(! isIpAddr($targetip)); - - my $bin_mask=0; - $bin_mask=(($1+0)<<24)+(($2+0)<<16)+(($3+0)<<8)+($4+0) if($mask =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/); - - my $bin_ip=0; - $bin_ip=(($1+0)<<24)+(($2+0)<<16)+(($3+0)<<8)+($4+0) if($targetip =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/); - - my $tmp_net = $bin_mask&$bin_ip; - - my $bin_net=0; - $bin_net=(($1+0)<<24)+(($2+0)<<16)+(($3+0)<<8)+($4+0) if($net =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/); - - return 0 if( $tmp_net != $bin_net); - return 1; -} - -#------------------------------------------ -=head3 - Description: - Get distro name of current operating system - Attribute: list by input sequence - None - Return value: - A string, include value are sles, redhat and ubuntu -=cut -#------------------------------------------ -sub getOS{ - my $os="unknown"; - my $output = `cat /etc/*release* 2>&1`; - if($output =~ /suse/i){ - $os="sles"; - }elsif($output =~ /Red Hat/i){ - $os="redhat"; - }elsif($output =~ /ubuntu/i){ - $os="ubuntu"; - } - - return $os; -} - -#------------------------------------------ -=head3 - Description: - Judge if a IP address is a static IP address - Attribute: list by input sequence - ip: a ip address - nic: the network adapter which ip belongs to - Return value: - 1 : yes - 0 : no -=cut -#------------------------------------------ -sub isStaticIp{ - my $ip=shift; - $ip=shift if(($ip) && ($ip =~ /ProbeUtils/)); - my $nic=shift; - my $os = getOS(); - my $rst=0; - - if($os =~ /redhat/){ - my $output1=`cat /etc/sysconfig/network-scripts/ifcfg-$nic 2>&1 |grep -i IPADDR`; - my $output2=`cat /etc/sysconfig/network-scripts/ifcfg-$nic 2>&1 |grep -i BOOTPROTO`; - $rst=1 if(($output1 =~ /$ip/) && ($output2 =~ /static/i)); - }elsif($os =~ /sles/){ - my $output1=`cat /etc/sysconfig/network/ifcfg-$nic 2>&1 |grep -i IPADDR`; - my $output2=`cat /etc/sysconfig/network/ifcfg-$nic 2>&1 |grep -i BOOTPROTO`; - $rst=1 if(($output1 =~ /$ip/) && ($output2 =~ /static/i)); - }elsif($os =~/ubuntu/){ - my $output=`cat /etc/network/interfaces 2>&1|grep -E "iface\s+$nic"`; - $rst=1 if($output =~ /static/i); - } - return $rst; -} - -#------------------------------------------ -=head3 - Description: - Judge if SELinux is opened in current operating system - Attribute: list by input sequence - None - Return value: - 1 : yes - 0 : no -=cut -#------------------------------------------ -sub isSelinuxEnable{ - if (-e "/usr/sbin/selinuxenabled") { - `/usr/sbin/selinuxenabled`; - if ($? == 0) { - return 1; - } else { - return 0; - } - } else { - return 0; - } -} - -#------------------------------------------ -=head3 - Description: - Judge if firewall is opened in current operating system - Attribute: list by input sequence - None - Return value: - 1 : yes - 0 : no -=cut -#------------------------------------------ -sub isFirewallOpen{ - my $os =getOS(); - my $output; - my $rst=0; - - if($os =~ /redhat/){ - $output=`service iptables status 2>&1`; - $rst=1 if($output =~ /running/i); - }elsif($os =~ /sles/){ - $output=`service SuSEfirewall2_setup status`; - $rst=1 if($output =~ /running/i); - }elsif($os =~/ubuntu/){ - $output=`ufw status`; - $rst=1 if($output =~ /Status: active/i); - } - return $rst; -} - -#------------------------------------------ -=head3 - Description: - Judge if http service is ready to use in current operating system - Attribute: list by input sequence - ip: http server's ip - Return value: - 1 : yes - 0 : no -=cut -#------------------------------------------ -sub isHttpReady{ - my $mnip=shift; - $mnip=shift if(($mnip) && ($mnip =~ /ProbeUtils/)); - - my $http = "http://$mnip/install/postscripts/efibootmgr"; - rename("./efibootmgr", "./efibootmgr.org") if(-e "./efibootmgr"); - - my $outputtmp = `wget $http 2>&1`; - my $rst =$?; - if(($outputtmp =~ /200 OK/) && (!$rst) && (-e "./efibootmgr")){ - unlink("./efibootmgr"); - rename("./efibootmgr.org", "./efibootmgr") if(-e "./efibootmgr.org"); - return 1; - }else{ - rename("./efibootmgr.org", "./efibootmgr") if(-e "./efibootmgr.org"); - return 0; - } -} - -#------------------------------------------ -=head3 - Description: - Judge if tftp service is ready to use in current operating system - Attribute: list by input sequence - ip: tftp server's ip - Return value: - 1 : yes - 0 : no -=cut -#------------------------------------------ -sub isTftpReady{ - my $mnip=shift; - $mnip=shift if(($mnip) && ($mnip =~ /ProbeUtils/)); - - rename("/tftpboot/tftptestt.tmp", "/tftpboot/tftptestt.tmp.old") if(-e "/tftpboot/tftptestt.tmp"); - rename("./tftptestt.tmp", "./tftptestt.tmp.old") if(-e "./tftptestt.tmp"); - - system("touch /tftpboot/tftptestt.tmp"); - my $output = `tftp -4 -v $mnip -c get tftptestt.tmp`; - if((!$?) && (-e "./tftptestt.tmp")){ - unlink("./tftptestt.tmp"); - rename("./tftptestt.tmp.old", "./tftptestt.tmp") if(-e "./tftptestt.tmp.old"); - rename("/tftpboot/tftptestt.tmp.old","/tftpboot/tftptestt.tmp") if(-e "/tftpboot/tftptestt.tmp.old"); - return 1; - }else{ - rename("./tftptestt.tmp.old", "./tftptestt.tmp") if(-e "./tftptestt.tmp.old"); - rename("/tftpboot/tftptestt.tmp.old","/tftpboot/tftptestt.tmp") if(-e "/tftpboot/tftptestt.tmp.old"); - return 0; - } -} - - -#------------------------------------------ -=head3 - Description: - Judge if DNS service is ready to use in current operating system - Attribute: list by input sequence - ip: DNS server's ip - Return value: - 1 : yes - 0 : no -=cut -#------------------------------------------ -sub isDnsReady{ - my $mnip=shift; - $mnip=shift if(($mnip) && ($mnip =~ /ProbeUtils/)); - my $hostname=shift; - my $domain=shift; - - my $output = `nslookup $mnip $mnip 2>&1`; - - if($?){ - return 0; - }else{ - chomp($output); - my $tmp=`echo "$output" |grep "Server:[\t\s]*$mnip" >/dev/null 2>&1`; - print "$tmp"; - return 0 if($?); - $tmp = `echo "$output"|grep "name ="|grep "$hostname\.$domain" >/dev/null 2>&1`; - return 0 if($?); - return 1; - } -} - -1;