Skip to content
This repository has been archived by the owner on Nov 8, 2022. It is now read-only.

Commit

Permalink
Merge pull request #10 from WangJialei-A/master
Browse files Browse the repository at this point in the history
Fix index out of range issue. Get sdr repository only once.
  • Loading branch information
dancyding authored May 5, 2017
2 parents 9318fcc + 37a131f commit f4b9a99
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions ipmi/sdr.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ var CmdReserveDeviceSdr = IpmiRequest{[]byte{0x4, 0x22}, 0x0, 0x0}

var CmdGetSdrRepositoryAllocationInfo = IpmiRequest{[]byte{0xa, 0x21}, 0x0, 0x0}

var sdrInfos []SdrInfo

//AddData byte[6]:
//byte[0] =reservationId[0]
//byte[1] = reservationId[1]
Expand Down Expand Up @@ -122,11 +124,13 @@ func (sp *SdrParser) GetComponentHealth(host string)(map[string]string,error){
if err != nil{
return nil,err
}
sdrInfos,err := sp.ScanSdr(deviceId.IsDeviceSdr,host)
if err != nil{
return nil,err
if sdrInfos == nil {
var err error
sdrInfos,err = sp.ScanSdr(deviceId.IsDeviceSdr,host)
if err != nil{
return nil,err
}
}

sdrStatus,err := sp.GetSdrData(sdrInfos,host)
if err != nil{
return nil,err
Expand Down Expand Up @@ -476,7 +480,7 @@ func (sp *SdrParser) GetSdrData(sdrs []SdrInfo,host string) ([]SensorStatus, err
sensorStatus = make([]SensorStatus,len(sdrs))
var cmd = CmdGetSensorReading.Clone()
for i,sdr := range sdrs{
cmd.Data[3] = byte(sdr.SensorNumber)
cmd.Data[2] = byte(sdr.SensorNumber)
response, err := sp.IpmiLayer.ExecRaw(cmd, host)
if err != nil{
return nil,err
Expand Down

0 comments on commit f4b9a99

Please sign in to comment.