summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDhruvaraj Subhashchandran <dhruvaraj@in.ibm.com>2017-07-27 08:05:42 -0500
committerDhruvaraj Subhashchandran <dhruvaraj@in.ibm.com>2017-08-07 09:45:43 -0500
commit611b90fc6391c4a2ddbac93226b96bbceeaaecf6 (patch)
tree713050138fd01d8268051d9eeac359be3da3bb84
parent7b93a1626d0475c38c47d3995c038a804c323966 (diff)
downloadphosphor-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-xgen_ipmi_sensor.pl51
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"};
OpenPOWER on IntegriCloud