diff options
author | Dhruvaraj Subhashchandran <dhruvaraj@in.ibm.com> | 2017-07-27 08:05:42 -0500 |
---|---|---|
committer | Dhruvaraj Subhashchandran <dhruvaraj@in.ibm.com> | 2017-08-07 09:45:43 -0500 |
commit | 611b90fc6391c4a2ddbac93226b96bbceeaaecf6 (patch) | |
tree | 713050138fd01d8268051d9eeac359be3da3bb84 | |
parent | 7b93a1626d0475c38c47d3995c038a804c323966 (diff) | |
download | phosphor-mrw-tools-611b90fc6391c4a2ddbac93226b96bbceeaaecf6.tar.gz phosphor-mrw-tools-611b90fc6391c4a2ddbac93226b96bbceeaaecf6.zip |
Config yaml as input instead of directory
Giving the config yaml directory will make the perl to merge
and break the existing perl script. Instead of a directory path
config.yaml itself is given as input to the gen_ipmi_sensor.pl.
Removed unsused attributes and fixed path for some virtual sensors.
Change-Id: Icef03392f0c350e81b63ef2d7c9c377bcff8ccbf
Signed-off-by: Dhruvaraj Subhashchandran <dhruvaraj@in.ibm.com>
-rwxr-xr-x | gen_ipmi_sensor.pl | 51 |
1 files changed, 18 insertions, 33 deletions
diff --git a/gen_ipmi_sensor.pl b/gen_ipmi_sensor.pl index a54341e..1d3a1dd 100755 --- a/gen_ipmi_sensor.pl +++ b/gen_ipmi_sensor.pl @@ -12,18 +12,18 @@ use YAML::Tiny qw(LoadFile); my $serverwizFile = ""; my $debug = 0; my $outputFile = ""; -my $metaDir = ""; +my $metaDataFile = ""; # Command line argument parsing GetOptions( "i=s" => \$serverwizFile, # string -"m=s" => \$metaDir, # string +"m=s" => \$metaDataFile, # string "o=s" => \$outputFile, # string "d" => \$debug, ) or printUsage(); -if (($serverwizFile eq "") or ($outputFile eq "") or ($metaDir eq "")) +if (($serverwizFile eq "") or ($outputFile eq "") or ($metaDataFile eq "")) { printUsage(); } @@ -36,26 +36,8 @@ $targetObj->loadXML($serverwizFile); #Get the metadata for that sensor from the metadata file. #Merge the data into the outputfile -my $sensorTypeConfig; -my $tmpSensor; -opendir my $dir,$metaDir or die "Cannot open directory: $!"; -my @files = readdir $dir; -foreach my $file (@files){ - my ($filename,$extn) = split(/\.([^\.]+)$/,$file); - if((defined($extn)) and ( $extn eq "yaml")) { - my $metaDataFile = $metaDir."/".$file; - my $tmpSensor = LoadFile($metaDataFile); - if(!keys %{$sensorTypeConfig}) { - %{$sensorTypeConfig} = %{$tmpSensor}; - } - else { - %{$sensorTypeConfig} = (%{$sensorTypeConfig},%{$tmpSensor}); - } - } -} - - open(my $fh, '>', $outputFile) or die "Could not open file '$outputFile' $!"; +my $sensorTypeConfig = LoadFile($metaDataFile); my @interestedTypes = keys %{$sensorTypeConfig}; my %types; @@ -76,7 +58,8 @@ foreach my $target (sort keys %{$targetObj->getAllTargets()}) $sensorID = $targetObj->getAttribute($target, "IPMI_SENSOR_ID"); - $sensorType = $targetObj->getAttribute($target, "IPMI_SENSOR_TYPE"); + $sensorType = hex($targetObj->getAttribute($target, + "IPMI_SENSOR_TYPE")); $sensorReadingType = $targetObj->getAttribute($target, "IPMI_SENSOR_READING_TYPE"); @@ -104,7 +87,7 @@ foreach my $target (sort keys %{$targetObj->getAllTargets()}) #number to it. $obmcPath = Util::getObmcName(\@inventory,$path); #if unable to get the obmc path then get from yaml - if (not defined $obmcPath) { + if ((not defined $obmcPath) or ($obmcPath eq "/system")){ if ($path eq "/sys-0") { $obmcPath = $sensorTypeConfig->{$sensorType}->{"path"}; } @@ -128,9 +111,14 @@ foreach my $target (sort keys %{$targetObj->getAllTargets()}) print $fh $sensorID.":\n"; + my $serviceInterface = + $sensorTypeConfig->{$sensorType}->{"serviceInterface"}; + my $readingType = $sensorTypeConfig->{$sensorType}->{"readingType"}; + printDebug("$sensorID : $sensorType : $sensorReadingType :$obmcPath \n"); - writeToFile($sensorType,$sensorReadingType,$obmcPath,$sensorTypeConfig,$fh); + writeToFile($sensorType,$sensorReadingType,$obmcPath,$serviceInterface, + $readingType,$sensorTypeConfig,$fh); } @@ -143,18 +131,15 @@ close $fh; sub writeToFile { - my ($sensorType,$sensorReadingType,$path,$sensorTypeConfig,$fh) = @_; + my ($sensorType,$sensorReadingType,$path,$serviceInterface, + $readingType,$sensorTypeConfig,$fh) = @_; + print $fh " sensorType: ".$sensorType."\n"; print $fh " path: ".$path."\n"; print $fh " sensorReadingType: ".$sensorReadingType."\n"; - print $fh " updateInterface: ".$sensorTypeConfig->{$sensorType}->{"updateInterface"}."\n"; - if (defined($sensorTypeConfig->{$sensorType}->{"readingType"})) { - print $fh " readingType: ".$sensorTypeConfig->{$sensorType}->{"readingType"}."\n"; - } - if (defined($sensorTypeConfig->{$sensorType}->{"byteOffset"})) { - print $fh " byteOffset: ".$sensorTypeConfig->{$sensorType}->{"byteOffset"}."\n"; - } + print $fh " serviceInterface: ".$serviceInterface."\n"; + print $fh " readingType: ".$readingType."\n"; print $fh " interfaces:"."\n"; my $interfaces = $sensorTypeConfig->{$sensorType}->{"interfaces"}; |