Created
January 24, 2016 19:20
-
-
Save phil21/9d3c08e54578c3c5cdd3 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/perl | |
# | |
# bmc tool - a user friendly front-end to probe, configure, and manage the BMC | |
# | |
# Copyright (c) 2012 Dell Inc. All rights reserved. | |
# | |
# This tool is part of the PowerEdge C datacenter system management tools | |
# from http://poweredgec.com | |
# | |
# [email protected] | |
# | |
use POSIX; | |
use warnings; | |
use strict 'refs'; | |
my $llIlI1l1I1llIl11ll1ll1II111lIIl = '2013-02-11 15:44:47'; | |
my $IIlllI1IIIl1lIlIl1I1llI1Illl1I1 = ''; | |
my $l11I1l1l1l111ll1I1I1I11ll1l11II = '1'; | |
use constant ('EC_SUCCESS', 0); | |
use constant ('EC_ERROR', 1); | |
use constant ('EC_NOT_APPLICABLE', 4); | |
use constant ('EC_UNIMPLEMENTED', 5); | |
use constant ('EC_INVALID', 6); | |
sub IlI1I1I11I1l1II1II1lll11I1IlIll { | |
return ''; | |
} | |
sub III1III11Il1llIlII1l11II1IllI1I { | |
return 'FAILED'; | |
} | |
sub IIIl11111lI1II111lllIIIl111II11 { | |
return 'UNIMPLEMENTED'; | |
} | |
sub IlIIl1lIlIIl1IIIllII1ll1IIl1l11 { | |
return 'INVALID'; | |
} | |
sub lll1lI1llIl1IllI11l11II11II1Ill { | |
return 'NOT_APPLICABLE'; | |
} | |
sub l111I11lIllllI1l1IlIIlIIl1l1l1I { | |
return 'UNAVAILABLE'; | |
} | |
sub ll1I1II1IIll11IIllI1ll1IllI11I1 { | |
return 'UNSUPPORTED'; | |
} | |
sub I1I11lIIll1lIIII1II11IlIl1ll11I { | |
return 'DISABLED'; | |
} | |
sub ll1ll1lIIIII11llI1IlII111lIll1l { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || ''; | |
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq IIIl11111lI1II111lllIIIl111II11() or $l1l1lII111IIlllII11IIIl1IIllI1I eq IlIIl1lIlIIl1IIIllII1ll1IIl1l11() or $l1l1lII111IIlllII11IIIl1IIllI1I eq lll1lI1llIl1IllI11l11II11II1Ill() or $l1l1lII111IIlllII11IIIl1IIllI1I eq l111I11lIllllI1l1IlIIlIIl1l1l1I() or $l1l1lII111IIlllII11IIIl1IIllI1I eq ll1I1II1IIll11IIllI1ll1IllI11I1() or $l1l1lII111IIlllII11IIIl1IIllI1I eq I1I11lIIll1lIIII1II11IlIl1ll11I()) { | |
return $l11I1l1l1l111ll1I1I1I11ll1l11II; | |
} | |
else { | |
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1; | |
} | |
} | |
sub l1III1II1l1I111IIII1I1l11I1lIll { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || ''; | |
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq '') { | |
return $l11I1l1l1l111ll1I1I1I11ll1l11II; | |
} | |
else { | |
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1; | |
} | |
} | |
sub lI1IIlllllIlllI11lIIlIllI1I11II { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || ''; | |
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq '') { | |
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1; | |
} | |
else { | |
return $l11I1l1l1l111ll1I1I1I11ll1l11II; | |
} | |
} | |
sub IlII1I1l1lIIlI1I11I1IIIlllIlll1 { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || ''; | |
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq 'UNIMPLEMENTED') { | |
return $l11I1l1l1l111ll1I1I1I11ll1l11II; | |
} | |
else { | |
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1; | |
} | |
} | |
sub ll11I1ll11lI1l111Ill11ll1IIIIll { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || ''; | |
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq 'INVALID') { | |
return $l11I1l1l1l111ll1I1I1I11ll1l11II; | |
} | |
else { | |
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1; | |
} | |
} | |
sub Il11lIIIlll1Il11ll1lIl1l1II1l1l { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || ''; | |
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq 'NOT_APPLICABLE') { | |
return $l11I1l1l1l111ll1I1I1I11ll1l11II; | |
} | |
else { | |
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1; | |
} | |
} | |
sub l1IIl1I1ll11III11I1III1lIlI11lI { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || ''; | |
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq 'UNAVAILABLE') { | |
return $l11I1l1l1l111ll1I1I1I11ll1l11II; | |
} | |
else { | |
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1; | |
} | |
} | |
sub l1IllIIIll1l1llIIl1lIIlll1I1llI { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || ''; | |
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq 'UNAVAILABLE') { | |
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1; | |
} | |
else { | |
return $l11I1l1l1l111ll1I1I1I11ll1l11II; | |
} | |
} | |
sub lIllIll1l111I1I1IllII1lll1llIIl { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || ''; | |
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq 'UNSUPPORTED') { | |
return $l11I1l1l1l111ll1I1I1I11ll1l11II; | |
} | |
else { | |
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1; | |
} | |
} | |
sub lIll1lIIllIII1IlI11l111llII1I1I { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || ''; | |
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq 'DISABLED') { | |
return $l11I1l1l1l111ll1I1I1I11ll1l11II; | |
} | |
else { | |
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1; | |
} | |
} | |
my(@l1II11IlI1I1IlI1lllI1l1IIIIlIll) = (['nic', 'nic_selection', '02', '01', '00', '1', 'rw', '0'], ['nic', 'shared_nic_selection', '02', '02', '00', '1', 'rw', '1']); | |
my(@Il1l1IIlII111lI1llllII11I1I11l1) = ['sol', 'sol_idle_timeout', '03', '01', '00', '2', 'rw', '1']; | |
my(@lIlllIIIll1l1I1Ill11IIl1l1IIIll) = ['security_cfg', 'service_disabled', '04', '01', '00', '1', 'rw', '6']; | |
my(@Ill1IlIIIl1l1lI1IIlllIl1l1lIl1I) = (['acct_status', 'num_of_users', '05', '01', '00', '1', 'r'], ['acct_status', 'num_of_enabled_users', '05', '02', '00', '1', 'r'], ['acct_status', 'user_name', '05', '03', '00', '17', 'r'], ['acct_status', 'account_status', '05', '04', '00', '1', 'r']); | |
my(@llIll11lIIII1I111II1lIlIlIIlIlI) = (['dns', 'dns_dhcp_enable', '06', '01', '00', '1', 'rw', '0'], ['dns', 'dns_server_1', '06', '02', '00', '4', 'rw'], ['dns', 'dns_server_2', '06', '03', '00', '4', 'rw'], ['dns', 'dns_register_bmc', '06', '04', '00', '1', 'rw', '0'], ['dns', 'dns_bmc_hostname', '06', '05', '00', '64', 'rw'], ['dns', 'dns_get_domain_from_dhcp', '06', '06', '00', '1', 'rw', '0'], ['dns', 'dns_domain_name', '06', '07', '00', '256', 'rw']); | |
my(@IlIlI1lIlIlllIIIIIIIlllIlllIlIl) = (['websvr_cfg', 'web_server_enabled', '0c', '01', '00', '1', 'rw', '1'], ['websvr_cfg', 'max_web_sessions', '0c', '02', '00', '1', 'r'], ['websvr_cfg', 'active_web_sessions', '0c', '03', '00', '1', 'r'], ['websvr_cfg', 'web_server_timeout', '0c', '04', '00', '4', 'rw', '300'], ['websvr_cfg', 'http_port', '0c', '05', '00', '2', 'rw', '80'], ['websvr_cfg', 'https_port', '0c', '06', '00', '2', 'rw', '443']); | |
my(@II1I11IIllII1lllIIl1Il1IlI11l1I) = (['power_mgmt', 'power_mgmt_enable', '11', '01', '00', '1', 'rw'], ['power_mgmt', 'poweron_stagger_ac_recovery', '11', '02', '00', '1', 'rw'], ['power_mgmt', 'poweron_delay', '11', '03', '00', '2', 'rw'], ['power_mgmt', 'min_poweron_delay', '11', '04', '00', '2', 'r'], ['power_mgmt', 'max_poweron_delay', '11', '05', '00', '2', 'rw']); | |
my(@lI1lIllII1lIIIIII1llIIlllIlII11) = (['ipv6', 'ipv6_enable', 'c0', '01', '00', '1', 'rw', '0'], ['ipv6', 'ipv6_address', 'c0', '02', '00', '40', 'rw'], ['ipv6', 'ipv6_gateway_ip', 'c0', '03', '00', '40', 'rw'], ['ipv6', 'ipv6_prefix', 'c0', '04', '00', '1', 'rw'], ['ipv6', 'ipv6_autoconfig', 'c0', '05', '00', '1', 'rw', '1'], ['ipv6', 'ipv6_link_local_addr', 'c0', '06', '00', '40', 'r'], ['ipv6', 'ipv6_auto_dns', 'c0', '07', '00', '1', 'rw', '0'], ['ipv6', 'ipv6_dns_server_1', 'c0', '08', '00', '40', 'rw'], ['ipv6', 'ipv6_dns_server_2', 'c0', '09', '00', '40', 'rw']); | |
my(@lII1lIII1lIll11lI1IIIl1lIlI11lI) = (['ipv6_trap', 'ipv6_snmp_trap_dest', 'c1', '01', '00', '3', 'rw'], ['ipv6_trap', 'ipv6_snmp_trap_dest_addr', 'c1', '02', '00', '40', 'rw'], ['ipv6_trap', 'ipv6_num_of_trap_dest', 'c1', '03', '00', '1', 'r']); | |
my(@l11IIIll11I11lllIlIIl1I1I1111I1) = (@l1II11IlI1I1IlI1lllI1l1IIIIlIll, @Il1l1IIlII111lI1llllII11I1I11l1, @lIlllIIIll1l1I1Ill11IIl1l1IIIll, @Ill1IlIIIl1l1lI1IIlllIl1l1lIl1I, @llIll11lIIII1I111II1lIlIlIIlIlI, @IlIlI1lIlIlllIIIIIIIlllIlllIlIl, @II1I11IIllII1lllIIl1Il1IlI11l1I, @lI1lIllII1lIIIIII1llIIlllIlII11, @lII1lIII1lIll11lI1IIIl1lIlI11lI); | |
sub II1II1II1111lll111lIll1I1ll1lI1 { | |
my $lIIlIIllIlll1II1I111IIlIl111II1 = shift @_; | |
my $i; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = -1; | |
foreach $i (0 .. $#l11IIIll11I11lllIlIIl1I1I1111I1) { | |
if ($l11IIIll11I11lllIlIIl1I1I1111I1[$i][1] eq $lIIlIIllIlll1II1I111IIlIl111II1) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $i; | |
last; | |
} | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub I11lllII1lll111II1IllIIl1II1llI { | |
my $x = shift @_; | |
if (not defined $x) { | |
$x = ''; | |
} | |
else { | |
$x =~ s/^\s+//; | |
$x =~ s/\s+$//; | |
} | |
return $x; | |
} | |
sub lllIllI1II1IIl1lIllIIIIlI1ll1II { | |
my $x = shift @_; | |
if (defined $x) { | |
$x =~ s/^\s+//; | |
} | |
return $x; | |
} | |
sub I11lIlIIlll1II111ll111111l11llI { | |
my $x = shift @_; | |
if (defined $x) { | |
$x =~ s/\s+$//; | |
} | |
return $x; | |
} | |
sub l11l1I1Ill1Il11llIlIlIlllll1l1l { | |
my $x = shift @_; | |
if (defined $x) { | |
$x =~ s/\s+/ /g; | |
} | |
return $x; | |
} | |
sub llIlIllIlll11llIll11l11lIlIll1l { | |
my $x = shift @_; | |
my @llII1l1l1l1II1l11lII1I1I1I1IIIl; | |
if (defined $x) { | |
@llII1l1l1l1II1l11lII1I1I1I1IIIl = split(/#/, $x, 0); | |
$x = $llII1l1l1l1II1l11lII1I1I1I1IIIl[0]; | |
} | |
if (not defined $x) { | |
$x = ''; | |
} | |
return $x; | |
} | |
sub lIl11II1Il1l1l1Il1lI11l1l1I1l1l { | |
my $lIl11I1IIl111I1II11lIIllI1II1ll = shift @_; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = uc $lIl11I1IIl111I1II11lIIllI1II1ll; | |
return $lIl11I1IIl111I1II11lIIllI1II1ll; | |
} | |
sub II111lIlIlIIlIll1IllII1lIlI1lIl { | |
my $lIl11I1IIl111I1II11lIIllI1II1ll = shift @_; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = lc $lIl11I1IIl111I1II11lIIllI1II1ll; | |
return $lIl11I1IIl111I1II11lIIllI1II1ll; | |
} | |
sub ll1lIIII11IIIlII1ll1llII111l1Il { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
my $i; | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
my $lIllIlII11IllI1Il11lIl1ll1II1I1; | |
$l1l1lII111IIlllII11IIIl1IIllI1I = I11lllII1lll111II1IllIIl1II1llI($l1l1lII111IIlllII11IIIl1IIllI1I); | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/\./, $l1l1lII111IIlllII11IIIl1IIllI1I, 0); | |
if ($#lll11lI1lll1l1lllIIIlI1l1IlIl1l != 3) { | |
return 0; | |
} | |
foreach $i (0 .. $#lll11lI1lll1l1lllIIIlI1l1IlIl1l) { | |
if ($lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i] =~ /^-?\d+$/) { | |
$lIllIlII11IllI1Il11lIl1ll1II1I1 = int $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i]; | |
if ($lIllIlII11IllI1Il11lIl1ll1II1I1 < 0 or $lIllIlII11IllI1Il11lIl1ll1II1I1 >= 256) { | |
return 0; | |
} | |
} | |
else { | |
return 0; | |
} | |
} | |
return 1; | |
} | |
sub l1IIl1111IlIIII1l1Illl111III11I { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
$l1l1lII111IIlllII11IIIl1IIllI1I = I11lllII1lll111II1IllIIl1II1llI($l1l1lII111IIlllII11IIIl1IIllI1I); | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
my $i; | |
my $lIllIlII11IllI1Il11lIl1ll1II1I1; | |
my $l1lll11lII1l1l111l11IlllII111ll = ''; | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/\./, $l1l1lII111IIlllII11IIIl1IIllI1I, 0); | |
foreach $i (0 .. $#lll11lI1lll1l1lllIIIlI1l1IlIl1l) { | |
$lIllIlII11IllI1Il11lIl1ll1II1I1 = int $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i]; | |
$l1lll11lII1l1l111l11IlllII111ll .= sprintf('%02x', $lIllIlII11IllI1Il11lIl1ll1II1I1); | |
if ($i < $#lll11lI1lll1l1lllIIIlI1l1IlIl1l) { | |
$l1lll11lII1l1l111l11IlllII111ll .= ' '; | |
} | |
} | |
return $l1lll11lII1l1l111l11IlllII111ll; | |
} | |
sub Illl11II1l1l111I11lI111l11I11II { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
$l1l1lII111IIlllII11IIIl1IIllI1I = I11lllII1lll111II1IllIIl1II1llI($l1l1lII111IIlllII11IIIl1IIllI1I); | |
my $lIllIlII11IllI1Il11lIl1ll1II1I1; | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
my $i; | |
my $l1lll11lII1l1l111l11IlllII111ll = ''; | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/\s+/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0); | |
foreach $i (0 .. $#lll11lI1lll1l1lllIIIlI1l1IlIl1l) { | |
$lIllIlII11IllI1Il11lIl1ll1II1I1 = hex I11lllII1lll111II1IllIIl1II1llI($lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i]); | |
$l1lll11lII1l1l111l11IlllII111ll .= sprintf('%d', $lIllIlII11IllI1Il11lIl1ll1II1I1); | |
if ($i < $#lll11lI1lll1l1lllIIIlI1l1IlIl1l) { | |
$l1lll11lII1l1l111l11IlllII111ll .= '.'; | |
} | |
} | |
return $l1lll11lII1l1l111l11IlllII111ll; | |
} | |
sub IlIll11llI11ll1llIIIlll1l1IlII1 { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
my $lll1l1l1Il1IIIllll1Il1ll1I11III = ''; | |
my @l1llII111IIl1lI11IIlllII1I1lI11; | |
my $i; | |
@l1llII111IIl1lI11IIlllII1I1lI11 = split(/ +/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0); | |
for ($i = 0; $i <= $#l1llII111IIl1lI11IIlllII1I1lI11; ++$i) { | |
$lll1l1l1Il1IIIllll1Il1ll1I11III .= '0x' . $l1llII111IIl1lI11IIlllII1I1lI11[$i]; | |
if ($i < $#l1llII111IIl1lI11IIlllII1I1lI11) { | |
$lll1l1l1Il1IIIllll1Il1ll1I11III .= ' '; | |
} | |
} | |
return $lll1l1l1Il1IIIllll1Il1ll1I11III; | |
} | |
sub ll1lIIIlIIl1l1llIlIllIl11lllIII { | |
my $ll11lIlIl1IlI1l1I1I1ll11I1lI11I = shift @_; | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
my $ll1I111lllIlI1III11lIllI1IlII11 = shift @_ || ' '; | |
my $IIll11I1Il1IIlIlII1I1l1lIIIIIll; | |
my $i; | |
$IIll11I1Il1IIlIlII1I1l1lIIIIIll = length $l1l1lII111IIlllII11IIIl1IIllI1I; | |
for ($i = 0; $i < $ll11lIlIl1IlI1l1I1I1ll11I1lI11I - $IIll11I1Il1IIlIlII1I1l1lIIIIIll; ++$i) { | |
$l1l1lII111IIlllII11IIIl1IIllI1I .= $ll1I111lllIlI1III11lIllI1IlII11; | |
} | |
return $l1l1lII111IIlllII11IIIl1IIllI1I; | |
} | |
sub I1IIlI1IIIIllllI1IlIl1I1llIll11 { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
if (ll1ll1lIIIII11llI1IlII111lIll1l $l1l1lII111IIlllII11IIIl1IIllI1I) { | |
return $l1l1lII111IIlllII11IIIl1IIllI1I; | |
} | |
if ($l1l1lII111IIlllII11IIIl1IIllI1I) { | |
return 'yes'; | |
} | |
else { | |
return 'no'; | |
} | |
} | |
sub I1lll1l1lIlI1lIlI1Il1111l1l111I { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
my $ll1I111lllIlI1III11lIllI1IlII11 = ''; | |
my $i = ''; | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
for ($i = 0; $i < length $l1l1lII111IIlllII11IIIl1IIllI1I; ++$i) { | |
$ll1I111lllIlI1III11lIllI1IlII11 = substr($l1l1lII111IIlllII11IIIl1IIllI1I, $i, 1); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= sprintf(' 0x%02x', ord $ll1I111lllIlI1III11lIllI1IlII11); | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub IIIIllI11I1I1l1IlIII1l1IlII1111 { | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
my $i; | |
my $lII1IIIllII1ll11IIllI1II1I1l1l1 = ''; | |
my($IllII1l1IIIl11IIllIl1llllI1IIIl, $lll1lI111IIll1I1l11I1IIlllll1II, $I11I11II1l1l1lllI1II11lI111llIl) = @_; | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/\n/, $I11I11II1l1l1lllI1II11lI111llIl, 0); | |
foreach $i (0 .. $#lll11lI1lll1l1lllIIIlI1l1IlIl1l) { | |
if ($IllII1l1IIIl11IIllIl1llllI1IIIl eq '') { | |
if ($lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i] =~ /$lll1lI111IIll1I1l11I1IIlllll1II/) { | |
$lII1IIIllII1ll11IIllI1II1I1l1l1 .= $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i] . "\n"; | |
} | |
} | |
if ($IllII1l1IIIl11IIllIl1llllI1IIIl eq 'i') { | |
if ($lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i] =~ /$lll1lI111IIll1I1l11I1IIlllll1II/i) { | |
$lII1IIIllII1ll11IIllI1II1I1l1l1 .= $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i] . "\n"; | |
} | |
} | |
if ($IllII1l1IIIl11IIllIl1llllI1IIIl eq 'v') { | |
if (not $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i] =~ /$lll1lI111IIll1I1l11I1IIlllll1II/i) { | |
$lII1IIIllII1ll11IIllI1II1I1l1l1 .= $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i] . "\n"; | |
} | |
} | |
} | |
return $lII1IIIllII1ll11IIllI1II1I1l1l1; | |
} | |
sub Il1I1I11l1I1Il111II11Il11lIIIl1 { | |
my($lIl1llIlIII1lIIllIll1llII1IllII, $lII1IllIIll11IllI11IllI11IIIlll, $I11I11II1l1l1lllI1II11lI111llIl) = @_; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/$lIl1llIlIII1lIIllIll1llII1IllII/, $I11I11II1l1l1lllI1II11lI111llIl, 0); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$lII1IllIIll11IllI11IllI11IIIlll - 1]; | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub I1IlllllI1IlIlI1lIIl1III111111I { | |
my $lIl1llIlIII1lIIllIll1llII1IllII = shift @_; | |
my $I11I11II1l1l1lllI1II11lI111llIl = shift @_; | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
my $Il1ll111I11IIl1llIl1llIlIlIIIl1; | |
my $I1ll1I1I1lIlI1I1l1Ill1I111lllII; | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/$lIl1llIlIII1lIIllIll1llII1IllII/, $I11I11II1l1l1lllI1II11lI111llIl, 0); | |
$Il1ll111I11IIl1llIl1llIlIlIIIl1 = I11lllII1lll111II1IllIIl1II1llI($lll11lI1lll1l1lllIIIlI1l1IlIl1l[0]); | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = I11lllII1lll111II1IllIIl1II1llI($lll11lI1lll1l1lllIIIlI1l1IlIl1l[1]); | |
return $Il1ll111I11IIl1llIl1llIlIlIIIl1, $I1ll1I1I1lIlI1I1l1Ill1I111lllII; | |
} | |
sub ll11ll111I1IIIIll1ll1l1IlIIIl1l { | |
my $I1IIll1l1I1IIIIlIlllI1l1Il1IIII = shift @_; | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
my(@llII1l1l1l1II1l11lII1I1I1I1IIIl) = split(/$I1IIll1l1I1IIIIlIlllI1l1Il1IIII/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0); | |
return $llII1l1l1l1II1l11lII1I1I1I1IIIl[0]; | |
} | |
sub l1lI11I1llllI1IIII111IllI1l11Il { | |
my $I1IIll1l1I1IIIIlIlllI1l1Il1IIII = shift @_; | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
my(@llII1l1l1l1II1l11lII1I1I1I1IIIl) = split(/$I1IIll1l1I1IIIIlIlllI1l1Il1IIII/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0); | |
shift @llII1l1l1l1II1l11lII1I1I1I1IIIl; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = join($I1IIll1l1I1IIIIlIlllI1l1Il1IIII, @llII1l1l1l1II1l11lII1I1I1I1IIIl); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub ll1IllIIlIll111lIl11IlllIllII1l { | |
my $I1IIll1l1I1IIIIlIlllI1l1Il1IIII = shift @_; | |
my $l1l1l1llI11l1lIIll1II1l1II1lI1I = shift @_; | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
my(@llII1l1l1l1II1l11lII1I1I1I1IIIl) = split(/$I1IIll1l1I1IIIIlIlllI1l1Il1IIII/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0); | |
shift @llII1l1l1l1II1l11lII1I1I1I1IIIl; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll = $llII1l1l1l1II1l11lII1I1I1I1IIIl[0]; | |
my(@I1lIIII1IlIl1II11I1IIll11II1l11) = split(/$l1l1l1llI11l1lIIll1II1l1II1lI1I/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = $I1lIIII1IlIl1II11I1IIll11II1l11[0]; | |
return $lIl11I1IIl111I1II11lIIllI1II1ll; | |
} | |
sub I1I1lIIII1lIll1l11I11lll1Il1II1 { | |
my $I1lIIll1lIlI1lI1lIIIl111lIl11ll = shift @_; | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
$I1lIIll1lIlI1lI1lIIIl111lIl11ll = $I1lIIll1lIlI1lI1lIIIl111lIl11ll - 1; | |
my(@llII1l1l1l1II1l11lII1I1I1I1IIIl) = split(/\n/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0); | |
return $llII1l1l1l1II1l11lII1I1I1I1IIIl[$I1lIIll1lIlI1lI1lIIIl111lIl11ll]; | |
} | |
sub I1IIl1lIIIIIlI1I1IIIlI1IlIlIII1 { | |
my $I1llI1Il11I11Illll11l1lIl1l1lI1 = shift @_; | |
my $I1l11lIII1lI1IIIl11I1l1I1lI1Ill = shift @_; | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
$I1llI1Il11I11Illll11l1lIl1l1lI1 -= 1; | |
if ($I1l11lIII1lI1IIIl11I1l1I1lI1Ill > 0) { | |
$I1l11lIII1lI1IIIl11I1l1I1lI1Ill -= 1; | |
} | |
my(@llII1l1l1l1II1l11lII1I1I1I1IIIl) = split(/\n/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0); | |
my $lI1ll1Il11ll1IlIl11III1l1lI1lll = $#llII1l1l1l1II1l11lII1I1I1I1IIIl; | |
if ($I1l11lIII1lI1IIIl11I1l1I1lI1Ill <= 0) { | |
$I1l11lIII1lI1IIIl11I1l1I1lI1Ill += $lI1ll1Il11ll1IlIl11III1l1lI1lll; | |
} | |
if ($I1l11lIII1lI1IIIl11I1l1I1lI1Ill > $lI1ll1Il11ll1IlIl11III1l1lI1lll) { | |
$I1l11lIII1lI1IIIl11I1l1I1lI1Ill = $lI1ll1Il11ll1IlIl11III1l1lI1lll; | |
} | |
my(@I1lIIII1IlIl1II11I1IIll11II1l11) = @llII1l1l1l1II1l11lII1I1I1I1IIIl[$I1llI1Il11I11Illll11l1lIl1l1lI1 .. $I1l11lIII1lI1IIIl11I1l1I1lI1Ill]; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = join("\n", @I1lIIII1IlIl1II11I1IIll11II1l11); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub IIl11IIlI1Illl1111III11lIIIIII1 { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
my $lIllllIlI1lI1I11IlIIllI11I1lI1I = shift @_; | |
my $l1I11ll1lllllI1III11Il111I1llIl = shift @_; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll = ''; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
if (not defined $l1I11ll1lllllI1III11Il111I1llIl) { | |
$l1I11ll1lllllI1III11Il111I1llIl = $lIllllIlI1lI1I11IlIIllI11I1lI1I; | |
} | |
$l1l1lII111IIlllII11IIIl1IIllI1I = I11lllII1lll111II1IllIIl1II1llI($l1l1lII111IIlllII11IIIl1IIllI1I); | |
$l1l1lII111IIlllII11IIIl1IIllI1I =~ s/\n//; | |
my(@lll11lI1lll1l1lllIIIlI1l1IlIl1l) = split(' ', $l1l1lII111IIlllII11IIIl1IIllI1I, 0); | |
for (my $i = $l1I11ll1lllllI1III11Il111I1llIl; $i >= $lIllllIlI1lI1I11IlIIllI11I1lI1I; --$i) { | |
$lIl11I1IIl111I1II11lIIllI1II1ll .= $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i]; | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = hex $lIl11I1IIl111I1II11lIIllI1II1ll; | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub I1I1IIlll111ll11111lII1IIlIllIl { | |
my $l1lII111II1llllIIlIIllI1I1IIlll = shift @_; | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
my $lIl1llIlIII1lIIllIll1llII1IllII = shift @_ || ':'; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', $l1lII111II1llllIIlIIllI1I1IIlll, $l1l1lII111IIlllII11IIIl1IIllI1I); | |
my(@llII1l1l1l1II1l11lII1I1I1I1IIIl) = split(/$lIl1llIlIII1lIIllIll1llII1IllII/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0); | |
return I11lllII1lll111II1IllIIl1II1llI($llII1l1l1l1II1l11lII1I1I1I1IIIl[1]); | |
} | |
sub II1IlI11IIllI1l1lIlII11I11Illl1 { | |
my $I11I11II1l1l1lllI1II11lI111llIl = shift @_; | |
my $IlII1l111l1Il11IIl11l1lllll1lI1 = shift @_; | |
my $IIIIlI1lII1l1l11IlIII1lI1I1lll1 = shift @_; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
my $II111lI1l1lllIl11I1lIII11111l1l; | |
$II111lI1l1lllIl11I1lIII11111l1l = index($I11I11II1l1l1lllI1II11lI111llIl, $IlII1l111l1Il11IIl11l1lllll1lI1); | |
if ($II111lI1l1lllIl11I1lIII11111l1l < 0) { | |
return $I11I11II1l1l1lllI1II11lI111llIl; | |
} | |
my $I1111l1lIl1l1ll111l1ll1l1ll1IlI; | |
my $l1IllI1I11I11ll1Il1l11I1lllIIll; | |
$I1111l1lIl1l1ll111l1ll1l1ll1IlI = substr($I11I11II1l1l1lllI1II11lI111llIl, 0, $II111lI1l1lllIl11I1lIII11111l1l); | |
$l1IllI1I11I11ll1Il1l11I1lllIIll = substr($I11I11II1l1l1lllI1II11lI111llIl, $II111lI1l1lllIl11I1lIII11111l1l + length($IlII1l111l1Il11IIl11l1lllll1lI1)); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $I1111l1lIl1l1ll111l1ll1l1ll1IlI . $IIIIlI1lII1l1l11IlIII1lI1I1lll1 . $l1IllI1I11I11ll1Il1l11I1lllIIll; | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub Illll11IIl1l1lIIIII1111IlIIllll { | |
my $I11I11II1l1l1lllI1II11lI111llIl = shift @_; | |
my $IlII1l111l1Il11IIl11l1lllll1lI1 = shift @_; | |
my $IIIIlI1lII1l1l11IlIII1lI1I1lll1 = shift @_; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
my $II111lI1l1lllIl11I1lIII11111l1l = 0; | |
my $lI1IlIl11I1l1llIl11l1lI11I111ll; | |
$lI1IlIl11I1l1llIl11l1lI11I111ll = length($IIIIlI1lII1l1l11IlIII1lI1I1lll1) - length($IlII1l111l1Il11IIl11l1lllll1lI1); | |
while (1) { | |
$II111lI1l1lllIl11I1lIII11111l1l = index($I11I11II1l1l1lllI1II11lI111llIl, $IlII1l111l1Il11IIl11l1lllll1lI1, $II111lI1l1lllIl11I1lIII11111l1l); | |
if ($II111lI1l1lllIl11I1lIII11111l1l < 0) { | |
return $I11I11II1l1l1lllI1II11lI111llIl; | |
} | |
my $I1111l1lIl1l1ll111l1ll1l1ll1IlI; | |
my $l1IllI1I11I11ll1Il1l11I1lllIIll; | |
$I1111l1lIl1l1ll111l1ll1l1ll1IlI = substr($I11I11II1l1l1lllI1II11lI111llIl, 0, $II111lI1l1lllIl11I1lIII11111l1l); | |
$l1IllI1I11I11ll1Il1l11I1lllIIll = substr($I11I11II1l1l1lllI1II11lI111llIl, $II111lI1l1lllIl11I1lIII11111l1l + length($IlII1l111l1Il11IIl11l1lllll1lI1)); | |
$I11I11II1l1l1lllI1II11lI111llIl = $I1111l1lIl1l1ll111l1ll1l1ll1IlI . $IIIIlI1lII1l1l11IlIII1lI1I1lll1 . $l1IllI1I11I11ll1Il1l11I1lllIIll; | |
$II111lI1l1lllIl11I1lIII11111l1l += $lI1IlIl11I1l1llIl11l1lI11I111ll; | |
} | |
} | |
sub IllIlllIIIlII11I1111ll111lIllll { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
if ($l1l1lII111IIlllII11IIIl1IIllI1I) { | |
return 'yes'; | |
} | |
else { | |
return 'no'; | |
} | |
} | |
sub l1ll11II1111I111l11ll11l11l1l11 { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || ''; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($l1l1lII111IIlllII11IIIl1IIllI1I); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = II111lIlIlIIlIll1IllII1lIlI1lIl($lIl11I1IIl111I1II11lIIllI1II1ll); | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll eq 'yes' or $lIl11I1IIl111I1II11lIIllI1II1ll eq 'y') { | |
return 1; | |
} | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll eq 'no' or $lIl11I1IIl111I1II11lIIllI1II1ll eq 'n') { | |
return 0; | |
} | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll eq 'true' or $lIl11I1IIl111I1II11lIIllI1II1ll eq 't') { | |
return 1; | |
} | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll eq 'false' or $lIl11I1IIl111I1II11lIIllI1II1ll eq 'f') { | |
return 0; | |
} | |
printf "I don't know how to interpret this as boolean: %s\n", $l1l1lII111IIlllII11IIIl1IIllI1I; | |
printf "Halting.\n\n"; | |
exit 1; | |
} | |
sub Il1IIllII11I11I1I1lIIlI11I1l1I1 { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = `date +"%s"`; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub lI11lII1111l1111I11I1lllIIll1ll { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = `date +%s -d"$l1l1lII111IIlllII11IIIl1IIllI1I"`; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub lI11III11l1lllIlIl1l1I11Il11III { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
my $lIl1llIlIII1lIIllIll1llII1IllII = shift @_ || '/'; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my(@lll11lI1lll1l1lllIIIlI1l1IlIl1l) = split(/$lIl1llIlIII1lIIllIll1llII1IllII/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[2] . $lIl1llIlIII1lIIllIll1llII1IllII . $lll11lI1lll1l1lllIIIlI1l1IlIl1l[0] . $lIl1llIlIII1lIIllIll1llII1IllII . $lll11lI1lll1l1lllIIIlI1l1IlIl1l[1]; | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub l1I1I1lIllIIIllIl1Il1Ill11lI1l1 { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
my $lIl1llIlIII1lIIllIll1llII1IllII = shift @_ || '/'; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my(@lll11lI1lll1l1lllIIIlI1l1IlIl1l) = split(/$lIl1llIlIII1lIIllIll1llII1IllII/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[1] . $lIl1llIlIII1lIIllIll1llII1IllII . $lll11lI1lll1l1lllIIIlI1l1IlIl1l[2] . $lIl1llIlIII1lIIllIll1llII1IllII . $lll11lI1lll1l1lllIIIlI1l1IlIl1l[0]; | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub Ill1lI11Ill1IlI1I1lIlIlIIl11Il1 { | |
my $lI1I1lllI1IlIIIl1II1I1I11111I1l = shift @_; | |
my $Il111IlIlII1lll111IlIlIl111I1lI = 'date -d @' . $lI1I1lllI1IlIIIl1II1I1I11111I1l . ' +"%Y-%m-%d %T"'; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = `$Il111IlIlII1lll111IlIlIl111I1lI`; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub ll1IlIll1I1IIllllII1llIllI11I11 { | |
my $IlIIll1IllII1Illl111lIll111llI1 = shift @_; | |
my $lI11ll1lIIl1IlIl111IIIl1l1l1ll1 = 0; | |
my $Il1IlII1I1Il1l11I1l1111l11l1lll = 0; | |
my $II11ll111l1lIllIIIlI1lIl1lll11I = 0; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
if ($IlIIll1IllII1Illl111lIll111llI1 > 86400) { | |
$lI11ll1lIIl1IlIl111IIIl1l1l1ll1 = floor($IlIIll1IllII1Illl111lIll111llI1 / 86400); | |
$IlIIll1IllII1Illl111lIll111llI1 -= $lI11ll1lIIl1IlIl111IIIl1l1l1ll1 * 86400; | |
} | |
if ($IlIIll1IllII1Illl111lIll111llI1 > 3600) { | |
$Il1IlII1I1Il1l11I1l1111l11l1lll = floor($IlIIll1IllII1Illl111lIll111llI1 / 3600); | |
$IlIIll1IllII1Illl111lIll111llI1 -= $Il1IlII1I1Il1l11I1l1111l11l1lll * 3600; | |
} | |
if ($IlIIll1IllII1Illl111lIll111llI1 > 60) { | |
$II11ll111l1lIllIIIlI1lIl1lll11I = floor($IlIIll1IllII1Illl111lIll111llI1 / 60); | |
$IlIIll1IllII1Illl111lIll111llI1 -= $II11ll111l1lIllIIIlI1lIl1lll11I * 60; | |
} | |
if ($lI11ll1lIIl1IlIl111IIIl1l1l1ll1 > 0) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= $lI11ll1lIIl1IlIl111IIIl1l1l1ll1 . 'd '; | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= sprintf('%02d%s%02d%s%02d', $Il1IlII1I1Il1l11I1l1111l11l1lll, ':', $II11ll111l1lIllIIIlI1lIl1lll11I, ':', $IlIIll1IllII1Illl111lIll111llI1); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
my $llIllIl1lI1l1lIII1l1lI1II11ll1l = ''; | |
my $I1I1IlIII11Ill1Il1ll1Illll11III = ''; | |
my $II1Ill11111lllIl11llI1lIlI111Il = '1'; | |
my $Ill11I1I11IllI1lII11IIlI1IIlIl1 = $IIlllI1IIIl1lIlIl1I1llI1Illl1I1; | |
my $lII1II1IlIlllll1l1l11ll1I111lll = 'unknown'; | |
my $lIIllIlll11IIIIIllIlII1llIll11l = ''; | |
my $IIlIllIIlll1ll1lIlIlIllIIIlIlIl = ''; | |
my $lll1l1ll1Ill11IIIllIl1lI1lIl1Il = ''; | |
my $III1I11I1I1ll1IlI111II11IIIIl1I = 'unknown'; | |
my $I1l1lllI1llIl11l1lI1111IlI1I11I = $IIlllI1IIIl1lIlIl1I1llI1Illl1I1; | |
my $lll1111IlllIIll1IlIlIlIIllII1Il = ''; | |
my $llIl1l1IIl11II11lIlIl1l1lllIllI = ''; | |
my $I11III1l11ll11I1IIlIl1lIl1IIlIl = ''; | |
my $l1IlllIl11I1IllII1l11II1ll1lI11 = ''; | |
my $II11lIIl1l11I1I1l11IllI1Il1l1Il = ''; | |
my $IIlIll1lIIll1II1lllI1Il1I1ll1II = 0; | |
my $l1lllllI11IlIlI1IlI1lI1Ill1I11l = ''; | |
my $llI11IIlI1IIll1l1lI111IllI1l1Il = 0; | |
my $lIlII1IlIll1III1I11Il11ll111111 = ''; | |
my $I11l1I1I1l11II1Il11I1l1111IllII = 0; | |
my $lII1lI1I1l1I1lIlI1I11IIIIlIlII1 = ''; | |
my $l1lI1lIll11Il11l111I11Ill11I1lI = 0; | |
sub ll1l1IlI11I11IlIll1llIIlIIIllIl { | |
$IIlIll1lIIll1II1lllI1Il1I1ll1II = 0; | |
$llI11IIlI1IIll1l1lI111IllI1l1Il = 0; | |
$I11l1I1I1l11II1Il11I1l1111IllII = 0; | |
$l1lI1lIll11Il11l111I11Ill11I1lI = 0; | |
} | |
sub l111I11Il1lIlIII1l1IIll1IIlI1II { | |
return $lll1111IlllIIll1IlIlIlIIllII1Il; | |
} | |
sub IIl1lllIIlI1II1Il1I1I11lIll1lIl { | |
$lll1111IlllIIll1IlIlIlIIllII1Il = ''; | |
} | |
sub IlI11l1II111I1I111IllIIllIll1lI { | |
$lll1111IlllIIll1IlIlIlIIllII1Il = shift @_; | |
} | |
sub I1llll1l11I1IlI1III111l11II111l { | |
my($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il, $Il1II11lII1II1111IIlllIIl1Il111) = @_; | |
if ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'IPMITOOL') { | |
$llIllIl1lI1l1lIII1l1lI1II11ll1l = $Il1II11lII1II1111IIlllIIl1Il111; | |
} | |
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'IPMITOOL_FLAGS') { | |
$I1I1IlIII11Ill1Il1ll1Illll11III = $Il1II11lII1II1111IIlllIIl1Il111; | |
} | |
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'USEKCS') { | |
$II1Ill11111lllIl11llI1lIlI111Il = $Il1II11lII1II1111IIlllIIl1Il111; | |
} | |
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'PLAT') { | |
$lII1II1IlIlllll1l1l11ll1I111lll = $Il1II11lII1II1111IIlllIIl1Il111; | |
} | |
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'PLAT_VARIANT') { | |
$lIIllIlll11IIIIIllIlII1llIll11l = $Il1II11lII1II1111IIlllIIl1Il111; | |
} | |
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'PLAT_RAW') { | |
$IIlIllIIlll1ll1lIlIlIllIIIlIlIl = $Il1II11lII1II1111IIlllIIl1Il111; | |
} | |
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'PLAT_NAME') { | |
$lll1l1ll1Ill11IIIllIl1lI1lIl1Il = $Il1II11lII1II1111IIlllIIl1Il111; | |
} | |
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'PLAT_FAMILY') { | |
$III1I11I1I1ll1IlI111II11IIIIl1I = $Il1II11lII1II1111IIlllIIl1Il111; | |
} | |
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'VERBOSE') { | |
$Ill11I1I11IllI1lII11IIlI1IIlIl1 = $Il1II11lII1II1111IIlllIIl1Il111; | |
} | |
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'IPMIDEBUG') { | |
$I1l1lllI1llIl11l1lI1111IlI1I11I = $Il1II11lII1II1111IIlllIIl1Il111; | |
} | |
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'CURBMC') { | |
$llIl1l1IIl11II11lIlIl1l1lllIllI = $Il1II11lII1II1111IIlllIIl1Il111; | |
} | |
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'CURUSER') { | |
$I11III1l11ll11I1IIlIl1lIl1IIlIl = $Il1II11lII1II1111IIlllIIl1Il111; | |
} | |
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'CURPASS') { | |
$l1IlllIl11I1IllII1l11II1ll1lI11 = $Il1II11lII1II1111IIlllIIl1Il111; | |
} | |
else { | |
printf "Unknown variable requested to be set: $lll1I11IlIlIIIl1lI1I1lIIIIIl1Il\n"; | |
exit 1; | |
} | |
} | |
sub IIll1ll11I11IlllIll11ll1II11I1I { | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $Il111IlIlII1lll111IlIlIl111I1lI; | |
if ($IIlIll1lIIll1II1lllI1Il1I1ll1II) { | |
return $II11lIIl1l11I1I1l11IllI1Il1l1Il; | |
} | |
else { | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('fru', 'noerr'); | |
$IIlIll1lIIll1II1lllI1Il1I1ll1II = 1; | |
$II11lIIl1l11I1I1l11IllI1Il1l1Il = $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
} | |
sub lIll1Il1IIlII11Ill11l11llI11I11 { | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
if ($I11l1I1I1l11II1Il11I1l1111IllII) { | |
return $lIlII1IlIll1III1I11Il11ll111111; | |
} | |
else { | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('lan print 1', ''); | |
$I11l1I1I1l11II1Il11I1l1111IllII = 1; | |
$lIlII1IlIll1III1I11Il11ll111111 = $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
} | |
sub ll11111lII111IIIll1IIIlllll1IIl { | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $i; | |
if ($l1lI1lIll11Il11l111I11Ill11I1lI) { | |
return $lII1lI1I1l1I1lIlI1I11IIIIlIlII1; | |
} | |
else { | |
IlI11l1II111I1I111IllIIllIll1lI 'SCBMC_get_sensor_info'; | |
for ($i = 0; $i < 3; ++$i) { | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x16', 'noerr'); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
$l1lI1lIll11Il11l111I11Ill11I1lI = 1; | |
$lII1lI1I1l1I1lIlI1I11IIIIlIlII1 = $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sleep 2; | |
} | |
$l1lI1lIll11Il11l111I11Ill11I1lI = 1; | |
$lII1lI1I1l1I1lIlI1I11IIIIlIlII1 = l111I11lIllllI1l1IlIIlIIl1l1l1I(); | |
return l111I11lIllllI1l1IlIIlIIl1l1l1I(); | |
} | |
} | |
sub llIII1IIIlII1111111IIl1111IIlI1 { | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $I11l1IIIIl1lll1I1I1IlI1ll1l1IIl; | |
my $Il1llIl1Il11ll1IllIIlII1I1llIIl; | |
my $lll1I1IIlI1lllIIl1lI11lII1lIIlI; | |
my $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'unknown'; | |
my $I1IlIll11IIlI11IIIlllI1Il111llI = ''; | |
my $II1l1l1IlII1II1ll111lIIlIllIl1I = ''; | |
my $I111I1IlI111Il1II11ll111l1l1lIl = 'unknown'; | |
my $IllIII11lI1I1I1lII1l1IIll11lI11 = 'unknown'; | |
my $Il111IlIlII1lll111IlIlIl111I1lI; | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
my @lIl1Il1I11lIlllIIIlI1III111I11I; | |
my $i; | |
my $lll11Ill1l11l1l1ll1lI1I11l1111I = IIll1ll11I11IlllIll11ll1II11I1I(); | |
$I11l1IIIIl1lll1I1I1IlI1ll1l1IIl = uc I1I1IIlll111ll11111lII1IIlIllIl('Board Product', $lll11Ill1l11l1l1ll1lI1I11l1111I); | |
$Il1llIl1Il11ll1IllIIlII1I1llIIl = uc I1I1IIlll111ll11111lII1IIlIllIl('Product Name', $lll11Ill1l11l1l1ll1lI1I11l1111I); | |
$lll1I1IIlI1lllIIl1lI11lII1lIIlI = uc I1I1IIlll111ll11111lII1IIlIllIl('Board Mfg', $lll11Ill1l11l1l1ll1lI1I11l1111I); | |
if (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C1100') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C1100'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC'; | |
} | |
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C2100') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C2100'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC'; | |
} | |
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C6100') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6100'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC'; | |
} | |
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C6105') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6105'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC'; | |
} | |
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C6145') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6145'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC'; | |
} | |
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, '5125') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C5125'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC'; | |
} | |
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C5125') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C5125'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC'; | |
} | |
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C5220') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C5220'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC'; | |
} | |
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C6220') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6220'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC'; | |
} | |
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C8220') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = 'C8220'; | |
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6220'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC'; | |
} | |
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C410X') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C410X'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC'; | |
} | |
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'TITANIUM') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C410X'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC'; | |
} | |
if ($ll11I1lI1lIl1I1Il111Ill1lI1l1l1 ne 'unknown') { | |
goto done; | |
} | |
if (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'CS24-TY') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = 'CS24-TY'; | |
$II1l1l1IlII1II1ll111lIIlIllIl1I = ''; | |
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C1100'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS'; | |
goto done; | |
} | |
if (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'FS12-TY') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = 'FS12-TY'; | |
$II1l1l1IlII1II1ll111lIIlIllIl1I = ''; | |
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C2100'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS'; | |
goto done; | |
} | |
if (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'XS23-TY') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = 'XS23-TY'; | |
$II1l1l1IlII1II1ll111lIIlIllIl1I = ''; | |
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6100'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS'; | |
goto done; | |
} | |
if (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'RADON') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = 'RADON'; | |
$II1l1l1IlII1II1ll111lIIlIllIl1I = ''; | |
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6220'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS'; | |
goto done; | |
} | |
if (index($I11l1IIIIl1lll1I1I1IlI1ll1l1IIl, 'RADON') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = 'RADON'; | |
$II1l1l1IlII1II1ll111lIIlIllIl1I = ''; | |
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6220'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS'; | |
goto done; | |
} | |
if (index($I11l1IIIIl1lll1I1I1IlI1ll1l1IIl, 'C6220') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = 'RADON'; | |
$II1l1l1IlII1II1ll111lIIlIllIl1I = ''; | |
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6220'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS'; | |
goto done; | |
} | |
if (index($I11l1IIIIl1lll1I1I1IlI1ll1l1IIl, 'C8220') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = 'RADON'; | |
$II1l1l1IlII1II1ll111lIIlIllIl1I = ''; | |
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6220'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS'; | |
goto done; | |
} | |
if ($lll1I1IIlI1lllIIl1lI11lII1lIIlI =~ /dell/i) { | |
if ($I11l1IIIIl1lll1I1I1IlI1ll1l1IIl =~ /5442/) { | |
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6100'; | |
$I111I1IlI111Il1II11ll111l1l1lIl = 'plutonium'; | |
$II1l1l1IlII1II1ll111lIIlIllIl1I = ''; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS'; | |
$I1IlIll11IIlI11IIIlllI1Il111llI = $I11l1IIIIl1lll1I1I1IlI1ll1l1IIl; | |
goto done; | |
} | |
if ($I11l1IIIIl1lll1I1I1IlI1ll1l1IIl =~ /S81V/i) { | |
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C5125'; | |
$I111I1IlI111Il1II11ll111l1l1lIl = 'quark'; | |
$II1l1l1IlII1II1ll111lIIlIllIl1I = ''; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS'; | |
$I1IlIll11IIlI11IIIlllI1Il111llI = $I11l1IIIIl1lll1I1I1IlI1ll1l1IIl; | |
goto done; | |
} | |
if ($I11l1IIIIl1lll1I1I1IlI1ll1l1IIl =~ /S99Q/i) { | |
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C2100'; | |
$I111I1IlI111Il1II11ll111l1l1lIl = 'scoobyfish'; | |
$II1l1l1IlII1II1ll111lIIlIllIl1I = ''; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS'; | |
$I1IlIll11IIlI11IIIlllI1Il111llI = $I11l1IIIIl1lll1I1I1IlI1ll1l1IIl; | |
goto done; | |
} | |
if ($I11l1IIIIl1lll1I1I1IlI1ll1l1IIl =~ /DCS2210/i) { | |
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'DCS2210'; | |
$I111I1IlI111Il1II11ll111l1l1lIl = 'shamu'; | |
$II1l1l1IlII1II1ll111lIIlIllIl1I = ''; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS'; | |
$I1IlIll11IIlI11IIIlllI1Il111llI = $I11l1IIIIl1lll1I1I1IlI1ll1l1IIl; | |
goto done; | |
} | |
} | |
if ($ll11I1lI1lIl1I1Il111Ill1lI1l1l1 ne 'unknown') { | |
goto done; | |
} | |
if (index($I11l1IIIIl1lll1I1I1IlI1ll1l1IIl, 'POWEREDGE R') >= 0) { | |
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'POWEREDGE'; | |
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PE'; | |
goto done; | |
} | |
done: if ($ll11I1lI1lIl1I1Il111Ill1lI1l1l1 eq 'C6105') { | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_bmc_version'; | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('mc info'); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/\n/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0); | |
foreach $i (0 .. $#lll11lI1lll1l1lllIIIlI1l1IlIl1l) { | |
if ($lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i] =~ /Firmware Revision/) { | |
@lIl1Il1I11lIlllIIIlI1III111I11I = split(/:/, $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i], 0); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($lIl1Il1I11lIlllIIIlI1III111I11I[1]); | |
last; | |
} | |
} | |
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII =~ /^3\./) { | |
$II1l1l1IlII1II1ll111lIIlIllIl1I = 'IPV6'; | |
} | |
} | |
} | |
$lII1II1IlIlllll1l1l11ll1I111lll = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1; | |
$lIIllIlll11IIIIIllIlII1llIll11l = $II1l1l1IlII1II1ll111lIIlIllIl1I; | |
$IIlIllIIlll1ll1lIlIlIllIIIlIlIl = $I1IlIll11IIlI11IIIlllI1Il111llI; | |
$lll1l1ll1Ill11IIIllIl1lI1lIl1Il = $I111I1IlI111Il1II11ll111l1l1lIl; | |
$III1I11I1I1ll1IlI111II11IIIIl1I = $IllIII11lI1I1I1lII1l1IIll11lI11; | |
return $III1I11I1I1ll1IlI111II11IIIIl1I, $IIlIllIIlll1ll1lIlIlIllIIIlIlIl, $lll1l1ll1Ill11IIIllIl1lI1lIl1Il, $lIIllIlll11IIIIIllIlII1llIll11l, $lII1II1IlIlllll1l1l11ll1I111lll; | |
} | |
sub llII1lIIIIIll1II1ll1I111l11II1l { | |
my($l1l1lII111IIlllII11IIIl1IIllI1I) = @_; | |
my(@l1llII111IIl1lI11IIlllII1I1lI11) = split(/ +/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0); | |
my $i; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
for ($i = $#l1llII111IIl1lI11IIlllII1I1lI11; $i >= 0; --$i) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= $l1llII111IIl1lI11IIlllII1I1lI11[$i]; | |
if ($i > 0) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= ' '; | |
} | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub IIl1l1IlI1lII11lI1I11Ill1IlllIl { | |
my($l1l1lII111IIlllII11IIIl1IIllI1I) = @_; | |
my(@l1llII111IIl1lI11IIlllII1I1lI11) = split(/ +/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0); | |
my $i; | |
my $l1l1IllI111III1llI1III111IlllII; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $lIllIlII11IllI1Il11lIl1ll1II1I1 = 0; | |
$l1l1IllI111III1llI1III111IlllII = 0; | |
for ($i = $#l1llII111IIl1lI11IIlllII1I1lI11; $i >= 0; --$i) { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = hex $l1llII111IIl1lI11IIlllII1I1lI11[$i]; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = $lIl11I1IIl111I1II11lIIllI1II1ll << $l1l1IllI111III1llI1III111IlllII * 8; | |
$lIllIlII11IllI1Il11lIl1ll1II1I1 += $lIl11I1IIl111I1II11lIIllI1II1ll; | |
++$l1l1IllI111III1llI1III111IlllII; | |
} | |
return $lIllIlII11IllI1Il11lIl1ll1II1I1; | |
} | |
sub lllIl11IlIIIl111lIIl11l11IIlIl1 { | |
my($lIlIlIlI11lIII1Il1III11lIlIl1l1, $I1111111I1IIIIlIl1lll1l1llIII11) = @_; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $lll1l1l1Il1IIIllll1Il1ll1I11III = ''; | |
my $i; | |
my @l1llII111IIl1lI11IIlllII1I1lI11; | |
my $I1I11l111lI1III1IIlll1II1l1lI1I = $I1111111I1IIIIlIl1lll1l1llIII11 * 2; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = sprintf("%0$I1I11l111lI1III1IIlll1II1l1lI1I" . 'x', $lIlIlIlI11lIII1Il1III11lIlIl1l1); | |
for ($i = 0; $i <= length $lIl11I1IIl111I1II11lIIllI1II1ll; ++$i) { | |
$lll1l1l1Il1IIIllll1Il1ll1I11III .= substr($lIl11I1IIl111I1II11lIIllI1II1ll, $i, 1); | |
if (($i + 1) % 2 == 0) { | |
if ($i + 1 < length $lIl11I1IIl111I1II11lIIllI1II1ll) { | |
$lll1l1l1Il1IIIllll1Il1ll1I11III .= ' '; | |
} | |
} | |
} | |
return $lll1l1l1Il1IIIllll1Il1ll1I11III; | |
} | |
sub I1l1lI1lIIIIlIl11I11llI11Illlll { | |
my($l1l1lII111IIlllII11IIIl1IIllI1I, $Il1II11lIl1Il1IIIIllIlll11lllll) = @_; | |
my(@l1llII111IIl1lI11IIlllII1I1lI11) = split(/ +/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0); | |
my $i; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
for ($i = 0; $i <= $#l1llII111IIl1lI11IIlllII1I1lI11; ++$i) { | |
if (defined $Il1II11lIl1Il1IIIIllIlll11lllll) { | |
if ($i < $Il1II11lIl1Il1IIIIllIlll11lllll) { | |
next; | |
} | |
} | |
$lIl11I1IIl111I1II11lIIllI1II1ll = hex $l1llII111IIl1lI11IIlllII1I1lI11[$i]; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= chr $lIl11I1IIl111I1II11lIIllI1II1ll; | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub II1IlIl1l1IIll1II1l1lllll1I1lIl { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
my $ll1I111lllIlI1III11lIllI1IlII11 = ''; | |
my $i = ''; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || ''; | |
my $lI1IllIl11I11llIllll111lII11I1I = shift @_ || $IIlllI1IIIl1lIlIl1I1llI1Illl1I1; | |
for ($i = 0; $i < length $l1l1lII111IIlllII11IIIl1IIllI1I; ++$i) { | |
$ll1I111lllIlI1III11lIllI1IlII11 = substr($l1l1lII111IIlllII11IIIl1IIllI1I, $i, 1); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= sprintf(' 0x%02x', ord $ll1I111lllIlI1III11lIllI1IlII11); | |
} | |
if ($lI1IllIl11I11llIllll111lII11I1I) { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = sprintf(' 0x%02x', length $l1l1lII111IIlllII11IIIl1IIllI1I); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lIl11I1IIl111I1II11lIIllI1II1ll . $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub l1lII1IlI1l111llIIllII1I1lIl11I { | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII(@_); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1IIll111lIII1lllI111l1IIlI1ll($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
return $II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub l1lI1I1I1Il11IIl1l1IIIll1llIIII { | |
my($I11I11II1ll111IlIIlIlllIIIIIII1) = shift @_; | |
my($llIlIIIIlIlIll11I1I1lI1llIlI11l) = shift @_; | |
my $IlI1lIIIlII1Il1II11llIlll1II11I = ''; | |
my $IIllllI1l1111lll1l11IlIIl111III = ''; | |
my $IIIIIl1I11IIl1ll1II1lllIll1111l = 0; | |
my $IIIlll1l11111II1lI1lll1l1111lIl = 1; | |
my $ll1IIIllIlll1I1I1I1IIlIlIIll1Il = ''; | |
my $IIlI111111llllIl1lI1111I11I1lIl = ''; | |
$IIlI111111llllIl1lI1111I11I1lIl = "$llIllIl1lI1l1lIII1l1lI1II11ll1l $I1I1IlIII11Ill1Il1ll1Illll11III "; | |
if (not $II1Ill11111lllIl11llI1lIlI111Il) { | |
$IIlI111111llllIl1lI1111I11I1lIl .= '-H ' . $llIl1l1IIl11II11lIlIl1l1lllIllI . ' -U ' . $I11III1l11ll11I1IIlIl1lIl1IIlIl . ' -P ' . $l1IlllIl11I1IllII1l11II1ll1lI11 . ' '; | |
} | |
if (defined $llIlIIIIlIlIll11I1I1lI1llIlI11l) { | |
if ($llIlIIIIlIlIll11I1I1lI1llIlI11l eq 'noerr') { | |
$IlI1lIIIlII1Il1II11llIlll1II11I = ' 2>/dev/null'; | |
} | |
if ($llIlIIIIlIlIll11I1I1lI1llIlI11l eq 'noerror') { | |
$IlI1lIIIlII1Il1II11llIlll1II11I = ' 2>/dev/null'; | |
} | |
if ($llIlIIIIlIlIll11I1I1lI1llIlI11l eq 'nooutput') { | |
$IlI1lIIIlII1Il1II11llIlll1II11I = ' >/dev/null 2>&1'; | |
} | |
if ($llIlIIIIlIlIll11I1I1lI1llIlI11l eq 'debug') { | |
$IIllllI1l1111lll1l11IlIIl111III = ' 2>&1'; | |
$IIIIIl1I11IIl1ll1II1lllIll1111l = 1; | |
} | |
if ($llIlIIIIlIlIll11I1I1lI1llIlI11l eq 'nocallout') { | |
$IIIlll1l11111II1lI1lll1l1111lIl = 0; | |
$IIllllI1l1111lll1l11IlIIl111III = ' 2>&1'; | |
} | |
} | |
else { | |
$IIllllI1l1111lll1l11IlIIl111III = ' 2>&1'; | |
} | |
$ll1IIIllIlll1I1I1I1IIlIlIIll1Il = "$IIlI111111llllIl1lI1111I11I1lIl $I11I11II1ll111IlIIlIlllIIIIIII1 $IIllllI1l1111lll1l11IlIIl111III $IlI1lIIIlII1Il1II11llIlll1II11I"; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = `$ll1IIIllIlll1I1I1I1IIlIlIIll1Il`; | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll = $?; | |
if ($I1l1lllI1llIl11l1lI1111IlI1I11I or $II1lII1ll1lIlI1lIlIlII11II1IIll or $IIIIIl1I11IIl1ll1II1lllIll1111l) { | |
if ($IIIlll1l11111II1lI1lll1l1111lIl) { | |
if ($IlI1lIIIlII1Il1II11llIlll1II11I eq '') { | |
printf "\n"; | |
printf " task: $lll1111IlllIIll1IlIlIlIIllII1Il\n"; | |
printf " command ec: $II1lII1ll1lIlI1lIlIlII11II1IIll\n"; | |
printf "command sent: $ll1IIIllIlll1I1I1I1IIlIlIIll1Il\n"; | |
printf "command rcvd: $IIl1IlIIllII1I1lIlIIIIlIIII1lII\n"; | |
printf "\n"; | |
} | |
} | |
} | |
IIl1lllIIlI1II1Il1I1I11lIll1lIl ; | |
return $II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub ll1IIll111lIII1lllI111l1IIlI1ll { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = shift @_; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII =~ s/(?>\n|\x0D\x0A)//g; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub I11I1ll11ll1Ill1IIllI1lI11Il111 { | |
my $l11l1ll1lI1l1IIlIIIl1IIII1111lI = shift @_; | |
my(@lll11lI1lll1l1lllIIIlI1l1IlIl1l) = split(' ', $l11l1ll1lI1l1IIlIIIl1IIII1111lI, 0); | |
my $lIllIIlI1lI1I11l1lIllII11IlIIl1; | |
my $lIIIIllIllII1IIlI1I1IlI1lllI1II; | |
$lIllIIlI1lI1I11l1lIllII11IlIIl1 = shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
$lIllIIlI1lI1I11l1lIllII11IlIIl1 = hex $lIllIIlI1lI1I11l1lIllII11IlIIl1; | |
$lIllIIlI1lI1I11l1lIllII11IlIIl1 = $lIllIIlI1lI1I11l1lIllII11IlIIl1 << 2; | |
$lIllIIlI1lI1I11l1lIllII11IlIIl1 = sprintf('0x20 0x%02x', $lIllIIlI1lI1I11l1lIllII11IlIIl1); | |
$lIIIIllIllII1IIlI1I1IlI1lllI1II = join(' ', @lll11lI1lll1l1lllIIIlI1l1IlIl1l); | |
return $lIllIIlI1lI1I11l1lIllII11IlIIl1 . ' ' . $lIIIIllIllII1IIlI1I1IlI1lllI1II; | |
} | |
sub IlI1I1l11l1l1lll11llI1I1l11l111 { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $l1lI1lIlIIlIIlI1IlIIIl111I11IIl = $lll1111IlllIIll1IlIlIlIIllII1Il; | |
my $lIlI11IlIIl1Il11lII1IlI111l1llI = $l1lI1lIlIIlIIlI1IlIIIl111I11IIl . '_get_reservation'; | |
IlI11l1II111I1I111IllIIllIll1lI $lIlI11IlIIl1Il11lII1IlI111l1llI; | |
if ($llI11IIlI1IIll1l1lI111IllI1l1Il) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $l1lllllI11IlIlI1IlI1lI1Ill1I11l; | |
} | |
else { | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x01'); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll != 0) { | |
printf "\n"; | |
printf "Failed to acquire reservation for task $lIlI11IlIIl1Il11lII1IlI111l1llI \n"; | |
printf "Exit code was: $II1lII1ll1lIlI1lIlIlII11II1IIll \n"; | |
printf "Output was: $IIl1IlIIllII1I1lIlIIIIlIIII1lII \n"; | |
printf "\n"; | |
IlI11l1II111I1I111IllIIllIll1lI $l1lI1lIlIIlIIlI1IlIIIl111I11IIl; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11(); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII =~ /^Data length \=/) { | |
print "\n"; | |
print "The version of ipmitool was detected as using older 'Dell' patches that are not \n"; | |
print "needed, and cause problems. Please see the README file for instructions on how \n"; | |
print "to get a good copy of ipmitool.\n"; | |
print "\n"; | |
exit 1; | |
} | |
$llI11IIlI1IIll1l1lI111IllI1l1Il = 1; | |
$l1lllllI11IlIlI1IlI1lI1Ill1I11l = $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
IlI11l1II111I1I111IllIIllIll1lI $l1lI1lIlIIlIIlI1IlIIIl111I11IIl; | |
return '0x' . I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
} | |
sub llIlI1l1IIll11IIl11l11lII1IIl11 { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
my $I11l1IllIl11111Ill1lI1IlI1lIll1 = join(' ', @_); | |
my(@IllIllII11ll11I1l1I111l1ll1I1Il) = split(/\s+/, $I11l1IllIl11111Ill1lI1IlI1lIll1, 0); | |
foreach $_ (@IllIllII11ll11I1l1I111l1ll1I1Il) { | |
$_ = I11lllII1lll111II1IllIIl1II1llI($_); | |
if ($_ ne '') { | |
if ($_ =~ /^0x/) { | |
$_ = hex $_; | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= sprintf('0x%02x ', $_); | |
} | |
} | |
return I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
} | |
my $lIllI11lIlII1I1II1I111lIIIIII1I = '0'; | |
sub I1Il11Il1l1IIIllIlI111llIlIll1l { | |
my $IIll11I1Il1IIlIlII1I1l1lIIIIIll; | |
my $llll1lII1l11I1IlllllIIllll1l1II; | |
my $i; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my @l1llII111IIl1lI11IIlllII1I1lI11; | |
my $II1lII1IIlIlII11lIl11lIIIlI1lIl; | |
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = shift @_; | |
my $l1Il1IIllII11I1I111IlIIlllIlIll = shift @_; | |
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = shift @_; | |
my $l11I1Il11Il1lI1lllI1III11IlIIl1 = shift @_; | |
if (not defined $l11I1Il11Il1lI1lllI1III11IlIIl1) { | |
$l11I1Il11Il1lI1lllI1III11IlIIl1 = 1; | |
} | |
my $I1l1I1III111lllI1l1l1I1IlII1Il1 = llIlI1l1IIll11IIl11l11lII1IIl11($l1lIIlll1ll1lIlIIl1lII1IIll1l1l); | |
my $l11l11I1111IIl1I1Il1l1l11IIl1l1 = llIlI1l1IIll11IIl11l11lII1IIl11($l1Il1IIllII11I1I111IlIIlllIlIll); | |
my $l1lllIIllI111llIIl1lIlIl11l1I1I = llIlI1l1IIll11IIl11l11lII1IIl11($lIIIIl11111I1lI1II1I1Il1I1I1ll1); | |
my $Il1IIllllIlIll11IIll1Il1IIIlI1l = llIlI1l1IIll11IIl11l11lII1IIl11($l11I1Il11Il1lI1lllI1III11IlIIl1); | |
my $l1lI1lIlIIlIIlI1IlIIIl111I11IIl = l111I11Il1lIlIII1l1IIll1IIlI1II(); | |
my $lIlI11IlIIl1Il11lII1IlI111l1llI = $l1lI1lIlIIlIIlI1IlIIIl111I11IIl; | |
my $IlI1lIIIlII1Il1II11llIlll1II11I = ''; | |
if ($lIllI11lIlII1I1II1I111lIIIIII1I) { | |
$IlI1lIIIlII1Il1II11llIlll1II11I = 'noerr'; | |
} | |
$llll1lII1l11I1IlllllIIllll1l1II = IlI1I1l11l1l1lll11llI1I1l11l111(); | |
if ($l11I1Il11Il1lI1lllI1III11IlIIl1 > 0) { | |
my @Il111I1I11llI1l11lI11Il1I1lIIlI; | |
my @IlIIIIl1llII1l1III1llIl1lI111I1; | |
my $IIIlllllIIII1Il1lIl11II1l111111 = ''; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x02 $llll1lII1l11I1IlllllIIllll1l1II $I1l1I1III111lllI1l1l1I1IlII1Il1 $l11l11I1111IIl1I1Il1l1l11IIl1l1 $l1lllIIllI111llIIl1lIlIl11l1I1I 0x00 0x00 $Il1IIllllIlIll11IIll1Il1IIIlI1l", $IlI1lIIIlII1Il1II11llIlll1II11I); | |
IlI11l1II111I1I111IllIIllIll1lI $lIlI11IlIIl1Il11lII1IlI111l1llI; | |
@Il111I1I11llI1l11lI11Il1I1lIIlI = split(/\s+/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0); | |
@IlIIIIl1llII1l1III1llIl1lI111I1 = @Il111I1I11llI1l11lI11Il1I1lIIlI[4 .. $#Il111I1I11llI1l11lI11Il1I1lIIlI]; | |
$IIIlllllIIII1Il1lIl11II1l111111 .= join(' ', @IlIIIIl1llII1l1III1llIl1lI111I1); | |
return $IIIlllllIIII1Il1lIl11II1l111111; | |
} | |
else { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x02 $llll1lII1l11I1IlllllIIllll1l1II $I1l1I1III111lllI1l1l1I1IlII1Il1 $l11l11I1111IIl1I1Il1l1l11IIl1l1 $l1lllIIllI111llIIl1lIlIl11l1I1I 0x00 0x00 0x01", $IlI1lIIIlII1Il1II11llIlll1II11I); | |
IlI11l1II111I1I111IllIIllIll1lI $lIlI11IlIIl1Il11lII1IlI111l1llI; | |
@l1llII111IIl1lI11IIlllII1I1lI11 = split(/ +/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0); | |
$IIll11I1Il1IIlIlII1I1l1lIIIIIll = hex $l1llII111IIl1lI11IIlllII1I1lI11[4]; | |
++$IIll11I1Il1IIlIlII1I1l1lIIIIIll; | |
if ($IIll11I1Il1IIlIlII1I1l1lIIIIIll == 1) { | |
return ''; | |
} | |
$Il1IIllllIlIll11IIll1Il1IIIlI1l = sprintf('0x%02x', $IIll11I1Il1IIlIlII1I1l1lIIIIIll); | |
my $II1I111ll111I1IlIl1ll11IlIl1Ill = $IIll11I1Il1IIlIlII1I1l1lIIIIIll; | |
my $ll1ll1lllIIIIl1I1II1IIIlIll1l1I = $IIlllI1IIIl1lIlIl1I1llI1Illl1I1; | |
my $I1IIIlIlIIl1llIllIIlIlll11lIIIl = 0; | |
my $IlI1I1llIl11II1lIlllll1llII11ll; | |
my $II11l111Il1Il1I11II11IlIl11llIl; | |
my $I1lI1I11lI1IlIllIIIlllIIIIlI1I1; | |
my $IIIlllllIIII1Il1lIl11II1l111111 = ''; | |
my @Il111I1I11llI1l11lI11Il1I1lIIlI; | |
my @IlIIIIl1llII1l1III1llIl1lI111I1; | |
my $lIIll1IIIIlI11Il1Ill111Il1Il1l1 = 16; | |
do { | |
$II11l111Il1Il1I11II11IlIl11llIl = llIlI1l1IIll11IIl11l11lII1IIl11($II1I111ll111I1IlIl1ll11IlIl1Ill); | |
$IlI1I1llIl11II1lIlllll1llII11ll = llIlI1l1IIll11IIl11l11lII1IIl11($I1IIIlIlIIl1llIllIIlIlll11lIIIl); | |
if ($II1I111ll111I1IlIl1ll11IlIl1Ill <= $lIIll1IIIIlI11Il1Ill111Il1Il1l1) { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x02 $llll1lII1l11I1IlllllIIllll1l1II $I1l1I1III111lllI1l1l1I1IlII1Il1 $l11l11I1111IIl1I1Il1l1l11IIl1l1 $l1lllIIllI111llIIl1lIlIl11l1I1I $IlI1I1llIl11II1lIlllll1llII11ll 0x00 $II11l111Il1Il1I11II11IlIl11llIl", $IlI1lIIIlII1Il1II11llIlll1II11I); | |
IlI11l1II111I1I111IllIIllIll1lI $lIlI11IlIIl1Il11lII1IlI111l1llI; | |
@Il111I1I11llI1l11lI11Il1I1lIIlI = split(/\s+/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0); | |
@IlIIIIl1llII1l1III1llIl1lI111I1 = @Il111I1I11llI1l11lI11Il1I1lIIlI[4 .. $#Il111I1I11llI1l11lI11Il1I1lIIlI]; | |
$IIIlllllIIII1Il1lIl11II1l111111 .= join(' ', @IlIIIIl1llII1l1III1llIl1lI111I1); | |
$ll1ll1lllIIIIl1I1II1IIIlIll1l1I = $l11I1l1l1l111ll1I1I1I11ll1l11II; | |
} | |
else { | |
$I1lI1I11lI1IlIllIIIlllIIIIlI1I1 = '0x10'; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x02 $llll1lII1l11I1IlllllIIllll1l1II $I1l1I1III111lllI1l1l1I1IlII1Il1 $l11l11I1111IIl1I1Il1l1l11IIl1l1 $l1lllIIllI111llIIl1lIlIl11l1I1I $IlI1I1llIl11II1lIlllll1llII11ll 0x00 $I1lI1I11lI1IlIllIIIlllIIIIlI1I1", $IlI1lIIIlII1Il1II11llIlll1II11I); | |
IlI11l1II111I1I111IllIIllIll1lI $lIlI11IlIIl1Il11lII1IlI111l1llI; | |
@Il111I1I11llI1l11lI11Il1I1lIIlI = split(/\s+/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0); | |
@IlIIIIl1llII1l1III1llIl1lI111I1 = @Il111I1I11llI1l11lI11Il1I1lIIlI[4 .. $#Il111I1I11llI1l11lI11Il1I1lIIlI]; | |
$IIIlllllIIII1Il1lIl11II1l111111 .= join(' ', @IlIIIIl1llII1l1III1llIl1lI111I1); | |
$IIIlllllIIII1Il1lIl11II1l111111 .= ' '; | |
$I1IIIlIlIIl1llIllIIlIlll11lIIIl += $lIIll1IIIIlI11Il1Ill111Il1Il1l1; | |
$II1I111ll111I1IlIl1ll11IlIl1Ill -= $lIIll1IIIIlI11Il1Ill111Il1Il1l1; | |
} | |
} while not $ll1ll1lllIIIIl1I1II1IIIlIll1l1I; | |
$IIIlllllIIII1Il1lIl11II1l111111 = I11lllII1lll111II1IllIIl1II1llI($IIIlllllIIII1Il1lIl11II1l111111); | |
$IIIlllllIIII1Il1lIl11II1l111111 = substr($IIIlllllIIII1Il1lIl11II1l111111, 3); | |
$IIIlllllIIII1Il1lIl11II1l111111 = I11lllII1lll111II1IllIIl1II1llI($IIIlllllIIII1Il1lIl11II1l111111); | |
return $IIIlllllIIII1Il1lIl11II1l111111; | |
} | |
} | |
sub l1lllIII1II1Il1l11II1llIl1lIIIl { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
$lIllI11lIlII1I1II1I111lIIIIII1I = '1'; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1Il11Il1l1IIIllIlI111llIlIll1l(@_); | |
$lIllI11lIlII1I1II1I111lIIIIII1I = '0'; | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub I111IlIllI1lI1Il11lIllI1llI1IIl { | |
my $llll1lII1l11I1IlllllIIllll1l1II; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my @lIllIll11lll11lIlI1l1Il1lIIIlIl; | |
my $i; | |
my $I1IIIlIlIIl1llIllIIlIlll11lIIIl; | |
my $Il1II11lII1II1111IIlllIIl1Il111; | |
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = shift @_; | |
my $l1Il1IIllII11I1I111IlIIlllIlIll = shift @_; | |
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = shift @_; | |
my $I1111111I1IIIIlIl1lll1l1llIII11 = shift @_; | |
my $I1l1I1III111lllI1l1l1I1IlII1Il1 = llIlI1l1IIll11IIl11l11lII1IIl11($l1lIIlll1ll1lIlIIl1lII1IIll1l1l); | |
my $l11l11I1111IIl1I1Il1l1l11IIl1l1 = llIlI1l1IIll11IIl11l11lII1IIl11($l1Il1IIllII11I1I111IlIIlllIlIll); | |
my $l1lllIIllI111llIIl1lIlIl11l1I1I = llIlI1l1IIll11IIl11l11lII1IIl11($lIIIIl11111I1lI1II1I1Il1I1I1ll1); | |
my $lll1I11l1lIIIl1IIIlI1ll1llll1lI = llIlI1l1IIll11IIl11l11lII1IIl11($I1111111I1IIIIlIl1lll1l1llIII11); | |
my $lIlI1lll1l11I1111Il1I111Il11ll1 = shift @_; | |
if ($I1111111I1IIIIlIl1lll1l1llIII11 > 4) { | |
printf "set_ext_cfg_field_fixed has not been tested on field width > 4. Halting.\n"; | |
exit 1; | |
} | |
@lIllIll11lll11lIlI1l1Il1lIIIlIl = split(/\s+/, $lIlI1lll1l11I1111Il1I111Il11ll1, 0); | |
if ($I1111111I1IIIIlIl1lll1l1llIII11 != $#lIllIll11lll11lIlI1l1Il1lIIIlIl + 1) { | |
printf "set_ext_cfg_field_fixed: Got the following data: $lIlI1lll1l11I1111Il1I111Il11ll1\n"; | |
printf "set_ext_cfg_field_fixed: the passed in argument, field width (%d), does not match the actual data's field width (%d)\n", $I1111111I1IIIIlIl1lll1l1llIII11, $#lIllIll11lll11lIlI1l1Il1lIIIlIl + 1; | |
printf "Halting.\n"; | |
exit 1; | |
} | |
$llll1lII1l11I1IlllllIIllll1l1II = IlI1I1l11l1l1lll11llI1I1l11l111(); | |
my $IIlIIIIl11111lI1lIIIIl11Ill1IIl = '0x01'; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x03 $llll1lII1l11I1IlllllIIllll1l1II $I1l1I1III111lllI1l1l1I1IlII1Il1 $l11l11I1111IIl1I1Il1l1l11IIl1l1 $l1lllIIllI111llIIl1lIlIl11l1I1I 0x00 0x00 $IIlIIIIl11111lI1lIIIIl11Ill1IIl $lIlI1lll1l11I1111Il1I111Il11ll1"); | |
return 0; | |
} | |
sub ll1l1Il1l111Il1ll1IIIIIII1l1llI { | |
my $llll1lII1l11I1IlllllIIllll1l1II; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = shift @_; | |
my $l1Il1IIllII11I1I111IlIIlllIlIll = shift @_; | |
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = shift @_; | |
my $I1l1I1III111lllI1l1l1I1IlII1Il1 = llIlI1l1IIll11IIl11l11lII1IIl11($l1lIIlll1ll1lIlIIl1lII1IIll1l1l); | |
my $l11l11I1111IIl1I1Il1l1l11IIl1l1 = llIlI1l1IIll11IIl11l11lII1IIl11($l1Il1IIllII11I1I111IlIIlllIlIll); | |
my $l1lllIIllI111llIIl1lIlIl11l1I1I = llIlI1l1IIll11IIl11l11lII1IIl11($lIIIIl11111I1lI1II1I1Il1I1I1ll1); | |
my $I11lI1111llll1l1III1IlllIllIl11 = ''; | |
foreach $_ (@_) { | |
$I11lI1111llll1l1III1IlllIllIl11 .= llIlI1l1IIll11IIl11l11lII1IIl11($_) . ' '; | |
} | |
my(@lIlI1lll1l11I1111Il1I111Il11ll1) = split(/\s+/, $I11lI1111llll1l1III1IlllIllIl11, 0); | |
my $II1I111ll111I1IlIl1ll11IlIl1Ill = @lIlI1lll1l11I1111Il1I111Il11ll1; | |
$llll1lII1l11I1IlllllIIllll1l1II = IlI1I1l11l1l1lll11llI1I1l11l111(); | |
my $lIIll1IIIIlI11Il1Ill111Il1Il1l1 = 16; | |
my $ll1ll1lllIIIIl1I1II1IIIlIll1l1I = $IIlllI1IIIl1lIlIl1I1llI1Illl1I1; | |
my $I1IIIlIlIIl1llIllIIlIlll11lIIIl = 0; | |
my $IlI1I1llIl11II1lIlllll1llII11ll; | |
my $II11l111Il1Il1I11II11IlIl11llIl; | |
my $lIlIllllIIllI1I1I1llIIlll1I1IlI; | |
my $II1IIIlI1II1lI1I11IllIIl111I11I; | |
my @lI11llllI1l11llllI1IIII1IIl11I1; | |
my $IIlIIIIl11111lI1lIIIIl11Ill1IIl = '0x00'; | |
do { | |
$II11l111Il1Il1I11II11IlIl11llIl = llIlI1l1IIll11IIl11l11lII1IIl11($II1I111ll111I1IlIl1ll11IlIl1Ill); | |
$IlI1I1llIl11II1lIlllll1llII11ll = llIlI1l1IIll11IIl11l11lII1IIl11($I1IIIlIlIIl1llIllIIlIlll11lIIIl); | |
if ($II1I111ll111I1IlIl1ll11IlIl1Ill <= $lIIll1IIIIlI11Il1Ill111Il1Il1l1) { | |
$IIlIIIIl11111lI1lIIIIl11Ill1IIl = '0x01'; | |
$II1IIIlI1II1lI1I11IllIIl111I11I = join(' ', @lIlI1lll1l11I1111Il1I111Il11ll1); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x03 $llll1lII1l11I1IlllllIIllll1l1II $I1l1I1III111lllI1l1l1I1IlII1Il1 $l11l11I1111IIl1I1Il1l1l11IIl1l1 $l1lllIIllI111llIIl1lIlIl11l1I1I $IlI1I1llIl11II1lIlllll1llII11ll 0x00 $IIlIIIIl11111lI1lIIIIl11Ill1IIl $II1IIIlI1II1lI1I11IllIIl111I11I"); | |
$ll1ll1lllIIIIl1I1II1IIIlIll1l1I = $l11I1l1l1l111ll1I1I1I11ll1l11II; | |
} | |
else { | |
$lIlIllllIIllI1I1I1llIIlll1I1IlI = '0x10'; | |
@lI11llllI1l11llllI1IIII1IIl11I1 = @lIlI1lll1l11I1111Il1I111Il11ll1[0..15]; | |
$II1IIIlI1II1lI1I11IllIIl111I11I = join(' ', @lI11llllI1l11llllI1IIII1IIl11I1); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x03 $llll1lII1l11I1IlllllIIllll1l1II $I1l1I1III111lllI1l1l1I1IlII1Il1 $l11l11I1111IIl1I1Il1l1l11IIl1l1 $l1lllIIllI111llIIl1lIlIl11l1I1I $IlI1I1llIl11II1lIlllll1llII11ll 0x00 $IIlIIIIl11111lI1lIIIIl11Ill1IIl $II1IIIlI1II1lI1I11IllIIl111I11I"); | |
@lIlI1lll1l11I1111Il1I111Il11ll1 = @lIlI1lll1l11I1111Il1I111Il11ll1[16 .. $#lIlI1lll1l11I1111Il1I111Il11ll1]; | |
$I1IIIlIlIIl1llIllIIlIlll11lIIIl += $lIIll1IIIIlI11Il1Ill111Il1Il1l1; | |
$II1I111ll111I1IlIl1ll11IlIl1Ill -= $lIIll1IIIIlI11Il1Ill111Il1Il1l1; | |
} | |
} while not $ll1ll1lllIIIIl1I1II1IIIlIll1l1I; | |
return 0; | |
} | |
sub ll11lI1I1I1IlIII1l1l1III1lllI1I { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = ll1IllIIlIll111lIl11IlllIllII1l('\\(', '\\)', $l1l1lII111IIlllII11IIIl1IIllI1I); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lI11I1llllI1IIII111IllI1l11Il('rsp=', $lIl11I1IIl111I1II11lIIllI1II1ll); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = hex $lIl11I1IIl111I1II11lIIllI1II1ll; | |
return $lIl11I1IIl111I1II11lIIllI1II1ll; | |
} | |
my $III111lll1l1l111lIIlll1II1IlI11 = ''; | |
my $lI1II1I11l1l111I11IIIl1I1lII11l = ''; | |
my $I1I1IllI1Il11111111II11lI11I1lI = ''; | |
my $I1111I1II1l1111lIlllIllIllllllI = ''; | |
my $lll1l1I1IIIllllI1I11I11l11Ill1l = ''; | |
my $I1IllI1lI11l11l1IIllI111IlIl111 = 0; | |
my $lI1l11ll1II11llII1lllllllIIIIlI = $l11I1l1l1l111ll1I1I1I11ll1l11II; | |
my(@lI1Il11ll11l1I1I1I1II111IIl11I1) = (); | |
my $lll11Il1Ill1IlIllll11IIllI111l1 = -1; | |
my $IIIllll1lllI1111II111III11I1I1l = ''; | |
my $ll1I1l1Il1llI11ll11lIIIIl1IIlI1 = 0; | |
my $IIl11llIIIlIIlIlllIIII11lIIIlIl = 1; | |
my $II1l1I11111Il111lI1IIl11I1Ill11 = '/opt/dell/pec/'; | |
my @lIllIIlIIIIlll11II11ll111l1IIIl; | |
my @I1l1llIllllIlI1IIll1I1IIIllIl1I; | |
my @I111l111111II1l111111IIIllIIII1; | |
my @IIIl1lIlll1II1lll1l11l1lllI11I1; | |
sub Il1II1IIl1lIlI1I1lll1l1lII1l111 { | |
printf "Command is not implemented for platform $III111lll1l1l111lIIlll1II1IlI11\n"; | |
} | |
sub III1l111I11IlIllIIIIIIIIll1I111 { | |
printf "Command is not applicable for platform $III111lll1l1l111lIIlll1II1IlI11\n"; | |
} | |
sub lI1II1II1lll11111lll1llIIlIllll { | |
printf "Invalid command / syntax.\n"; | |
exit 6; | |
} | |
sub IIl1l1lll1I1ll11IIIlllIl1llII1l { | |
return $llIlI1l1I1llIl11ll1ll1II111lIIl; | |
} | |
sub l111Ill111I1l11l1I1II1lIlI1lII1 { | |
my($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('-V'); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
my(@llII1l1l1l1II1l11lII1I1I1I1IIIl) = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $llII1l1l1l1II1l11lII1I1I1I1IIIl[2]; | |
return $II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub lIIl1l1llIllI1Il1IlI1I111IIlIl1 { | |
my $I11l1IllIl11111Ill1lI1IlI1lIll1 = shift @_ || ''; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = $I1I1IllI1Il11111111II11lI11I1lI; | |
if ($I11l1IllIl11111Ill1lI1IlI1lIll1 eq 'terse') { | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'unknown') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $IIl1IlIIllII1I1lIlIIIIlIIII1lII . " ($I1111I1II1l1111lIlllIllIllllllI)"; | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub l1I1IlI11IIlIlIIIlIl111III1111I { | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $llIlllIIl11ll1lIlI1llI111II11Il = shift @_; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = `ping -c1 $llIlllIIl11ll1lIlI1llI111II11Il`; | |
$II1lII1ll1lIlI1lIlIlII11II1IIll = $?; | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
return 1; | |
} | |
return 0; | |
} | |
sub I1I1ll1llIllII11l111lIl1IIlII1I { | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $lIII1l1IIIlll1l1lIlIl1l1111I1I1 = shift @_ || 'quiet'; | |
if ($lI1l11ll1II11llII1lllllllIIIIlI) { | |
if ($lIII1l1IIIlll1l1lIlIl1l1111I1I1 eq 'loud') { | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('mc info', 'debug'); | |
} | |
else { | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('mc info', 'nooutput'); | |
} | |
} | |
else { | |
if ($lIII1l1IIIlll1l1lIlIl1l1111I1I1 eq 'loud') { | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('channel authcap 1 1', 'debug'); | |
} | |
else { | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('channel authcap 1 1', 'nooutput'); | |
} | |
} | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
return 1; | |
} | |
return 0; | |
} | |
sub I1lIIIIl11IIllllII1II1IIlIlI1Il { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_fcb_version'; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill(); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x34 0x16'); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x34 0x75'); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') { | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x30 0x34', 'noerr'); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll != 0) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11(); | |
} | |
else { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1IIll111lIII1lllI111l1IIlI1ll($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
} | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x30 0x12', 'noerr'); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll != 0) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11(); | |
} | |
else { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = sprintf('%s %s', $lll11lI1lll1l1lllIIIlI1l1IlIl1l[3], $lll11lI1lll1l1lllIIIlI1l1IlIl1l[4]); | |
} | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub IIlllIllI1I1lll111IIl1l1lI1I111 { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1lIIIIl11IIllllII1II1IIlIlI1Il(); | |
if (ll11I1ll11lI1l111Ill11ll1IIIIll $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
if (Il11lIIIlll1Il11ll1lIl1l1II1l1l $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq '00 00') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11(); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
my(@IlI1ll11II1II1III1Il11I1IlI1I1l) = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0); | |
my $ll1lllIllI1I11II11l1Il11llIlII1 = $IlI1ll11II1II1III1Il11I1IlI1I1l[0] . '.' . $IlI1ll11II1II1III1Il11I1IlI1I1l[1]; | |
$ll1lllIllI1I11II11l1Il11llIlII1 =~ s/^0*(.)/$1/; | |
return $ll1lllIllI1I11II11l1Il11llIlII1; | |
} | |
} | |
sub lIlII11II1ll1I1l1Il11l1I1llIIII { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_pic_version'; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill(); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x34 0x70'); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill(); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill(); | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub I11ll1111lllI1lII1l11IIll1Il11I { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = lIlII11II1ll1I1l1Il11l1I1llIIII(); | |
my $lIlI11I11l1ll11111lllll1l1Illll = 'UNKNOWN'; | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
if (Il11lIIIlll1Il11ll1lIl1l1II1l1l $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') { | |
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq '10') { | |
$lIlI11I11l1ll11111lllll1l1Illll = 'PIC16'; | |
} | |
elsif ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq '12') { | |
$lIlI11I11l1ll11111lllll1l1Illll = 'PIC18'; | |
} | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100') { | |
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq '01 18') { | |
$lIlI11I11l1ll11111lllll1l1Illll = 'PIC18'; | |
} | |
} | |
return $lIlI11I11l1ll11111lllll1l1Illll; | |
} | |
sub Ill1IllI11Illl1l11lllIl1IlIIl1l { | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll = 0; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
my $I1IIIlI1ll11Ill11lIl1I1l1I1Il1I; | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_bios_version'; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x06 0x59 0x00 0xc0 0x00 0x00'); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5125') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x1E'); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') { | |
if ($lI1II1I11l1l111I11IIIl1I1lII11l eq '') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x1E'); | |
} | |
if ($lI1II1I11l1l111I11IIIl1I1lII11l eq 'IPV6') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x4b'); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/00/, $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($lll11lI1lll1l1lllIIIlI1l1IlIl1l[0]); | |
} | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x06 0x59 0x00 0x01 0x00 0x00'); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0); | |
shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = join(' ', @lll11lI1lll1l1lllIIIlI1l1IlIl1l); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100') { | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x30', 'noerr'); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x06 0x59 0x00 0x01 0x00 0x00'); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0); | |
shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
my $i = 0; | |
$I1IIIlI1ll11Ill11lIl1I1l1I1Il1I = shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
while ($I1IIIlI1ll11Ill11lIl1I1l1I1Il1I eq '00') { | |
++$i; | |
$I1IIIlI1ll11Ill11lIl1I1l1I1Il1I = shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
if ($i > 10) { | |
last; | |
} | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = join(' ', @lll11lI1lll1l1lllIIIlI1l1IlIl1l); | |
} | |
return $II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub IIlllllIl111IIIll1ll1ll1IIlI1I1 { | |
my($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = Ill1IllI11Illl1l11lllIl1IlIIl1l(); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll != 0) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
} | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq '11 00 00 00') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11(); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
my(@llIlIllll1l11l1lIlI1Il1lllI11Il) = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0); | |
my $Ill1IlIIlIlI1l1lI11I1l11I11l1l1 = $llIlIllll1l11l1lIlI1Il1lllI11Il[2] . '.' . $llIlIllll1l11l1lIlI1Il1lllI11Il[3]; | |
$Ill1IlIIlIlI1l1lI11I1l11I11l1l1 =~ s/^0*(.)/$1/; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $Ill1IlIIlIlI1l1lI11I1l11I11l1l1; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100') { | |
my(@llIlIllll1l11l1lIlI1Il1lllI11Il) = split(/00/, $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1l1lI1lIIIIlIl11I11llI11Illlll($llIlIllll1l11l1lIlI1Il1lllI11Il[0]); | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub lIlIIIlI1IIl1I11Il1IIlll11lI11I { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my(@Il111I1I11llI1l11lI11Il1I1lIIlI) = split(' ', $l1l1lII111IIlllII11IIIl1IIllI1I, 0); | |
my $llII1l1l1l1II1l11lII1I1I1I1IIIl = $Il111I1I11llI1l11lI11Il1I1lIIlI[2]; | |
my $I1lIIII1IlIl1II11I1IIll11II1l11 = substr($Il111I1I11llI1l11lI11Il1I1lIIlI[3], 0, 1); | |
my $lIl1ll1IllIIIlll1IIlllI1Il1ll1I = substr($Il111I1I11llI1l11lI11Il1I1lIIlI[3], 1, 1); | |
my $d = $Il111I1I11llI1l11lI11Il1I1lIIlI[12] . substr($Il111I1I11llI1l11lI11Il1I1lIIlI[13], 0, 1); | |
my $l1lllll11IllIIlIlIlIlIIl1I1I1ll = substr($Il111I1I11llI1l11lI11Il1I1lIIlI[13], 1, 1); | |
my $lIlIIll11IIlll1Illl1l11IIlI1llI = substr($Il111I1I11llI1l11lI11Il1I1lIIlI[14], 1, 1); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $llII1l1l1l1II1l11lII1I1I1I1IIIl . '.0' . $I1lIIII1IlIl1II11I1IIll11II1l11 . '.0' . $lIl1ll1IllIIIlll1IIlllI1Il1ll1I . '.' . $d . '.' . $l1lllll11IllIIlIlIlIlIIl1I1I1ll; | |
if ($lIlIIll11IIlll1Illl1l11IIlI1llI eq '0') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= ' (recovery)'; | |
} | |
else { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= " (bank $lIlIIll11IIlll1Illl1l11IIlI1llI)"; | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub I1IllIl11lIIlllI1IlI1l1III1I1l1 { | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_intel_me_version'; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill(); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l111I11lIllllI1l1IlIIlIIl1l1l1I(); | |
if (IlIIlI1Ill1lII1I1IlIlIl1Il1lIlI() eq 'on') { | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_intel_me_version'; | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lII1IlI1l111llIIllII1I1lIl11I('-b 6 -t 0x2c raw 06 01', 'noerr'); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11(); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lIlIIIlI1IIl1I11Il1IIlll11lI11I($lIl11I1IIl111I1II11lIIllI1II1ll); | |
} | |
} | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l111I11lIllllI1l1IlIIlIIl1l1l1I(); | |
if (IlIIlI1Ill1lII1I1IlIlIl1Il1lIlI() eq 'on') { | |
IlI11l1II111I1I111IllIIllIll1lI 'enable_local_message_channel_for_bridged_commands'; | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x06 0x32 0x00 0x01', 'noerr'); | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_intel_me_version'; | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('-b 0 -t 0x2c raw 06 01', 'nocallout'); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11(); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lIlIIIlI1IIl1I11Il1IIlll11lI11I($lIl11I1IIl111I1II11lIIllI1II1ll); | |
} | |
else { | |
my $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I = ll11lI1I1I1IlIII1l1l1III1lllI1I($lIl11I1IIl111I1II11lIIllI1II1ll); | |
if ($l1l11IIIlll1IIlIl1IIIlIlI1I1l1I eq 213) { | |
IlI11l1II111I1I111IllIIllIll1lI 'turn_on_intel_me'; | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x30 0xe3 0x00'); | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_intel_me_version'; | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('-b 0 -t 0x2c raw 06 01', 'nocallout'); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11(); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lIlIIIlI1IIl1I11Il1IIlll11lI11I($lIl11I1IIl111I1II11lIIllI1II1ll); | |
} | |
} | |
} | |
} | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub l11llIII1lIlII11III1lllIlIlI1ll { | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_is_intel_me_off'; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('-b 0 -t 0x2c raw 06 01', 'nocallout'); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
return 0; | |
} | |
else { | |
my $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I = ll11lI1I1I1IlIII1l1l1III1lllI1I($lIl11I1IIl111I1II11lIIllI1II1ll); | |
if ($l1l11IIIlll1IIlIl1IIIlIlI1I1l1I eq 213) { | |
return 1; | |
} | |
return 2; | |
} | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub Il11IIIl11lIlll1llII1lI1llll1Il { | |
my $lllI1111l1IllI1IIlIl1I11I11I1ll = shift @_; | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $lI1111I1IIlII1llIIII11IlIllI1I1; | |
my $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I = 0; | |
IlI11l1II111I1I111IllIIllIll1lI 'read_bmc_sensor_' . $lllI1111l1IllI1IIlIl1I11I11I1ll; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = sprintf('raw 0x04 0x2d 0x%02x', $lllI1111l1IllI1IIlIl1I11I11I1ll); | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lII1IlI1l111llIIllII1I1lIl11I($lIl11I1IIl111I1II11lIIllI1II1ll, 'nocallout'); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll ne '0') { | |
$lI1111I1IIlII1llIIII11IlIllI1I1 = III1III11Il1llIlII1l11II1IllI1I(); | |
$lI1111I1IIlII1llIIII11IlIllI1I1 = $IIl1IlIIllII1I1lIlIIIIlIIII1lII =~ /rsp=(.+)\)/; | |
$l1l11IIIlll1IIlIl1IIIlIlI1I1l1I = hex $1; | |
if ($l1l11IIIlll1IIlIl1IIIlIlI1I1l1I == 203) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l111I11lIllllI1l1IlIIlIIl1l1l1I(); | |
} | |
} | |
else { | |
my(@IlI1ll11II1II1III1Il11I1IlI1I1l) = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $IlI1ll11II1II1III1Il11I1IlI1I1l[0]; | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub IIl1lI1IlI111llIl11I111llll1Il1 { | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my @l1lII1l1I1Ill111IIll11I1lIl1ll1; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0; | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
IlI11l1II111I1I111IllIIllIll1lI 'read_power_draw_Intel_ME'; | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0xe2 0x00 0x00 0x00', 'noerr'); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
@l1lII1l1I1Ill111IIll11I1lIl1ll1 = split(' ', $lIl11I1IIl111I1II11lIIllI1II1ll, 0); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $l1lII1l1I1Ill111IIll11I1lIl1ll1[2] . $l1lII1l1I1Ill111IIll11I1lIl1ll1[1]; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub I1I11lI1lll1IIl11lllI11I1111l1I { | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my @l1lII1l1I1Ill111IIll11I1lIl1ll1; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0; | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
IlI11l1II111I1I111IllIIllIll1lI 'read_power_draw_DCMI'; | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x2c 0x02 0xdc 0x01 0x00 0x00', 'noerr'); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
@l1lII1l1I1Ill111IIll11I1lIl1ll1 = split(' ', $lIl11I1IIl111I1II11lIIllI1II1ll, 0); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $l1lII1l1I1Ill111IIll11I1lIl1ll1[2] . $l1lII1l1I1Ill111IIll11I1lIl1ll1[1]; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub ll1Illl11IIIlll1I1lIl1111111l1l { | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = ll11111lII111IIIll1IIIlllll1IIl(); | |
if (l1IIl1I1ll11III11I1III1lIlI11lI $lIl11I1IIl111I1II11lIIllI1II1ll) { | |
return $lIl11I1IIl111I1II11lIIllI1II1ll; | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl11IIlI1Illl1111III11lIIIIII1($lIl11I1IIl111I1II11lIIllI1II1ll, 6, 7); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub Illl1lIlll1II1llIllI1lllIlllllI { | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0; | |
my $i; | |
my $II11III1llIl1lI1Il11lII11ll1IlI = 0; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = ll11111lII111IIIll1IIIlllll1IIl(); | |
if (l1IIl1I1ll11III11I1III1lIlI11lI $lIl11I1IIl111I1II11lIIllI1II1ll) { | |
return $lIl11I1IIl111I1II11lIIllI1II1ll; | |
} | |
for ($i = 0; $i < 8; ++$i) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl11IIlI1Illl1111III11lIIIIII1($lIl11I1IIl111I1II11lIIllI1II1ll, 12 + $i * 2, 13 + $i * 2); | |
$II11III1llIl1lI1Il11lII11ll1IlI += $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
return $II11III1llIl1lI1Il11lII11ll1IlI; | |
} | |
sub Il1I11111ll11lllI1l1Ill11Il1lII { | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $IIllI1llI11lIII11l11I1lIl1llI1l; | |
my $I1ll1I1I1lIlI1I1l1Ill1I111lllII; | |
my $lIll1I1IlII1l1I11I1ll11I1111ll1; | |
my $l1IlI11Il1I1lII1llllllII1I111ll = 0; | |
while (1) { | |
($IIllI1llI11lIII11l11I1lIl1llI1l, $I1ll1I1I1lIlI1I1l1Ill1I111lllII) = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x59 0x01'); | |
if ($IIllI1llI11lIII11l11I1lIl1llI1l == 0) { | |
last; | |
} | |
} | |
sleep 1; | |
while (1) { | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lII1IlI1l111llIIllII1I1lIl11I('-t 0x68 raw 0x36 0x04', 'noerr'); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
last; | |
} | |
sleep 1; | |
} | |
while (1) { | |
($IIllI1llI11lIII11l11I1lIl1llI1l, $I1ll1I1I1lIlI1I1l1Ill1I111lllII) = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x59 0x00'); | |
if ($IIllI1llI11lIII11l11I1lIl1llI1l == 0) { | |
last; | |
} | |
} | |
my(@lll11lI1lll1l1lllIIIlI1l1IlIl1l) = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0); | |
$lIll1I1IlII1l1I11I1ll11I1111ll1 = hex $lll11lI1lll1l1lllIIIlI1l1IlIl1l[21]; | |
$lIll1I1IlII1l1I11I1ll11I1111ll1 += hex $lll11lI1lll1l1lllIIIlI1l1IlIl1l[22]; | |
$lIll1I1IlII1l1I11I1ll11I1111ll1 *= 6; | |
return $lIll1I1IlII1l1I11I1ll11I1111ll1; | |
} | |
sub I1llIIlIlllI1I11IIl11IlIl111lll { | |
my $llIIIIIIl11llIllI11IlIlIl1I11l1 = 'bmc'; | |
my $IllI1Il1I1IIIIl1IlIlIIlll111III = shift @_; | |
my $lIll1I1IlII1l1I11I1ll11I1111ll1 = 0; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my @l1lII1l1I1Ill111IIll11I1lIl1ll1; | |
if (defined $IllI1Il1I1IIIIl1IlIlIIlll111III) { | |
if ($IllI1Il1I1IIIIl1IlIlIIlll111III eq 'nm') { | |
$llIIIIIIl11llIllI11IlIlIl1I11l1 = 'nm'; | |
} | |
} | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5125') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l111I11lIllllI1l1IlIIlIIl1l1l1I(); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl1lI1IlI111llIl11I111llll1Il1(); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill(); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1I11lI1lll1IIl11lllI11I1111l1I(); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1I11lI1lll1IIl11lllI11I1111l1I(); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1Illl11IIIlll1I1lIl1111111l1l(); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1I11lI1lll1IIl11lllI11I1111l1I(); | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub lIIl1lIllI1ll1IIIIlIll11lllI111 { | |
my $lIl1II1llIll1l1lIIl1Il1ll1IlI1I = shift @_; | |
my $I1I11I1I1ll1IlIIll1IllIl1llI1ll = shift @_; | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $I11lll1IIIlIIlIlI11I111I1Illll1 = ''; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $lI1IIl1I1lI1llII11I11ll11IIlII1 = sprintf('0x%02x', $lIl1II1llIll1l1lIIl1Il1ll1IlI1I); | |
my $llIIIll11llllI1IIII1lll1Il1lI1l = sprintf('0x%02x', $I1I11I1I1ll1IlIIll1IllIl1llI1ll); | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lII1IlI1l111llIIllII1I1lIl11I("-t0x2c -b 0x00 raw 0x2e 0xc2 0x57 0x01 0x00 $lI1IIl1I1lI1llII11I11ll11IIlII1 $llIIIll11llllI1IIII1lll1Il1lI1l", 'noerr'); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
$I11lll1IIIlIIlIlI11I111I1Illll1 = IIl11IIlI1Illl1111III11lIIIIII1($lIl11I1IIl111I1II11lIIllI1II1ll, 6, 7); | |
} | |
return $I11lll1IIIlIIlIlI11I111I1Illll1; | |
} | |
sub lIlIl1lIl11IIllI111llI1I1llllII { | |
my $IlIll1ll1I1l11lllII1ll1IlII1Ill = I1I11lI1lll1IIl11lllI11I1111l1I(); | |
my $II1lI1lIlI1lIllll1lIlIlIlII11l1 = ll1Illl11IIIlll1I1lIl1111111l1l(); | |
my $IIll1llIIIII1l1lIIIlIlI1lIIl1lI = IIl1lI1IlI111llIl11I111llll1Il1(); | |
print "dcmi: $IlIll1ll1I1l11lllII1ll1IlII1Ill \n"; | |
print "scbmc: $II1lI1lIlI1lIllll1lIlIlIlII11l1 \n"; | |
print "me: $IIll1llIIIII1l1lIIIlIlI1lIIl1lI \n"; | |
} | |
sub I1Ill1l11l1llIIlI1II1llI111I1Il { | |
my $llIIIIIIl11llIllI11IlIlIl1I11l1 = 'bmc'; | |
my $IllI1Il1I1IIIIl1IlIlIIlll111III = shift @_; | |
my $lIll1I1IlII1l1I11I1ll11I1111ll1 = 0; | |
if (defined $IllI1Il1I1IIIIl1IlIlIIlll111III) { | |
if ($IllI1Il1I1IIIIl1IlIlIIlll111III eq 'nm') { | |
$llIIIIIIl11llIllI11IlIlIl1I11l1 = 'nm'; | |
} | |
} | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1llIIlIlllI1I11IIl11IlIl111lll(); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1llIIlIlllI1I11IIl11IlIl111lll(); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100') { | |
$lIll1I1IlII1l1I11I1ll11I1111ll1 += hex Il11IIIl11lIlll1llII1lI1llll1Il(163); | |
$lIll1I1IlII1l1I11I1ll11I1111ll1 += hex Il11IIIl11lIlll1llII1lI1llll1Il(164); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 12 * $lIll1I1IlII1l1I11I1ll11I1111ll1; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') { | |
$lIll1I1IlII1l1I11I1ll11I1111ll1 += hex Il11IIIl11lIlll1llII1lI1llll1Il(112); | |
$lIll1I1IlII1l1I11I1ll11I1111ll1 += hex Il11IIIl11lIlll1llII1lI1llll1Il(113); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 12 * $lIll1I1IlII1l1I11I1ll11I1111ll1; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') { | |
$lIll1I1IlII1l1I11I1ll11I1111ll1 += hex Il11IIIl11lIlll1llII1lI1llll1Il(163); | |
$lIll1I1IlII1l1I11I1ll11I1111ll1 += hex Il11IIIl11lIlll1llII1lI1llll1Il(164); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 12 * $lIll1I1IlII1l1I11I1ll11I1111ll1; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = Il1I11111ll11lllI1l1Ill11Il1lII(); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = Illl1lIlll1II1llIllI1lllIlllllI(); | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub IIllll1Il11II11lllII1IlllIIIl1l { | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IIIll1IllIl1III1IlIl11IIIlI1lIl; | |
my $III1l1llIlI1l1I1IIlIIIll1111l1I = ''; | |
my $II1l1I11llIIlI11IIIlIllI1l111lI = ''; | |
my $lI1IIIIl1lI1II111I1ll1lI11IIlII = ''; | |
IlI11l1II111I1I111IllIIllIll1lI 'DCMI_get_power_limit'; | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIIll1IllIl1III1IlIl11IIIlI1lIl) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x2c 0x03 0xdc 0x00 0x00', 'nocallout'); | |
$IIIll1IllIl1III1IlIl11IIIlI1lIl = I11lllII1lll111II1IllIIl1II1llI($IIIll1IllIl1III1IlIl11IIIlI1lIl); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
$III1l1llIlI1l1I1IIlIIIll1111l1I = IIl11IIlI1Illl1111III11lIIIIII1($IIIll1IllIl1III1IlIl11IIIlI1lIl, 3, 3); | |
$II1l1I11llIIlI11IIIlIllI1l111lI = IIl11IIlI1Illl1111III11lIIIIII1($IIIll1IllIl1III1IlIl11IIIlI1lIl, 4, 5); | |
$lI1IIIIl1lI1II111I1ll1lI11IIlII = IIl11IIlI1Illl1111III11lIIIIII1($IIIll1IllIl1III1IlIl11IIIlI1lIl, 6, 9); | |
if ($II1l1I11llIIlI11IIIlIllI1l111lI > 2000) { | |
print "power limit is way too big ( $II1l1I11llIIlI11IIIlIllI1l111lI ) \n"; | |
print "DCMI Get Power Limit raw output: \n"; | |
print "$IIIll1IllIl1III1IlIl11IIIlI1lIl\n\n"; | |
} | |
} | |
return $II1lII1ll1lIlI1lIlIlII11II1IIll, $IIIll1IllIl1III1IlIl11IIIlI1lIl, $III1l1llIlI1l1I1IIlIIIll1111l1I, $II1l1I11llIIlI11IIIlIllI1l111lI, $lI1IIIIl1lI1II111I1ll1lI11IIlII; | |
} | |
sub I1llIlIIIIl11IIIIlIlIIIll1lI1I1 { | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IIIll1IllIl1III1IlIl11IIIlI1lIl; | |
my $lllIlIIIlll1ll1lIlIIIIlIlII1I1l = ''; | |
my $lIll111l11III11IIl1lI1ll11ll111 = ''; | |
my $l1I11Il1II1lIl1ll11IIll1lIl11lI = ''; | |
my $l11II1llIlIIIl11l11II11lIIll1l1 = ''; | |
my $llllIlI1Il1ll11l11Ill1I11ll1l1l = ''; | |
my $llI1I11l1lIlI1lll1Ill1llIll11I1 = ''; | |
IlI11l1II111I1I111IllIIllIll1lI 'SCBMC_get_chassis_enclosure_power_capping'; | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIIll1IllIl1III1IlIl11IIIlI1lIl) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x30 0x18', 'nocallout'); | |
$IIIll1IllIl1III1IlIl11IIIlI1lIl = I11lllII1lll111II1IllIIl1II1llI($IIIll1IllIl1III1IlIl11IIIlI1lIl); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
$lllIlIIIlll1ll1lIlIIIIlIlII1I1l = IIl11IIlI1Illl1111III11lIIIIII1($IIIll1IllIl1III1IlIl11IIIlI1lIl, 0, 0); | |
$lIll111l11III11IIl1lI1ll11ll111 = IIl11IIlI1Illl1111III11lIIIIII1($IIIll1IllIl1III1IlIl11IIIlI1lIl, 1, 2); | |
$l1I11Il1II1lIl1ll11IIll1lIl11lI = IIl11IIlI1Illl1111III11lIIIIII1($IIIll1IllIl1III1IlIl11IIIlI1lIl, 3, 3); | |
$l11II1llIlIIIl11l11II11lIIll1l1 = IIl11IIlI1Illl1111III11lIIIIII1($IIIll1IllIl1III1IlIl11IIIlI1lIl, 4, 4); | |
$llllIlI1Il1ll11l11Ill1I11ll1l1l = IIl11IIlI1Illl1111III11lIIIIII1($IIIll1IllIl1III1IlIl11IIIlI1lIl, 7, 7); | |
$llI1I11l1lIlI1lll1Ill1llIll11I1 = IIl11IIlI1Illl1111III11lIIIIII1($IIIll1IllIl1III1IlIl11IIIlI1lIl, 8, 8); | |
} | |
return $II1lII1ll1lIlI1lIlIlII11II1IIll, $IIIll1IllIl1III1IlIl11IIIlI1lIl, $lllIlIIIlll1ll1lIlIIIIlIlII1I1l, $lIll111l11III11IIl1lI1ll11ll111, $l1I11Il1II1lIl1ll11IIll1lIl11lI, $l11II1llIlIIIl11l11II11lIIll1l1, $llllIlI1Il1ll11l11Ill1I11ll1l1l, $llI1I11l1lIlI1lll1Ill1llIll11I1; | |
} | |
sub lll11I1IlllI111lIllIII11Ill11ll { | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = ll11111lII111IIIll1IIIlllll1IIl(); | |
if (l1IIl1I1ll11III11I1III1lIlI11lI $lIl11I1IIl111I1II11lIIllI1II1ll) { | |
return $lIl11I1IIl111I1II11lIIllI1II1ll; | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl11IIlI1Illl1111III11lIIIIII1($lIl11I1IIl111I1II11lIIllI1II1ll, 10); | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub l1l1IIlIIlIII1l1lllIlII1Ill1Il1 { | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = ll11111lII111IIIll1IIIlllll1IIl(); | |
if (l1IIl1I1ll11III11I1III1lIlI11lI $lIl11I1IIl111I1II11lIIllI1II1ll) { | |
return $lIl11I1IIl111I1II11lIIllI1II1ll; | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl11IIlI1Illl1111III11lIIIIII1($lIl11I1IIl111I1II11lIIllI1II1ll, 11); | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub ll1IlI11l1Il1IlIIlIIlIII11lI11l { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $Il11llI11l11II1lIll1l1l11Il1IlI; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_bmc_ip'; | |
$Il11llI11l11II1lIll1l1l11Il1IlI = lIll1Il1IIlII11Ill11l11llI11I11(); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'IP Address', $Il11llI11l11II1lIll1l1l11Il1IlI); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('v', 'Source', $lIl11I1IIl111I1II11lIIllI1II1ll); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = Il1I1I11l1I1Il111II11Il11lIIIl1(':', 2, $lIl11I1IIl111I1II11lIIllI1II1ll); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub IIll1IlIIl11I1lll1Il1I11llIl1Il { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11(); | |
my $Il11llI11l11II1lIll1l1l11Il1IlI; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_bmc_ipsrc'; | |
$Il11llI11l11II1lIll1l1l11Il1IlI = lIll1Il1IIlII11Ill11l11llI11I11(); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'IP Address Source', $Il11llI11l11II1lIll1l1l11Il1IlI); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = Il1I1I11l1I1Il111II11Il11lIIIl1(':', 2, $lIl11I1IIl111I1II11lIIllI1II1ll); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = lc I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll =~ /^dhcp/) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'dhcp'; | |
} | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll =~ /^static/) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'static'; | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub I11IIl1II1lII1111II1IlI1lIIlIll { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_bmc_vlan'; | |
my $Il11llI11l11II1lIll1l1l11Il1IlI; | |
$Il11llI11l11II1lIll1l1l11Il1IlI = lIll1Il1IIlII11Ill11l11llI11I11(); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'VLAN ID', $Il11llI11l11II1lIll1l1l11Il1IlI); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = Il1I1I11l1I1Il111II11Il11lIIIl1(':', 2, $lIl11I1IIl111I1II11lIIllI1II1ll); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lc I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub lllIllI111111lll1l1I11I1111lIlI { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_bmc_subnet'; | |
my $Il11llI11l11II1lIll1l1l11Il1IlI; | |
$Il11llI11l11II1lIll1l1l11Il1IlI = lIll1Il1IIlII11Ill11l11llI11I11(); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'Subnet Mask', $Il11llI11l11II1lIll1l1l11Il1IlI); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = Il1I1I11l1I1Il111II11Il11lIIIl1(':', 2, $lIl11I1IIl111I1II11lIIllI1II1ll); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lc I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub l1I1lllIlI11l1I1Ill1111lI1I1Il1 { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_bmc_mac'; | |
my $Il11llI11l11II1lIll1l1l11Il1IlI; | |
$Il11llI11l11II1lIll1l1l11Il1IlI = lIll1Il1IIlII11Ill11l11llI11I11(); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'MAC Address', $Il11llI11l11II1lIll1l1l11Il1IlI); | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/:/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0); | |
shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = join(':', @lll11lI1lll1l1lllIIIlI1l1IlIl1l); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lc I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub l1lIlIIIII1IIl1IIlIIlIll11IlI1l { | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $lll11Ill1l11l1l1ll1lI1I11l1111I; | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_ppid'; | |
$lll11Ill1l11l1l1ll1lI1I11l1111I = IIll1ll11I11IlllIll11ll1II11I1I(); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'Board Serial', $lll11Ill1l11l1l1ll1lI1I11l1111I); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = Il1I1I11l1I1Il111II11Il11lIIIl1(':', 2, $lIl11I1IIl111I1II11lIIllI1II1ll); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = uc I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub II11ll1I1I11l1lIlI1l1I1IllI11l1 { | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11(); | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $i; | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
my @lIl1Il1I11lIlllIIIlI1III111I11I; | |
my $lll11Ill1l11l1l1ll1lI1I11l1111I; | |
$lll11Ill1l11l1l1ll1lI1I11l1111I = IIll1ll11I11IlllIll11ll1II11I1I(); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'Product Serial', $lll11Ill1l11l1l1ll1lI1I11l1111I); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = Il1I1I11l1I1Il111II11Il11lIIIl1(':', 2, $lIl11I1IIl111I1II11lIIllI1II1ll); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub IlIII1ll11I1II1llll1IlIIl1II1I1 { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $lll11Ill1l11l1l1ll1lI1I11l1111I; | |
$lll11Ill1l11l1l1ll1lI1I11l1111I = IIll1ll11I11IlllIll11ll1II11I1I(); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'Chassis Serial', $lll11Ill1l11l1l1ll1lI1I11l1111I); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = Il1I1I11l1I1Il111II11Il11lIIIl1(':', 2, $lIl11I1IIl111I1II11lIIllI1II1ll); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lIl11I1IIl111I1II11lIIllI1II1ll; | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub I1lII1Il1lIlII1I11I1I111IlI1I1I { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $lll11Ill1l11l1l1ll1lI1I11l1111I; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_asset_tag'; | |
$lll11Ill1l11l1l1ll1lI1I11l1111I = IIll1ll11I11IlllIll11ll1II11I1I(); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'Product Asset Tag', $lll11Ill1l11l1l1ll1lI1I11l1111I); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = Il1I1I11l1I1Il111II11Il11lIIIl1(':', 2, $lIl11I1IIl111I1II11lIIllI1II1ll); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq '') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11(); | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub IlIIlI1Ill1lII1I1IlIlIl1Il1lIlI { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11(); | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_host_power_state'; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I('chassis power status'); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll =~ /Chassis Power is on/) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'on'; | |
} | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll =~ /Chassis Power is off/) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'off'; | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub I1lII11lIIIl1I1Ill1l1I11I1IlIII { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_bmc_hostname'; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1Il11Il1l1IIIllIlI111llIlIll1l(6, 5, 0, 0); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1l1lI1lIIIIlIl11I11llI11Illlll($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub lIlll11lIIlIIl1IIII1I1II111lIIl { | |
my $Il111ll111ll11lIlll1lIl1l1IIIlI = shift @_; | |
$Il111ll111ll11lIlll1lIl1l1IIIlI = substr($Il111ll111ll11lIlll1lIl1l1IIIlI, 0, 63); | |
my $Il1llIIIIl1Il1IIl1l11IIl11l1IlI = II1IlIl1l1IIll1II1l1lllll1I1lIl($Il111ll111ll11lIlll1lIl1l1IIIlI, $l11I1l1l1l111ll1I1I1I11ll1l11II); | |
I1Il11Il1l1IIIllIlI111llIlIll1l 6, 4, 0, 1; | |
ll1l1Il1l111Il1ll1IIIIIII1l1llI 6, 4, 0, 0; | |
sleep 1; | |
I1Il11Il1l1IIIllIlI111llIlIll1l 6, 4, 0, 1; | |
ll1l1Il1l111Il1ll1IIIIIII1l1llI 6, 5, 0, $Il1llIIIIl1Il1IIl1l11IIl11l1IlI; | |
sleep 1; | |
} | |
my $lll1lI1Il11IIlll1II1lIIlllI11I1 = 1; | |
my $I1llIlIllIll11l11111l1I11IIlllI = 2; | |
my $lI11II1111lIlIlI111lIIIIllI1ll1 = 4; | |
my $IlII11lll1ll1II1ll1lI1I1I11l1I1 = 8; | |
my $II11lIIIlII1l11I11I11111II11III = 16; | |
sub lllIIIIl11llIIl1Illl1l1IIllI1Il { | |
my $lll111IIll1l1lIlIIIIIII11I1Il11 = shift @_; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
if (l111I11Il1lIlIII1l1IIll1IIlI1II() eq '') { | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_security'; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125') { | |
if ($lll111IIll1l1lIlIIIIIII11I1Il11 eq $IlII11lll1ll1II1ll1lI1I1I11l1I1) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1I1II1IIll11IIllI1ll1IllI11I1(); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
} | |
if ($lll111IIll1l1lIlIIIIIII11I1Il11 eq $II11lIIIlII1l11I11I11111II11III) { | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
else { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1I1II1IIll11IIllI1ll1IllI11I1(); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill(); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') { | |
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = 4; | |
my $l1Il1IIllII11I1I111IlIIlllIlIll = 1; | |
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = 0; | |
my $I1111111I1IIIIlIl1lll1l1llIII11 = 1; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = llII1lIIIIIll1II1ll1I111l11II1l(l1lllIII1II1Il1l11II1llIl1lIIIl($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11)); | |
} | |
else { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = llII1lIIIIIll1II1ll1I111l11II1l(I1Il11Il1l1IIIllIlI111llIlIll1l($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11)); | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII & hex $lll111IIll1l1lIlIIIIIII11I1Il11; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $IIl1IlIIllII1I1lIlIIIIlIIII1lII ? 1 : 0; | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub lI11lI1I111II111l1lI1IlllI11l11 { | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_security_lockdown'; | |
return lllIIIIl11llIIl1Illl1l1IIllI1Il($lll1lI1Il11IIlll1II1lIIlllI11I1); | |
} | |
sub l1l11lIlll11lI1I11II111lIl1lllI { | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_security_ikvm'; | |
return lllIIIIl11llIIl1Illl1l1IIllI1Il($I1llIlIllIll11l11111l1I11IIlllI); | |
} | |
sub ll1I1I1llI111IIlllIlI11ll1lIII1 { | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_security_http'; | |
return lllIIIIl11llIIl1Illl1l1IIllI1Il($lI11II1111lIlIlI111lIIIIllI1ll1); | |
} | |
sub l11I1II1l1IlI1IIlIlI1llII1IlI11 { | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_security_sshtelnet'; | |
return lllIIIIl11llIIl1Illl1l1IIllI1Il($IlII11lll1ll1II1ll1lI1I1I11l1I1); | |
} | |
sub II1II1l1IlIl1lIIII1l11l1lIIIIII { | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_security_snmp'; | |
return lllIIIIl11llIIl1Illl1l1IIllI1Il($II11lIIIlII1l11I11I11111II11III); | |
} | |
sub I11llllI1lIlIlIIl1l1I1l1IIl111I { | |
my $l1IllIIlI111lIl1lI1II1IllIlIIl1 = shift @_; | |
my $Il1II11lII1II1111IIlllIIl1Il111 = shift @_; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $lII11IlI1IlIIlIlI1lll1I1I1l1lIl = ~$l1IllIIlI111lIl1lI1II1IllIlIIl1; | |
my $ll1IIIlII111l1lIllI1lIIl1ll1lI1 = 0; | |
if ($Il1II11lII1II1111IIlllIIl1Il111) { | |
$ll1IIIlII111l1lIllI1lIIl1ll1lI1 = $l1IllIIlI111lIl1lI1II1IllIlIIl1; | |
} | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
IlI11l1II111I1I111IllIIllIll1lI 'set_security'; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125') { | |
if ($l1IllIIlI111lIl1lI1II1IllIlIIl1 eq $IlII11lll1ll1II1ll1lI1I1I11l1I1) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1I1II1IIll11IIllI1ll1IllI11I1(); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
} | |
if ($l1IllIIlI111lIl1lI1II1IllIlIIl1 eq $II11lIIIlII1l11I11I11111II11III) { | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
else { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1I1II1IIll11IIllI1ll1IllI11I1(); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125') { | |
if ($l1IllIIlI111lIl1lI1II1IllIlIIl1 == $lll1lI1Il11IIlll1II1lIIlllI11I1 and $Il1II11lII1II1111IIlllIIl1Il111) { | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = 4; | |
my $l1Il1IIllII11I1I111IlIIlllIlIll = 1; | |
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = 0; | |
my $I1111111I1IIIIlIl1lll1l1llIII11 = 1; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = llII1lIIIIIll1II1ll1I111l11II1l(I1Il11Il1l1IIIllIlI111llIlIll1l($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11)); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = hex $lIl11I1IIl111I1II11lIIllI1II1ll; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = $lIl11I1IIl111I1II11lIIllI1II1ll & $lII11IlI1IlIIlIlI1lll1I1I1l1lIl | $ll1IIIlII111l1lIllI1lIIl1ll1lI1; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1l1Il1l111Il1ll1IIIIIII1l1llI($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $lIl11I1IIl111I1II11lIIllI1II1ll); | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = llII1lIIIIIll1II1ll1I111l11II1l(l1lllIII1II1Il1l11II1llIl1lIIIl($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11)); | |
} | |
else { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = llII1lIIIIIll1II1ll1I111l11II1l(I1Il11Il1l1IIIllIlI111llIlIll1l($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11)); | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0; | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub lIl1lIIl1IlllIlII11lll11IlIIIl1 { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_http_enabled'; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill(); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') { | |
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = 12; | |
my $l1Il1IIllII11I1I111IlIIlllIlIll = 1; | |
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = 0; | |
my $I1111111I1IIIIlIl1lll1l1llIII11 = 1; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = llII1lIIIIIll1II1ll1I111l11II1l(l1lllIII1II1Il1l11II1llIl1lIIIl($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11)); | |
} | |
else { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = llII1lIIIIIll1II1ll1I111l11II1l(I1Il11Il1l1IIIllIlI111llIlIll1l($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11)); | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0; | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll) { | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll == 1) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 1; | |
} | |
} | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub ll1lIIII1lII1IlIl1llI1llI1I1III { | |
my $II11lIIlI1Il1Il1IIIlI1lIl1lII1l = shift @_; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
IlI11l1II111I1I111IllIIllIll1lI 'set_http_enabled'; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') { | |
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = 12; | |
my $l1Il1IIllII11I1I111IlIIlllIlIll = 1; | |
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = 0; | |
my $I1111111I1IIIIlIl1lll1l1llIII11 = 1; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1l1Il1l111Il1ll1IIIIIII1l1llI($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $II11lIIlI1Il1Il1IIIlI1lIl1lII1l); | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub IlIlllIlIlI111IlI1llI1llll1IIII { | |
my $lll111IIll1l1lIlIIIIIII11I1Il11 = shift @_; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_http_port'; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill(); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') { | |
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = 12; | |
my $l1Il1IIllII11I1I111IlIIlllIlIll = 5; | |
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = 0; | |
my $I1111111I1IIIIlIl1lll1l1llIII11 = 2; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = llII1lIIIIIll1II1ll1I111l11II1l(l1lllIII1II1Il1l11II1llIl1lIIIl($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11)); | |
} | |
else { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = llII1lIIIIIll1II1ll1I111l11II1l(l1lllIII1II1Il1l11II1llIl1lIIIl($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11)); | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII =~ s/\s*//g; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub l11111111III1IllIIII11IIlllIIl1 { | |
my $IllIIlI1lI1lI1I1IIIlII1III11lIl = shift @_; | |
$IllIIlI1lI1lI1I1IIIlII1III11lIl = int $IllIIlI1lI1lI1I1IIIlII1III11lIl; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
IlI11l1II111I1I111IllIIllIll1lI 'set_http_port'; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') { | |
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = 12; | |
my $l1Il1IIllII11I1I111IlIIlllIlIll = 5; | |
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = 0; | |
my $I1111111I1IIIIlIl1lll1l1llIII11 = 2; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l11II11llI11l1lllII1llll1l1111l('asdf', 'set', $l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11, $IllIIlI1lI1lI1I1IIIlII1III11lIl); | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub l11l1lI111l11IIII1III11lIl1IIll { | |
my $lll111IIll1l1lIlIIIIIII11I1Il11 = shift @_; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_https_port'; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill(); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') { | |
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = 12; | |
my $l1Il1IIllII11I1I111IlIIlllIlIll = 6; | |
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = 0; | |
my $I1111111I1IIIIlIl1lll1l1llIII11 = 2; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = llII1lIIIIIll1II1ll1I111l11II1l(l1lllIII1II1Il1l11II1llIl1lIIIl($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11)); | |
} | |
else { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = llII1lIIIIIll1II1ll1I111l11II1l(I1Il11Il1l1IIIllIlI111llIlIll1l($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11)); | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII =~ s/\s*//g; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub IIIIl1l1ll1ll1ll1lI1lI11I1IlI1l { | |
my $IllIIlI1lI1lI1I1IIIlII1III11lIl = shift @_; | |
$IllIIlI1lI1lI1I1IIIlII1III11lIl = int $IllIIlI1lI1lI1I1IIIlII1III11lIl; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
IlI11l1II111I1I111IllIIllIll1lI 'set_https_port'; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') { | |
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = 12; | |
my $l1Il1IIllII11I1I111IlIIlllIlIll = 6; | |
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = 0; | |
my $I1111111I1IIIIlIl1lll1l1llIII11 = 2; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l11II11llI11l1lllII1llll1l1111l('asdf', 'set', $l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11, $IllIIlI1lI1lI1I1IIIlII1III11lIl); | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub I1l1l1Il1lI11I1l1lI1111IIlI1lll { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
my $llll1lII1l11I1IlllllIIllll1l1II; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_nic_mode'; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
$llll1lII1l11I1IlllllIIllll1l1II = IlI1I1l11l1l1lll11llI1I1l11l111(); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x02 $llll1lII1l11I1IlllllIIllll1l1II 0x02 0x01 0x00 0x00 0x00 0x01"); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(' ', $lIl11I1IIl111I1II11lIIllI1II1ll, 0); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[4]; | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll eq '00') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'shared'; | |
} | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll eq '01') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'dedicated'; | |
} | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x34 0x14'); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll eq '00') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'shared'; | |
} | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll eq '01') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'dedicated'; | |
} | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub IlI1Ill11II111Illl1III1ll11llI1 { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $I1I11IIIll11IlIIl1l1lI11lI1I111; | |
my $llll1lII1l11I1IlllllIIllll1l1II; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
$I1I11IIIll11IlIIl1l1lI11lI1I111 = ''; | |
if ($l1l1lII111IIlllII11IIIl1IIllI1I =~ /^sh/i) { | |
$I1I11IIIll11IlIIl1l1lI11lI1I111 = 'shared'; | |
} | |
if ($l1l1lII111IIlllII11IIIl1IIllI1I =~ /^d/i) { | |
$I1I11IIIll11IlIIl1l1lI11lI1I111 = 'dedicated'; | |
} | |
if ($I1I11IIIll11IlIIl1l1lI11lI1I111 eq '') { | |
print "error: I do not know what mode $l1l1lII111IIlllII11IIIl1IIllI1I is. Please use 'shared' or 'dedicated'.\n"; | |
exit 1; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = $I1I11IIIll11IlIIl1l1lI11lI1I111 eq 'shared' ? '00' : '01'; | |
$llll1lII1l11I1IlllllIIllll1l1II = IlI1I1l11l1l1lll11llI1I1l11l111(); | |
l1lII1IlI1l111llIIllII1I1lIl11I "raw 0x30 0x03 $llll1lII1l11I1IlllllIIllll1l1II 0x02 0x01 0x00 0x00 0x00 1 $lIl11I1IIl111I1II11lIIllI1II1ll"; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0; | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = $I1I11IIIll11IlIIl1l1lI11lI1I111 eq 'shared' ? '00' : '01'; | |
l1lII1IlI1l111llIIllII1I1lIl11I "raw 0x34 0x13 $lIl11I1IIl111I1II11lIIllI1II1ll"; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0; | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
Il1II1IIl1lIlI1I1lll1l1lII1l111 ; | |
} | |
sub l111Il11lll1I11I1l1IlI11IIl1llI { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_reqd_psu_count'; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0; | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x30 0x1f', 'noerr'); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[5]; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl1l1IlI1lII11lI1I11Ill1IlllIl($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
} | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub llIIlIIl1lllI1lIIIlI1lIIIIlIl11 { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_redundant_psu_available'; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0; | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x30 0x1f', 'noerr'); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[6]; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl1l1IlI1lII11lI1I11Ill1IlllIl($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
} | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub II1I11llIl11lII11lIIIl1II11lIII { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_node_number'; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill(); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x34 0x11'); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl1l1IlI1lII11lI1I11Ill1IlllIl($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5125') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x2d'); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl1l1IlI1lII11lI1I11Ill1IlllIl($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') { | |
if ($lI1II1I11l1l111I11IIIl1I1lII11l eq '') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x2d'); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl1l1IlI1lII11lI1I11Ill1IlllIl($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
} | |
if ($lI1II1I11l1l111I11IIIl1I1lII11l eq 'IPV6') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x4c'); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl1l1IlI1lII11lI1I11Ill1IlllIl($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
} | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x7d'); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl1l1IlI1lII11lI1I11Ill1IlllIl($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0; | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x30 0x12', 'noerr'); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[9]; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl1l1IlI1lII11lI1I11Ill1IlllIl($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
} | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub I111Il11l11IIlIll11ll1lll1lIII1 { | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11(); | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
my @lIl1Il1I11lIlllIIIlI1III111I11I; | |
my $i; | |
IlI11l1II111I1I111IllIIllIll1lI 'sense_bmc_version'; | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('mc info'); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/\n/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0); | |
foreach $i (0 .. $#lll11lI1lll1l1lllIIIlI1l1IlIl1l) { | |
if ($lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i] =~ /Firmware Revision/) { | |
@lIl1Il1I11lIlllIIIlI1III111I11I = split(/:/, $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i], 0); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($lIl1Il1I11lIlllIIIlI1III111I11I[1]); | |
last; | |
} | |
} | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub IlIl11l11I1I111lllII11I111Illll { | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
my $I1ll1I1I1lIlI1I1l1Ill1I111lllII = IIIl11111lI1II111lllIIIl111II11(); | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x06 0x52 0x07 0xa0 0x06 0x3c 0x1d'); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/\s+/, $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[0]; | |
if (hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII == 32) { | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'X3.5'; | |
} | |
if (hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII == 48) { | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'Nucleon'; | |
} | |
if (hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII == 64) { | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'Viper'; | |
} | |
if (hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII == 255) { | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'unprogrammed'; | |
} | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII, $I1ll1I1I1lIlI1I1l1Ill1I111lllII; | |
} | |
sub l11l11l1lll1Ill1I111ll1l1lI1lI1 { | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
my $I1ll1I1I1lIlI1I1l1Ill1I111lllII = IIIl11111lI1II111lllIIIl111II11(); | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
my $I1IIIlI1ll11Ill11lIl1I1l1I1Il1I; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $l1lIIIl1l1lIII1lI1l1I1IlI1lI1Il = 0; | |
my $II11Il1111IIII1111I11I1lIIl1111; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100') { | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = lll1lI1llIl1IllI11l11II11II1Ill(); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100') { | |
if ($lll1l1I1IIIllllI1I11I11l11Ill1l eq 'PEC') { | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'X3.5'; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
} | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') { | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'X5'; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') { | |
if ($lll1l1I1IIIllllI1I11I11l11Ill1l eq 'PEC') { | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'X3.5'; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
} | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') { | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'Viking'; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = lll1lI1llIl1IllI11l11II11II1Ill(); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('sdr type Fan'); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/\n/, $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0); | |
$I1IIIlI1ll11Ill11lIl1I1l1I1Il1I = 0; | |
foreach $_ (@lll11lI1lll1l1lllIIIlI1l1IlIl1l) { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = lIl11II1Il1l1l1Il1lI11l1l1I1l1l($_); | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll =~ /FAN/) { | |
++$I1IIIlI1ll11Ill11lIl1I1l1I1Il1I; | |
} | |
} | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'unknown'; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $I1IIIlI1ll11Ill11lIl1I1l1I1Il1I; | |
if ($I1IIIlI1ll11Ill11lIl1I1l1I1Il1I == 2) { | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'Scorpion'; | |
} | |
if ($I1IIIlI1ll11Ill11lIl1I1l1I1Il1I == 4) { | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'X6'; | |
} | |
if ($I1IIIlI1ll11Ill11lIl1I1l1I1Il1I == 6) { | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'Zeus'; | |
} | |
my $lI1llIIlIIlIlI1l1lIIl1I1III11ll = $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $llllI1IlI1IllI1IlIl1111llIlIlll = $I1ll1I1I1lIlI1I1l1Ill1I111lllII; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0; | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'unknown'; | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x30 0x12', 'noerr'); | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl11IIlI1Illl1111III11lIIIIII1($IIl1IlIIllII1I1lIlIIIIlIIII1lII, 22); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ($IIl1IlIIllII1I1lIlIIIIlIIII1lII & 254) >> 1; | |
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq 1) { | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'Scorpion'; | |
} | |
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq 2) { | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'X6'; | |
} | |
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq 3) { | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'Zeus'; | |
} | |
} | |
if ($I1ll1I1I1lIlI1I1l1Ill1I111lllII eq 'unknown') { | |
$II11Il1111IIII1111I11I1lIIl1111 = ll11111lII111IIIll1IIIlllll1IIl(); | |
if (l1IIl1I1ll11III11I1III1lIlI11lI $II11Il1111IIII1111I11I1lIIl1111) { | |
$l1lIIIl1l1lIII1lI1l1I1IlI1lI1Il = 1; | |
} | |
} | |
if ($llllI1IlI1IllI1IlIl1111llIlIlll ne $I1ll1I1I1lIlI1I1l1Ill1I111lllII) { | |
if ($l1lIIIl1l1lIII1lI1l1I1IlI1lI1Il) { | |
return 0, l111I11lIllllI1l1IlIIlIIl1l1l1I(); | |
} | |
printf "The two detection methods for chassis type do not agree.\n"; | |
print "fans: $lI1llIIlIIlIlI1l1lIIl1I1III11ll ----> this chassis appears to be: $llllI1IlI1IllI1IlIl1111llIlIlll\n"; | |
print "bits: $IIl1IlIIllII1I1lIlIIIIlIIII1lII ---> chassis type: $I1ll1I1I1lIlI1I1l1Ill1I111lllII\n\n"; | |
print "Setting to 'unknown'\n\n"; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0; | |
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'unknown'; | |
} | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII, $I1ll1I1I1lIlI1I1l1Ill1I111lllII; | |
} | |
sub lII11I1lIIIIllIIIIIIIIIl11lIIll { | |
my($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII(q[chassis status | grep 'Restore Policy' | cut -d':' -f2]); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub lIlIIllII1l11I11l11Il1I1I11Ill1 { | |
my $l1ll111I11lllI1I11I1IllI1l11llI = shift @_ || '0'; | |
$l1ll111I11lllI1I11I1IllI1l11llI = int $l1ll111I11lllI1I11I1IllI1l11llI; | |
my $lllI1111l1IllI1IIlIl1I11I11I1ll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1I1II1IIll11IIllI1ll1IllI11I1(); | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
if ($l1ll111I11lllI1I11I1IllI1l11llI < 1 or $l1ll111I11lllI1I11I1IllI1l11llI > 16) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11(); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
$lllI1111l1IllI1IIlIl1I11I11I1ll = 80 + ($l1ll111I11lllI1I11I1IllI1l11llI - 1); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = Il11IIIl11lIlll1llII1lI1llll1Il($lllI1111l1IllI1IIlIl1I11I11I1ll); | |
if (l1IIl1I1ll11III11I1III1lIlI11lI $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0; | |
} | |
if (l1IllIIIll1l1llIIl1lIIlll1I1llI $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = hex($IIl1IlIIllII1I1lIlIIIIlIIII1lII) * 2; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = sprintf('%d', $IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
} | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub lIIIII1lIllllIIIl11Il1I1IlI1I11 { | |
my $l1ll111I11lllI1I11I1IllI1l11llI = shift @_ || '0'; | |
$l1ll111I11lllI1I11I1IllI1l11llI = int $l1ll111I11lllI1I11I1IllI1l11llI; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1I1II1IIll11IIllI1ll1IllI11I1(); | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
if ($l1ll111I11lllI1I11I1IllI1l11llI < 1 or $l1ll111I11lllI1I11I1IllI1l11llI > 16) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11(); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
$lIl11I1IIl111I1II11lIIllI1II1ll = lIlIIllII1l11I11l11Il1I1I11Ill1($l1ll111I11lllI1I11I1IllI1l11llI); | |
if (l1IIl1I1ll11III11I1III1lIlI11lI $lIl11I1IIl111I1II11lIIllI1II1ll) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'off'; | |
} | |
if (l1IllIIIll1l1llIIl1lIIlll1I1llI $lIl11I1IIl111I1II11lIIllI1II1ll) { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = int $lIl11I1IIl111I1II11lIIllI1II1ll; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11(); | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll > 5) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'on'; | |
} | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll <= 5 and $lIl11I1IIl111I1II11lIIllI1II1ll >= 0) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'off'; | |
} | |
} | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub lllll11Il11IlI1IlllIl111llI111l { | |
my $l1ll111I11lllI1I11I1IllI1l11llI = shift @_; | |
$l1ll111I11lllI1I11I1IllI1l11llI = int $l1ll111I11lllI1I11I1IllI1l11llI; | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1I1II1IIll11IIllI1ll1IllI11I1(); | |
my $x; | |
my $l1I111l1I1l1lIIl1lI1Il1I1l11111; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
if ($l1ll111I11lllI1I11I1IllI1l11llI < 1 or $l1ll111I11lllI1I11I1IllI1l11llI > 16) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11(); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlI1I1I11I1l1II1II1lll11I1IlIll(); | |
$x = 1 << $l1ll111I11lllI1I11I1IllI1l11llI - 1; | |
$l1I111l1I1l1lIIl1lI1Il1I1l11111 = sprintf('0x%02x 0x%02x', $x & 255, ($x & 65280) >> 8); | |
IlI11l1II111I1I111IllIIllIll1lI 'toggle_gpgpu_sled_power'; | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0xf0 $l1I111l1I1l1lIIl1lI1Il1I1l11111"); | |
sleep 2; | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub Il1llIllII111IllIIIlI1Il11lIl11 { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1I1II1IIll11IIllI1ll1IllI11I1(); | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IllI111Il11I11IlIlIII1llllll11l; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $Ill1I1Illlll1lllIlIlll1lII111I1; | |
my $ll1lII1llllI1l1lIlIIIIIl1llIII1; | |
my $l1llll1l1l1llI11I1111l1ll11llll; | |
$IllI111Il11I11IlIlIII1llllll11l = shift @_; | |
$IllI111Il11I11IlIlIII1llllll11l = I11lllII1lll111II1IllIIl1II1llI($IllI111Il11I11IlIlIII1llllll11l); | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6100') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = II1I11llIl11lII11lIIIl1II11lIII(); | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll != 4) { | |
printf "Attempted to set fan speed from node %s. Please do this from node 4.\n", $lIl11I1IIl111I1II11lIIllI1II1ll; | |
return l111I11lIllllI1l1IlIIlIIl1l1l1I(); | |
} | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = II1I11llIl11lII11lIIIl1II11lIII(); | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll != 2) { | |
printf "Attempted to set fan speed from node %s. Please do this from node 2.\n", $lIl11I1IIl111I1II11lIIllI1II1ll; | |
return l111I11lIllllI1l1IlIIlIIl1l1l1I(); | |
} | |
} | |
if (not $IllI111Il11I11IlIlIII1llllll11l eq 'auto') { | |
if ($IllI111Il11I11IlIlIII1llllll11l < 0 or $IllI111Il11I11IlIlIII1llllll11l > 100) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11(); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') { | |
if ($IllI111Il11I11IlIlIII1llllll11l eq 'auto') { | |
$IllI111Il11I11IlIlIII1llllll11l = '0'; | |
} | |
$lIl11I1IIl111I1II11lIIllI1II1ll = lllIl11IlIIIl111lIIl11l11IIlIl1($IllI111Il11I11IlIlIII1llllll11l, 1); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x34 0x74 0x01 0x$lIl11I1IIl111I1II11lIIllI1II1ll"); | |
my(@lIlIIlIlIl1l1lI1lIll11lI11lIl1I) = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0); | |
if ($lIlIIlIlIl1l1lI1lIll11lI11lIl1I[0] eq '01') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 1; | |
} | |
else { | |
printf "Error: command did not appear to work\n"; | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100') { | |
if ($IllI111Il11I11IlIlIII1llllll11l eq 'auto') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x11 0xFF'); | |
} | |
else { | |
$IllI111Il11I11IlIlIII1llllll11l = floor($IllI111Il11I11IlIlIII1llllll11l / 100 * 63); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = lllIl11IlIIIl111lIIl11l11IIlIl1($IllI111Il11I11IlIlIII1llllll11l, 1); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x11 0x00 0x$lIl11I1IIl111I1II11lIIllI1II1ll"); | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100') { | |
if ($IllI111Il11I11IlIlIII1llllll11l eq 'auto') { | |
$IllI111Il11I11IlIlIII1llllll11l = 0; | |
} | |
else { | |
$IllI111Il11I11IlIlIII1llllll11l = $IllI111Il11I11IlIlIII1llllll11l | 128; | |
} | |
$lIl11I1IIl111I1II11lIIllI1II1ll = lllIl11IlIIIl111lIIl11l11IIlIl1($IllI111Il11I11IlIlIII1llllll11l, 1); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x34 0x61 0x$lIl11I1IIl111I1II11lIIllI1II1ll"); | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
if ($IllI111Il11I11IlIlIII1llllll11l eq 'auto') { | |
$ll1lII1llllI1l1lIlIIIIIl1llIII1 = 160; | |
$l1llll1l1l1llI11I1111l1ll11llll = 0; | |
} | |
else { | |
$ll1lII1llllI1l1lIlIIIIIl1llIII1 = 32; | |
$l1llll1l1l1llI11I1111l1ll11llll = $IllI111Il11I11IlIlIII1llllll11l; | |
} | |
$ll1lII1llllI1l1lIlIIIIIl1llIII1 = lllIl11IlIIIl111lIIl11l11IIlIl1($ll1lII1llllI1l1lIlIIIIIl1llIII1, 1); | |
$l1llll1l1l1llI11I1111l1ll11llll = lllIl11IlIIIl111lIIl11l11IIlIl1($l1llll1l1l1llI11I1111l1ll11llll, 1); | |
if ($IllI111Il11I11IlIlIII1llllll11l eq 'auto') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x19 0x$ll1lII1llllI1l1lIlIIIIIl1llIII1 0x00"); | |
} | |
else { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x19 0x$ll1lII1llllI1l1lIlIIIIIl1llIII1 0x$l1llll1l1l1llI11I1111l1ll11llll"); | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub III1lll11IllIlI1Il1lI1I11II1llI { | |
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $I11Ill1111l1II1IIl1lll11IlI1IIl) = @_; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
my $I1I1I111I1lI1111l11lI111I11I1l1 = II1IlIl1l1IIll1II1l1lllll1I1lIl($I11Ill1111l1II1IIl1lll11IlI1IIl, $l11I1l1l1l111ll1I1I1I11ll1l11II); | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x20 0x11 $I1I1I111I1lI1111l11lI111I11I1l1"); | |
return; | |
} | |
Il1II1IIl1lIlI1I1lll1l1lII1l111 ; | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub I11IlII1I1IIlllIIll1II1I1IIlIII { | |
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $lllll1Il11Ill1l11lI11lII1Il111I, $l1l1l11I11IlI111IlIlII11III1II1, $l1II111l1IIIll11lI11llII1IIIllI, $lII1lI1IIll1llII11111111II1Il11, $III111IlI1lIIlIl1IlI11I1II111I1, $llIl111l11lll1IlI1l1l1IIlIl11lI) = @_; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $IllllI1I111IlIl1111IlIIll1l1l11 = ''; | |
if (not defined $llIl111l11lll1IlI1l1l1IIlIl11lI) { | |
printf "Usage:\n"; | |
printf " Provide the mac address in hex, separated by spaces as such:\n"; | |
printf "\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll aa bb cc dd ee ff\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
$lllll1Il11Ill1l11lI11lII1Il111I = sprintf('0x%02x', hex $lllll1Il11Ill1l11lI11lII1Il111I); | |
$l1l1l11I11IlI111IlIlII11III1II1 = sprintf('0x%02x', hex $l1l1l11I11IlI111IlIlII11III1II1); | |
$l1II111l1IIIll11lI11llII1IIIllI = sprintf('0x%02x', hex $l1II111l1IIIll11lI11llII1IIIllI); | |
$lII1lI1IIll1llII11111111II1Il11 = sprintf('0x%02x', hex $lII1lI1IIll1llII11111111II1Il11); | |
$III111IlI1lIIlIl1IlI11I1II111I1 = sprintf('0x%02x', hex $III111IlI1lIIlIl1IlI11I1II111I1); | |
$llIl111l11lll1IlI1l1l1IIlIl11lI = sprintf('0x%02x', hex $llIl111l11lll1IlI1l1l1IIlIl11lI); | |
$IllllI1I111IlIl1111IlIIll1l1l11 = "$lllll1Il11Ill1l11lI11lII1Il111I $l1l1l11I11IlI111IlIlII11III1II1 $l1II111l1IIIll11lI11llII1IIIllI $lII1lI1IIll1llII11111111II1Il11 $III111IlI1lIIlIl1IlI11I1II111I1 $llIl111l11lll1IlI1l1l1IIlIl11lI"; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x06 0x05 0x64 0x52 0x45 0x4d 0x24 0x73 0x74 0x38'); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lI1I1I1Il11IIl1l1IIIll1llIIII("raw 0x0c 0x01 0x01 0x05 $IllllI1I111IlIl1111IlIIll1l1l11", 'noerr'); | |
return; | |
} | |
Il1II1IIl1lIlI1I1lll1l1lII1l111 ; | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub III1IIl1ll11ll1IllI111I1I11l1lI { | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $Il1Il1I1lIlllIIll1ll111111IllIl) = @_; | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll mac_addr_file_name\n"; | |
printf "\n"; | |
printf "This function takes the output of 'print_both_macs' as input, and sets both BMC mac addresses.\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
if (not $lI1l11ll1II11llII1lllllllIIIIlI) { | |
printf "\n"; | |
printf "This function cannot be used remotely, because it is possible to render the BMC inaccessible.\n"; | |
printf "\n"; | |
exit 1; | |
} | |
my @lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l; | |
my $IIl1I1111I11l11lIIl11I1lI111III = ''; | |
my $ll1lIll1l1Il111I11Il1l11ll1lIll = ''; | |
my $lI1II11II1llIIIlIll111lIIlI11ll; | |
my $lIll11llll1IIIII1IIIIl1llII1llI; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
die "\nError: Could not open BMC MAC address file $Il1Il1I1lIlllIIll1ll111111IllIl\n\n" unless open TMPFILE, $Il1Il1I1lIlllIIll1ll111111IllIl; | |
while (defined($_ = <TMPFILE>)) { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = $_; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = llIlIllIlll11llIll11l11lIlIll1l($lIl11I1IIl111I1II11lIIllI1II1ll); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
@lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l = split(/,/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0); | |
$lI1II11II1llIIIlIll111lIIlI11ll = I11lllII1lll111II1IllIIl1II1llI($lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l[0]); | |
$lIll11llll1IIIII1IIIIl1llII1llI = I11lllII1lll111II1IllIIl1II1llI($lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l[1]); | |
if ($lI1II11II1llIIIlIll111lIIlI11ll eq 'shared') { | |
$IIl1I1111I11l11lIIl11I1lI111III = $lIll11llll1IIIII1IIIIl1llII1llI; | |
} | |
if ($lI1II11II1llIIIlIll111lIIlI11ll eq 'dedicated') { | |
$ll1lIll1l1Il111I11Il1l11ll1lIll = $lIll11llll1IIIII1IIIIl1llII1llI; | |
} | |
} | |
close TMPFILE; | |
if ($IIl1I1111I11l11lIIl11I1lI111III eq '' or $ll1lIll1l1Il111I11Il1l11ll1lIll eq '') { | |
printf "File provided must contain both shared and dedicated BMC MAC addresses.\n"; | |
exit 1; | |
} | |
my $II1lI1I1I11l1I11Il11I1llI1l11I1; | |
my @Ill1l1l11I1lllIII1I1l1IlIllllII; | |
my $lII11l1I1IIll1l1IlIlll1I1lI1lI1; | |
$lII11l1I1IIll1l1IlIlll1I1lI1lI1 = I1l1l1Il1lI11I1l1lI1111IIlI1lll(); | |
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'shared') { | |
$II1lI1I1I11l1I11Il11I1llI1l11I1 = $IIl1I1111I11l11lIIl11I1lI111III; | |
} | |
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'dedicated') { | |
$II1lI1I1I11l1I11Il11I1llI1l11I1 = $ll1lIll1l1Il111I11Il1l11ll1lIll; | |
} | |
@Ill1l1l11I1lllIII1I1l1IlIllllII = split(/:/, $II1lI1I1I11l1I11Il11I1llI1l11I1, 0); | |
print "Setting $lII11l1I1IIll1l1IlIlll1I1lI1lI1 MAC to: $II1lI1I1I11l1I11Il11I1llI1l11I1 \n"; | |
I11IlII1I1IIlllIIll1II1I1IIlIII 'set_bmc_mac', $Ill1l1l11I1lllIII1I1l1IlIllllII[0], $Ill1l1l11I1lllIII1I1l1IlIllllII[1], $Ill1l1l11I1lllIII1I1l1IlIllllII[2], $Ill1l1l11I1lllIII1I1l1IlIllllII[3], $Ill1l1l11I1lllIII1I1l1IlIllllII[4], $Ill1l1l11I1lllIII1I1l1IlIllllII[5]; | |
sleep 10; | |
ll1l1IlI11I11IlIll1llIIlIIIllIl ; | |
print "(switching bmc nic)\n"; | |
llIIII1I1ll11l11I1I1lIIIlI11l1l('nic_mode', 'toggle', '', 'silent'); | |
sleep 30; | |
ll1l1IlI11I11IlIll1llIIlIIIllIl ; | |
$lII11l1I1IIll1l1IlIlll1I1lI1lI1 = I1l1l1Il1lI11I1l1lI1111IIlI1lll(); | |
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'shared') { | |
$II1lI1I1I11l1I11Il11I1llI1l11I1 = $IIl1I1111I11l11lIIl11I1lI111III; | |
} | |
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'dedicated') { | |
$II1lI1I1I11l1I11Il11I1llI1l11I1 = $ll1lIll1l1Il111I11Il1l11ll1lIll; | |
} | |
@Ill1l1l11I1lllIII1I1l1IlIllllII = split(/:/, $II1lI1I1I11l1I11Il11I1llI1l11I1, 0); | |
print "Setting $lII11l1I1IIll1l1IlIlll1I1lI1lI1 MAC to: $II1lI1I1I11l1I11Il11I1llI1l11I1 \n"; | |
I11IlII1I1IIlllIIll1II1I1IIlIII 'set_bmc_mac', $Ill1l1l11I1lllIII1I1l1IlIllllII[0], $Ill1l1l11I1lllIII1I1l1IlIllllII[1], $Ill1l1l11I1lllIII1I1l1IlIllllII[2], $Ill1l1l11I1lllIII1I1l1IlIllllII[3], $Ill1l1l11I1lllIII1I1l1IlIllllII[4], $Ill1l1l11I1lllIII1I1l1IlIllllII[5]; | |
sleep 10; | |
ll1l1IlI11I11IlIll1llIIlIIIllIl ; | |
print "(switching bmc nic)\n"; | |
llIIII1I1ll11l11I1I1lIIIlI11l1l('nic_mode', 'toggle', '', 'silent'); | |
sleep 30; | |
ll1l1IlI11I11IlIll1llIIlIIIllIl ; | |
print "done.\n"; | |
print "\n"; | |
} | |
sub IlI1I1lII1l1111I11lIl1IllIl11ll { | |
my $i; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $llll1lII1l11I1IlllllIIllll1l1II; | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $IIIl11lllllIIlllI1l1l1ll1IlI1I1, $l1ll111lI11IlIl1lI111Il11lIlIlI) = @_; | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll get|set [timeout_in_seconds; 0 to disable]\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = I1Il11Il1l1IIIllIlI111llIlIll1l(12, 4, 0, 4); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = llII1lIIIIIll1II1ll1I111l11II1l($lIl11I1IIl111I1II11lIIllI1II1ll); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = IIl1l1IlI1lII11lI1I11Ill1IlllIl($lIl11I1IIl111I1II11lIIllI1II1ll); | |
printf "%d\n", $lIl11I1IIl111I1II11lIIllI1II1ll; | |
return; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = lllIl11IlIIIl111lIIl11l11IIlIl1($l1ll111lI11IlIl1lI111Il11lIlIlI, 4); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = llII1lIIIIIll1II1ll1I111l11II1l($lIl11I1IIl111I1II11lIIllI1II1ll); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = IlIll11llI11ll1llIIIlll1l1IlII1($lIl11I1IIl111I1II11lIIllI1II1ll); | |
I111IlIllI1lI1Il11lIllI1llI1IIl 12, 4, 0, 4, $lIl11I1IIl111I1II11lIIllI1II1ll; | |
print "\n"; | |
return; | |
} | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
sub lIIIl1lIllI1IIlIl1I111lIlIIl1Il { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1IllIl11lIIlllI1IlI1l1III1I1l1(); | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
Il1II1IIl1lIlI1I1lll1l1lII1l111 ; | |
} | |
print "$IIl1IlIIllII1I1lIlIIIIlIIII1lII\n"; | |
} | |
sub lIIIIlII1llII1llIlll11l11lI1IlI { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lIlIIIII1IIl1IIlIIlIll11IlI1l(); | |
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub Il11IlllIlllll1l1llIlIlI11lIl1l { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = II11ll1I1I11l1lIlI1l1I1IllI11l1(); | |
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub lIlIIlI1111IlIIIl111lII1lIl1lll { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1lII1Il1lIlII1I11I1I111IlI1I1I(); | |
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub l11Ill11lIIIlIlI1l1I1l1I11I11lI { | |
my $i; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $llll1lII1l11I1IlllllIIllll1l1II; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I('mc reset cold'); | |
print "\n"; | |
} | |
sub llI1l1I1ll1l1llIlIll1l1I11II111 { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11(); | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $llll1lII1l11I1IlllllIIllll1l1II; | |
my $I11I1IIIlllIIlIl11IllI1ll1llllI; | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $lIlI1lll1l11I1111Il1I111Il11ll1) = @_; | |
IlI11l1II111I1I111IllIIllIll1lI 'set_asset_tag'; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100') { | |
$lIlI1lll1l11I1111Il1I111Il11ll1 = substr($lIlI1lll1l11I1111Il1I111Il11ll1, 0, 10); | |
$I11I1IIIlllIIlIl11IllI1ll1llllI = II1IlIl1l1IIll1II1l1lllll1I1lIl($lIlI1lll1l11I1111Il1I111Il11ll1, $l11I1l1l1l111ll1I1I1I11ll1l11II); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x34 0x12 $I11I1IIIlllIIlIl11IllI1ll1llllI"); | |
print "\n"; | |
return; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') { | |
$lIlI1lll1l11I1111Il1I111Il11ll1 = substr($lIlI1lll1l11I1111Il1I111Il11ll1, 0, 20); | |
$I11I1IIIlllIIlIl11IllI1ll1llllI = II1IlIl1l1IIll1II1l1lllll1I1lIl($lIlI1lll1l11I1111Il1I111Il11ll1, $l11I1l1l1l111ll1I1I1I11ll1l11II); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x34 0x12 $I11I1IIIlllIIlIl11IllI1ll1llllI"); | |
print "\n"; | |
return; | |
} | |
print "\n"; | |
Il1II1IIl1lIlI1I1lll1l1lII1l111 ; | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub llI1lIl1111IIlI1I1I1II11llI1llI { | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $IIIl11lllllIIlllI1l1l1ll1IlI1I1, $Il111ll111ll11lIlll1lIl1l1IIIlI) = @_; | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll get|set [hostname]\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = I1lII11lIIIl1I1Ill1l1I11I1IlIII(); | |
printf "$lIl11I1IIl111I1II11lIIllI1II1ll\n"; | |
return; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set') { | |
lIlll11lIIlIIl1IIII1I1II111lIIl $Il111ll111ll11lIlll1lIl1l1IIIlI; | |
return; | |
} | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
my $l1II1Il1III1lIIIII1Il1II11IlI1I = 'zyz'; | |
sub lI1I1lllIl1l1l1IllllIl1IIIlIl11 { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1lII11lIIIl1I1Ill1l1I11I1IlIII(); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
if (not $IIl1IlIIllII1I1lIlIIIIlIIII1lII =~ /$l1II1Il1III1lIIIII1Il1II11IlI1I/) { | |
return 'none'; | |
} | |
my(@lll11lI1lll1l1lllIIIlI1l1IlIl1l) = split(/$l1II1Il1III1lIIIII1Il1II11IlI1I/, $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0); | |
shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[0] || ''; | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub Ill1I1lIlI11l1Ill1Ill11ll1lll11 { | |
my $lIIl1l1l1I11I1ll11l1llII11I111l = shift @_; | |
my $llIl1llIllI111l1III1IlI1l1lllII; | |
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1lII11lIIIl1I1Ill1l1I11I1IlIII(); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
if (not $IIl1IlIIllII1I1lIlIIIIlIIII1lII =~ /$l1II1Il1III1lIIIII1Il1II11IlI1I/) { | |
$llIl1llIllI111l1III1IlI1l1lllII = $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
else { | |
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/$l1II1Il1III1lIIIII1Il1II11IlI1I/, $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0); | |
$llIl1llIllI111l1III1IlI1l1lllII = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[0]; | |
} | |
if ($lIIl1l1l1I11I1ll11l1llII11I111l eq '') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = $llIl1llIllI111l1III1IlI1l1lllII; | |
} | |
else { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = $llIl1llIllI111l1III1IlI1l1lllII . $l1II1Il1III1lIIIII1Il1II11IlI1I . $lIIl1l1l1I11I1ll11l1llII11I111l; | |
} | |
lIlll11lIIlIIl1IIII1I1II111lIIl $lIl11I1IIl111I1II11lIIllI1II1ll; | |
} | |
sub lII111lIl1lIlllII1I11IlIlIlIIIl { | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $l1IlIIlI1I1llllll11IIl11l1III1I; | |
my $lIl1llIlIII1lIIllIll1llII1IllII = 'zyz'; | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $IIIl11lllllIIlllI1l1l1ll1IlI1I1, $I1111IIll1IlI1lIIllll1lIlll1lI1) = @_; | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll get|set|clear [state_value]\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = lI1I1lllIl1l1l1IllllIl1IIIlIl11(); | |
printf "$lIl11I1IIl111I1II11lIIllI1II1ll\n"; | |
return; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set') { | |
Ill1I1lIlI11l1Ill1Ill11ll1lll11 $I1111IIll1IlI1lIIllll1lIlll1lI1; | |
return; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'clear') { | |
Ill1I1lIlI11l1Ill1Ill11ll1lll11 ''; | |
return; | |
} | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
sub IlI1l1ll1lI111llIlIIIlI1111IIll { | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my @Illl1I1I1ll1lll11llI1l1lIIIlI1I; | |
my $lI1IllIIII11IIIlI1lII11l1l1lII1; | |
my $IllIIlll1lIl11llIlIlII1llll1ll1; | |
my $llI1lI1l1lll11lIII11IlI1IlII1lI; | |
my $lIII11l1llI1Il1III1II11lIlllII1; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lI1I1I1Il11IIl1l1IIIll1llIIII('sdr type fan -v '); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
my(@lI11IIIl11II11l111lIII1III11lI1) = split(/Sensor ID/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0); | |
shift @lI11IIIl11II11l111lIII1III11lI1; | |
my @Ill1I111ll11l1ll1IllII1IlIIl11l; | |
foreach my $lI1II1Il11llI1l11IllIIl1l1l1lll (@lI11IIIl11II11l111lIII1III11lI1) { | |
my @l1IIl11IIIIll11II1l11l1I11llI1l; | |
$lI1II1Il11llI1l11IllIIl1l1l1lll = 'Sensor ID' . $lI1II1Il11llI1l11IllIIl1l1l1lll; | |
$lI1IllIIII11IIIlI1lII11l1l1lII1 = ''; | |
$IllIIlll1lIl11llIlIlII1llll1ll1 = ''; | |
$llI1lI1l1lll11lIII11IlI1IlII1lI = ''; | |
$lIII11l1llI1Il1III1II11lIlllII1 = ''; | |
$lI1IllIIII11IIIlI1lII11l1l1lII1 = I1I1IIlll111ll11111lII1IIlIllIl('Sensor ID', $lI1II1Il11llI1l11IllIIl1l1l1lll); | |
$IllIIlll1lIl11llIlIlII1llll1ll1 = I1I1IIlll111ll11111lII1IIlIllIl('Sensor Reading', $lI1II1Il11llI1l11IllIIl1l1l1lll); | |
$lIII11l1llI1Il1III1II11lIlllII1 = I1I1IIlll111ll11111lII1IIlIllIl('Upper critical', $lI1II1Il11llI1l11IllIIl1l1l1lll); | |
$lI1IllIIII11IIIlI1lII11l1l1lII1 = I11lllII1lll111II1IllIIl1II1llI(ll11ll111I1IIIIll1ll1l1IlIIIl1l('\\(', $lI1IllIIII11IIIlI1lII11l1l1lII1)); | |
$IllIIlll1lIl11llIlIlII1llll1ll1 = I11lllII1lll111II1IllIIl1II1llI(ll11ll111I1IIIIll1ll1l1IlIIIl1l('\\(', $IllIIlll1lIl11llIlIlII1llll1ll1)); | |
$lIII11l1llI1Il1III1II11lIlllII1 = sprintf('%d', $lIII11l1llI1Il1III1II11lIlllII1); | |
if ($IllIIlll1lIl11llIlIlII1llll1ll1 =~ /no reading/i) { | |
$llI1lI1l1lll11lIII11IlI1IlII1lI = l111I11lIllllI1l1IlIIlIIl1l1l1I(); | |
} | |
elsif ($IllIIlll1lIl11llIlIlII1llll1ll1 =~ /Disabled/i) { | |
$llI1lI1l1lll11lIII11IlI1IlII1lI = I1I11lIIll1lIIII1II11IlIl1ll11I(); | |
} | |
else { | |
if ($I1I1IllI1Il11111111II11lI11I1lI eq 'C6220') { | |
my $III11Il11IIIlIIlllI11IlIlIII1lI = $IllIIlll1lIl11llIlIlII1llll1ll1 / 16380 * 100; | |
$llI1lI1l1lll11lIII11IlI1IlII1lI = sprintf('%d', $III11Il11IIIlIIlllI11IlIlIII1lI); | |
} | |
elsif ($I1I1IllI1Il11111111II11lI11I1lI eq 'C8220') { | |
my $III11Il11IIIlIIlllI11IlIlIII1lI = $IllIIlll1lIl11llIlIlII1llll1ll1 / 7500 * 100; | |
$llI1lI1l1lll11lIII11IlI1IlII1lI = sprintf('%d', $III11Il11IIIlIIlllI11IlIlIII1lI); | |
} | |
else { | |
my $III11Il11IIIlIIlllI11IlIlIII1lI = $IllIIlll1lIl11llIlIlII1llll1ll1 / $lIII11l1llI1Il1III1II11lIlllII1 * 100; | |
$llI1lI1l1lll11lIII11IlI1IlII1lI = sprintf('%d', $III11Il11IIIlIIlllI11IlIlIII1lI); | |
} | |
if ($llI1lI1l1lll11lIII11IlI1IlII1lI > 100) { | |
$llI1lI1l1lll11lIII11IlI1IlII1lI = 100; | |
} | |
} | |
push @l1IIl11IIIIll11II1l11l1I11llI1l, $lI1IllIIII11IIIlI1lII11l1l1lII1; | |
push @l1IIl11IIIIll11II1l11l1I11llI1l, $IllIIlll1lIl11llIlIlII1llll1ll1; | |
push @l1IIl11IIIIll11II1l11l1I11llI1l, $lIII11l1llI1Il1III1II11lIlllII1; | |
push @l1IIl11IIIIll11II1l11l1I11llI1l, $llI1lI1l1lll11lIII11IlI1IlII1lI; | |
push @Ill1I111ll11l1ll1IllII1IlIIl11l, \@l1IIl11IIIIll11II1l11l1I11llI1l; | |
} | |
return \@Ill1I111ll11l1ll1IllII1IlIIl11l; | |
} | |
sub lIIIIIIlIll1111lIIl11lIll1lll11 { | |
my $I1IIIlI1ll11Ill11lIl1I1l1I1Il1I = 0; | |
my $ll1Ill1Il1lI1l11111llIll1l1ll11 = 0; | |
my $I11l1lIl1lII111I1lI1IIll1l1Il1l; | |
my $lI1l1lIII1llIlI11111IllIl1lIl1I = IlI1l1ll1lI111llIlIIIlI1111IIll(); | |
foreach my $lIlIl1l1IIlllIIlIIlII1Il1II1Ill (@$lI1l1lIII1llIlI11111IllIl1lIl1I) { | |
my(@llllII11l1l1lI1I1I1lI11IlIIIIIl) = @$lIlIl1l1IIlllIIlIIlII1Il1II1Ill; | |
if (l1IIl1I1ll11III11I1III1lIlI11lI $llllII11l1l1lI1I1I1lI11IlIIIIIl[3]) { | |
return l111I11lIllllI1l1IlIIlIIl1l1l1I(); | |
} | |
if (lIll1lIIllIII1IlI11l111llII1I1I $llllII11l1l1lI1I1I1lI11IlIIIIIl[3]) { | |
return I1I11lIIll1lIIII1II11IlIl1ll11I(); | |
} | |
$ll1Ill1Il1lI1l11111llIll1l1ll11 += $llllII11l1l1lI1I1I1lI11IlIIIIIl[3]; | |
++$I1IIIlI1ll11Ill11lIl1I1l1I1Il1I; | |
} | |
$I11l1lIl1lII111I1lI1IIll1l1Il1l = $ll1Ill1Il1lI1l11111llIll1l1ll11 / $I1IIIlI1ll11Ill11lIl1I1l1I1Il1I; | |
$I11l1lIl1lII111I1lI1IIll1l1Il1l = sprintf('%d', $I11l1lIl1lII111I1lI1IIll1l1Il1l); | |
return $I11l1lIl1lII111I1lI1IIll1l1Il1l; | |
} | |
sub IIl1l1lIlII1lI11IIIlllllIII1II1 { | |
my $l11lIIII11IlIlI1l1l1lIlI1I1l1II = shift @_; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my @llllI1l1I1II1Ill1Illl111IlI11Il; | |
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll; | |
my $I11lIllIl1IIIlIII111lIl11l11IIl; | |
my $Ill1ll1ll1IllI11l111lIl11III11I; | |
my $I1l1Ill1111IlIll111Il1lllIIlll1; | |
my $lllII1l111I11llIl1lI111lIllI1I1; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lI1I1I1Il11IIl1l1IIIll1llIIII(qq[sdr type "$l11lIIII11IlIlI1l1l1lIlI1I1l1II" ]); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
$l11lIIII11IlIlI1l1l1lIlI1I1l1II = lc $l11lIIII11IlIlI1l1l1lIlI1I1l1II; | |
my(@Illl1I1I1ll1lll11llI1l1lIIIlI1I) = split(/\n/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0); | |
foreach my $l11IIIIllIIl1lll111II11lI1ll1l1 (@Illl1I1I1ll1lll11llI1l1lIIIlI1I) { | |
$l11IIIIllIIl1lll111II11lI1ll1l1 = l11l1I1Ill1Il11llIlIlIlllll1l1l($l11IIIIllIIl1lll111II11lI1ll1l1); | |
@llllI1l1I1II1Ill1Illl111IlI11Il = split(/\|/, $l11IIIIllIIl1lll111II11lI1ll1l1, 0); | |
$II1Ill1IllI1l1Il1ll11l1l1lll1ll = I11lllII1lll111II1IllIIl1II1llI($llllI1l1I1II1Ill1Illl111IlI11Il[0]); | |
$I11lIllIl1IIIlIII111lIl11l11IIl = I11lllII1lll111II1IllIIl1II1llI($llllI1l1I1II1Ill1Illl111IlI11Il[1]); | |
$Ill1ll1ll1IllI11l111lIl11III11I = I11lllII1lll111II1IllIIl1II1llI($llllI1l1I1II1Ill1Illl111IlI11Il[2]); | |
$I1l1Ill1111IlIll111Il1lllIIlll1 = I11lllII1lll111II1IllIIl1II1llI($llllI1l1I1II1Ill1Illl111IlI11Il[3]); | |
$lllII1l111I11llIl1lI111lIllI1I1 = I11lllII1lll111II1IllIIl1II1llI($llllI1l1I1II1Ill1Illl111IlI11Il[4]); | |
$lllII1l111I11llIl1lI111lIllI1I1 =~ s/,/|/g; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = sprintf("ipmi,%s,%s,%s,%s,%s\n", $l11lIIII11IlIlI1l1l1lIlI1I1l1II, $I11lIllIl1IIIlIII111lIl11l11IIl, $II1Ill1IllI1l1Il1ll11l1l1lll1ll, $lllII1l111I11llIl1lI111lIllI1I1, $Ill1ll1ll1IllI11l111lIl11III11I); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = lc $lIl11I1IIl111I1II11lIIllI1II1ll; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= $lIl11I1IIl111I1II11lIIllI1II1ll; | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub l1lIll11111Il1IllIll1ll11I1l1I1 { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
my $II1Il1l1I1Illll1I1ll11IIIlI1IlI = shift @_; | |
my $l11II1l11I1Il11l1II1llIIIIll1ll = shift @_; | |
my @Illl1I1I1ll1lll11llI1l1lIIIlI1I; | |
my @llllI1l1I1II1Ill1Illl111IlI11Il; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
my $lIIII1l11llIIl1IlIl111IllIIIll1 = ''; | |
my $II1l1ll1I111I1IlIIlll1lllIIlIll = ''; | |
@Illl1I1I1ll1lll11llI1l1lIIIlI1I = split(/\n/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0); | |
foreach my $l11IIIIllIIl1lll111II11lI1ll1l1 (@Illl1I1I1ll1lll11llI1l1lIIIlI1I) { | |
$II1l1ll1I111I1IlIIlll1lllIIlIll = ''; | |
$lIIII1l11llIIl1IlIl111IllIIIll1 = ''; | |
my($IIll11ll1llll1llII1lIIIIIlllll1, $IIl1l1ll1IllIl11111IIlII1lI11I1, $I11lIllIl1IIIlIII111lIl11l11IIl, $II1Ill1IllI1l1Il1ll11l1l1lll1ll, $lllII1l111I11llIl1lI111lIllI1I1, $Ill1ll1ll1IllI11l111lIl11III11I) = split(/,/, $l11IIIIllIIl1lll111II11lI1ll1l1, 7); | |
if ($IIll11ll1llll1llII1lIIIIIlllll1 ne 'ipmi') { | |
print "not ipmi\n"; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= "$l11IIIIllIIl1lll111II11lI1ll1l1" . "\n"; | |
next; | |
} | |
$I11lIllIl1IIIlIII111lIl11l11IIl =~ s/h//g; | |
$I11lIllIl1IIIlIII111lIl11l11IIl = '0x' . $I11lIllIl1IIIlIII111lIl11l11IIl; | |
if ($IIl1l1ll1IllIl11111IIlII1lI11I1 eq 'fan') { | |
$lIIII1l11llIIl1IlIl111IllIIIll1 = 'fan'; | |
} | |
if ($IIl1l1ll1IllIl11111IIlII1lI11I1 eq 'temperature') { | |
$lIIII1l11llIIl1IlIl111IllIIIll1 = 'temp'; | |
} | |
if ($IIl1l1ll1IllIl11111IIlII1lI11I1 eq 'voltage') { | |
$lIIII1l11llIIl1IlIl111IllIIIll1 = 'volt'; | |
} | |
if ($IIl1l1ll1IllIl11111IIlII1lI11I1 eq 'power supply') { | |
$lIIII1l11llIIl1IlIl111IllIIIll1 = 'psu'; | |
} | |
if ($IIl1l1ll1IllIl11111IIlII1lI11I1 eq 'power unit') { | |
$lIIII1l11llIIl1IlIl111IllIIIll1 = 'psu'; | |
} | |
if ($II1Il1l1I1Illll1I1ll11IIIlI1IlI =~ /inject/i) { | |
$Ill1ll1ll1IllI11l111lIl11III11I = $l11II1l11I1Il11l1II1llIIIIll1ll; | |
} | |
if ($Ill1ll1ll1IllI11l111lIl11III11I eq 'ok' or $Ill1ll1ll1IllI11l111lIl11III11I eq 'ns') { | |
$II1l1ll1I111I1IlIIlll1lllIIlIll = 'Ok'; | |
} | |
else { | |
$II1l1ll1I111I1IlIIlll1lllIIlIll = 'Alert'; | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= "$IIll11ll1llll1llII1lIIIIIlllll1,$IIl1l1ll1IllIl11111IIlII1lI11I1,$I11lIllIl1IIIlIII111lIl11l11IIl,$II1Ill1IllI1l1Il1ll11l1l1lll1ll,$lllII1l111I11llIl1lI111lIllI1I1,$Ill1ll1ll1IllI11l111lIl11III11I,$lIIII1l11llIIl1IlIl111IllIIIll1" . $II1l1ll1I111I1IlIIlll1lllIIlIll . "\n"; | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub lll11IIl1IlIl1IlI1llIIIIl1I11lI { | |
my $lIIIl1IlI1l1lII11lIIIIlI1II11Il = shift @_; | |
my $Il11111IIIl1IIlIII1lII1l11l11II = shift @_; | |
my $lllI1l1I1lI1I1Illl1II1II1II1lI1 = shift @_; | |
my $IIIlIlIll1lIll1lllIlll11I1I1I1I = shift @_; | |
my $lIll11ll1II11llI1l111IIIl1lIll1 = shift @_; | |
my $lll1l1lIlIIll11l1I1l1I1l11lI11l = shift @_; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $lllI1IlIl1lIIll111ll1l1llII11II; | |
$lllI1IlIl1lIIll111ll1l1llII11II = 'Ok'; | |
if ($lIll11ll1II11llI1l111IIIl1lIll1) { | |
$lllI1IlIl1lIIll111ll1l1llII11II = 'Full'; | |
} | |
elsif ($IIIlIlIll1lIll1lllIlll11I1I1I1I) { | |
$lllI1IlIl1lIIll111ll1l1llII11II = 'AlmostFull'; | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = sprintf('ipmi,sel log,%s,%s,%s,%s,sel%s', $lIIIl1IlI1l1lII11lIIIIlI1II11Il, $Il11111IIIl1IIlIII1lII1l11l11II, $lllI1l1I1lI1I1Illl1II1II1II1lI1, $lll1l1lIlIIll11l1I1l1I1l11lI11l, $lllI1IlIl1lIIll111ll1l1llII11II); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= "\n"; | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub lI1I1llII1I11IlIll1I11l1I1lll1l { | |
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_; | |
my $II1Il1l1I1Illll1I1ll11IIIlI1IlI = shift @_ || ''; | |
my $II1IllI1IllIllIII1l1Ill1lIIIll1 = shift @_ || ''; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll = ''; | |
my $Ill1IlIlI111ll1IlI1Ill11IlII1I1; | |
$lIl11I1IIl111I1II11lIIllI1II1ll .= IIl1l1lIlII1lI11IIIlllllIII1II1('Fan'); | |
$lIl11I1IIl111I1II11lIIllI1II1ll .= IIl1l1lIlII1lI11IIIlllllIII1II1('Temperature'); | |
$lIl11I1IIl111I1II11lIIllI1II1ll .= IIl1l1lIlII1lI11IIIlllllIII1II1('Voltage'); | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll .= IIl1l1lIlII1lI11IIIlllllIII1II1('Power Unit'); | |
} | |
else { | |
$lIl11I1IIl111I1II11lIIllI1II1ll .= IIl1l1lIlII1lI11IIIlllllIII1II1('Power Supply'); | |
} | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lIll11111Il1IllIll1ll11I1l1I1($lIl11I1IIl111I1II11lIIllI1II1ll, $II1Il1l1I1Illll1I1ll11IIIlI1IlI, $II1IllI1IllIllIII1l1Ill1lIIIll1); | |
my($lIIIl1IlI1l1lII11lIIIIlI1II11Il, $Il11111IIIl1IIlIII1lII1l11l11II, $lllI1l1I1lI1I1Illl1II1II1II1lI1, $IIIlIlIll1lIll1lllIlll11I1I1I1I, $lIll11ll1II11llI1l111IIIl1lIll1, $lll1l1lIlIIll11l1I1l1I1l11lI11l) = l1IlIll1I1I11Il11IIlI1IIlI1IlI1(); | |
$Ill1IlIlI111ll1IlI1Ill11IlII1I1 = lll11IIl1IlIl1IlI1llIIIIl1I11lI($lIIIl1IlI1l1lII11lIIIIlI1II11Il, $Il11111IIIl1IIlIII1lII1l11l11II, $lllI1l1I1lI1I1Illl1II1II1II1lI1, $IIIlIlIll1lIll1lllIlll11I1I1I1I, $lIll11ll1II11llI1l111IIIl1lIll1, $lll1l1lIlIIll11l1I1l1I1l11lI11l); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = $Ill1IlIlI111ll1IlI1Ill11IlII1I1 . $lIl11I1IIl111I1II11lIIllI1II1ll; | |
print "$lIl11I1IIl111I1II11lIIllI1II1ll"; | |
} | |
sub I11l1lllllI111lIl1l11I1I111Ill1 { | |
my @l11IIllIllIIll1Il111I1IIIlllllI; | |
my $l11IIIIllIIl1lll111II11lI1ll1l1 = shift @_; | |
my $l11lIll1Il1Il111Ill1lIll1III11l = shift @_; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = 1; | |
my $lIII1l1IIIlll1l1lIlIl1l1111I1I1 = 0; | |
$l11lIll1Il1Il111Ill1lIll1III11l = I11lllII1lll111II1IllIIl1II1llI($l11lIll1Il1Il111Ill1lIll1III11l); | |
if ($lIII1l1IIIlll1l1lIlIl1l1111I1I1) { | |
print "line: $l11IIIIllIIl1lll111II11lI1ll1l1\n"; | |
print "rule: $l11lIll1Il1Il111Ill1lIll1III11l\n"; | |
} | |
if ($l11lIll1Il1Il111Ill1lIll1III11l eq '') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0; | |
} | |
@l11IIllIllIIll1Il111I1IIIlllllI = split(/{{&&}}/, $l11lIll1Il1Il111Ill1lIll1III11l, 0); | |
foreach my $II1111l1lIlIll11I111lIl1llllIII (@l11IIllIllIIll1Il111I1IIIlllllI) { | |
$II1111l1lIlIll11I111lIl1llllIII = I11lllII1lll111II1IllIIl1II1llI($II1111l1lIlIll11I111lIl1llllIII); | |
if (index($l11IIIIllIIl1lll111II11lI1ll1l1, $II1111l1lIlIll11I111lIl1llllIII) < 0) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0; | |
} | |
} | |
print "match:$IIl1IlIIllII1I1lIlIIIIlIIII1lII\n" if $lIII1l1IIIlll1l1lIlIl1l1111I1I1; | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub I11l1lll1ll1l1I1I11II1II1l1I11l { | |
my $l111lIIlIIl11111lIllIl1I1Il1I1I = shift @_; | |
my $lIlll1II1Il111l111I11Il1llIl1II = 'crit'; | |
my $i; | |
my $l11lIll1Il1Il111Ill1lIll1III11l; | |
my $lIII1l1IIIlll1l1lIlIl1l1111I1I1 = 0; | |
if ($lIII1l1IIIlll1l1lIlIl1l1111I1I1) { | |
printf "crit rules: %d \n", $#IIIl1lIlll1II1lll1l11l1lllI11I1 + 1; | |
printf "warn rules: %d \n", $#I111l111111II1l111111IIIllIIII1 + 1; | |
printf "info rules: %d \n", $#I1l1llIllllIlI1IIll1I1IIIllIl1I + 1; | |
printf "ign rules: %d \n", $#lIllIIlIIIIlll11II11ll111l1IIIl + 1; | |
} | |
if ($#IIIl1lIlll1II1lll1l11l1lllI11I1 >= 0) { | |
$i = 0; | |
foreach $l11lIll1Il1Il111Ill1lIll1III11l (@IIIl1lIlll1II1lll1l11l1lllI11I1) { | |
print "\n" if $lIII1l1IIIlll1l1lIlIl1l1111I1I1; | |
++$i; | |
if (I11l1lllllI111lIl1l11I1I111Ill1($l111lIIlIIl11111lIllIl1I1Il1I1I, $l11lIll1Il1Il111Ill1lIll1III11l) != 0) { | |
$lIlll1II1Il111l111I11Il1llIl1II = 'CRIT'; | |
print "*** matched CRIT $i :: $l11lIll1Il1Il111Ill1lIll1III11l\n" if $lIII1l1IIIlll1l1lIlIl1l1111I1I1; | |
return $lIlll1II1Il111l111I11Il1llIl1II; | |
} | |
} | |
} | |
if ($#I111l111111II1l111111IIIllIIII1 >= 0) { | |
$i = 0; | |
foreach $l11lIll1Il1Il111Ill1lIll1III11l (@I111l111111II1l111111IIIllIIII1) { | |
print "\n" if $lIII1l1IIIlll1l1lIlIl1l1111I1I1; | |
++$i; | |
if (I11l1lllllI111lIl1l11I1I111Ill1($l111lIIlIIl11111lIllIl1I1Il1I1I, $l11lIll1Il1Il111Ill1lIll1III11l) != 0) { | |
$lIlll1II1Il111l111I11Il1llIl1II = 'WARN'; | |
print "*** matched WARN $i :: $l11lIll1Il1Il111Ill1lIll1III11l\n" if $lIII1l1IIIlll1l1lIlIl1l1111I1I1; | |
return $lIlll1II1Il111l111I11Il1llIl1II; | |
} | |
} | |
} | |
if ($#I1l1llIllllIlI1IIll1I1IIIllIl1I >= 0) { | |
$i = 0; | |
foreach $l11lIll1Il1Il111Ill1lIll1III11l (@I1l1llIllllIlI1IIll1I1IIIllIl1I) { | |
print "\n" if $lIII1l1IIIlll1l1lIlIl1l1111I1I1; | |
++$i; | |
if (I11l1lllllI111lIl1l11I1I111Ill1($l111lIIlIIl11111lIllIl1I1Il1I1I, $l11lIll1Il1Il111Ill1lIll1III11l) != 0) { | |
$lIlll1II1Il111l111I11Il1llIl1II = 'INFO'; | |
print "*** matched INFO $i :: $l11lIll1Il1Il111Ill1lIll1III11l\n" if $lIII1l1IIIlll1l1lIlIl1l1111I1I1; | |
return $lIlll1II1Il111l111I11Il1llIl1II; | |
} | |
} | |
} | |
if ($#lIllIIlIIIIlll11II11ll111l1IIIl >= 0) { | |
$i = 0; | |
foreach $l11lIll1Il1Il111Ill1lIll1III11l (@lIllIIlIIIIlll11II11ll111l1IIIl) { | |
print "\n" if $lIII1l1IIIlll1l1lIlIl1l1111I1I1; | |
++$i; | |
if (I11l1lllllI111lIl1l11I1I111Ill1($l111lIIlIIl11111lIllIl1I1Il1I1I, $l11lIll1Il1Il111Ill1lIll1III11l) != 0) { | |
$lIlll1II1Il111l111I11Il1llIl1II = 'XXXX'; | |
print "*** matched IGNORE $i :: $l11lIll1Il1Il111Ill1lIll1III11l\n" if $lIII1l1IIIlll1l1lIlIl1l1111I1I1; | |
return $lIlll1II1Il111l111I11Il1llIl1II; | |
} | |
} | |
} | |
return $lIlll1II1Il111l111I11Il1llIl1II; | |
} | |
sub l111llII11l1l1IIlIlIlI11llI11I1 { | |
my $l1III1IlIl1I11ll1IlIIll1Il1I1l1; | |
my $lI1IllIIII11IIIlI1lII11l1l1lII1; | |
my @l1I111IIl11I1ll1lllIlllIllII1ll; | |
my $lIlll1II1Il111l111I11Il1llIl1II; | |
my $l11lIll1Il1Il111Ill1lIll1III11l; | |
@lIllIIlIIIIlll11II11ll111l1IIIl = (); | |
@I1l1llIllllIlI1IIll1I1IIIllIl1I = (); | |
@I111l111111II1l111111IIIllIIII1 = (); | |
@IIIl1lIlll1II1lll1l11l1lllI11I1 = (); | |
$lI1IllIIII11IIIlI1lII11l1l1lII1 = './bmc.selfilter.' . II111lIlIlIIlIll1IllII1lIlI1lIl($III111lll1l1l111lIIlll1II1IlI11); | |
if (not -e "$lI1IllIIII11IIIlI1lII11l1l1lII1") { | |
$lI1IllIIII11IIIlI1lII11l1l1lII1 = $II1l1I11111Il111lI1IIl11I1Ill11 . 'bmc.selfilter.' . II111lIlIlIIlIll1IllII1lIlI1lIl($III111lll1l1l111lIIlll1II1IlI11); | |
} | |
if (not -e "$lI1IllIIII11IIIlI1lII11l1l1lII1") { | |
print "\n"; | |
print "Could not find SEL filter rules file for platform $III111lll1l1l111lIIlll1II1IlI11 in current directory\n"; | |
print "or in default location: $lI1IllIIII11IIIlI1lII11l1l1lII1 \n"; | |
print "\n"; | |
print "See the README and the rules file for short instructions regarding how to configure\n"; | |
print "this. (It's very quick to set up.)\n"; | |
print "\n"; | |
exit 1; | |
} | |
if (-e "$lI1IllIIII11IIIlI1lII11l1l1lII1") { | |
die "\nError: could not open file: $lI1IllIIII11IIIlI1lII11l1l1lII1\n\n" unless open MYFILE, $lI1IllIIII11IIIlI1lII11l1l1lII1; | |
while (defined($_ = <MYFILE>)) { | |
$l1III1IlIl1I11ll1IlIIll1Il1I1l1 = I11lllII1lll111II1IllIIl1II1llI($_); | |
if ($l1III1IlIl1I11ll1IlIIll1Il1I1l1 eq '') { | |
next; | |
} | |
if ($l1III1IlIl1I11ll1IlIIll1Il1I1l1 =~ /^#/) { | |
next; | |
} | |
$lIlll1II1Il111l111I11Il1llIl1II = ll11ll111I1IIIIll1ll1l1IlIIIl1l(',', $l1III1IlIl1I11ll1IlIIll1Il1I1l1); | |
$lIlll1II1Il111l111I11Il1llIl1II = I11lllII1lll111II1IllIIl1II1llI($lIlll1II1Il111l111I11Il1llIl1II); | |
$lIlll1II1Il111l111I11Il1llIl1II = II111lIlIlIIlIll1IllII1lIlI1lIl($lIlll1II1Il111l111I11Il1llIl1II); | |
if (not $lIlll1II1Il111l111I11Il1llIl1II eq 'ignore' || $lIlll1II1Il111l111I11Il1llIl1II eq 'info' || $lIlll1II1Il111l111I11Il1llIl1II eq 'warn' || $lIlll1II1Il111l111I11Il1llIl1II eq 'crit') { | |
print "invalid severity text : $lIlll1II1Il111l111I11Il1llIl1II \n"; | |
next; | |
} | |
$l11lIll1Il1Il111Ill1lIll1III11l = l1lI11I1llllI1IIII111IllI1l11Il(',', $l1III1IlIl1I11ll1IlIIll1Il1I1l1); | |
$l11lIll1Il1Il111Ill1lIll1III11l = I11lllII1lll111II1IllIIl1II1llI($l11lIll1Il1Il111Ill1lIll1III11l); | |
if ($lIlll1II1Il111l111I11Il1llIl1II eq 'ignore') { | |
push @lIllIIlIIIIlll11II11ll111l1IIIl, $l11lIll1Il1Il111Ill1lIll1III11l; | |
} | |
if ($lIlll1II1Il111l111I11Il1llIl1II eq 'info') { | |
push @I1l1llIllllIlI1IIll1I1IIIllIl1I, $l11lIll1Il1Il111Ill1lIll1III11l; | |
} | |
if ($lIlll1II1Il111l111I11Il1llIl1II eq 'warn') { | |
push @I111l111111II1l111111IIIllIIII1, $l11lIll1Il1Il111Ill1lIll1III11l; | |
} | |
if ($lIlll1II1Il111l111I11Il1llIl1II eq 'crit') { | |
push @IIIl1lIlll1II1lll1l11l1lllI11I1, $l11lIll1Il1Il111Ill1lIll1III11l; | |
} | |
} | |
close MYFILE; | |
} | |
} | |
sub I1Il1I1IlI11lIIlII11lIl1l111I1l { | |
my $llIIIl1Il1lll11IIlIlll1Il11111I = shift @_; | |
my $IIIIII1llI111111III1lIl1Ill1II1 = shift @_ || ''; | |
my $l11IIIIllIIl1lll111II11lI1ll1l1; | |
my @Illl1I1I1ll1lll11llI1l1lIIIlI1I; | |
my $lIlll1II1Il111l111I11Il1llIl1II; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
my $I1lI1l1IIIIIlI1II1IllIIl1IIIl1l; | |
my $l1IIll1lllI11l111l1II1Ill11IIll = 1; | |
my $I1Il1I111l1llIl1I1llIlII11I111I = 1; | |
my $lI1I11I1IlIlI1lII11IllIl11lIIll = 1; | |
my $IllI1lIIlI1Il1l1II111lIlllI1Il1 = 1; | |
$IIIIII1llI111111III1lIl1Ill1II1 = I11lllII1lll111II1IllIIl1II1llI($IIIIII1llI111111III1lIl1Ill1II1); | |
$IIIIII1llI111111III1lIl1Ill1II1 = II111lIlIlIIlIll1IllII1lIlI1lIl($IIIIII1llI111111III1lIl1Ill1II1); | |
if ($IIIIII1llI111111III1lIl1Ill1II1 eq 'info') { | |
$l1IIll1lllI11l111l1II1Ill11IIll = 0; | |
$I1Il1I111l1llIl1I1llIlII11I111I = 1; | |
$lI1I11I1IlIlI1lII11IllIl11lIIll = 1; | |
$IllI1lIIlI1Il1l1II111lIlllI1Il1 = 1; | |
} | |
if ($IIIIII1llI111111III1lIl1Ill1II1 eq 'warn') { | |
$l1IIll1lllI11l111l1II1Ill11IIll = 0; | |
$I1Il1I111l1llIl1I1llIlII11I111I = 0; | |
$lI1I11I1IlIlI1lII11IllIl11lIIll = 1; | |
$IllI1lIIlI1Il1l1II111lIlllI1Il1 = 1; | |
} | |
if ($IIIIII1llI111111III1lIl1Ill1II1 eq 'crit') { | |
$l1IIll1lllI11l111l1II1Ill11IIll = 0; | |
$I1Il1I111l1llIl1I1llIlII11I111I = 0; | |
$lI1I11I1IlIlI1lII11IllIl11lIIll = 0; | |
$IllI1lIIlI1Il1l1II111lIlllI1Il1 = 1; | |
} | |
@Illl1I1I1ll1lll11llI1l1lIIIlI1I = split(/\n/, $llIIIl1Il1lll11IIlIlll1Il11111I, 0); | |
foreach my $l11IIIIllIIl1lll111II11lI1ll1l1 (@Illl1I1I1ll1lll11llI1l1lIIIlI1I) { | |
$l11IIIIllIIl1lll111II11lI1ll1l1 = I11lllII1lll111II1IllIIl1II1llI($l11IIIIllIIl1lll111II11lI1ll1l1); | |
if ($l11IIIIllIIl1lll111II11lI1ll1l1 eq '') { | |
next; | |
} | |
$lIlll1II1Il111l111I11Il1llIl1II = I11l1lll1ll1l1I1I11II1II1l1I11l($l11IIIIllIIl1lll111II11lI1ll1l1); | |
$I1lI1l1IIIIIlI1II1IllIIl1IIIl1l = 1; | |
if ($lIlll1II1Il111l111I11Il1llIl1II eq 'crit' or $lIlll1II1Il111l111I11Il1llIl1II eq 'CRIT') { | |
$I1lI1l1IIIIIlI1II1IllIIl1IIIl1l = $IllI1lIIlI1Il1l1II111lIlllI1Il1; | |
} | |
if ($lIlll1II1Il111l111I11Il1llIl1II eq 'WARN') { | |
$I1lI1l1IIIIIlI1II1IllIIl1IIIl1l = $lI1I11I1IlIlI1lII11IllIl11lIIll; | |
} | |
if ($lIlll1II1Il111l111I11Il1llIl1II eq 'INFO') { | |
$I1lI1l1IIIIIlI1II1IllIIl1IIIl1l = $I1Il1I111l1llIl1I1llIlII11I111I; | |
} | |
if ($lIlll1II1Il111l111I11Il1llIl1II eq 'XXXX') { | |
$I1lI1l1IIIIIlI1II1IllIIl1IIIl1l = $l1IIll1lllI11l111l1II1Ill11IIll; | |
} | |
if ($I1lI1l1IIIIIlI1II1IllIIl1IIIl1l) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= sprintf("$lIlll1II1Il111l111I11Il1llIl1II | $l11IIIIllIIl1lll111II11lI1ll1l1\n"); | |
} | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub I1Il111l111llllI1l1I1II1l11II1l { | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_; | |
my $l1IlI11Il1I1lII1llllllII1I111ll = shift @_; | |
my $IIIIII1llI111111III1lIl1Ill1II1 = shift @_ || 'all'; | |
my $III111Ill1lIIl1llIl1llllI1lllll; | |
my $Il11I111l11l1I1I11IlI11l1IlIIl1; | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 == 1) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll num_most_recent_entries|all [all|info|warn|crit] \n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
if ($l1IlI11Il1I1lII1llllllII1I111ll eq 'all') { | |
$III111Ill1lIIl1llIl1llllI1lllll = l1lI1I1I1Il11IIl1l1IIIll1llIIII('sel list'); | |
} | |
else { | |
$III111Ill1lIIl1llIl1llllI1lllll = l1lI1I1I1Il11IIl1l1IIIll1llIIII("sel list last $l1IlI11Il1I1lII1llllllII1I111ll "); | |
} | |
l111llII11l1l1IIlIlIlI11llI11I1 ; | |
$Il11I111l11l1I1I11IlI11l1IlIIl1 = I1Il1I1IlI11lIIlII11lIl1l111I1l($III111Ill1lIIl1llIl1llllI1lllll, $IIIIII1llI111111III1lIl1Ill1II1); | |
print "$Il11I111l11l1I1I11IlI11l1IlIIl1\n"; | |
} | |
sub IIllIll1lllI111I1ll1ll1lII1I11I { | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_; | |
my $IIIIII1llI111111III1lIl1Ill1II1 = shift @_ || 'all'; | |
my $III111Ill1lIIl1llIl1llllI1lllll; | |
my $Il11I111l11l1I1I11IlI11l1IlIIl1; | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 == 1) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll [all|info|warn|crit] \n"; | |
printf "\n"; | |
printf "This function affixes a severity to each SEL line, based on the rules file (usually\n"; | |
printf "bmc.selfilter.PLATFORM).\n"; | |
printf "\n"; | |
printf "Only SEL errors exceeding the specified level will be shown.\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
$III111Ill1lIIl1llIl1llllI1lllll = l1lI1I1I1Il11IIl1l1IIIll1llIIII('sel list'); | |
l111llII11l1l1IIlIlIlI11llI11I1 ; | |
$Il11I111l11l1I1I11IlI11l1IlIIl1 = I1Il1I1IlI11lIIlII11lIl1l111I1l($III111Ill1lIIl1llIl1llllI1lllll, $IIIIII1llI111111III1lIl1Ill1II1); | |
print "\n"; | |
print "$Il11I111l11l1I1I11IlI11l1IlIIl1\n"; | |
} | |
sub IllIll11IlI1I11l11l1IllII111Ill { | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_; | |
my $lI1IllIIII11IIIlI1lII11l1l1lII1 = shift @_; | |
my $IIIIII1llI111111III1lIl1Ill1II1 = shift @_ || 'all'; | |
my $III111Ill1lIIl1llIl1llllI1lllll = ''; | |
my $Il11I111l11l1I1I11IlI11l1IlIIl1; | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 == 1) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll sel_log_filename [all|info|warn|crit] \n"; | |
printf "\n"; | |
printf "This function reads a SEL log from a file and affixes a severity to each SEL line,\n"; | |
printf "based on the rules file (usually bmc.selfilter.PLATFORM).\n"; | |
printf "\n"; | |
printf "Only SEL errors exceeding the specified level will be shown.\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
die "\nError: could not open file: $lI1IllIIII11IIIlI1lII11l1l1lII1\n\n" unless open MYFILE, $lI1IllIIII11IIIlI1lII11l1l1lII1; | |
while (defined($_ = <MYFILE>)) { | |
$III111Ill1lIIl1llIl1llllI1lllll .= $_; | |
} | |
l111llII11l1l1IIlIlIlI11llI11I1 ; | |
$Il11I111l11l1I1I11IlI11l1IlIIl1 = I1Il1I1IlI11lIIlII11lIl1l111I1l($III111Ill1lIIl1llIl1llllI1lllll, $IIIIII1llI111111III1lIl1Ill1II1); | |
print "$Il11I111l11l1I1I11IlI11l1IlIIl1\n"; | |
} | |
sub l1IlIll1I1I11Il11IIlI1IIlI1IlI1 { | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $lIIIl1IlI1l1lII11lIIIIlI1II11Il; | |
my $Il11111IIIl1IIlIII1lII1l11l11II; | |
my $lllI1l1I1lI1I1Illl1II1II1II1lI1; | |
my $IIIlIlIll1lIll1lllIlll11I1I1I1I = 0; | |
my $lIll11ll1II11llI1l111IIIl1lIll1 = 0; | |
my $lll1l1lIlIIll11l1I1l1I1l11lI11l; | |
my $x; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lI1I1I1Il11IIl1l1IIIll1llIIII('sel info'); | |
$lIIIl1IlI1l1lII11lIIIIlI1II11Il = I1I1IIlll111ll11111lII1IIlIllIl('Entries', $lIl11I1IIl111I1II11lIIllI1II1ll); | |
$Il11111IIIl1IIlIII1lII1l11l11II = I1I1IIlll111ll11111lII1IIlIllIl(' of Alloc Units', $lIl11I1IIl111I1II11lIIllI1II1ll); | |
$lllI1l1I1lI1I1Illl1II1II1II1lI1 = I1I1IIlll111ll11111lII1IIlIllIl('Percent Used', $lIl11I1IIl111I1II11lIIllI1II1ll); | |
$lllI1l1I1lI1I1Illl1II1II1II1lI1 = ll11ll111I1IIIIll1ll1l1IlIIIl1l('%', $lllI1l1I1lI1I1Illl1II1II1II1lI1); | |
$x = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'Last Add Time', $lIl11I1IIl111I1II11lIIllI1II1ll); | |
$lll1l1lIlIIll11l1I1l1I1l11lI11l = l1lI11I1llllI1IIII111IllI1l11Il(':', $x); | |
$lll1l1lIlIIll11l1I1l1I1l11lI11l = I11lllII1lll111II1IllIIl1II1llI($lll1l1lIlIIll11l1I1l1I1l11lI11l); | |
$lll1l1lIlIIll11l1I1l1I1l11lI11l = lI11lII1111l1111I11I1lllIIll1ll($lll1l1lIlIIll11l1I1l1I1l11lI11l); | |
if ($lllI1l1I1lI1I1Illl1II1II1II1lI1 > 75) { | |
$IIIlIlIll1lIll1lllIlll11I1I1I1I = 1; | |
} | |
if ($lllI1l1I1lI1I1Illl1II1II1II1lI1 > 99) { | |
$lIll11ll1II11llI1l111IIIl1lIll1 = 1; | |
} | |
return $lIIIl1IlI1l1lII11lIIIIlI1II11Il, $Il11111IIIl1IIlIII1lII1l11l11II, $lllI1l1I1lI1I1Illl1II1II1II1lI1, $IIIlIlIll1lIll1lllIlll11I1I1I1I, $lIll11ll1II11llI1l111IIIl1lIll1, $lll1l1lIlIIll11l1I1l1I1l11lI11l; | |
} | |
sub I1lllI1lIIlIllI111I11l1llIllIll { | |
my($lIIIl1IlI1l1lII11lIIIIlI1II11Il, $Il11111IIIl1IIlIII1lII1l11l11II, $lllI1l1I1lI1I1Illl1II1II1II1lI1, $IIIlIlIll1lIll1lllIlll11I1I1I1I, $lIll11ll1II11llI1l111IIIl1lIll1, $lll1l1lIlIIll11l1I1l1I1l11lI11l) = l1IlIll1I1I11Il11IIlI1IIlI1IlI1(); | |
printf "%s / %s ( %d%% ) almostfull: %d full: %d last_add_time: %s \n", $lIIIl1IlI1l1lII11lIIIIlI1II11Il, $Il11111IIIl1IIlIII1lII1l11l11II, $lllI1l1I1lI1I1Illl1II1II1II1lI1, $IIIlIlIll1lIll1lllIlll11I1I1I1I, $lIll11ll1II11llI1l111IIIl1lIll1, $lll1l1lIlIIll11l1I1l1I1l11lI11l; | |
return; | |
} | |
sub l11II11llI11l1lllII1llll1l1111l { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $II11Il1111IIII1111I11I1lIIl1111; | |
my $i; | |
my $l11I1l11lllllI11I1IlI1lllllI1Il; | |
my $I1Il1III1l1lll11II11IlI1l111I11; | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_; | |
my $IIIl11lllllIIlllI1l1l1ll1IlI1I1 = shift @_; | |
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = shift @_; | |
my $l1Il1IIllII11I1I111IlIIlllIlIll = shift @_; | |
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = shift @_; | |
my $I1111111I1IIIIlIl1lll1l1llIII11 = shift @_; | |
my $lIlllI1IIl11IIlIlllll11III11I1l = join(' ', @_); | |
my @lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l; | |
my $Illlll11I1l111I1111I1l11I1IIl11; | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 6) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll get|set cfg_id att_id tbl_id field_width [data_to_set]\n"; | |
printf "\n"; | |
printf " Field width of zero implies that the field is variable-length (as compared to\n"; | |
printf " a 1-4 byte fixed width field\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
$l1lIIlll1ll1lIlIIl1lII1IIll1l1l = llIlI1l1IIll11IIl11l11lII1IIl11($l1lIIlll1ll1lIlIIl1lII1IIll1l1l); | |
$l1Il1IIllII11I1I111IlIIlllIlIll = llIlI1l1IIll11IIl11l11lII1IIl11($l1Il1IIllII11I1I111IlIIlllIlIll); | |
$lIIIIl11111I1lI1II1I1Il1I1I1ll1 = llIlI1l1IIll11IIl11l11lII1IIl11($lIIIIl11111I1lI1II1I1Il1I1I1ll1); | |
if ($I1111111I1IIIIlIl1lll1l1llIII11 > 4) { | |
$I1111111I1IIIIlIl1lll1l1llIII11 = 0; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = I1Il11Il1l1IIIllIlI111llIlIll1l($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11); | |
if ($I1111111I1IIIIlIl1lll1l1llIII11 == 0) { | |
printf "as hex: %s\n", $lIl11I1IIl111I1II11lIIllI1II1ll; | |
$l11I1l11lllllI11I1IlI1lllllI1Il = I1l1lI1lIIIIlIl11I11llI11Illlll($lIl11I1IIl111I1II11lIIllI1II1ll); | |
printf "as ASCII: %s\n", $l11I1l11lllllI11I1IlI1lllllI1Il; | |
} | |
else { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = llII1lIIIIIll1II1ll1I111l11II1l($lIl11I1IIl111I1II11lIIllI1II1ll); | |
printf "as hex: %s\n", $lIl11I1IIl111I1II11lIIllI1II1ll; | |
$I1Il1III1l1lll11II11IlI1l111I11 = IIl1l1IlI1lII11lI1I11Ill1IlllIl($lIl11I1IIl111I1II11lIIllI1II1ll); | |
printf "as a number: %d\n", $I1Il1III1l1lll11II11IlI1l111I11; | |
} | |
return; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set') { | |
if ($I1111111I1IIIIlIl1lll1l1llIII11 == 0) { | |
my $I11I1IIIlllIIlIl11IllI1ll1llllI = II1IlIl1l1IIll1II1l1lllll1I1lIl($lIlllI1IIl11IIlIlllll11III11I1l, $l11I1l1l1l111ll1I1I1I11ll1l11II); | |
ll1l1Il1l111Il1ll1IIIIIII1l1llI $l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I11I1IIIlllIIlIl11IllI1ll1llllI; | |
} | |
else { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIlllI1IIl11IIlIlllll11III11I1l); | |
@lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l = split(/\s+/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0); | |
$Illlll11I1l111I1111I1l11I1IIl11 = $#lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l + 1; | |
if ($I1111111I1IIIIlIl1lll1l1llIII11 == 4 and $Illlll11I1l111I1111I1l11I1IIl11 == 4) { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = ''; | |
foreach $i (0 .. $#lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l) { | |
$lIl11I1IIl111I1II11lIIllI1II1ll .= lllIl11IlIIIl111lIIl11l11IIlIl1($lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l[$i], 1); | |
if ($i < $#lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l) { | |
$lIl11I1IIl111I1II11lIIllI1II1ll .= ' '; | |
} | |
} | |
} | |
else { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = lllIl11IlIIIl111lIIl11l11IIlIl1($lIlllI1IIl11IIlIlllll11III11I1l, $I1111111I1IIIIlIl1lll1l1llIII11); | |
} | |
$lIl11I1IIl111I1II11lIIllI1II1ll = llII1lIIIIIll1II1ll1I111l11II1l($lIl11I1IIl111I1II11lIIllI1II1ll); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = IlIll11llI11ll1llIIIlll1l1IlII1($lIl11I1IIl111I1II11lIIllI1II1ll); | |
I111IlIllI1lI1Il11lIllI1llI1IIl $l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11, $lIl11I1IIl111I1II11lIIllI1II1ll; | |
} | |
} | |
} | |
sub Il1IIIII11lllIllIl1IIll11II11I1 { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $l11I1l11lllllI11I1IlI1lllllI1Il; | |
my $I1Il1III1l1lll11II11IlI1l111I11; | |
my $i; | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_; | |
my $IIIl11lllllIIlllI1l1l1ll1IlI1I1 = shift @_; | |
my $lIIlIIllIlll1II1I111IIlIl111II1 = shift @_ || ''; | |
my $lIII11lII1II11lllIl1IlIIlI111I1 = join(' ', @_); | |
my $II111lI1l1lllIl11I1lIII11111l1l; | |
my $l11lIIII11IlIlI1l1l1lIlI1I1l1II; | |
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l; | |
my $l1Il1IIllII11I1I111IlIIlllIlIll; | |
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1; | |
my $I1111111I1IIIIlIl1lll1l1llIII11; | |
my $I111Ill1lI1lllllll1IlIIl1111I11; | |
my $Il1III1I1IllIIlIlI1ll1ll1l1II1I; | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll list|get|set [attr_name] [attr_value]\n"; | |
printf "\n"; | |
printf "Note that not all attributes are supported on all platforms.\n"; | |
printf "This is provided, but it isn't expected to be the primary method by which these\n"; | |
printf "things are set. If there's a feature you use frequently from here, please ask\n"; | |
printf "for it to be added.\n"; | |
printf "\n"; | |
printf "This is meant to be a 'plan B', giving you direct access to the configuration\n"; | |
printf "space inside the BMC.\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'list') { | |
printf "\n"; | |
printf "Available attributes:\n"; | |
printf "\n"; | |
printf "%17s %6s %s\n", 'Category', 'Length', 'Attribute'; | |
printf "%17s %6s %s\n", '--------', '------', '---------'; | |
for ($i = 0; $i <= $#l11IIIll11I11lllIlIIl1I1I1111I1; ++$i) { | |
printf "(%15s) %6s %s\n", $l11IIIll11I11lllIlIIl1I1I1111I1[$i][0], $l11IIIll11I11lllIlIIl1I1I1111I1[$i][5], $l11IIIll11I11lllIlIIl1I1I1111I1[$i][1]; | |
} | |
printf "\n"; | |
return; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get' or $IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set') { | |
$II111lI1l1lllIl11I1lIII11111l1l = II1II1II1111lll111lIll1I1ll1lI1($lIIlIIllIlll1II1I111IIlIl111II1); | |
if ($II111lI1l1lllIl11I1lIII11111l1l < 0) { | |
printf "Cannot find attribute $lIIlIIllIlll1II1I111IIlIl111II1. Halting.\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
$l11lIIII11IlIlI1l1l1lIlI1I1l1II = $l11IIIll11I11lllIlIIl1I1I1111I1[$II111lI1l1lllIl11I1lIII11111l1l][0]; | |
$l1lIIlll1ll1lIlIIl1lII1IIll1l1l = $l11IIIll11I11lllIlIIl1I1I1111I1[$II111lI1l1lllIl11I1lIII11111l1l][2]; | |
$l1Il1IIllII11I1I111IlIIlllIlIll = $l11IIIll11I11lllIlIIl1I1I1111I1[$II111lI1l1lllIl11I1lIII11111l1l][3]; | |
$lIIIIl11111I1lI1II1I1Il1I1I1ll1 = $l11IIIll11I11lllIlIIl1I1I1111I1[$II111lI1l1lllIl11I1lIII11111l1l][4]; | |
$I1111111I1IIIIlIl1lll1l1llIII11 = $l11IIIll11I11lllIlIIl1I1I1111I1[$II111lI1l1lllIl11I1lIII11111l1l][5]; | |
$I111Ill1lI1lllllll1IlIIl1111I11 = $l11IIIll11I11lllIlIIl1I1I1111I1[$II111lI1l1lllIl11I1lIII11111l1l][6]; | |
$Il1III1I1IllIIlIlI1ll1ll1l1II1I = $l11IIIll11I11lllIlIIl1I1I1111I1[$II111lI1l1lllIl11I1lIII11111l1l][7] || ''; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get') { | |
l11II11llI11l1lllII1llll1l1111l 'ext_cfg', 'get', '0x' . $l1lIIlll1ll1lIlIIl1lII1IIll1l1l, '0x' . $l1Il1IIllII11I1I111IlIIlllIlIll, '0x' . $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11; | |
return; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set') { | |
l11II11llI11l1lllII1llll1l1111l 'ext_cfg', 'set', '0x' . $l1lIIlll1ll1lIlIIl1lII1IIll1l1l, '0x' . $l1Il1IIllII11I1I111IlIIlllIlIll, '0x' . $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11, $lIII11lII1II11lllIl1IlIIlI111I1; | |
return; | |
} | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
sub l1Il1I1l11I1llI1II1lI1IIlIlI11l { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $llll1lII1l11I1IlllllIIllll1l1II; | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_; | |
my $IIIl11lllllIIlllI1l1l1ll1IlI1I1 = shift @_; | |
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = shift @_; | |
my $l1Il1IIllII11I1I111IlIIlllIlIll = shift @_; | |
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = shift @_; | |
my $IlIIII1Il1I1I1Il11l1I1Ill11IlII = shift @_ || '0x00'; | |
my $IIIIIllllII1IIlIlII1lIllI1llIl1 = shift @_ || '0x00'; | |
my $IIll11I1Il1IIlIlII1I1l1lIIIIIll = shift @_ || '0x01'; | |
my $lIlllI1IIl11IIlIlllll11III11I1l = join(' ', @_); | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 5) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll get|set cfg_id att_id tbl_id [low_offset] [hi_offset] [length] [data_to_set]\n"; | |
printf "\n"; | |
printf "If not specified, offsets default to 0, and length defaults to 1.\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
$l1lIIlll1ll1lIlIIl1lII1IIll1l1l = llIlI1l1IIll11IIl11l11lII1IIl11($l1lIIlll1ll1lIlIIl1lII1IIll1l1l); | |
$l1Il1IIllII11I1I111IlIIlllIlIll = llIlI1l1IIll11IIl11l11lII1IIl11($l1Il1IIllII11I1I111IlIIlllIlIll); | |
$lIIIIl11111I1lI1II1I1Il1I1I1ll1 = llIlI1l1IIll11IIl11l11lII1IIl11($lIIIIl11111I1lI1II1I1Il1I1I1ll1); | |
printf "data to set: $lIlllI1IIl11IIlIlllll11III11I1l\n"; | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get') { | |
$llll1lII1l11I1IlllllIIllll1l1II = IlI1I1l11l1l1lll11llI1I1l11l111(); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x02 $llll1lII1l11I1IlllllIIllll1l1II $l1lIIlll1ll1lIlIIl1lII1IIll1l1l $l1Il1IIllII11I1I111IlIIlllIlIll $lIIIIl11111I1lI1II1I1Il1I1I1ll1 $IlIIII1Il1I1I1Il11l1I1Ill11IlII $IIIIIllllII1IIlIlII1lIllI1llIl1 $IIll11I1Il1IIlIlII1I1l1lIIIIIll"); | |
printf "response was: $lIl11I1IIl111I1II11lIIllI1II1ll\n\n"; | |
return; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set') { | |
$llll1lII1l11I1IlllllIIllll1l1II = IlI1I1l11l1l1lll11llI1I1l11l111(); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x03 $llll1lII1l11I1IlllllIIllll1l1II $l1lIIlll1ll1lIlIIl1lII1IIll1l1l $l1Il1IIllII11I1I111IlIIlllIlIll $lIIIIl11111I1lI1II1I1Il1I1I1ll1 $IlIIII1Il1I1I1Il11l1I1Ill11IlII $IIIIIllllII1IIlIlII1lIllI1llIl1 $IIll11I1Il1IIlIlII1I1l1lIIIIIll $lIlllI1IIl11IIlIlllll11III11I1l"); | |
printf "response was: $lIl11I1IIl111I1II11lIIllI1II1ll\n\n"; | |
return; | |
} | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
sub l1lIIl1lI1ll1III111l1lllI1I1lI1 { | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $l1Ill11I11lIIIl1lI1IlIIllll1111) = @_; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 == 1) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll on|off|blink|fastblink \n"; | |
printf "\n"; | |
printf " NOTE: blink currently locks the tool in an infinite loop. Thus, it only\n"; | |
printf " works with a single BMC.\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
if ($l1Ill11I11lIIIl1lI1IlIIllll1111 eq 'on') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I('chassis identify force'); | |
printf "\n"; | |
return; | |
} | |
if ($l1Ill11I11lIIIl1lI1IlIIllll1111 eq 'off') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I('chassis identify 0'); | |
printf "\n"; | |
return; | |
} | |
if ($l1Ill11I11lIIIl1lI1IlIIllll1111 eq 'blink') { | |
printf "Blinking a single host ID light forever...\n"; | |
while (1) { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I('chassis identify force'); | |
select undef, undef, undef, 0.4; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I('chassis identify 0'); | |
select undef, undef, undef, 0.4; | |
} | |
return; | |
} | |
if ($l1Ill11I11lIIIl1lI1IlIIllll1111 eq 'fastblink') { | |
printf "Fast-blinking a single host ID light forever...\n"; | |
while (1) { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I('chassis identify force'); | |
select undef, undef, undef, 0.125; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I('chassis identify 0'); | |
select undef, undef, undef, 0.125; | |
} | |
return; | |
} | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
sub lIIlIIl1Il1lI1l1ll1IlIl1II1I111 { | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $Illll1IllI11111lI1lI1I1l1IIll1I) = @_; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 == 1) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll status|on|off|cycle \n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
if ($Illll1IllI11111lI1lI1I1l1IIll1I eq 'status' or $Illll1IllI11111lI1lI1I1l1IIll1I eq 'on' or $Illll1IllI11111lI1lI1I1l1IIll1I eq 'off' or $Illll1IllI11111lI1lI1I1l1IIll1I eq 'cycle') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("chassis power $Illll1IllI11111lI1lI1I1l1IIll1I"); | |
if ($Illll1IllI11111lI1lI1I1l1IIll1I eq 'status') { | |
print "$lIl11I1IIl111I1II11lIIllI1II1ll"; | |
} | |
print "\n"; | |
return; | |
} | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
sub IIlIlI1lIlIl11l1ll1ll11lI1l11ll { | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_; | |
my $Illll1IllI11111lI1lI1I1l1IIll1I = shift @_; | |
my $I1l1lIIll1II1I1IIlI1llIl1lIIlII = join(' ', @_); | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 == 1) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll info|list|clear \n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lI1I1I1Il11IIl1l1IIIll1llIIII("sel $Illll1IllI11111lI1lI1I1l1IIll1I $I1l1lIIll1II1I1IIlI1llIl1lIIlII"); | |
print "\n"; | |
print "$lIl11I1IIl111I1II11lIIllI1II1ll"; | |
print "\n"; | |
return; | |
} | |
sub IIll11Il1I1I1l1l1lIll1lIl1Illl1 { | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_; | |
my $Illll1IllI11111lI1lI1I1l1IIll1I = shift @_ || ''; | |
my $I1l1lIIll1II1I1IIlI1llIl1lIIlII = join(' ', @_); | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lI1I1I1Il11IIl1l1IIIll1llIIII("sdr $Illll1IllI11111lI1lI1I1l1IIll1I $I1l1lIIll1II1I1IIlI1llIl1lIIlII"); | |
print "$lIl11I1IIl111I1II11lIIllI1II1ll"; | |
print "\n"; | |
return; | |
} | |
sub I1I1llI1l1IlIlI1I1l1IIlIl1lIl1I { | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_; | |
my $Illll1IllI11111lI1lI1I1l1IIll1I = shift @_ || ''; | |
my $I1l1lIIll1II1I1IIlI1llIl1lIIlII = join(' ', @_); | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lI1I1I1Il11IIl1l1IIIll1llIIII("sensor $Illll1IllI11111lI1lI1I1l1IIll1I $I1l1lIIll1II1I1IIlI1llIl1lIIlII"); | |
print "$lIl11I1IIl111I1II11lIIllI1II1ll"; | |
print "\n"; | |
return; | |
} | |
sub l11l1IIlI1lI1lIll111lI11I1II1II { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $IIIl11lllllIIlllI1l1l1ll1IlI1I1, $Ill1Il1I1llIIIIllll111I11lIIl1l, $lIllI1IlIIl1lIllI1IllIIllI11l1I, $I1I11IIIll11IlIIl1l1lI11lI1I111) = @_; | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 == 1) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll get|set user_number name|callin|linkauth|ipmimsg|channelprivlimit [val]\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get') { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("user list 1 | grep -ve '^ID' | grep -e '^${Ill1Il1I1llIIIIllll111I11lIIl1l}'"); | |
if (not defined $lIl11I1IIl111I1II11lIIllI1II1ll) { | |
printf "\n"; | |
return; | |
} | |
my(@llllI1l1I1II1Ill1Illl111IlI11Il) = split(/\s+/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0); | |
if (not defined $lIllI1IlIIl1lIllI1IllIIllI11l1I) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = sprintf('%s %s %s %s %s', $llllI1l1I1II1Ill1Illl111IlI11Il[1], $llllI1l1I1II1Ill1Illl111IlI11Il[2], $llllI1l1I1II1Ill1Illl111IlI11Il[3], $llllI1l1I1II1Ill1Illl111IlI11Il[4], $llllI1l1I1II1Ill1Illl111IlI11Il[5]); | |
} | |
else { | |
$_ = $lIllI1IlIIl1lIllI1IllIIllI11l1I; | |
if ($_ eq 'name') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $llllI1l1I1II1Ill1Illl111IlI11Il[1]; | |
} | |
elsif ($_ eq 'callin') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $llllI1l1I1II1Ill1Illl111IlI11Il[2]; | |
} | |
elsif ($_ eq 'linkauth') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $llllI1l1I1II1Ill1Illl111IlI11Il[3]; | |
} | |
elsif ($_ eq 'ipmimsg') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $llllI1l1I1II1Ill1Illl111IlI11Il[4]; | |
} | |
elsif ($_ eq 'channelprivlimit') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $llllI1l1I1II1Ill1Illl111IlI11Il[5]; | |
} | |
else { | |
printf "Unknown target field: %s\n\n", $lIllI1IlIIl1lIllI1IllIIllI11l1I; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
} | |
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
return; | |
} | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
sub llIIII1I1ll11l11I1I1lIIIlI11l1l { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $llll1lII1l11I1IlllllIIllll1l1II; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_; | |
my $IIIl11lllllIIlllI1l1l1ll1IlI1I1 = shift @_; | |
my $I1I11IIIll11IlIIl1l1lI11lI1I111 = shift @_; | |
my $IlIl1l1lI1ll11I111lIlllllllIllI = shift @_ || ''; | |
my $lI1I1ll11111l1l11l1I11l1llII1I1 = 1; | |
if ($IlIl1l1lI1ll11I111lIlllllllIllI eq 'silent') { | |
$lI1I1ll11111l1l11l1I11l1llII1I1 = 0; | |
} | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll get|set|toggle [shared|dedicated]\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1l1l1Il1lI11I1l1lI1111IIlI1lll(); | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
Il1II1IIl1lIlI1I1lll1l1lII1l111 ; | |
} | |
printf "$IIl1IlIIllII1I1lIlIIIIlIIII1lII\n"; | |
return; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set') { | |
IlI1Ill11II111Illl1III1ll11llI1 $I1I11IIIll11IlIIl1l1lI11lI1I111; | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
Il1II1IIl1lIlI1I1lll1l1lII1l111 ; | |
} | |
return; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'toggle') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1l1l1Il1lI11I1l1lI1111IIlI1lll(); | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
Il1II1IIl1lIlI1I1lll1l1lII1l111 ; | |
} | |
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq 'shared') { | |
if ($lI1I1ll11111l1l11l1I11l1llII1I1) { | |
print "BMC nic is currently shared. Toggling to dedicated.\n"; | |
} | |
IlI1Ill11II111Illl1III1ll11llI1 'd'; | |
} | |
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq 'dedicated') { | |
if ($lI1I1ll11111l1l11l1I11l1llII1I1) { | |
print "BMC nic is currently dedicated. Toggling to shared.\n"; | |
} | |
IlI1Ill11II111Illl1III1ll11llI1 'sh'; | |
} | |
return; | |
} | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
sub lII1II1lIlI1ll11llIII1I1lI1IIII { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = II1I11llIl11lII11lIIIl1II11lIII(); | |
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
Il1II1IIl1lIlI1I1lll1l1lII1l111 ; | |
return; | |
} | |
return; | |
} | |
sub ll1ll1I1ll1lIIIl1I1lIIl1I1ll1Il { | |
my($lIl11I1IIl111I1II11lIIllI1II1ll, $II11Il1111IIII1111I11I1lIIl1111) = IlIl11l11I1I111lllII11I111Illll(); | |
printf "EEPROM returned: $lIl11I1IIl111I1II11lIIllI1II1ll ($II11Il1111IIII1111I11I1lIIl1111)\n"; | |
} | |
sub l1Il11l1l11Ill1l1lIlIlllII1111l { | |
printf "%s\n", lIIl1l1llIllI1Il1IlI1I111IIlIl1(); | |
} | |
sub lll111IIIIIIl1l1IIl1II1I1llllII { | |
printf "%s\n", $lI1II1I11l1l111I11IIIl1I1lII11l; | |
} | |
sub I1Il11lI1IIllIl11I1IlIl1lIl1l1I { | |
printf "%18s : %s \n", 'user-facing name', $I1I1IllI1Il11111111II11lI11I1lI; | |
printf "%18s : %s \n", 'PLAT', $III111lll1l1l111lIIlll1II1IlI11; | |
printf "%18s : %s \n", 'platform variant', $lI1II1I11l1l111I11IIIl1I1lII11l; | |
printf "%18s : %s \n", 'platform raw', $I1111I1II1l1111lIlllIllIllllllI; | |
printf "%18s : %s \n", 'platform family', $lll1l1I1IIIllllI1I11I11l11Ill1l; | |
} | |
sub ll1I11lllll11I1ll1Il1IllI11llll { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = I111Il11l11IIlIll11ll1lll1lIII1(); | |
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub III1lI111lIIllIl1ll11lI1lI1Ill1 { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = l111Il11lll1I11I1l1IlI11IIl1llI(); | |
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub lIl1111IlIIIII1l11lIIIIII1l11II { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = llIIlIIl1lllI1lIIIlI1lIIIIlIl11(); | |
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub lllllI1I1III11I1l111lIIIIllIllI { | |
my $IllllIIIl1II11IlIIlllIIl1IIlll1 = Ill1IllI11Illl1l11lllIl1IlIIl1l(); | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IllllIIIl1II11IlIIlllIIl1IIlll1) { | |
Il1II1IIl1lIlI1I1lll1l1lII1l111 ; | |
} | |
printf "$IllllIIIl1II11IlIIlllIIl1IIlll1\n"; | |
} | |
sub l1I1Illl1lIl1Il1IlIIl1IllllIIlI { | |
my $IllllIIIl1II11IlIIlllIIl1IIlll1 = IIlllllIl111IIIll1ll1ll1IIlI1I1(); | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IllllIIIl1II11IlIIlllIIl1IIlll1) { | |
print "$IllllIIIl1II11IlIIlllIIl1IIlll1\n"; | |
return; | |
} | |
if (ll11I1ll11lI1l111Ill11ll1IIIIll $IllllIIIl1II11IlIIlllIIl1IIlll1) { | |
print "BIOS version could not be read. This can occur when the BMC is reset after the main\n"; | |
print "server has been brought up. Try rebooting the main server, and retry the command.\n"; | |
return; | |
} | |
printf "$IllllIIIl1II11IlIIlllIIl1IIlll1\n"; | |
return; | |
} | |
sub IIllllIlll1lI11II11lII1lII1l1lI { | |
my $I11III1I1Il1ll1II1lI1l111Il1l1l = I1lIIIIl11IIllllII1II1IIlIlI1Il(); | |
printf "$I11III1I1Il1ll1II1lI1l111Il1l1l\n"; | |
return; | |
} | |
sub lIII1ll1lII1IllIlIl1l1111IllIII { | |
my $I11III1I1Il1ll1II1lI1l111Il1l1l = IIlllIllI1I1lll111IIl1l1lI1I111(); | |
printf "$I11III1I1Il1ll1II1lI1l111Il1l1l\n"; | |
return; | |
} | |
sub I11I1ll1Il11l1I1Ill1IllI11111lI { | |
my $lIlI11I11l1ll11111lllll1l1Illll = lIlII11II1ll1I1l1Il11l1I1llIIII(); | |
printf "$lIlI11I11l1ll11111lllll1l1Illll\n"; | |
return; | |
} | |
sub I1lIIlll111IIII11lIIlllI1llI1lI { | |
my $lIlI11I11l1ll11111lllll1l1Illll = I11ll1111lllI1lII1l11IIll1Il11I(); | |
printf "$lIlI11I11l1ll11111lllll1l1Illll\n"; | |
return; | |
} | |
sub I1ll1l1l1IllIlIl1l1llIl1I1ll1ll { | |
my $l1111lIll1lIIlIlIl1l11l1ll11IIl = shift @_; | |
my $lII11lI1I1Il1l1I1I11l1I1l1l1Il1 = shift @_; | |
if (not defined $lII11lI1I1Il1l1I1I11l1I1l1l1Il1) { | |
print "\n"; | |
print "Usage: $l1111lIll1lIIlIlIl1l11l1ll11IIl duty_cycle\n"; | |
print "\n"; | |
print " duty_cycle ranges from 0 to 100%, or specify 'auto' to return to\n"; | |
print " automatic fan control.\n"; | |
print "\n"; | |
print "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = Il1llIllII111IllIIIlI1Il11lIl11($lII11lI1I1Il1l1I1I11l1I1l1l1Il1); | |
print $IIl1IlIIllII1I1lIlIIIIlIIII1lII . "\n"; | |
if (ll11I1ll11lI1l111Ill11ll1IIIIll $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
print "\n"; | |
print "Invalid input. Halting.\n"; | |
print "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
print "\n"; | |
return; | |
} | |
sub lIlI11I1II1lll11lIII1IlII11l111 { | |
my $l1111lIll1lIIlIlIl1l11l1ll11IIl = shift @_; | |
my $l1ll111I11lllI1I11I1IllI1l11llI = shift @_ || '0'; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = lllll11Il11IlI1IlllIl111llI111l($l1ll111I11lllI1I11I1IllI1l11llI); | |
if (lI1IIlllllIlllI11lIIlIllI1I11II $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
print "$IIl1IlIIllII1I1lIlIIIIlIIII1lII\n"; | |
} | |
return; | |
} | |
sub IIIllI1Ill11lIl111lI1IIlIlIlIl1 { | |
my $l1111lIll1lIIlIlIl1l11l1ll11IIl = shift @_; | |
my $Il111IlIlII1lll111IlIlIl111I1lI = shift @_; | |
my $lllI1l1l1lI1l1l1ll111II1lI11I1I; | |
my $IlI11lII1lll11lIIlIIll1lI1l1Ill; | |
my $Il111IllIl1I1l11II1l1lIllIlIll1; | |
my $I1l1ll1II1lllllIllllllllllIll1l; | |
my $i; | |
my $IlIll111ll1II1l1111Il1ll1I1ll11; | |
my $IIlIIIIl11111lI1lIIIIl11Ill1IIl; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
$IlIll111ll1II1l1111Il1ll1I1ll11 = 1; | |
$IIlIIIIl11111lI1lIIIIl11Ill1IIl = 16; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
$I1l1ll1II1lllllIllllllllllIll1l = IlIIlI1Ill1lII1I1IlIlIl1Il1lIlI(); | |
$Il111IllIl1I1l11II1l1lIllIlIll1 = I1Ill1l11l1llIIlI1II1llI111I1Il($i); | |
printf "%7s | power %-3s | %3d watts\n", 'chassis', $I1l1ll1II1lllllIllllllllllIll1l, $Il111IllIl1I1l11II1l1lIllIlIll1; | |
for ($i = $IlIll111ll1II1l1111Il1ll1I1ll11; $i <= $IIlIIIIl11111lI1lIIIIl11Ill1IIl; ++$i) { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = sprintf('%d', $i); | |
$lllI1l1l1lI1l1l1ll111II1lI11I1I = lIIIII1lIllllIIIl11Il1I1IlI1I11($i); | |
$IlI11lII1lll11lIIlIIll1lI1l1Ill = lIlIIllII1l11I11l11Il1I1I11Ill1($i); | |
printf "sled %2s | power %-3s | %3d watts\n", $lIl11I1IIl111I1II11lIIllI1II1ll, $lllI1l1l1lI1l1l1ll111II1lI11I1I, $IlI11lII1lll11lIIlIIll1lI1l1Ill; | |
} | |
} | |
return; | |
} | |
sub llIIlI1I1IlI1I11ll1l1l1IIllIIIl { | |
my $l1111lIll1lIIlIlIl1l11l1ll11IIl = shift @_; | |
my $Il111IlIlII1lll111IlIlIl111I1lI = shift @_; | |
my $l1ll111I11lllI1I11I1IllI1l11llI = shift @_; | |
my $i; | |
my $IlIll111ll1II1l1111Il1ll1I1ll11; | |
my $IIlIIIIl11111lI1lIIIIl11Ill1IIl; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
if (not defined $Il111IlIlII1lll111IlIlIl111I1lI && defined $l1ll111I11lllI1I11I1IllI1l11llI) { | |
print "\n"; | |
print "Usage: $l1111lIll1lIIlIlIl1l11l1ll11IIl status|on|off sled_number|all\n"; | |
print "\n"; | |
print " C410X specific. For a given sled, determine or set the power state of a GPGPU sled.\n"; | |
print " The command targets either a single named sled or all sleds.\n"; | |
print "\n"; | |
print "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') { | |
if ($l1ll111I11lllI1I11I1IllI1l11llI eq 'all') { | |
$IlIll111ll1II1l1111Il1ll1I1ll11 = 1; | |
$IIlIIIIl11111lI1lIIIIl11Ill1IIl = 16; | |
} | |
else { | |
$IlIll111ll1II1l1111Il1ll1I1ll11 = int $l1ll111I11lllI1I11I1IllI1l11llI; | |
$IIlIIIIl11111lI1lIIIIl11Ill1IIl = int $l1ll111I11lllI1I11I1IllI1l11llI; | |
} | |
} | |
if ($Il111IlIlII1lll111IlIlIl111I1lI eq 'status') { | |
for ($i = $IlIll111ll1II1l1111Il1ll1I1ll11; $i <= $IIlIIIIl11111lI1lIIIIl11Ill1IIl; ++$i) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lIIIII1lIllllIIIl11Il1I1IlI1I11($i); | |
if ($l1ll111I11lllI1I11I1IllI1l11llI eq 'all') { | |
printf "sled %2d : $IIl1IlIIllII1I1lIlIIIIlIIII1lII\n", $i; | |
} | |
else { | |
print "$IIl1IlIIllII1I1lIlIIIIlIIII1lII\n"; | |
} | |
} | |
return; | |
} | |
if ($Il111IlIlII1lll111IlIlIl111I1lI eq 'on') { | |
for ($i = $IlIll111ll1II1l1111Il1ll1I1ll11; $i <= $IIlIIIIl11111lI1lIIIIl11Ill1IIl; ++$i) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lIIIII1lIllllIIIl11Il1I1IlI1I11($i); | |
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq 'on') { | |
$i = $i; | |
} | |
else { | |
lllll11Il11IlI1IlllIl111llI111l $i; | |
} | |
} | |
return; | |
} | |
if ($Il111IlIlII1lll111IlIlIl111I1lI eq 'off') { | |
for ($i = $IlIll111ll1II1l1111Il1ll1I1ll11; $i <= $IIlIIIIl11111lI1lIIIIl11Ill1IIl; ++$i) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lIIIII1lIllllIIIl11Il1I1IlI1I11($i); | |
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq 'off') { | |
$i = $i; | |
} | |
else { | |
lllll11Il11IlI1IlllIl111llI111l $i; | |
} | |
} | |
return; | |
} | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
sub IllllIll1l11I11l11I111IllIllI1l { | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $II11Il1111IIII1111I11I1lIIl1111; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlI1I1I11I1l1II1II1lll11I1IlIll(); | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') { | |
($lIl11I1IIl111I1II11lIIllI1II1ll, $II11Il1111IIII1111I11I1lIIl1111) = l11l11l1lll1Ill1I111ll1l1lI1lI1(); | |
if ($II11Il1111IIII1111I11I1lIIl1111 eq 'unknown' or $II11Il1111IIII1111I11I1lIIl1111 eq 'unprogrammed') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'Chassis type not set. Contact Dell Support for instructions to fix.'; | |
} | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub I11l1IlllII1ll11lll1IIIlI111l1I { | |
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_; | |
my $I111l111IIII1l1IlI1111IlI1I1l1I = shift @_; | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $l1l1lII111IIlllII11IIIl1IIllI1I) { | |
$l1l1lII111IIlllII11IIIl1IIllI1I = 'unimplemented in tool for this platform'; | |
} | |
elsif (Il11lIIIlll1Il11ll1lIl1l1II1l1l $l1l1lII111IIlllII11IIIl1IIllI1I) { | |
$l1l1lII111IIlllII11IIIl1IIllI1I = 'n/a'; | |
} | |
elsif (l1IIl1I1ll11III11I1III1lIlI11lI $l1l1lII111IIlllII11IIIl1IIllI1I) { | |
$l1l1lII111IIlllII11IIIl1IIllI1I = 'unavailable'; | |
} | |
else { | |
if (defined $I111l111IIII1l1IlI1111IlI1I1l1I) { | |
$l1l1lII111IIlllII11IIIl1IIllI1I = sprintf($I111l111IIII1l1IlI1111IlI1I1l1I, $l1l1lII111IIlllII11IIIl1IIllI1I); | |
} | |
} | |
return $l1l1lII111IIlllII11IIIl1IIllI1I; | |
} | |
sub I1llII1I111I1Il1l1II1l11l1II11l { | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
my($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIIll1IllIl1III1IlIl11IIIlI1lIl, $III1l1llIlI1l1I1IIlIIIll1111l1I, $II1l1I11llIIlI11IIIlIllI1l111lI, $lI1IIIIl1lI1II111I1ll1lI11IIlII) = IIllll1Il11II11lllII1IlllIIIl1l(); | |
my $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I; | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll) { | |
$l1l11IIIlll1IIlIl1IIIlIlI1I1l1I = ll11lI1I1I1IlIII1l1l1III1lllI1I($IIIll1IllIl1III1IlIl11IIIlI1lIl); | |
} | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll and $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I == 128) { | |
return I1I11lIIll1lIIII1II11IlIl1ll11I(); | |
} | |
return $II1l1I11llIIlI11IIIlIllI1l111lI; | |
} | |
return IIIl11111lI1II111lllIIIl111II11(); | |
} | |
sub lI1llIl11l11II1ll1l1l1Il1lI1IlI { | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
my($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIIll1IllIl1III1IlIl11IIIlI1lIl, $lllIlIIIlll1ll1lIlIIIIlIlII1I1l, $lIll111l11III11IIl1lI1ll11ll111, $l1I11Il1II1lIl1ll11IIll1lIl11lI, $l11II1llIlIIIl11l11II11lIIll1l1, $llllIlI1Il1ll11l11Ill1I11ll1l1l, $llI1I11l1lIlI1lll1Ill1llIll11I1) = I1llIlIIIIl11IIIIlIlIIIll1lI1I1(); | |
return $lllIlIIIlll1ll1lIlIIIIlIlII1I1l; | |
} | |
return IIIl11111lI1II111lllIIIl111II11(); | |
} | |
sub llIl1l1I111I1lI1IIl11II11lI1l1l { | |
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') { | |
my($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIIll1IllIl1III1IlIl11IIIlI1lIl, $lllIlIIIlll1ll1lIlIIIIlIlII1I1l, $lIll111l11III11IIl1lI1ll11ll111, $l1I11Il1II1lIl1ll11IIll1lIl11lI, $l11II1llIlIIIl11l11II11lIIll1l1, $llllIlI1Il1ll11l11Ill1I11ll1l1l, $llI1I11l1lIlI1lll1Ill1llIll11I1) = I1llIlIIIIl11IIIIlIlIIIll1lI1I1(); | |
return $lIll111l11III11IIl1lI1ll11ll111; | |
} | |
return IIIl11111lI1II111lllIIIl111II11(); | |
} | |
sub III1lII1IIIIIl1III11l1IIlI1111l { | |
my $l1II1Il1l11Illl11lI11IIIl1IIlI1 = ll1IlI11l1Il1IlIIlIIlIII11lI11l(); | |
my $I11l1IIllIllIII1l1Il1lIl1l1111I = IIll1IlIIl11I1lll1Il1I11llIl1Il(); | |
my $I11lIlllIII1II1lllllIllllIl1I11 = I11IIl1II1lII1111II1IlI1lIIlIll(); | |
my $lII11l1I1IIll1l1IlIlll1I1lI1lI1 = I1l1l1Il1lI11I1l1lI1111IIlI1lll(); | |
my $lIII1l1lIlll1Il1lI111Il111lI11l = II1I11llIl11lII11lIIIl1II11lIII(); | |
my $lII1lllll1llI1IIlIl1II1ll1llll1 = IlIIlI1Ill1lII1I1IlIlIl1Il1lIlI(); | |
my $IllllIIIl1II11IlIIlllIIl1IIlll1 = IIlllllIl111IIIll1ll1ll1IIlI1I1(); | |
my $II11llIIIlI1lIIIIIl11111llII1I1 = I111Il11l11IIlIll11ll1lll1lIII1(); | |
my $I11III1I1Il1ll1II1lI1l111Il1l1l = IIlllIllI1I1lll111IIl1l1lI1I111(); | |
my $l1lll1lIlI1IllI11l1l1I1IlIlllll = I11ll1111lllI1lII1l11IIll1Il11I(); | |
my $l1llI1I1llIlI1I11lIlll1l111I1I1 = I1llIIlIlllI1I11IIl11IlIl111lll(); | |
my $lllll1IIllI1lll1I1lIllII1I11IIl = I1Ill1l11l1llIIlI1II1llI111I1Il(); | |
my $lII11l1lIlII1Il1lIlIIIlIlllIII1 = IllllIll1l11I11l11I111IllIllI1l(); | |
my $ll1IlIlII1IIl1IlI1llllI11IIlII1 = lIIl1l1llIllI1Il1IlI1I111IIlIl1('terse'); | |
if (Il11lIIIlll1Il11ll1lIl1l1II1l1l $lIII1l1lIlll1Il1lI111Il111lI11l) { | |
$lIII1l1lIlll1Il1lI111Il111lI11l = ' '; | |
} | |
elsif (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $lIII1l1lIlll1Il1lI111Il111lI11l) { | |
$lIII1l1lIlll1Il1lI111Il111lI11l = '.??'; | |
} | |
else { | |
$lIII1l1lIlll1Il1lI111Il111lI11l = '.' . sprintf('%2s', $lIII1l1lIlll1Il1lI111Il111lI11l); | |
} | |
my $llllI11Il11IlIllI1IlIlI1ll1I1lI; | |
my $I11I1IlIl1IllIIIl1IlI111IlllII1 = ' '; | |
my $Il11Ill1lI11lllI1IlIIlIlll1l1Il = ' '; | |
my $llIl11l1IIlIl1ll111lI1IlIll11ll = ''; | |
my $I11IIIllll1l11l11l1lIIl111III1I; | |
my $II1I1Ill1lIIllI1I1I1l1l111I11l1; | |
my $lIllIIIIIIl1Il11ll1Il1I1111IIl1; | |
my $III11I1I1l1l1l1l1I1lIlII1IIIIl1; | |
my $l1IllIlII11I1lII1llIlllIIl11ll1; | |
my $Il1l1II1II11Ill11IIl1ll1ll1lIII; | |
$llllI11Il11IlIllI1IlIlI1ll1I1lI = sprintf('%15s', $l1II1Il1l11Illl11lI11IIIl1IIlI1); | |
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'shared') { | |
$I11I1IlIl1IllIIIl1IlI111IlllII1 = 'shd'; | |
} | |
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'dedicated') { | |
$I11I1IlIl1IllIIIl1IlI111IlllII1 = 'ded'; | |
} | |
if ($I11l1IIllIllIII1l1Il1lIl1l1111I eq 'static') { | |
$Il11Ill1lI11lllI1IlIIlIlll1l1Il = 'static'; | |
} | |
if ($I11l1IIllIllIII1l1Il1lIl1l1111I eq 'dhcp') { | |
$Il11Ill1lI11lllI1IlIIlIlll1l1Il = 'dhcp'; | |
} | |
if ($I11lIlllIII1II1lllllIllllIl1I11 ne 'disabled') { | |
$llIl11l1IIlIl1ll111lI1IlIll11ll = ',vlan' . $I11lIlllIII1II1lllllIllllIl1I11; | |
} | |
$I11IIIllll1l11l11l1lIIl111III1I = sprintf('%3s', $lII1lllll1llI1IIlIl1II1ll1llll1); | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IllllIIIl1II11IlIIlllIIl1IIlll1) { | |
$II1I1Ill1lIIllI1I1I1l1l111I11l1 = ' unavail'; | |
} | |
elsif (ll11I1ll11lI1l111Ill11ll1IIIIll $IllllIIIl1II11IlIIlllIIl1IIlll1) { | |
$II1I1Ill1lIIllI1I1I1l1l111I11l1 = ' reboot'; | |
} | |
else { | |
$II1I1Ill1lIIllI1I1I1l1l111I11l1 = sprintf('%8s', $IllllIIIl1II11IlIIlllIIl1IIlll1); | |
} | |
$lIllIIIIIIl1Il11ll1Il1I1111IIl1 = sprintf('%4s', $II11llIIIlI1lIIIIIl11111llII1I1); | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $I11III1I1Il1ll1II1lI1l111Il1l1l) { | |
$III11I1I1l1l1l1l1I1lIlII1IIIIl1 = 'FCB: unavail'; | |
} | |
elsif (Il11lIIIlll1Il11ll1lIl1l1II1l1l $I11III1I1Il1ll1II1lI1l111Il1l1l) { | |
$III11I1I1l1l1l1l1I1lIlII1IIIIl1 = ''; | |
} | |
else { | |
$III11I1I1l1l1l1l1I1lIlII1IIIIl1 = sprintf('FCB: %4s', $I11III1I1Il1ll1II1lI1l111Il1l1l); | |
} | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $l1lll1lIlI1IllI11l1l1I1IlIlllll) { | |
(); | |
} | |
elsif (Il11lIIIlll1Il11ll1lIl1l1II1l1l $l1lll1lIlI1IllI11l1l1I1IlIlllll) { | |
(); | |
} | |
else { | |
$III11I1I1l1l1l1l1I1lIlII1IIIIl1 .= ' (' . $l1lll1lIlI1IllI11l1l1I1IlIlllll . ')'; | |
} | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $l1llI1I1llIlI1I11lIlll1l111I1I1) { | |
$l1IllIlII11I1lII1llIlllIIl11ll1 = ' '; | |
} | |
elsif (Il11lIIIlll1Il11ll1lIl1l1II1l1l $l1llI1I1llIlI1I11lIlll1l111I1I1) { | |
$l1IllIlII11I1lII1llIlllIIl11ll1 = ' '; | |
} | |
elsif (l1IIl1I1ll11III11I1III1lIlI11lI $l1llI1I1llIlI1I11lIlll1l111I1I1) { | |
$l1IllIlII11I1lII1llIlllIIl11ll1 = ' '; | |
} | |
else { | |
$l1IllIlII11I1lII1llIlllIIl11ll1 = sprintf('%3d W', $l1llI1I1llIlI1I11lIlll1l111I1I1); | |
} | |
print $llllI11Il11IlIllI1IlIlI1ll1I1lI . ' (' . $I11I1IlIl1IllIIIl1IlI111IlllII1 . ',' . $Il11Ill1lI11lllI1IlIIlIlll1l1Il . $llIl11l1IIlIl1ll111lI1IlIll11ll . ') | ' . $I1I1IllI1Il11111111II11lI11I1lI . $lIII1l1lIlll1Il1lI111Il111lI11l . ' | ' . 'power ' . $I11IIIllll1l11l11l1lIIl111III1I . ' : ' . $l1IllIlII11I1lII1llIlllIIl11ll1 . ' | ' . 'BIOS: ' . $II1I1Ill1lIIllI1I1I1l1l111I11l1 . ' | ' . 'BMC: ' . $lIllIIIIIIl1Il11ll1Il1I1111IIl1 . ' | ' . $III11I1I1l1l1l1l1I1lIlII1IIIIl1 . "\n"; | |
if (lI1IIlllllIlllI11lIIlIllI1I11II $lII11l1lIlII1Il1lIlIIIlIlllIII1) { | |
print "^^^^^^^^^^^^^^^--- Error: $lII11l1lIlII1Il1lIlIIIlIlllIII1 \n"; | |
print "\n"; | |
} | |
} | |
sub lII111Il11l1ll1II1lII1lIIlIl11I { | |
my $i; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $llll1lII1l11I1IlllllIIllll1l1II; | |
my $II11lIIlI1Il1Il1IIIlI1lIl1lII1l; | |
my $l1lllIll1IIllIIIIlIllIlI1lII1lI; | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $IIIl11lllllIIlllI1l1l1ll1IlI1I1, $l11IIll111l1ll11IIl11lIIIIllIll, $lIlIIllIIIlII1I1I11Illl1llIIIll) = @_; | |
$II11lIIlI1Il1Il1IIIlI1lIl1lII1l = -1; | |
if (defined $l11IIll111l1ll11IIl11lIIIIllIll) { | |
if ($l11IIll111l1ll11IIl11lIIIIllIll eq 'all_but_ipmi_disabled') { | |
$II11lIIlI1Il1Il1IIIlI1lIl1lII1l = $lll1lI1Il11IIlll1II1lIIlllI11I1; | |
} | |
if ($l11IIll111l1ll11IIl11lIIIIllIll eq 'ikvm_disabled') { | |
$II11lIIlI1Il1Il1IIIlI1lIl1lII1l = $I1llIlIllIll11l11111l1I11IIlllI; | |
} | |
if ($l11IIll111l1ll11IIl11lIIIIllIll eq 'http_disabled') { | |
$II11lIIlI1Il1Il1IIIlI1lIl1lII1l = $lI11II1111lIlIlI111lIIIIllI1ll1; | |
} | |
if ($l11IIll111l1ll11IIl11lIIIIllIll eq 'ssh_telnet_disabled') { | |
$II11lIIlI1Il1Il1IIIlI1lIl1lII1l = $IlII11lll1ll1II1ll1lI1I1I11l1I1; | |
} | |
if ($l11IIll111l1ll11IIl11lIIIIllIll eq 'snmp_disabled') { | |
$II11lIIlI1Il1Il1IIIlI1lIl1lII1l = $II11lIIIlII1l11I11I11111II11III; | |
} | |
} | |
$l1lllIll1IIllIIIIlIllIlI1lII1lI = -1; | |
if (defined $lIlIIllIIIlII1I1I11Illl1llIIIll) { | |
if ($lIlIIllIIIlII1I1I11Illl1llIIIll eq 'yes') { | |
$l1lllIll1IIllIIIIlIllIlI1lII1lI = 1; | |
} | |
if ($lIlIIllIIIlII1I1I11Illl1llIIIll eq 'no') { | |
$l1lllIll1IIllIIIIlIllIlI1lII1lI = 0; | |
} | |
} | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 3 or $II11lIIlI1Il1Il1IIIlI1lIl1lII1l == -1 or $IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set' and $l1lllIll1IIllIIIIlIllIlI1lII1lI == -1) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll get|set ((option)) [yes|no]\n"; | |
printf "\n"; | |
printf " Available options:\n"; | |
printf " all_but_ipmi_disabled\n"; | |
printf " ikvm_disabled\n"; | |
printf " http_disabled\n"; | |
printf " ssh_telnet_disabled\n"; | |
printf " snmp_disabled\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lllIIIIl11llIIl1Illl1l1IIllI1Il($II11lIIlI1Il1Il1IIIlI1lIl1lII1l); | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
printf "$IIl1IlIIllII1I1lIlIIIIlIIII1lII\n"; | |
return; | |
} | |
if (lIllIll1l111I1I1IllII1lll1llIIl $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
printf "Operation is not supported on this platform.\n"; | |
return; | |
} | |
printf "%s\n", I1IIlI1IIIIllllI1IlIl1I1llIll11($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
return; | |
} | |
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11llllI1lIlIlIIl1l1I1l1IIl111I($II11lIIlI1Il1Il1IIIlI1lIl1lII1l, $l1lllIll1IIllIIIIlIllIlI1lII1lI); | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
printf "Operation did not succeed. (likely an unsupported bit setting)\n"; | |
return; | |
} | |
if (lIllIll1l111I1I1IllII1lll1llIIl $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
printf "Operation is not supported on this platform.\n"; | |
return; | |
} | |
print "\n"; | |
return; | |
} | |
} | |
sub I11I1I111l1l1lIll1llI1IllII1111 { | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $lIlIIllIIIlII1I1I11Illl1llIIIll) = @_; | |
my $l1lllIll1IIllIIIIlIllIlI1lII1lI; | |
$l1lllIll1IIllIIIIlIllIlI1lII1lI = -1; | |
if (defined $lIlIIllIIIlII1I1I11Illl1llIIIll) { | |
if ($lIlIIllIIIlII1I1I11Illl1llIIIll eq 'yes') { | |
$l1lllIll1IIllIIIIlIllIlI1lII1lI = 1; | |
} | |
if ($lIlIIllIIIlII1I1I11Illl1llIIIll eq 'no') { | |
$l1lllIll1IIllIIIIlIllIlI1lII1lI = 0; | |
} | |
} | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2 or $l1lllIll1IIllIIIIlIllIlI1lII1lI == -1) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll yes|no\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
printf "\n"; | |
ll1lIIII1lII1IlIl1llI1llI1I1III $l1lllIll1IIllIIIIlIllIlI1lII1lI; | |
return; | |
} | |
sub lI1I1lllI11llIlIl1Ill1l11l11IlI { | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $IllIIlI1lI1lI1I1IIIlII1III11lIl) = @_; | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll port_number\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
printf "\n"; | |
l11111111III1IllIIII11IIlllIIl1 $IllIIlI1lI1lI1I1IIIlII1III11lIl; | |
return; | |
} | |
sub l1llIll111IllIII1llll11l11llI11 { | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $IllIIlI1lI1lI1I1IIIlII1III11lIl) = @_; | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll port_number\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
printf "\n"; | |
IIIIl1l1ll1ll1ll1lI1lI11I1IlI1l $IllIIlI1lI1lI1I1IIIlII1III11lIl; | |
return; | |
} | |
sub lI1ll1I111I11lIl11lI1lIIIIlllI1 { | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $lllI1111l1IllI1IIlIl1I11I11I1ll) = @_; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll sensor_id\n"; | |
printf "\n"; | |
printf " The sensor_id can be found as the second field in 'ipmitool sdr elist'.\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = Il11IIIl11lIlll1llII1lI1llll1Il(hex $lllI1111l1IllI1IIlIl1I11I11I1ll); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
printf "Sensor $lllI1111l1IllI1IIlIl1I11I11I1ll%s reading in decimal: %d \n", ':', $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
printf "Sensor $lllI1111l1IllI1IIlIl1I11I11I1ll%s reading in hex: 0x%02x \n", ':', $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
return; | |
} | |
sub lIlI1l111lIIII1IIlIII1IlIl11I1I { | |
my $lI1IllIIII11IIIlI1lII11l1l1lII1 = shift @_; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my(@Il1llII1I1IIll1I1lIII11lII1l1I1) = (); | |
die "\nError: Could not open BMC list file $lI1IllIIII11IIIlI1lII11l1l1lII1\n\n" unless open MYBMCFILE, $lI1IllIIII11IIIlI1lII11l1l1lII1; | |
while (defined($_ = <MYBMCFILE>)) { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = $_; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = llIlIllIlll11llIll11l11lIlIll1l($lIl11I1IIl111I1II11lIIllI1II1ll); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll =~ /^$/) { | |
next; | |
} | |
push @Il1llII1I1IIll1I1lIII11lII1l1I1, $lIl11I1IIl111I1II11lIIllI1II1ll; | |
} | |
return @Il1llII1I1IIll1I1lIII11lII1l1I1; | |
} | |
sub lllIIl111l1lI1lII111llllIllI11I { | |
my $II11llIIIlI1lIIIIIl11111llII1I1 = ''; | |
++$lll11Il1Ill1IlIllll11IIllI111l1; | |
if ($lll11Il1Ill1IlIllll11IIllI111l1 < $#lI1Il11ll11l1I1I1I1II111IIl11I1 + 1) { | |
$II11llIIIlI1lIIIIIl11111llII1I1 = $lI1Il11ll11l1I1I1I1II111IIl11I1[$lll11Il1Ill1IlIllll11IIllI111l1]; | |
$IIIllll1lllI1111II111III11I1I1l = $II11llIIIlI1lIIIIIl11111llII1I1; | |
I1llll1l11I1IlI1III111l11II111l 'CURBMC', $II11llIIIlI1lIIIIIl11111llII1I1; | |
} | |
return $II11llIIIlI1lIIIIIl11111llII1I1; | |
} | |
sub I11lIIl11l11lI1lI1llIl11lII1I1l { | |
if ($ll1I1l1Il1llI11ll11lIIIIl1IIlI1) { | |
printf '%' . $IIl11llIIIlIIlIlllIIII11lIIIlIl . 's: ', $IIIllll1lllI1111II111III11I1I1l; | |
} | |
} | |
sub Illll1IIl11l1lllIl1IllI111I1llI { | |
printf "BMC is awake\n"; | |
} | |
sub I1lIl1l1lll11llI1ll11lI1l1l1lIl { | |
my $Il111IlIlII1lll111IlIlIl111I1lI = shift @_; | |
my $lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il = join(' ', @_); | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
IlI11l1II111I1I111IllIIllIll1lI 'ipmitool_passthrough'; | |
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII("$lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il"); | |
print "\n"; | |
print "$IIl1IlIIllII1I1lIlIIIIlIIII1lII\n"; | |
return; | |
} | |
sub lll111IlIll1IIl111lllIIl1III1II { | |
my $lll11Ill1l11l1l1ll1lI1I11l1111I = IIll1ll11I11IlllIll11ll1II11I1I(); | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'FRU Device Description', $lll11Ill1l11l1l1ll1lI1I11l1111I); | |
my(@Illl1I1I1ll1lll11llI1l1lIIIlI1I) = split(/\n/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0); | |
my $I1IIIlI1ll11Ill11lIl1I1l1I1Il1I = $#Illl1I1I1ll1lll11llI1l1lIIIlI1I + 1; | |
return $I1IIIlI1ll11Ill11lIl1I1l1I1Il1I; | |
} | |
sub I1l1lll11llIl1l1I111IllI1ll1II1 { | |
my $III1lI1Il11IllIIlI1I111Il1lII11 = shift @_; | |
my $lll11Ill1l11l1l1ll1lI1I11l1111I = IIll1ll11I11IlllIll11ll1II11I1I(); | |
my(@IlIlIl1IIIlII1Il11lI11I1l11ll11) = split(/FRU Device Description/, $lll11Ill1l11l1l1ll1lI1I11l1111I, 0); | |
shift @IlIlIl1IIIlII1Il11lI11I1l11ll11; | |
my $IIlllllIII11III111ll111lIlI11II = $IlIlIl1IIIlII1Il11lI11I1l11ll11[$III1lI1Il11IllIIlI1I111Il1lII11]; | |
$IIlllllIII11III111ll111lIlI11II = I11lllII1lll111II1IllIIl1II1llI($IIlllllIII11III111ll111lIlI11II); | |
return $IIlllllIII11III111ll111lIlI11II; | |
} | |
sub IIll1II1I1lIlIII1lI1lIlIIl11I11 { | |
my $Il111IlIlII1lll111IlIlIl111I1lI = shift @_; | |
my $lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il = join(' ', @_); | |
my $lll11Ill1l11l1l1ll1lI1I11l1111I = IIll1ll11I11IlllIll11ll1II11I1I(); | |
my $l1IlIlllII11I1l1l1lI1l11ll1l1l1; | |
my $IlIlIl1IIIlII1Il11lI11I1l11ll11; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $IIIIl11l1I1lllIl1llIl1l1I11lI1I; | |
my $lIl1II1IllI1l1lllIlIll1I11l1III; | |
my $i; | |
my @Illl1I1I1ll1lll11llI1l1lIIIlI1I; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ''; | |
my $I1IIIlI1ll11Ill11lIl1I1l1I1Il1I = lll111IlIll1IIl111lllIIl1III1II(); | |
for ($i = 0; $i < $I1IIIlI1ll11Ill11lIl1I1l1I1Il1I; ++$i) { | |
$l1IlIlllII11I1l1l1lI1l11ll1l1l1 = I1l1lll11llIl1l1I111IllI1ll1II1($i); | |
$l1IlIlllII11I1l1l1lI1l11ll1l1l1 = I11lllII1lll111II1IllIIl1II1llI($l1IlIlllII11I1l1l1lI1l11ll1l1l1); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = I1I1lIIII1lIll1l11I11lll1Il1II1(1, $l1IlIlllII11I1l1l1lI1l11ll1l1l1); | |
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll); | |
$lIl1II1IllI1l1lllIlIll1I11l1III = ll1IllIIlIll111lIl11IlllIllII1l('\\(', '\\)', $lIl11I1IIl111I1II11lIIllI1II1ll); | |
$lIl1II1IllI1l1lllIlIll1I11l1III = l1lI11I1llllI1IIII111IllI1l11Il('ID', $lIl1II1IllI1l1lllIlIll1I11l1III); | |
$lIl1II1IllI1l1lllIlIll1I11l1III = I11lllII1lll111II1IllIIl1II1llI($lIl1II1IllI1l1lllIlIll1I11l1III); | |
$IIIIl11l1I1lllIl1llIl1l1I11lI1I = ll1IllIIlIll111lIl11IlllIllII1l('\\:', '\\(', $lIl11I1IIl111I1II11lIIllI1II1ll); | |
$IIIIl11l1I1lllIl1llIl1l1I11lI1I = I11lllII1lll111II1IllIIl1II1llI($IIIIl11l1I1lllIl1llIl1l1I11lI1I); | |
$IlIlIl1IIIlII1Il11lI11I1l11ll11 = I1IIl1lIIIIIlI1I1IIIlI1IlIlIII1(2, 0, $l1IlIlllII11I1l1l1lI1l11ll1l1l1); | |
@Illl1I1I1ll1lll11llI1l1lIIIlI1I = split(/\n/, $IlIlIl1IIIlII1Il11lI11I1l11ll11, 0); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= sprintf("FRU ID $lIl1II1IllI1l1lllIlIll1I11l1III Device Section Name : $IIIIl11l1I1lllIl1llIl1l1I11lI1I\n"); | |
foreach my $l11IIIIllIIl1lll111II11lI1ll1l1 (@Illl1I1I1ll1lll11llI1l1lIIIlI1I) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= sprintf("FRU ID $lIl1II1IllI1l1lllIlIll1I11l1III $l11IIIIllIIl1lll111II11lI1ll1l1\n"); | |
} | |
} | |
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
sub I1I11I11llII11111Illll1111I1I11 { | |
my $lIl11I1IIl111I1II11lIIllI1II1ll = IIll1II1I1lIlIII1lI1lIlIIl11I11(); | |
print "$lIl11I1IIl111I1II11lIIllI1II1ll\n"; | |
} | |
sub IlIll1lII1I11llIII11lllII1Il1I1 { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1Ill1l11l1llIIlI1II1llI111I1Il(); | |
print "$IIl1IlIIllII1I1lIlIIIIlIIII1lII\n"; | |
} | |
sub IIIlII1llI1IIIIlI11Il1IIlll11I1 { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1llIIlIlllI1I11IIl11IlIl111lll(); | |
print "$IIl1IlIIllII1I1lIlIIIIlIIII1lII\n"; | |
} | |
my $lIllII1I1II1l1Ill11llIlI1l1IIll = 1; | |
my $l111I11lIlI111IIlIIlI11Il1II1Il; | |
sub I1I1llIII1IIIIl11I1llIlIl1II111 { | |
if ($lIllII1I1II1l1Ill11llIlI1l1IIll == 2) { | |
print '.' . $l111I11lIlI111IIlIIlI11Il1II1Il . '.'; | |
++$l111I11lIlI111IIlIIlI11Il1II1Il; | |
} | |
if ($lIllII1I1II1l1Ill11llIlI1l1IIll == 1) { | |
if ($l111I11lIlI111IIlIIlI11Il1II1Il % 5 == 0) { | |
print ':'; | |
} | |
else { | |
print '.'; | |
} | |
$l111I11lIlI111IIlIIlI11Il1II1Il++; | |
} | |
} | |
sub l1IlIll1l1lIlllIlllI11IIlIlI11l { | |
$l111I11lIlI111IIlIIlI11Il1II1Il = 1; | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $l1II1Il1l11Illl11lI11IIIl1IIlI1 = ll1IlI11l1Il1IlIIlIIlIII11lI11l(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $lllIll1I1111ll1llII1I1111ll1I11 = lllIllI111111lll1l1I11I1111lIlI(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $I11l1IIllIllIII1l1Il1lIl1l1111I = IIll1IlIIl11I1lll1Il1I11llIl1Il(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $I11lIlllIII1II1lllllIllllIl1I11 = I11IIl1II1lII1111II1IlI1lIIlIll(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $lII11l1I1IIll1l1IlIlll1I1lI1lI1 = I1l1l1Il1lI11I1l1lI1111IIlI1lll(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $lIII1l1lIlll1Il1lI111Il111lI11l = II1I11llIl11lII11lIIIl1II11lIII(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $lII1lllll1llI1IIlIl1II1ll1llll1 = IlIIlI1Ill1lII1I1IlIlIl1Il1lIlI(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $IllllIIIl1II11IlIIlllIIl1IIlll1 = IIlllllIl111IIIll1ll1ll1IIlI1I1(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $II11llIIIlI1lIIIIIl11111llII1I1 = I111Il11l11IIlIll11ll1lll1lIII1(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $I11III1I1Il1ll1II1lI1l111Il1l1l = IIlllIllI1I1lll111IIl1l1lI1I111(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $l1lll1lIlI1IllI11l1l1I1IlIlllll = I11ll1111lllI1lII1l11IIll1Il11I(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $lll1Illl11II1II1lIIlIlllIlII1II = I1IllIl11lIIlllI1IlI1l1III1I1l1(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $l1I1Ill1IlI11IIIIllI1IIllI1lI1I = l1lIlIIIII1IIl1IIlIIlIll11IlI1l(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $I1Ill111111I1I1I11lIIlIlllII11I = II11ll1I1I11l1lIlI1l1I1IllI11l1(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $I11IIII1l1IlII111II1l1l1Il11lll = I1lII1Il1lIlII1I11I1I111IlI1I1I(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $lIIIlIlllII111II1IIIIl1II1lIIl1 = I1lII11lIIIl1I1Ill1l1I11I1IlIII(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $llIll1lllI11lI11III11I11IIIIlI1 = lI11lI1I111II111l1lI1IlllI11l11(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $I11ll1I1I1II1lI1ll1IlIIIlIIII1I = l1l11lIlll11lI1I11II111lIl1lllI(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $I11l111I1lll11IlI1lIllIlII1l1l1 = ll1I1I1llI111IIlllIlI11ll1lIII1(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $l1I1I11I11lIllIIlIlllIIIIIl1lll = l11I1II1l1IlI1IIlIlI1llII1IlI11(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $I1l1II1Il1I1l1III1lIlIll1l11lIl = lIl1lIIl1IlllIlII11lll11IlIIIl1(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $l11IIl111II1I1II1IllIIllIII1l11 = IlIlllIlIlI111IlI1llI1llll1IIII(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $I1l1Illl11IllIIlIlIllIlIl1l11I1 = l11l1lI111l11IIII1III11lIl1IIll(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $l1llI1I1llIlI1I11lIlll1l111I1I1 = I1llIIlIlllI1I11IIl11IlIl111lll(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $lllll1IIllI1lll1I1lIllII1I11IIl = I1Ill1l11l1llIIlI1II1llI111I1Il(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $IlIIl1IIl1llII1llIll1lIIIIl1llI = l111Ill111I1l11l1I1II1lIlI1lII1(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $lII1Illl1l1ll11llI1llII111ll1I1 = IIl1l1lll1I1ll11IIIlllIl1llII1l(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $I11Ill1l1lI1I1II1III1lllI1l11Il = lII11I1lIIIIllIIIIIIIIIl11lIIll(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $I1IllI1ll1IIlll11lll11lI1I1I111 = l1I1lllIlI11l1I1Ill1111lI1I1Il1(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $lII11l1lIlII1Il1lIlIIIlIlllIII1 = IllllIll1l11I11l11I111IllIllI1l(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $ll1IlIlII1IIl1IlI1llllI11IIlII1 = lIIl1l1llIllI1Il1IlI1I111IIlIl1(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my($l1Ill1lIIl1l1I111ll1ll11I11lI11, $ll11IllI111lllllII11II1I1l1Il1I) = l11l11l1lll1Ill1I111ll1l1lI1lI1(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $lllIlIlllIll111ll11IllIlll11Il1 = IlIII1ll11I1II1llll1IlIIl1II1I1(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $Il1ll1lI1lIll111l1Il111I1lI1111 = II1II1l1IlIl1lIIII1l11l1lIIIIII(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $l1lII11I1l1lI1111IIl1Ill1lIlIlI = I1llII1I111I1Il1l1II1l11l1II11l(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $IIIllIIIlIIll11Ill111Ill111II11 = llIl1l1I111I1lI1IIl11II11lI1l1l(); | |
I1I1llIII1IIIIl11I1llIlIl1II111 ; | |
my $l1lIIlII1l1IIl1l111l1l111Il1lI1 = lI1llIl11l11II1ll1l1l1Il1lI1IlI(); | |
print "\n"; | |
if (Il11lIIIlll1Il11ll1lIl1l1II1l1l $lIII1l1lIlll1Il1lI111Il111lI11l) { | |
$lIII1l1lIlll1Il1lI111Il111lI11l = 'n/a'; | |
} | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $lIII1l1lIlll1Il1lI111Il111lI11l) { | |
$lIII1l1lIlll1Il1lI111Il111lI11l = 'unimplemented in tool for this platform'; | |
} | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IllllIIIl1II11IlIIlllIIl1IIlll1) { | |
$IllllIIIl1II11IlIIlllIIl1IIlll1 = 'unavailable'; | |
} | |
elsif (ll11I1ll11lI1l111Ill11ll1IIIIll $IllllIIIl1II11IlIIlllIIl1IIlll1) { | |
$IllllIIIl1II11IlIIlllIIl1IIlll1 = 'reboot of server required'; | |
} | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $I11III1I1Il1ll1II1lI1l111Il1l1l) { | |
$I11III1I1Il1ll1II1lI1l111Il1l1l = 'unimplemented in tool for this platform'; | |
} | |
elsif (Il11lIIIlll1Il11ll1lIl1l1II1l1l $I11III1I1Il1ll1II1lI1l111Il1l1l) { | |
$I11III1I1Il1ll1II1lI1l111Il1l1l = 'n/a'; | |
} | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $l1lll1lIlI1IllI11l1l1I1IlIlllll) { | |
$l1lll1lIlI1IllI11l1l1I1IlIlllll = 'unimplemented in tool for this platform'; | |
} | |
elsif (Il11lIIIlll1Il11ll1lIl1l1II1l1l $l1lll1lIlI1IllI11l1l1I1IlIlllll) { | |
$l1lll1lIlI1IllI11l1l1I1IlIlllll = 'n/a'; | |
} | |
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $lll1Illl11II1II1lIIlIlllIlII1II) { | |
$lll1Illl11II1II1lIIlIlllIlII1II = 'unimplemented in tool for this platform'; | |
} | |
elsif (Il11lIIIlll1Il11ll1lIl1l1II1l1l $lll1Illl11II1II1lIIlIlllIlII1II) { | |
$lll1Illl11II1II1lIIlIlllIlII1II = 'n/a'; | |
} | |
elsif (l1IIl1I1ll11III11I1III1lIlI11lI $lll1Illl11II1II1lIIlIlllIlII1II) { | |
$lll1Illl11II1II1lIIlIlllIlII1II = 'unavailable - power node on to read'; | |
} | |
elsif (ll11I1ll11lI1l111Ill11ll1IIIIll $lll1Illl11II1II1lIIlIlllIlII1II) { | |
$lll1Illl11II1II1lIIlIlllIlII1II = 'invalid - Intel ME may be disabled in BIOS (Power Management)'; | |
} | |
$l1llI1I1llIlI1I11lIlll1l111I1I1 = I11l1IlllII1ll11lll1IIIlI111l1I($l1llI1I1llIlI1I11lIlll1l111I1I1, '%d Watts'); | |
$lllll1IIllI1lll1I1lIllII1I11IIl = I11l1IlllII1ll11lll1IIIlI111l1I($lllll1IIllI1lll1I1lIllII1I11IIl, '%d Watts'); | |
if (lIll1lIIllIII1IlI11l111llII1I1I $l1lII11I1l1lI1111IIl1Ill1lIlIlI) { | |
$l1lII11I1l1lI1111IIl1Ill1lIlIlI = '---'; | |
} | |
if (l1IIl1I1ll11III11I1III1lIlI11lI $ll11IllI111lllllII11II1I1l1Il1I) { | |
$ll11IllI111lllllII11II1I1l1Il1I = II111lIlIlIIlIll1IllII1lIlI1lIl($ll11IllI111lllllII11II1I1l1Il1I); | |
} | |
my $l1l1l1Ill1lIII1lIIlIIll111Il1I1 = 38; | |
printf "\n"; | |
if (lI1IIlllllIlllI11lIIlIllI1I11II $lII11l1lIlII1Il1lIlIIIlIlllIII1) { | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'ERROR', '>'), $lII11l1lIlII1Il1lIlIIIlIlllIII1; | |
} | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Power is'), $lII1lllll1llI1IIlIl1II1ll1llll1; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Platform name'), $I1I1IllI1Il11111111II11lI11I1lI; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Platform type'), $ll1IlIlII1IIl1IlI1llllI11IIlII1; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Node number in chassis'), $lIII1l1lIlll1Il1lI111Il111lI11l; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Chassis type'), $ll11IllI111lllllII11II1I1l1Il1I; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Chassis Service Tag'), $lllIlIlllIll111ll11IllIlll11Il1; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Power drawn by this node'), $l1llI1I1llIlI1I11lIlll1l111I1I1; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Power limit for this node'), $l1lII11I1l1lI1111IIl1Ill1lIlIlI; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Power drawn by whole chassis'), $lllll1IIllI1lll1I1lIllII1I11IIl; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Power limit for this chassis'), $IIIllIIIlIIll11Ill111Ill111II11; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Chassis power limiting enabled'), I1IIlI1IIIIllllI1IlIl1I1llIll11($l1lIIlII1l1IIl1l111l1l111Il1lI1); | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'AC restore policy'), $I11Ill1l1lI1I1II1III1lllI1l11Il; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BIOS version'), $IllllIIIl1II11IlIIlllIIl1IIlll1; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC version'), $II11llIIIlI1lIIIIIl11111llII1I1; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'FCB version'), $I11III1I1Il1ll1II1lI1l111Il1l1l; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'FCB PIC version'), $l1lll1lIlI1IllI11l1l1I1IlIlllll; | |
if ($lll1Illl11II1II1lIIlIlllIlII1II ne 'n/a') { | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Intel ME version (if applicable)'), $lll1Illl11II1II1lIIlIlllIlII1II; | |
} | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'ipmitool version'), $IlIIl1IIl1llII1llIll1lIIIIl1llI; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'bmc tool version'), $lII1Illl1l1ll11llI1llII111ll1I1; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC hostname'), $lIIIlIlllII111II1IIIIl1II1lIIl1; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC IP source'), $I11l1IIllIllIII1l1Il1lIl1l1111I; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC IP address'), $l1II1Il1l11Illl11lI11IIIl1IIlI1; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC subnet mask'), $lllIll1I1111ll1llII1I1111ll1I11; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC MAC address'), $I1IllI1ll1IIlll11lll11lI1I1I111; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC VLAN setting'), $I11lIlllIII1II1lllllIllllIl1I11; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC NIC mode (which physical port)'), $lII11l1I1IIll1l1IlIlll1I1lI1lI1; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Service tag'), $I1Ill111111I1I1I11lIIlIlllII11I; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Asset tag (set by customer)'), $I11IIII1l1IlII111II1l1l1Il11lll; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'PPID (unique board serial num)'), $l1I1Ill1IlI11IIIIllI1IIllI1lI1I; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Security: all_but_ipmi_disabled'), I1IIlI1IIIIllllI1IlIl1I1llIll11($llIll1lllI11lI11III11I11IIIIlI1); | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Security: ikvm_disabled'), I1IIlI1IIIIllllI1IlIl1I1llIll11($I11ll1I1I1II1lI1ll1IlIIIlIIII1I); | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Security: http_disabled'), I1IIlI1IIIIllllI1IlIl1I1llIll11($I11l111I1lll11IlI1lIllIlII1l1l1); | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Security: ssh_telnet_disabled'), I1IIlI1IIIIllllI1IlIl1I1llIll11($l1I1I11I11lIllIIlIlllIIIIIl1lll); | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Security: snmp_disabled'), I1IIlI1IIIIllllI1IlIl1I1llIll11($Il1ll1lI1lIll111l1Il111I1lI1111); | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC Web GUI enabled'), I1IIlI1IIIIllllI1IlIl1I1llIll11($I1l1II1Il1I1l1III1lIlIll1l11lIl); | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC Web GUI http port'), $l11IIl111II1I1II1IllIIllIII1l11; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC Web GUI https port'), $I1l1Illl11IllIIlIlIllIlIl1l11I1; | |
my $IIIlllII1I11lIIlllIIl1lIl11I111 = IIll1II1I1lIlIII1lI1lIlIIl11I11(); | |
my(@Illl1I1I1ll1lll11llI1l1lIIIlI1I) = split(/\n/, $IIIlllII1I11lIIlllIIl1lIl11I111, 0); | |
my $lIl11lIIll1llI1lI11lI1l1IIl1lIl; | |
my $Ill1IllIII1l11l11lIlI1l1I1lll1I; | |
foreach my $l11IIIIllIIl1lll111II11lI1ll1l1 (@Illl1I1I1ll1lll11llI1l1lIIIlI1I) { | |
$lIl11lIIll1llI1lI11lI1l1IIl1lIl = ll11ll111I1IIIIll1ll1l1IlIIIl1l(':', $l11IIIIllIIl1lll111II11lI1ll1l1); | |
$Ill1IllIII1l11l11lIlI1l1I1lll1I = l1lI11I1llllI1IIII111IllI1l11Il(':', $l11IIIIllIIl1lll111II11lI1ll1l1); | |
$lIl11lIIll1llI1lI11lI1l1IIl1lIl = I11lllII1lll111II1IllIIl1II1llI($lIl11lIIll1llI1lI11lI1l1IIl1lIl); | |
$Ill1IllIII1l11l11lIlI1l1I1lll1I = I11lllII1lll111II1IllIIl1II1llI($Ill1IllIII1l11l11lIlI1l1I1lll1I); | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, $lIl11lIIll1llI1lI11lI1l1IIl1lIl), $Ill1IllIII1l11l11lIlI1l1I1lll1I; | |
} | |
if (lI1IIlllllIlllI11lIIlIllI1I11II $lII11l1lIlII1Il1lIlIIIlIlllIII1) { | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'ERROR', '>'), $lII11l1lIlII1Il1lIlIIIlIlllIII1; | |
} | |
printf "\n"; | |
} | |
sub IIlIl1l1lIlIl1IllIl1III1IlI111I { | |
my $lII11l1I1IIll1l1IlIlll1I1lI1lI1 = I1l1l1Il1lI11I1l1lI1111IIlI1lll(); | |
my $I1IllI1ll1IIlll11lll11lI1I1I111 = l1I1lllIlI11l1I1Ill1111lI1I1Il1(); | |
printf "%s,%s\n", $lII11l1I1IIll1l1IlIlll1I1lI1lI1, $I1IllI1ll1IIlll11lll11lI1I1I111; | |
} | |
sub I1IIIlIlI11111Il1IlIIl1I1l1l1ll { | |
if (not $lI1l11ll1II11llII1lllllllIIIIlI) { | |
printf "\n"; | |
printf "This function cannot be used remotely, because it is possible to render the BMC inaccessible.\n"; | |
printf "If you really, really, really want to do this remotely, use:\n"; | |
printf "\n"; | |
printf " print_this_mac\n"; | |
printf " nic_mode toggle\n"; | |
printf " (wait 30 seconds)\n"; | |
printf " print_this_mac\n"; | |
printf " nic_mode toggle\n"; | |
printf " (wait 30 seconds)\n"; | |
printf "\n"; | |
printf "... and you will get the same result, assuming the BMC can communicate in both shared & dedicated mode.\n"; | |
printf "But to reapply the MAC addresses, you must do it only locally (ssh into target machine, run\n"; | |
printf "set_both_macs)\n"; | |
printf "\n"; | |
exit 1; | |
} | |
my $IIl1I1111I11l11lIIl11I1lI111III = ''; | |
my $ll1lIll1l1Il111I11Il1l11ll1lIll = ''; | |
my $lII11l1I1IIll1l1IlIlll1I1lI1lI1 = I1l1l1Il1lI11I1l1lI1111IIlI1lll(); | |
my $I1IllI1ll1IIlll11lll11lI1I1I111 = l1I1lllIlI11l1I1Ill1111lI1I1Il1(); | |
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'shared') { | |
$IIl1I1111I11l11lIIl11I1lI111III = $I1IllI1ll1IIlll11lll11lI1I1I111; | |
} | |
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'dedicated') { | |
$ll1lIll1l1Il111I11Il1l11ll1lIll = $I1IllI1ll1IIlll11lll11lI1I1I111; | |
} | |
llIIII1I1ll11l11I1I1lIIIlI11l1l 'nic_mode', 'toggle', '', 'silent'; | |
sleep 30; | |
ll1l1IlI11I11IlIll1llIIlIIIllIl ; | |
$lII11l1I1IIll1l1IlIlll1I1lI1lI1 = I1l1l1Il1lI11I1l1lI1111IIlI1lll(); | |
$I1IllI1ll1IIlll11lll11lI1I1I111 = l1I1lllIlI11l1I1Ill1111lI1I1Il1(); | |
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'shared') { | |
$IIl1I1111I11l11lIIl11I1lI111III = $I1IllI1ll1IIlll11lll11lI1I1I111; | |
} | |
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'dedicated') { | |
$ll1lIll1l1Il111I11Il1l11ll1lIll = $I1IllI1ll1IIlll11lll11lI1I1I111; | |
} | |
llIIII1I1ll11l11I1I1lIIIlI11l1l 'nic_mode', 'toggle', '', 'silent'; | |
printf "%s,%s\n", 'shared', $IIl1I1111I11l11lIIl11I1lI111III; | |
printf "%s,%s\n", 'dedicated', $ll1lIll1l1Il111I11Il1l11ll1lIll; | |
} | |
sub llIlI1llIII1IlI1Il11IlllIl11111 { | |
my($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIIll1IllIl1III1IlIl11IIIlI1lIl, $III1l1llIlI1l1I1IIlIIIll1111l1I, $II1l1I11llIIlI11IIIlIllI1l111lI, $lI1IIIIl1lI1II111I1ll1lI11IIlII) = IIllll1Il11II11lllII1IlllIIIl1l(); | |
my $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I; | |
my $l1l1l1Ill1lIII1lIIlIIll111Il1I1 = 38; | |
print "\n"; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'ec'), $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'raw'), $IIIll1IllIl1III1IlIl11IIIlI1lIl; | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll) { | |
$l1l11IIIlll1IIlIl1IIIlIlI1I1l1I = ll11lI1I1I1IlIII1l1l1III1lllI1I($IIIll1IllIl1III1IlIl11IIIlI1lIl); | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'completion code'), $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I; | |
} | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll and $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I == 128) { | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Power Limit'), 'DISABLED'; | |
} | |
else { | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Power Limit'), $II1l1I11llIIlI11IIIlIllI1l111lI . ' watt'; | |
} | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Exception Actions'), $III1l1llIlI1l1I1IIlIIIll1111l1I; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Correction Time'), $lI1IIIIl1lI1II111I1ll1lI11IIlII; | |
print "\n"; | |
} | |
sub IIlIllIIl1lll11llI1lIl1ll1llllI { | |
my($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIIll1IllIl1III1IlIl11IIIlI1lIl, $lllIlIIIlll1ll1lIlIIIIlIlII1I1l, $lIll111l11III11IIl1lI1ll11ll111, $l1I11Il1II1lIl1ll11IIll1lIl11lI, $l11II1llIlIIIl11l11II11lIIll1l1, $llllIlI1Il1ll11l11Ill1I11ll1l1l, $llI1I11l1lIlI1lll1Ill1llIll11I1) = I1llIlIIIIl11IIIIlIlIIIll1lI1I1(); | |
my $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I; | |
my $l1l1l1Ill1lIII1lIIlIIll111Il1I1 = 38; | |
print "\n"; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'ec'), $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'raw'), $IIIll1IllIl1III1IlIl11IIIlI1lIl; | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll) { | |
$l1l11IIIlll1IIlIl1IIIlIlI1I1l1I = ll11lI1I1I1IlIII1l1l1III1lllI1I($IIIll1IllIl1III1IlIl11IIIlI1lIl); | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'completion code'), $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I; | |
} | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Enabled'), $lllIlIIIlll1ll1lIlIIIIlIlII1I1l; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Chassis Power Limit'), $lIll111l11III11IIl1lI1ll11ll111 . ' watt'; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Chassis Power Limit Action'), $l1I11Il1II1lIl1ll11IIll1lIl11lI; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Node Power Limit Exception'), $l11II1llIlIIIl11l11II11lIIll1l1; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Chassis Emergency Limit Action'), $llllIlI1Il1ll11l11Ill1I11ll1l1l; | |
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Node Emergency Limit Action'), $llI1I11l1lIlI1lll1Ill1llIll11I1; | |
print "\n"; | |
} | |
sub II1IIIlIll1l1I1Il1ll1llI1I1IllI { | |
my $lllIlIlI1ll1lI1l1I11lI111111I1l = I1IllIl11lIIlllI1IlI1l1III1I1l1(); | |
my $I11111l1I1I1llII1I111II111I1lll = II1I11llIl11lII11lIIIl1II11lIII(); | |
my $l1llI1I1llIlI1I11lIlll1l111I1I1 = I1llIIlIlllI1I11IIl11IlIl111lll(); | |
my $l1lII11I1l1lI1111IIl1Ill1lIlIlI = I1llII1I111I1Il1l1II1l11l1II11l(); | |
my $lllll1IIllI1lll1I1lIllII1I11IIl = I1Ill1l11l1llIIlI1II1llI111I1Il(); | |
my $IIIllIIIlIIll11Ill111Ill111II11 = llIl1l1I111I1lI1IIl11II11lI1l1l(); | |
my $IIII1I1Il111lII1111I1I1I1llII1I = lI1llIl11l11II1ll1l1l1Il1lI1IlI(); | |
my $I11IlIlIII11lIIll1l1I1111IIl1ll = lIIIIIIlIll1111lIIl11lIll1lll11(); | |
my $lll1IllI1I11111IlIlIII1IIlI1ll1 = lIIl1lIllI1ll1IIIIlIll11lllI111(0, 3); | |
if (lIll1lIIllIII1IlI11l111llII1I1I $l1lII11I1l1lI1111IIl1Ill1lIlIlI) { | |
$l1lII11I1l1lI1111IIl1Ill1lIlIlI = '---'; | |
} | |
if (l1IIl1I1ll11III11I1III1lIlI11lI $I11IlIlIII11lIIll1l1I1111IIl1ll) { | |
$I11IlIlIII11lIIll1l1I1111IIl1ll = 'n/a'; | |
} | |
printf " node %s%s %3s%s of %3s%s NMlimit: %3s%s chassis: %4s%s of %4s%s (limiting: %3s) fans: %d%s\n", $I11111l1I1I1llII1I111II111I1lll, ':', $l1llI1I1llIlI1I11lIlll1l111I1I1, 'w', $l1lII11I1l1lI1111IIl1Ill1lIlIlI, 'w', $lll1IllI1I11111IlIlIII1IIlI1ll1, 'w', $lllll1IIllI1lll1I1lIllII1I11IIl, 'w', $IIIllIIIlIIll11Ill111Ill111II11, 'w', IllIlllIIIlII11I1111ll111lIllll($IIII1I1Il111lII1111I1I1I1llII1I), $I11IlIlIII11lIIll1l1I1111IIl1ll, '%'; | |
} | |
sub IlIII1llIIl1I1II1I1l1I11lllIIll { | |
my $I11IlIlIII11lIIll1l1I1111IIl1ll = lIIIIIIlIll1111lIIl11lIll1lll11(); | |
print "$I11IlIlIII11lIIll1l1I1111IIl1ll" . '%' . "\n"; | |
} | |
sub l1III11llIl111lIIll11l1IlI1I1lI { | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $ll1l1l1Il1I1I1ll11ll1llI1II1III) = @_; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $III11I11lI1llI1llIIll11IIl1ll1I = '0x01'; | |
my $lII11l11IIllIlI1II1IllIlll1lI11 = '0x00'; | |
my $lIlIII11Il1I1IlI1l1l1IIll11Illl = '0x00'; | |
my $Ill1Il11I11IIII1l11111I111Il1Il = '0x02'; | |
my $llllIIl1IlIl1IllI1I1l11111II11l = '0x02'; | |
my $l11111llllI11IIl1I1lllIllI1lI11 = '0x00'; | |
my $II11l1l1ll1llIlIIIIIl1l11l1II1I = '0x00'; | |
my $l1lII1llll11l11Il1111ll1IIIIlll = '0x01'; | |
my $l1lIIl1I111Il1I1Illll1l1l11I1ll = '0x00'; | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll chassis_power_limit | disable\n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
if ($ll1l1l1Il1I1I1ll11ll1llI1II1III =~ /disable/i) { | |
$III11I11lI1llI1llIIll11IIl1ll1I = '0x00'; | |
} | |
else { | |
$lIl11I1IIl111I1II11lIIllI1II1ll = sprintf('%04x', $ll1l1l1Il1I1I1ll11ll1llI1II1III); | |
$lIlIII11Il1I1IlI1l1l1IIll11Illl = '0x' . substr($lIl11I1IIl111I1II11lIIllI1II1ll, 0, 2); | |
$lII11l11IIllIlI1II1IllIlll1lI11 = '0x' . substr($lIl11I1IIl111I1II11lIIllI1II1ll, 2, 2); | |
} | |
l1lI1I1I1Il11IIl1l1IIIll1llIIII "raw 0x30 0x17 $III11I11lI1llI1llIIll11IIl1ll1I $lII11l11IIllIlI1II1IllIlll1lI11 $lIlIII11Il1I1IlI1l1l1IIll11Illl $Ill1Il11I11IIII1l11111I111Il1Il $llllIIl1IlIl1IllI1I1l11111II11l $l11111llllI11IIl1I1lllIllI1lI11 $II11l1l1ll1llIlIIIIIl1l11l1II1I $l1lII1llll11l11Il1111ll1IIIIlll $l1lIIl1I111Il1I1Illll1l1l11I1ll"; | |
print "\n"; | |
} | |
sub II1Ill111I1I11IIIlIIIlII11l1lll { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = l11llIII1lIlII11III1lllIlIlI1ll(); | |
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq 0) { | |
print "no: Intel ME is on.\n"; | |
return; | |
} | |
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq 1) { | |
print "yes: Intel ME is off.\n"; | |
return; | |
} | |
print "unknown. sense_is_intel_me_off returned: $IIl1IlIIllII1I1lIlIIIIlIIII1lII \n"; | |
} | |
sub lIII11llIl1l11IlIl1IlIIlI1111l1 { | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_; | |
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $l1Ill11I11lIIIl1lI1IlIIllll1111) = @_; | |
my $I111l1III1lIIII11111IIl1l111lIl; | |
if ($III111lll1l1l111lIIlll1II1IlI11 ne 'C6220') { | |
Il1II1IIl1lIlI1I1lll1l1lII1l111 ; | |
return; | |
} | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) { | |
printf "Usage:\n"; | |
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll on | off \n"; | |
printf "\n"; | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
if ($l1Ill11I11lIIIl1lI1IlIIllll1111 =~ /on/i) { | |
$I111l1III1lIIII11111IIl1l111lIl = '0x00'; | |
} | |
elsif ($l1Ill11I11lIIIl1lI1IlIIllll1111 =~ /off/i) { | |
$I111l1III1lIIII11111IIl1l111lIl = '0x02'; | |
} | |
else { | |
lI1II1II1lll11111lll1llIIlIllll ; | |
} | |
l1lI1I1I1Il11IIl1l1IIIll1llIIII "raw 0x30 0xE3 $I111l1III1lIIII11111IIl1l111lIl"; | |
print "\n"; | |
} | |
sub Il1lI11lI11lIlIlI11I1Il11I11lll { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x30 0xE2 0x13 0x00 0x00'); | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
print "$IIl1IlIIllII1I1lIlIIIIlIIII1lII \n"; | |
} | |
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1; | |
my $i; | |
my $IIIlIll1Il1ll1l1II1IllIIIIl1II1; | |
my $llIIII11l1l1111IllIlII11IIIIll1; | |
my $l11II11IIIIIl1I1l11l1I1lIlIlII1; | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
my $II1lII1ll1lIlI1lIlIlII11II1IIll; | |
my $Il111IlIlII1lll111IlIlIl111I1lI; | |
my $I1l11lIl1IllIlIIIIIIll1ll11l1l1 = 0; | |
$lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = $#ARGV + 1; | |
select STDERR; | |
$| = 1; | |
select STDOUT; | |
$| = 1; | |
$llIIII11l1l1111IllIlII11IIIIll1 = 'root'; | |
$l11II11IIIIIl1I1l11l1I1lIlIlII1 = 'root'; | |
I1llll1l11I1IlI1III111l11II111l 'CURUSER', 'root'; | |
I1llll1l11I1IlI1III111l11II111l 'CURPASS', 'root'; | |
if (defined $ENV{'BMCTOOL_IPMITOOL_USER'}) { | |
$llIIII11l1l1111IllIlII11IIIIll1 = $ENV{'BMCTOOL_IPMITOOL_USER'}; | |
I1llll1l11I1IlI1III111l11II111l 'CURUSER', $llIIII11l1l1111IllIlII11IIIIll1; | |
} | |
if (defined $ENV{'BMCTOOL_IPMITOOL_PASSWORD'}) { | |
$l11II11IIIIIl1I1l11l1I1lIlIlII1 = $ENV{'BMCTOOL_IPMITOOL_PASSWORD'}; | |
I1llll1l11I1IlI1III111l11II111l 'CURPASS', $l11II11IIIIIl1I1l11l1I1lIlIlII1; | |
} | |
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 == 0) { | |
I1IlI1IIl1l1ll1l1I1ll1IIll11l11($0); | |
exit 1; | |
} | |
my $llI111llII11III1111lllI1II1lIl1; | |
my $Ill1I1lI1IlIIlIlllll1II11llIlIl; | |
my $lIl11I1IIl111I1II11lIIllI1II1ll; | |
my $II11Il1111IIII1111I11I1lIIl1111; | |
for ($i = 0; $i <= $#ARGV; ++$i) { | |
$llI111llII11III1111lllI1II1lIl1 = ''; | |
$Ill1I1lI1IlIIlIlllll1II11llIlIl = ''; | |
$lIl11I1IIl111I1II11lIIllI1II1ll = $ARGV[$i]; | |
if ($lIl11I1IIl111I1II11lIIllI1II1ll =~ /^-/) { | |
if (length $lIl11I1IIl111I1II11lIIllI1II1ll < 2) { | |
next; | |
} | |
if (length $lIl11I1IIl111I1II11lIIllI1II1ll == 2) { | |
$llI111llII11III1111lllI1II1lIl1 = substr($lIl11I1IIl111I1II11lIIllI1II1ll, 1, 1); | |
if ($i + 1 <= $#ARGV) { | |
if (not $ARGV[$i + 1] =~ /^-/) { | |
$Ill1I1lI1IlIIlIlllll1II11llIlIl = $ARGV[$i + 1]; | |
++$i; | |
} | |
} | |
} | |
else { | |
$llI111llII11III1111lllI1II1lIl1 = substr($lIl11I1IIl111I1II11lIIllI1II1ll, 1, 1); | |
$Ill1I1lI1IlIIlIlllll1II11llIlIl = substr($lIl11I1IIl111I1II11lIIllI1II1ll, 2); | |
} | |
$_ = $llI111llII11III1111lllI1II1lIl1; | |
if ($_ eq 'H') { | |
$lI1l11ll1II11llII1lllllllIIIIlI = $IIlllI1IIIl1lIlIl1I1llI1Illl1I1; | |
$Ill1I1lI1IlIIlIlllll1II11llIlIl = I11lllII1lll111II1IllIIl1II1llI($Ill1I1lI1IlIIlIlllll1II11llIlIl); | |
if ($Ill1I1lI1IlIIlIlllll1II11llIlIl =~ /^\^/) { | |
$Ill1I1lI1IlIIlIlllll1II11llIlIl = substr($Ill1I1lI1IlIIlIlllll1II11llIlIl, 1); | |
push @lI1Il11ll11l1I1I1I1II111IIl11I1, lIlI1l111lIIII1IIlIII1IlIl11I1I($Ill1I1lI1IlIIlIlllll1II11llIlIl); | |
} | |
else { | |
push @lI1Il11ll11l1I1I1I1II111IIl11I1, $Ill1I1lI1IlIIlIlllll1II11llIlIl; | |
} | |
} | |
elsif ($_ eq 'U') { | |
$lI1l11ll1II11llII1lllllllIIIIlI = $IIlllI1IIIl1lIlIl1I1llI1Illl1I1; | |
$llIIII11l1l1111IllIlII11IIIIll1 = $Ill1I1lI1IlIIlIlllll1II11llIlIl; | |
I1llll1l11I1IlI1III111l11II111l 'CURUSER', $llIIII11l1l1111IllIlII11IIIIll1; | |
} | |
elsif ($_ eq 'P') { | |
$lI1l11ll1II11llII1lllllllIIIIlI = $IIlllI1IIIl1lIlIl1I1llI1Illl1I1; | |
$l11II11IIIIIl1I1l11l1I1lIlIlII1 = $Ill1I1lI1IlIIlIlllll1II11llIlIl; | |
I1llll1l11I1IlI1III111l11II111l 'CURPASS', $l11II11IIIIIl1I1l11l1I1lIlIlII1; | |
} | |
elsif ($_ eq 'v') { | |
I1llll1l11I1IlI1III111l11II111l 'VERBOSE', $l11I1l1l1l111ll1I1I1I11ll1l11II; | |
} | |
else { | |
print "Unrecognized switch: -$_\n"; | |
I1IlI1IIl1l1ll1l1I1ll1IIll11l11($0); | |
exit 1; | |
} | |
} | |
else { | |
last; | |
} | |
} | |
my(@lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il) = (); | |
@lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il = @ARGV[$i .. $#ARGV]; | |
if (not @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il) { | |
I1IlI1IIl1l1ll1l1I1ll1IIll11l11($0); | |
exit 1; | |
} | |
if (not $lI1l11ll1II11llII1lllllllIIIIlI) { | |
lllIIl111l1lI1lII111llllIllI11I ; | |
if ($#lI1Il11ll11l1I1I1I1II111IIl11I1 + 1 > 1) { | |
$ll1I1l1Il1llI11ll11lIIIIl1IIlI1 = 1; | |
} | |
foreach $_ (@lI1Il11ll11l1I1I1I1II111IIl11I1) { | |
if (length $_ > $IIl11llIIIlIIlIlllIIII11lIIIlIl) { | |
$IIl11llIIIlIIlIlllIIII11lIIIlIl = length $_; | |
} | |
} | |
} | |
my $I11IIII1I1lIlI11lllllIll11IIlI1 = $ENV{'BMCTOOL_IPMITOOL_CMD'} || 'ipmitool'; | |
I1llll1l11I1IlI1III111l11II111l 'IPMITOOL', $I11IIII1I1lIlI11lllllIll11IIlI1; | |
I1llll1l11I1IlI1III111l11II111l 'IPMITOOL_FLAGS', '-Ilanplus' if not $lI1l11ll1II11llII1lllllllIIIIlI; | |
if ($lI1l11ll1II11llII1lllllllIIIIlI) { | |
I1llll1l11I1IlI1III111l11II111l 'USEKCS', '1'; | |
} | |
else { | |
I1llll1l11I1IlI1III111l11II111l 'USEKCS', '0'; | |
} | |
$Il111IlIlII1lll111IlIlIl111I1lI = "which $I11IIII1I1lIlI11lllllIll11IIlI1"; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = `$Il111IlIlII1lll111IlIlIl111I1lI 2>&1`; | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII); | |
$II1lII1ll1lIlI1lIlIlII11II1IIll = $?; | |
if ($II1lII1ll1lIlI1lIlIlII11II1IIll != 0) { | |
print "\n"; | |
print "This tool requires 'ipmitool' to work, but it doesn't seem to be accessible.\n"; | |
print "\n"; | |
print " ipmitool command is set to: $I11IIII1I1lIlI11lllllIll11IIlI1\n"; | |
print "\n"; | |
print " Here is the command that tells us we can't see/run ipmitool:\n"; | |
print "\n"; | |
print " command: $Il111IlIlII1lll111IlIlIl111I1lI\n"; | |
print " response: $IIl1IlIIllII1I1lIlIIIIlIIII1lII\n"; | |
print " exit code: $II1lII1ll1lIlI1lIlIlII11II1IIll\n"; | |
print "\n"; | |
print " If you need to hard code a path, you can explicitly set the ipmitool command\n"; | |
print " and path that will be used by setting an environment variable:\n"; | |
print "\n"; | |
print " export BMCTOOL_IPMITOOL_CMD=/path/to/ipmitool\n"; | |
print "\n"; | |
print "\n"; | |
exit 1; | |
} | |
if (defined $ENV{'IPMIDEBUG'} or defined $ENV{'IPMI_DEBUG'} or defined $ENV{'BMCTOOL_IPMITOOL_DEBUG'}) { | |
I1llll1l11I1IlI1III111l11II111l 'IPMIDEBUG', $l11I1l1l1l111ll1I1I1I11ll1l11II; | |
} | |
do { | |
ll1l1IlI11I11IlIll1llIIlIIIllIl ; | |
if (not $lI1l11ll1II11llII1lllllllIIIIlI) { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1I1IlI11IIlIlIIIlIl111III1111I($IIIllll1lllI1111II111III11I1I1l); | |
if (not $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
printf "-- unresponsive BMC (not on network?): $IIIllll1lllI1111II111III11I1I1l\n"; | |
goto nextiter; | |
} | |
} | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1I1ll1llIllII11l111lIl1IIlII1I(); | |
if (not $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
if ($lI1l11ll1II11llII1lllllllIIIIlI) { | |
printf "\n"; | |
printf "BMC did not respond to a simple command. Is the IPMI service enabled?\n"; | |
printf "(If not, try running 'service ipmi start')\n"; | |
printf "\n"; | |
printf "This command did not work:\n"; | |
I1I1ll1llIllII11l111lIl1IIlII1I 'loud'; | |
printf "\n"; | |
printf "\n"; | |
printf "\n"; | |
} | |
else { | |
printf "-- BMC $IIIllll1lllI1111II111III11I1I1l responded to ping, but is unavailable (IPMI command was not answered)\n"; | |
printf "\n"; | |
printf "This command did not work:\n"; | |
I1I1ll1llIllII11l111lIl1IIlII1I 'loud'; | |
printf "\n"; | |
printf "\n"; | |
} | |
goto nextiter; | |
} | |
$_ = II111lIlIlIIlIll1IllII1lIlI1lIl($lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il[0]); | |
if ($_ eq 'info') { | |
(); | |
} | |
else { | |
I11lIIl11l11lI1lI1llIl11lII1I1l ; | |
} | |
if ($_ eq 'ping' or $_ eq 'help' or $_ eq 'eng_help' or $_ eq 'eng_menu') { | |
(); | |
} | |
else { | |
$I1l11lIl1IllIlIIIIIIll1ll11l1l1 = 0; | |
if (defined $ENV{'BMCTOOL_FORCE_PLATFORM'}) { | |
$III111lll1l1l111lIIlll1II1IlI11 = $ENV{'BMCTOOL_FORCE_PLATFORM'}; | |
$I1I1IllI1Il11111111II11lI11I1lI = $ENV{'BMCTOOL_FORCE_PLATFORM'}; | |
I1llll1l11I1IlI1III111l11II111l 'PLAT', $III111lll1l1l111lIIlll1II1IlI11; | |
I1llll1l11I1IlI1III111l11II111l 'PLAT_NAME', $I1I1IllI1Il11111111II11lI11I1lI; | |
$I1l11lIl1IllIlIIIIIIll1ll11l1l1 = 1; | |
} | |
if (defined $ENV{'BMCTOOL_FORCE_PLATFORM_VARIANT'}) { | |
$lI1II1I11l1l111I11IIIl1I1lII11l = $ENV{'BMCTOOL_FORCE_PLATFORM_VARIANT'}; | |
I1llll1l11I1IlI1III111l11II111l 'PLAT_VARIANT', $lI1II1I11l1l111I11IIIl1I1lII11l; | |
$I1l11lIl1IllIlIIIIIIll1ll11l1l1 = 1; | |
} | |
if (not $I1l11lIl1IllIlIIIIIIll1ll11l1l1) { | |
($lll1l1I1IIIllllI1I11I11l11Ill1l, $I1111I1II1l1111lIlllIllIllllllI, $I1I1IllI1Il11111111II11lI11I1lI, $lI1II1I11l1l111I11IIIl1I1lII11l, $III111lll1l1l111lIIlll1II1IlI11) = llIII1IIIlII1111111IIl1111IIlI1(); | |
} | |
} | |
if ($_ ne 'reset' and $_ ne 'ping' and $_ ne 'help' and $_ ne 'eng_help' and $_ ne 'eng_menu' and $_ ne 'platform_debug') { | |
if ($lll1l1I1IIIllllI1I11I11l11Ill1l eq 'PEC' or $lll1l1I1IIIllllI1I11I11l11Ill1l eq 'DCS') { | |
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlI1I1l11l1l1lll11llI1I1l11l111(); | |
if (ll11I1ll11lI1l111Ill11ll1IIIIll $IIl1IlIIllII1I1lIlIIIIlIIII1lII) { | |
printf "-- BMC could not acquire a reservation. This usually means the BMC is in firmware\n"; | |
printf " update mode. Please issue a reset to the BMC to force a reboot.\n"; | |
printf "\n"; | |
goto nextiter; | |
} | |
} | |
} | |
if ($_ eq 'nic_mode') { | |
llIIII1I1ll11l11I1I1lIIIlI11l1l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'users') { | |
l11l1IIlI1lI1lIll111lI11I1II1II @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'node_number') { | |
lII1II1lIlI1ll11llIII1I1lI1IIII @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'ext_cfg') { | |
l11II11llI11l1lllII1llll1l1111l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'ext_cfg_raw') { | |
l1Il1I1l11I1llI1II1lI1IIlIlI11l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'bmc_hostname') { | |
llI1lIl1111IIlI1I1I1II11llI1llI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'reset') { | |
l11Ill11lIIIlIlI1l1I1l1I11I11lI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'platform') { | |
l1Il11l1l11Ill1l1lIlIlllII1111l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'platform_variant') { | |
lll111IIIIIIl1l1IIl1II1I1llllII @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'platform_debug') { | |
I1Il11lI1IIllIl11I1IlIl1lIl1l1I @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'bmc_version') { | |
ll1I11lllll11I1ll1Il1IllI11llll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'bios_version') { | |
l1I1Illl1lIl1Il1IlIIl1IllllIIlI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'bios_version_raw') { | |
lllllI1I1III11I1l111lIIIIllIllI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'fcb_version') { | |
lIII1ll1lII1IllIlIl1l1111IllIII @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'fcb_version_raw') { | |
IIllllIlll1lI11II11lII1lII1l1lI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'fcb_pic_version') { | |
I1lIIlll111IIII11lIIlllI1llI1lI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'fcb_pic_version_raw') { | |
I11I1ll1Il11l1I1Ill1IllI11111lI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'intel_me_version') { | |
lIIIl1lIllI1IIlIl1I111lIlIIl1Il @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'gui_timeout') { | |
IlI1I1lII1l1111I11lIl1IllIl11ll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'web_gui_timeout') { | |
IlI1I1lII1l1111I11lIl1IllIl11ll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'attr') { | |
Il1IIIII11lllIllIl1IIll11II11I1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'id_led') { | |
l1lIIl1lI1ll1III111l1lllI1I1lI1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'power') { | |
lIIlIIl1Il1lI1l1ll1IlIl1II1I111 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'c6105_chassis_type') { | |
ll1ll1I1ll1lIIIl1I1lIIl1I1ll1Il @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'info') { | |
III1lII1IIIIIl1III11l1IIlI1111l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'summary') { | |
III1lII1IIIIIl1III11l1IIlI1111l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'allinfo') { | |
l1IlIll1l1lIlllIlllI11IIlIlI11l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'ppid') { | |
lIIIIlII1llII1llIlll11l11lI1IlI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'service_tag') { | |
Il11IlllIlllll1l1llIlIlI11lIl1l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'asset_tag') { | |
lIlIIlI1111IlIIIl111lII1lIl1lll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'security') { | |
lII111Il11l1ll1II1lII1lIIlIl11I @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'web_gui_enabled') { | |
I11I1I111l1l1lIll1llI1IllII1111 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'web_gui_http_port') { | |
lI1I1lllI11llIlIl1Ill1l11l11IlI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'web_gui_https_port') { | |
l1llIll111IllIII1llll11l11llI11 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'read_sensor') { | |
lI1ll1I111I11lIl11lI1lIIIIlllI1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'force_fan_speed') { | |
I1ll1l1l1IllIlIl1l1llIl1I1ll1ll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'set_asset_tag') { | |
llI1l1I1ll1l1llIlIll1l1I11II111 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'eng_help' or $_ eq 'eng_menu') { | |
l11l1II1IlIII11l1lll1l1III1lII1(); | |
} | |
elsif ($_ eq 'help') { | |
I1IlI1IIl1l1ll1l1I1ll1IIll11l11(); | |
} | |
elsif ($_ eq 'ping') { | |
Illll1IIl11l1lllIl1IllI111I1llI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'ipmitool') { | |
I1lIl1l1lll11llI1ll11lI1l1l1lIl @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'ip') { | |
I1lIl1l1lll11llI1ll11lI1l1l1lIl @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'power_draw_node') { | |
IIIlII1llI1IIIIlI11Il1IIlll11I1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'node_power_draw') { | |
IIIlII1llI1IIIIlI11Il1IIlll11I1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'power_draw_chassis') { | |
IlIll1lII1I11llIII11lllII1Il1I1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'chassis_power_draw') { | |
IlIll1lII1I11llIII11lllII1Il1I1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'toggle_gpgpu_sled_power') { | |
lIlI11I1II1lll11lIII1IlII11l111 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'gpgpu_power') { | |
llIIlI1I1IlI1I11ll1l1l1IIllIIIl @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'gpgpu') { | |
IIIllI1Ill11lIl111lI1IIlIlIlIl1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'gpgpu_info') { | |
IIIllI1Ill11lIl111lI1IIlIlIlIl1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'required_psu_count') { | |
III1lI111lIIllIl1ll11lI1lI1Ill1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'redundant_psu_available') { | |
lIl1111IlIIIII1l11lIIIIII1l11II @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'chassis') { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = l11l11l1lll1Ill1I111ll1l1lI1lI1(); | |
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
elsif ($_ eq 'chassis_type') { | |
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = l11l11l1lll1Ill1I111ll1l1lI1lI1(); | |
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII; | |
} | |
elsif ($_ eq 'env_var_help') { | |
l1lllIl1Il11lIllIl1Il1I11lI1II1(); | |
} | |
elsif ($_ eq 'state') { | |
lII111lIl1lIlllII1I11IlIlIlIIIl @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'pecagent_health') { | |
lI1I1llII1I11IlIll1I11l1I1lll1l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'pecagent_sel') { | |
I1Il111l111llllI1l1I1II1l11II1l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'selfilter') { | |
IIllIll1lllI111I1ll1ll1lII1I11I @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'selfilter_from_file') { | |
IllIll11IlI1I11l11l1IllII111Ill @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'sel') { | |
IIlIlI1lIlIl11l1ll1ll11lI1l11ll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'sdr') { | |
IIll11Il1I1I1l1l1lIll1lIl1Illl1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'sensor') { | |
I1I1llI1l1IlIlI1I1l1IIlIl1lIl1I @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'print_this_mac') { | |
IIlIl1l1lIlIl1IllIl1III1IlI111I @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'print_both_macs') { | |
I1IIIlIlI11111Il1IlIIl1I1l1l1ll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'get_this_mac') { | |
IIlIl1l1lIlIl1IllIl1III1IlI111I @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'get_both_macs') { | |
I1IIIlIlI11111Il1IlIIl1I1l1l1ll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'set_this_mac') { | |
I11IlII1I1IIlllIIll1II1I1IIlIII @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'set_both_macs') { | |
III1IIl1ll11ll1IllI111I1I11l1lI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'fru') { | |
I1I11I11llII11111Illll1111I1I11 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'dcmi_get_power_limit') { | |
llIlI1llIII1IlI1Il11IlllIl11111 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'pcap') { | |
II1IIIlIll1l1I1Il1ll1llI1I1IllI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'scbmc_get_chassis_power_capping') { | |
IIlIllIIl1lll11llI1lIl1ll1llllI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'set_chassis_power_cap') { | |
l1III11llIl111lIIll11l1IlI1I1lI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'is_intel_me_off') { | |
II1Ill111I1I11IIIlIIIlII11l1lll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'intel_me_power') { | |
lIII11llIl1l11IlIl1IlIIlI1111l1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'pcap_help') { | |
llIll1lIllIlI1Il11IlI1IIII11l1l(@lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il); | |
} | |
elsif ($_ eq 'svn') { | |
Il1lI11lI11lIlIlI11I1Il11I11lll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'avg_fan_speed') { | |
IlIII1llIIl1I1II1I1l1I11lllIIll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'tst') { | |
lIlIl1lIl11IIllI111llI1I1llllII @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'set_chassis_svctag') { | |
III1lll11IllIlI1Il1lI1I11II1llI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'set_bmc_mac') { | |
I11IlII1I1IIlllIIll1II1I1IIlIII @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il; | |
} | |
elsif ($_ eq 'sense_psu_presence') { | |
printf "%s\n", lll11I1IlllI111lIllIII11Ill11ll(); | |
} | |
elsif ($_ eq 'sense_psu_fault') { | |
printf "%s\n", l1l1IIlIIlIII1l1lllIlII1Ill1Il1(); | |
} | |
elsif ($_ eq 'dbg_sense_sel_info') { | |
I1lllI1lIIlIllI111I11l1llIllIll ; | |
} | |
elsif ($_ eq 'sense_chassis_type') { | |
my($Il1ll111I11IIl1llIl1llIlIlIIIl1, $I1ll1I1I1lIlI1I1l1Ill1I111lllII) = l11l11l1lll1Ill1I111ll1l1lI1lI1(); | |
printf "%s \n", $Il1ll111I11IIl1llIl1llIlIlIIIl1; | |
printf "%s \n", $I1ll1I1I1lIlI1I1l1Ill1I111lllII; | |
} | |
else { | |
printf "Unknown command: %s\n\n", $_; | |
exit 1; | |
} | |
nextiter: | |
} while lllIIl111l1lI1lII111llllIllI11I ; | |
exit 0; | |
sub I1IlI1IIl1l1ll1l1I1ll1IIll11l11 { | |
use warnings; | |
use strict 'refs'; | |
my $I11I1lIl11II1l11l11l111lIIII111 = shift @_; | |
printf "\n"; | |
printf "Dell DCS/PE-C BMC manipulation tool | built: %s\n", IIl1l1lll1I1ll11IIIlllIl1llII1l(); | |
printf "Usage: \n"; | |
printf "\n"; | |
printf '%s [-v] [IPMI Connection Info] command_name arguments', $0; | |
printf "\n\n"; | |
printf " General Options\n"; | |
printf " -v verbose output\n"; | |
printf "\n"; | |
printf " IPMI Connection Info (default is the local system KCS interface, so these aren't required)\n"; | |
printf " -H hostname (or) -H^file_with_hostnames (multiple -H flags accepted)\n"; | |
printf " -U user \n"; | |
printf " -P password\n"; | |
printf "\n"; | |
printf " Supported commands:\n"; | |
printf " info 1-line summary of a server\n"; | |
printf " pcap 1-line summary of a server's power draw/capping state\n"; | |
printf " allinfo lots of info about a server\n"; | |
printf " nic_mode Get/set BMC ethernet mode (shared/dedicated)\n"; | |
printf " ping Test if the BMC is alive and responsive\n"; | |
printf " reset Reboot the BMC\n"; | |
printf " power Get/set chassis power\n"; | |
printf " bmc_hostname Get/set BMC hostname\n"; | |
printf " web_gui_timeout Get/set time before BMC Web GUI session expires\n"; | |
printf " id_led Toggle the blue identification LED\n"; | |
printf " state Get/set/clear a small bit of state info inside the BMC\n"; | |
printf " gpgpu_info Display all available GPGPU state information\n"; | |
printf " gpgpu_power Get/set GPGPU power state, by sled\n"; | |
printf " security BMC security settings (disable services)\n"; | |
printf " web_gui_enabled Enable/disable BMC web GUI\n"; | |
printf " web_gui_http_port Set web gui http port\n"; | |
printf " web_gui_https_port Set web gui https port\n"; | |
printf " set_asset_tag Set a server's asset tag (currently C6100/C6145 only)\n"; | |
printf " pecagent_health Get a quick view of the server node's health\n"; | |
printf " ipmitool Generic command passthrough to ipmitool ('ip' for short)\n"; | |
printf " sel Read and get details about the SEL (system event log)\n"; | |
printf " selfilter Read the SEL and affix a severity to each entry\n"; | |
printf " selfilter_from_file As above, but read SEL from a file\n"; | |
printf " set_chassis_power_cap For C6000/C8000 only: set the max power draw policy\n"; | |
printf "\n"; | |
printf " attr (Long list of configurable attributes)\n"; | |
printf "\n"; | |
printf " Scripting Assistance commands: (All of this is also in 'info' and 'allinfo')\n"; | |
printf " platform Report the platform type of the target BMC\n"; | |
printf " platform_debug Show all the detail about what platform is detected\n"; | |
printf " node_number Report the node number (if this BMC is in shared infr. chassis)\n"; | |
printf " ppid Report the Piece Part ID (unique serial number per-board)\n"; | |
printf " service_tag Report the node's Dell Service Tag\n"; | |
printf " asset_tag Report the node's customer-defined Asset Tag\n"; | |
printf "\n"; | |
printf " bios_version | bmc_version | fcb_version\n"; | |
printf " intel_me_version | fcb_pic_version | platform_variant\n"; | |
printf " power_draw_node | power_draw_chassis | chassis\n"; | |
printf " required_psu_count | redundant_psu_available | \n"; | |
printf "\n"; | |
printf " avg_fan_speed\n"; | |
printf "\n"; | |
printf " env_var_help All environment variables supported; many conveniences\n"; | |
printf " eng_help Engineering help menu. You probably don't need this.\n"; | |
printf " pcap_help Power Capping help menu.\n"; | |
printf "\n"; | |
printf "\n"; | |
exit 0; | |
} | |
sub l11l1II1IlIII11l1lll1l1III1lII1 { | |
use warnings; | |
use strict 'refs'; | |
my $I11I1lIl11II1l11l11l111lIIII111 = shift @_; | |
printf "\n"; | |
printf "Dell DCS/PE-C BMC manipulation tool | built: $llIlI1l1I1llIl11ll1ll1II111lIIl\n"; | |
printf "Advanced Usage menu: \n"; | |
printf "\n"; | |
printf " bios_version_raw Report the BIOS version in the raw format reported by the BMC\n"; | |
printf " fcb_version_raw Report the FCB version in the raw format reported by the BMC\n"; | |
printf " pic_version_raw Report the PIC version in the raw format reported by the BMC\n"; | |
printf " ext_cfg (developer debug only)\n"; | |
printf " ext_cfg_raw (developer debug only. You don't want to use this. Use ext_cfg.)\n"; | |
printf " get_this_mac Print the currently-in-use BMC MAC address\n"; | |
printf " get_both_macs Print both BMC MAC addresses. Can't be used over the network.\n"; | |
printf " set_this_mac Program the currently-in-use BMC MAC address\n"; | |
printf " set_both_macs Program both BMC MAC addresses.\n"; | |
printf " is_intel_me_off Is the Intel ME switched off?\n"; | |
printf " intel_me_power Change the Intel ME power state\n"; | |
printf "\n"; | |
printf " pecagent_health Get a quick view of the server node's health\n"; | |
printf " pecagent_sel Same as selfilter; allows viewing last N entries\n"; | |
printf "\n"; | |
printf " Highly specific per-platform\n"; | |
printf " c6105_chassis_type Show this sled's programmed target chassis type\n"; | |
printf "\n"; | |
printf " Engineering commands:\n"; | |
printf " read_sensor Given an id, read the sensor value\n"; | |
printf " force_fan_speed Force fans to a particular speed (0 to 100%%, or 'auto')\n"; | |
printf " platform_debug Show raw platform information\n"; | |
printf "\n"; | |
printf " scbmc_get_chassis_power_capping \n"; | |
printf " dcmi_get_power_limit \n"; | |
printf " svn \n"; | |
printf "\n"; | |
printf "\n"; | |
exit 0; | |
} | |
sub l1lllIl1Il11lIllIl1Il1I11lI1II1 { | |
use warnings; | |
use strict 'refs'; | |
my $I11I1lIl11II1l11l11l111lIIII111 = shift @_; | |
printf "\n"; | |
printf "Dell DCS/PE-C BMC manipulation tool | built: $llIlI1l1I1llIl11ll1ll1II111lIIl\n"; | |
printf "Environment Variables Supported\n"; | |
printf "\n"; | |
printf " Use these by running this in the shell: export ENV_VAR_NAME=value\n"; | |
printf "\n"; | |
printf " BMCTOOL_IPMITOOL_CMD Specify exact path to ipmitool\n"; | |
printf " BMCTOOL_IPMITOOL_DEBUG Set to 1 to show all ipmitool commands\n"; | |
printf " BMCTOOL_IPMITOOL_USER Set the default ipmitool user (normally 'root')\n"; | |
printf " BMCTOOL_IPMITOOL_PASSWORD Set the default ipmitool password (normally 'root')\n"; | |
printf "\n"; | |
printf " Platform can be forced by setting these. NOTE: it is expected that you use PE-C\n"; | |
printf " naming convention ('C6100' instead of 'plutonium')\n"; | |
printf "\n"; | |
printf " BMCTOOL_FORCE_PLATFORM Set the platform we're going to use\n"; | |
printf " BMCTOOL_FORCE_PLATFORM_VARIANT Set the variant (if any; rarely needed)\n"; | |
printf "\n"; | |
printf "\n"; | |
printf "\n"; | |
exit 0; | |
} | |
sub llIll1lIllIlI1Il11IlI1IIII11l1l { | |
use warnings; | |
use strict 'refs'; | |
my $I11I1lIl11II1l11l11l111lIIII111 = shift @_; | |
printf "\n"; | |
printf "Dell DCS/PE-C BMC manipulation tool | built: $llIlI1l1I1llIl11ll1ll1II111lIIl\n"; | |
printf "Power Capping and related commands\n"; | |
printf "\n"; | |
printf " pcap 1-line summary of a server's power draw/capping state\n"; | |
printf " set_chassis_power_cap For C6000/C8000 only: set the max power draw policy\n"; | |
printf " is_intel_me_off Is the Intel ME switched off?\n"; | |
printf " intel_me_power Change the Intel ME power state\n"; | |
printf "\n"; | |
printf " dcmi_get_power_limit \n"; | |
printf " scbmc_get_chassis_power_capping \n"; | |
printf "\n"; | |
printf "\n"; | |
printf "\n"; | |
printf "\n"; | |
exit 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment