Skip to content

Commit 79c2866

Browse files
Merge branch 'master' of github.com:azure/sonic-buildimage into auto_restart_cfg
Signed-off-by: Stepan Blyshchak <stepanb@nvidia.com>
2 parents 285f7a3 + 6fa807d commit 79c2866

File tree

316 files changed

+15184
-2122
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

316 files changed

+15184
-2122
lines changed

.artifactignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
**/*
2+
!target/*.bin
3+
!target/*.log
4+
!target/*.img.gz
5+
!target/docker-sonic-vs.gz

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,6 @@
8585
[submodule "src/sonic-mgmt-common"]
8686
path = src/sonic-mgmt-common
8787
url = https://github.com/Azure/sonic-mgmt-common.git
88+
[submodule "src/wpasupplicant/sonic-wpa-supplicant"]
89+
path = src/wpasupplicant/sonic-wpa-supplicant
90+
url = https://github.com/Azure/sonic-wpa-supplicant.git

README.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1+
*static anaylsis*:
2+
13
[![Total alerts](https://img.shields.io/lgtm/alerts/g/Azure/sonic-buildimage.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/Azure/sonic-buildimage/alerts/)
24
[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/Azure/sonic-buildimage.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/Azure/sonic-buildimage/context:python)
35

46

57
*master builds*:
68

7-
89
[![Barefoot](https://sonic-jenkins.westus2.cloudapp.azure.com/job/barefoot/job/buildimage-bf-all/badge/icon?subject=Barefoot)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/barefoot/job/buildimage-bf-all)
910
[![Broadcom](https://sonic-jenkins.westus2.cloudapp.azure.com/job/broadcom/job/buildimage-brcm-all/badge/icon?subject=Broadcom)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/broadcom/job/buildimage-brcm-all)
1011
[![Centec](https://sonic-jenkins.westus2.cloudapp.azure.com/job/centec/job/buildimage-centec-all/badge/icon?subject=Centec)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/centec/job/buildimage-centec-all)
@@ -14,7 +15,19 @@
1415
[![Marvell(armhf)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/marvell/job/buildimage-mrvl-armhf-all/badge/icon?subject=Marvell(armhf))](https://sonic-jenkins.westus2.cloudapp.azure.com/job/marvell/job/buildimage-mrvl-armhf-all)
1516
[![Nephos](https://sonic-jenkins.westus2.cloudapp.azure.com/job/nephos/job/buildimage-nephos-all/badge/icon?subject=Nephos)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/nephos/job/buildimage-nephos-all)
1617
[![P4](https://sonic-jenkins.westus2.cloudapp.azure.com/job/p4/job/buildimage-p4-all/badge/icon?subject=P4)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/p4/job/buildimage-p4-all)
17-
[![VS](https://sonic-jenkins.westus2.cloudapp.azure.com/job/vs/job/buildimage-vs-all/badge/icon?subject=VS)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/vs/job/buildimage-vs-all)
18+
[![VS](https://sonic-jenkins.westus2.cloudapp.azure.com/job/vs/job/buildimage-vs-image/badge/icon?subject=VS)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/vs/job/buildimage-vs-image)
19+
20+
*202012 builds*:
21+
22+
[![Barefoot](https://sonic-jenkins.westus2.cloudapp.azure.com/job/barefoot/job/buildimage-bf-202012/badge/icon?subject=Barefoot)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/barefoot/job/buildimage-bf-202012/)
23+
[![Broadcom](https://sonic-jenkins.westus2.cloudapp.azure.com/job/broadcom/job/buildimage-brcm-202012/badge/icon?subject=Broadcom)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/broadcom/job/buildimage-brcm-202012)
24+
[![Centec](https://sonic-jenkins.westus2.cloudapp.azure.com/job/centec/job/buildimage-centec-202012/badge/icon?subject=Centec)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/centec/job/buildimage-centec-202012)
25+
[![Centec(arm64)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/centec/job/buildimage-centec-arm64-202012/badge/icon?subject=Centec(arm64))](https://sonic-jenkins.westus2.cloudapp.azure.com/job/centec/job/buildimage-centec-arm64-202012)
26+
[![Innovium](https://sonic-jenkins.westus2.cloudapp.azure.com/job/innovium/job/buildimage-invm-202012/badge/icon?subject=Innovium)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/innovium/job/buildimage-invm-202012/)
27+
[![Marvell(armhf)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/marvell/job/buildimage-mrvl-armhf-202012/badge/icon?subject=Marvell(armhf))](https://sonic-jenkins.westus2.cloudapp.azure.com/job/marvell/job/buildimage-mrvl-armhf-202012)
28+
[![Mellanox](https://sonic-jenkins.westus2.cloudapp.azure.com/job/mellanox/job/buildimage-mlnx-202012/badge/icon?subject=Mellanox)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/mellanox/job/buildimage-mlnx-202012)
29+
[![Nephos](https://sonic-jenkins.westus2.cloudapp.azure.com/job/nephos/job/buildimage-nephos-202012/badge/icon?subject=Nephos)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/nephos/job/buildimage-nephos-202012)
30+
[![VS](https://sonic-jenkins.westus2.cloudapp.azure.com/job/vs/job/buildimage-vs-image-202012/badge/icon?subject=VS)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/vs/job/buildimage-vs-image-202012)
1831

1932
*201911 builds*:
2033

@@ -27,7 +40,6 @@
2740

2841
*201811 builds*:
2942

30-
3143
[![Broadcom](https://sonic-jenkins.westus2.cloudapp.azure.com/job/broadcom/job/buildimage-brcm-201811/badge/icon?subject=Broadcom)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/broadcom/job/buildimage-brcm-201811/)
3244
[![Mellanox](https://sonic-jenkins.westus2.cloudapp.azure.com/job/mellanox/job/buildimage-mlnx-201811/badge/icon?subject=Mellanox)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/mellanox/job/buildimage-mlnx-201811/)
3345
[![Innovium](https://sonic-jenkins.westus2.cloudapp.azure.com/job/innovium/job/buildimage-invm-201811/badge/icon?subject=Innovium)](https://sonic-jenkins.westus2.cloudapp.azure.com/job/innovium/job/buildimage-invm-201811/)

azure-pipelines.yml

Lines changed: 204 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,210 @@
44
# https://aka.ms/yaml
55

66
trigger:
7-
- main
7+
branches:
8+
include:
9+
- master
10+
- 202012
811

9-
pool:
10-
vmImage: 'ubuntu-latest'
12+
pr:
13+
- master
1114

12-
steps:
13-
- script: echo Hello, world!
14-
displayName: 'Run a one-line script'
15+
name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd)$(Rev:.r)
1516

16-
- script: |
17-
echo Add other tasks to build, test, and deploy your project.
18-
echo See https://aka.ms/yaml
19-
displayName: 'Run a multi-line script'
17+
resources:
18+
repositories:
19+
- repository: sonic-mgmt
20+
type: github
21+
name: Azure/sonic-mgmt
22+
endpoint: build
23+
24+
stages:
25+
- stage: Build
26+
pool: sonicbld
27+
28+
jobs:
29+
- job:
30+
displayName: "broadcom"
31+
timeoutInMinutes: 600
32+
steps:
33+
- checkout: self
34+
submodules: recursive
35+
displayName: 'Checkout code'
36+
37+
- script: |
38+
sudo modprobe overlay
39+
CACHE_OPTIONS="SONIC_DPKG_CACHE_METHOD=rcache SONIC_DPKG_CACHE_SOURCE=/nfs/dpkg_cache/broadcom"
40+
ENABLE_DOCKER_BASE_PULL=y make configure PLATFORM=broadcom
41+
trap "sudo rm -rf fsroot" EXIT
42+
make USERNAME=admin SONIC_BUILD_JOBS=$(nproc) $CACHE_OPTIONS target/sonic-broadcom.bin && \
43+
ENABLE_SYNCD_RPC=y make USERNAME=admin SONIC_BUILD_JOBS=$(nproc) $CACHE_OPTIONS target/docker-syncd-brcm-rpc.gz
44+
displayName: 'Build sonic image'
45+
- publish: $(System.DefaultWorkingDirectory)/
46+
artifact: sonic-buildimage.broadcom
47+
displayName: "Archive sonic image"
48+
49+
- job:
50+
displayName: "mellanox"
51+
timeoutInMinutes: 600
52+
steps:
53+
- checkout: self
54+
submodules: recursive
55+
displayName: 'Checkout code'
56+
57+
- script: |
58+
sudo modprobe overlay
59+
CACHE_OPTIONS="SONIC_DPKG_CACHE_METHOD=rcache SONIC_DPKG_CACHE_SOURCE=/nfs/dpkg_cache/mellanox"
60+
ENABLE_DOCKER_BASE_PULL=y make configure PLATFORM=mellanox
61+
trap "sudo rm -rf fsroot" EXIT
62+
make USERNAME=admin SONIC_BUILD_JOBS=$(nproc) $CACHE_OPTIONS target/sonic-mellanox.bin && \
63+
ENABLE_SYNCD_RPC=y make USERNAME=admin SONIC_BUILD_JOBS=$(nproc) $CACHE_OPTIONS target/docker-syncd-mlnx-rpc.gz
64+
displayName: 'Build sonic image'
65+
- publish: $(System.DefaultWorkingDirectory)/
66+
artifact: sonic-buildimage.mellanox
67+
displayName: "Archive sonic image"
68+
69+
- job:
70+
displayName: "kvm"
71+
timeoutInMinutes: 600
72+
steps:
73+
- checkout: self
74+
submodules: recursive
75+
displayName: 'Checkout code'
76+
77+
- script: |
78+
echo $(Build.BuildNumber)
79+
sudo modprobe overlay
80+
CACHE_OPTIONS="SONIC_DPKG_CACHE_METHOD=rcache SONIC_DPKG_CACHE_SOURCE=/nfs/dpkg_cache/vs"
81+
ENABLE_DOCKER_BASE_PULL=y make configure PLATFORM=vs
82+
trap "sudo rm -rf fsroot" EXIT
83+
make USERNAME=admin SONIC_BUILD_JOBS=$(nproc) $CACHE_OPTIONS \
84+
target/docker-sonic-vs.gz target/sonic-vs.img.gz && \
85+
sudo cp target/sonic-vs.img.gz /nfs/azpl/kvmimage/sonic-vs.$(Build.BuildNumber).img.gz && \
86+
sudo cp target/docker-sonic-vs.gz /nfs/azpl/kvmimage/docker-sonic-vs.$(Build.BuildNumber).gz
87+
displayName: 'Build sonic image'
88+
- publish: $(System.DefaultWorkingDirectory)/
89+
artifact: sonic-buildimage.kvm
90+
displayName: "Archive sonic image"
91+
92+
- stage: Test
93+
pool: sonictest
94+
variables:
95+
- name: dut
96+
value: vlab-01
97+
- name: tbname
98+
value: vms-kvm-t0
99+
- name: inventory
100+
value: veos_vtb
101+
- name: testbed_file
102+
value: vtestbed.csv
103+
- name: ptf_name
104+
value: ptf_vms6-1
105+
106+
jobs:
107+
- job:
108+
displayName: "vstest"
109+
timeoutInMinutes: 60
110+
steps:
111+
- checkout: self
112+
submodules: recursive
113+
displayName: 'Checkout code'
114+
115+
- task: DownloadPipelineArtifact@2
116+
inputs:
117+
source: specific
118+
project: build
119+
pipeline: 9
120+
artifacts: sonic-swss-common.amd64.ubuntu20_04
121+
runVersion: 'latestFromBranch'
122+
runBranch: 'refs/heads/master'
123+
displayName: "Download sonic swss common deb packages"
124+
125+
- script: |
126+
sudo dpkg -i --force-confask,confnew ../sonic-swss-common.amd64.ubuntu20_04/libswsscommon_1.0.0_amd64.deb
127+
sudo dpkg -i ../sonic-swss-common.amd64.ubuntu20_04/python3-swsscommon_1.0.0_amd64.deb
128+
sudo docker load -i /nfs/azpl/kvmimage/docker-sonic-vs.$(Build.BuildNumber).gz
129+
docker tag docker-sonic-vs:latest docker-sonic-vs:$(Build.BuildNumber)
130+
username=$(id -un)
131+
set -x
132+
133+
trap "docker ps; docker images; ip netns list; \
134+
docker rmi docker-sonic-vs:$(Build.BuildNumber); \
135+
ip netns list | grep -E [-]srv[0-9]+ | awk '{print $1}' | xargs -I {} sudo ip netns delete {}; \
136+
sudo chown -R ${username}.${username} .; \
137+
sudo chown -R ${username}.${username} $(System.DefaultWorkingDirectory)" EXIT
138+
pushd platform/vs/tests
139+
sudo py.test -v --junitxml=tr.xml --imgname=docker-sonic-vs:$(Build.BuildNumber) && \
140+
sudo rm /nfs/azpl/kvmimage/docker-sonic-vs.$(Build.BuildNumber).gz
141+
displayName: "Run vs tests"
142+
143+
- task: PublishTestResults@2
144+
inputs:
145+
testResultsFiles: '**/tr.xml'
146+
testRunTitle: vstest
147+
148+
- job:
149+
displayName: "kvmtest"
150+
timeoutInMinutes: 240
151+
steps:
152+
- script: |
153+
sudo mkdir -p /data/sonic-vm/images
154+
sudo cp -v /nfs/azpl/kvmimage/sonic-vs.$(Build.BuildNumber).img.gz /data/sonic-vm/images/sonic-vs.img.gz
155+
sudo gzip -fd /data/sonic-vm/images/sonic-vs.img.gz
156+
username=$(id -un)
157+
sudo chown -R $username.$username /data/sonic-vm
158+
pushd /data/sonic-mgmt
159+
git remote update
160+
git reset --hard origin/master
161+
sed -i s/use_own_value/${username}/ ansible/veos_vtb
162+
echo aaa > ansible/password.txt
163+
docker exec sonic-mgmt bash -c "pushd /data/sonic-mgmt/ansible;./testbed-cli.sh -d /data/sonic-vm -m $(inventory) -t $(testbed_file) -k ceos refresh-dut $(tbname) password.txt" && sleep 180
164+
displayName: "Setup T0 testbed"
165+
- script: |
166+
pwd
167+
username=$(id -un)
168+
169+
rm -rf $(Build.ArtifactStagingDirectory)/*
170+
docker exec sonic-mgmt bash -c "/data/sonic-mgmt/tests/kvmtest.sh -en $(tbname) $(dut)"
171+
172+
# save dut state if test fails
173+
if [ $? != 0 ]; then
174+
virsh_version=$(virsh --version)
175+
if [ $virsh_version == "6.0.0" ]; then
176+
mkdir -p $(Build.ArtifactStagingDirectory)/kvmdump
177+
virsh -c qemu:///system list
178+
virsh -c qemu:///system save $(dut) $(Build.ArtifactStagingDirectory)/kvmdump/$(dut).memdmp
179+
virsh -c qemu:///system dumpxml $(dut) > $(Build.ArtifactStagingDirectory)/kvmdump/$(dut).xml
180+
img=$(virsh -c qemu:///system domblklist $(dut) | grep vda | awk '{print $2}')
181+
cp $img $(Build.ArtifactStagingDirectory)/kvmdump/$(dut).img
182+
sudo chown -R $username.$username kvmdump
183+
virsh -c qemu:///system undefine $(dut)
184+
fi
185+
186+
rm -rf ptfdump
187+
mkdir -p ptfdump
188+
docker commit $(ptf_name) docker-ptf:$(Build.BuildNumber)
189+
docker save docker-ptf:$(Build.BuildNumber) | gzip -c > $(Build.ArtifactStagingDirectory)/kvmdump/docker-ptf-dump.gz
190+
docker rmi docker-ptf:$(Build.BuildNumber)
191+
192+
cp -r /data/sonic-mgmt/tests/logs $(Build.ArtifactStagingDirectory)/
193+
194+
exit 2
195+
else
196+
sudo rm /nfs/azpl/kvmimage/sonic-vs.$(Build.BuildNumber).img.gz
197+
198+
cp -r /data/sonic-mgmt/tests/logs $(Build.ArtifactStagingDirectory)/
199+
fi
200+
displayName: "Run T0 tests"
201+
- publish: $(Build.ArtifactStagingDirectory)/kvmdump
202+
artifact: sonic-buildimage.kvmtest.memdump
203+
displayName: "Archive sonic kvm memdump"
204+
condition: failed()
205+
- publish: $(Build.ArtifactStagingDirectory)/logs
206+
artifact: sonic-buildimage.kvmtest.log
207+
displayName: "Archive sonic kvm logs"
208+
condition: succeededOrFailed()
209+
- task: PublishTestResults@2
210+
inputs:
211+
testResultsFiles: '$(Build.ArtifactStagingDirectory)/logs/**/*.xml'
212+
testRunTitle: kvmtest
213+
condition: succeededOrFailed()

build_debian.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,6 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
275275
ntpstat \
276276
openssh-server \
277277
python \
278-
python-jsonschema \
279278
python-apt \
280279
traceroute \
281280
iputils-ping \

device/celestica/x86_64-cel_seastone-r0/fancontrol-B2F

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,4 @@ MINSTOP=13-002e/pwm1=89 13-002e/pwm2=89 13-002e/pwm3=89 13-002e/pwm4=89 13-002e/
99
MINPWM=13-002e/pwm1=89 13-002e/pwm2=89 13-002e/pwm3=89 13-002e/pwm4=89 13-002e/pwm5=89 13-004d/pwm1=89 13-004d/pwm2=89 13-004d/pwm3=89 13-004d/pwm4=89 13-004d/pwm5=89
1010
MAXPWM=13-002e/pwm1=255 13-002e/pwm2=255 13-002e/pwm3=255 13-002e/pwm4=255 13-002e/pwm5=255 13-004d/pwm1=255 13-004d/pwm2=255 13-004d/pwm3=255 13-004d/pwm4=255 13-004d/pwm5=255
1111
THYST=13-002e/pwm1=3 13-002e/pwm2=3 13-002e/pwm3=3 13-002e/pwm4=3 13-002e/pwm5=3 13-004d/pwm1=3 13-004d/pwm2=3 13-004d/pwm3=3 13-004d/pwm4=3 13-004d/pwm5=3
12-
MAXTEMPCRIT=/sys/bus/i2c/devices/7-004a/hwmon/hwmon*/temp1_input=65 /sys/bus/i2c/devices/14-0048/hwmon/hwmon*/temp1_input=75
13-
MAXTEMPTYPE=/sys/bus/i2c/devices/7-004a/hwmon/hwmon*/temp1_input=ASIC /sys/bus/i2c/devices/14-0048/hwmon/hwmon*/temp1_input=CPU
12+

device/celestica/x86_64-cel_seastone-r0/fancontrol-F2B

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,4 @@ MINSTOP=13-002e/pwm1=89 13-002e/pwm2=89 13-002e/pwm3=89 13-002e/pwm4=89 13-002e/
99
MINPWM=13-002e/pwm1=89 13-002e/pwm2=89 13-002e/pwm3=89 13-002e/pwm4=89 13-002e/pwm5=89 13-004d/pwm1=89 13-004d/pwm2=89 13-004d/pwm3=89 13-004d/pwm4=89 13-004d/pwm5=89
1010
MAXPWM=13-002e/pwm1=255 13-002e/pwm2=255 13-002e/pwm3=255 13-002e/pwm4=255 13-002e/pwm5=255 13-004d/pwm1=255 13-004d/pwm2=255 13-004d/pwm3=255 13-004d/pwm4=255 13-004d/pwm5=255
1111
THYST=13-002e/pwm1=3 13-002e/pwm2=3 13-002e/pwm3=3 13-002e/pwm4=3 13-002e/pwm5=3 13-004d/pwm1=3 13-004d/pwm2=3 13-004d/pwm3=3 13-004d/pwm4=3 13-004d/pwm5=3
12-
MAXTEMPCRIT=/sys/bus/i2c/devices/7-004a/hwmon/hwmon*/temp1_input=75 /sys/bus/i2c/devices/14-0048/hwmon/hwmon*/temp1_input=75
13-
MAXTEMPTYPE=/sys/bus/i2c/devices/7-004a/hwmon/hwmon*/temp1_input=ASIC /sys/bus/i2c/devices/14-0048/hwmon/hwmon*/temp1_input=CPU
12+

device/celestica/x86_64-cel_seastone-r0/sonic_platform/chassis.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,9 @@ def __initialize_fan(self):
7474

7575
def __initialize_thermals(self):
7676
from sonic_platform.thermal import Thermal
77+
airflow = self.__get_air_flow()
7778
for index in range(0, NUM_THERMAL):
78-
thermal = Thermal(index)
79+
thermal = Thermal(index, airflow)
7980
self._thermal_list.append(thermal)
8081

8182
def __initialize_eeprom(self):
@@ -88,6 +89,11 @@ def __initialize_components(self):
8889
component = Component(index)
8990
self._component_list.append(component)
9091

92+
def __get_air_flow(self):
93+
air_flow_path = '/usr/share/sonic/device/{}/fan_airflow'.format(self._api_helper.platform) if self.is_host else '/usr/share/sonic/platform/fan_airflow'
94+
air_flow = self._api_helper.read_one_line_file(air_flow_path)
95+
return air_flow or 'B2F'
96+
9197
def get_base_mac(self):
9298
"""
9399
Retrieves the base MAC address for the chassis
@@ -291,3 +297,7 @@ def get_status(self):
291297
A boolean value, True if device is operating properly, False if not
292298
"""
293299
return True
300+
301+
def get_thermal_manager(self):
302+
from .thermal_manager import ThermalManager
303+
return ThermalManager

device/celestica/x86_64-cel_seastone-r0/sonic_platform/fan.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,4 +304,20 @@ def get_status(self):
304304
Returns:
305305
A boolean value, True if device is operating properly, False if not
306306
"""
307-
return self.get_presence() and self.get_speed() > 0
307+
status = 1
308+
if self.is_psu_fan:
309+
fan_fault_sysfs_name = "fan1_fault"
310+
fan_fault_sysfs_path = self.__search_file_by_name(
311+
self.psu_hwmon_path, fan_fault_sysfs_name)
312+
status = self._api_helper.read_one_line_file(fan_fault_sysfs_path)
313+
314+
elif self.get_presence():
315+
chip = self.emc2305_chip_mapping[self.fan_index]
316+
device = chip['device']
317+
fan_index = chip['index_map']
318+
sysfs_path = "%s%s/%s" % (
319+
EMC2305_PATH, device, 'fan{}_fault')
320+
sysfs_path = sysfs_path.format(fan_index[self.fan_tray_index])
321+
status = self._api_helper.read_one_line_file(sysfs_path)
322+
323+
return False if int(status) != 0 else True

0 commit comments

Comments
 (0)