Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions device/dell/x86_64-dellemc_n3248pxe_c3338-r0/plugins/fanutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
# Platform-specific FAN status interface for SONiC
#

import commands
import sys
import subprocess

SENSORS_CMD = "docker exec -i pmon /usr/bin/sensors"
SENSORS_CMD = ["docker", "exec", "-i", "pmon", "/usr/bin/sensors"]
DOCKER_SENSORS_CMD = "/usr/bin/sensors"


Expand Down Expand Up @@ -47,10 +47,11 @@ def get_direction(self, idx):
def get_speed(self, idx):
dockerenv = self.isDockerEnv()
if not dockerenv:
status, cmd_output = commands.getstatusoutput(SENSORS_CMD)
else :
status, cmd_output = commands.getstatusoutput(DOCKER_SENSORS_CMD)

p = subprocess.run(SENSORS_CMD, capture_output=True, universal_newlines=True)
status, cmd_output = p.returncode, p.stdout
else:
p = subprocess.run(DOCKER_SENSORS_CMD, capture_output=True, universal_newlines=True)
status, cmd_output = p.returncode, p.stdout
if status:
print('Failed to execute sensors command')
sys.exit(0)
Expand Down
13 changes: 7 additions & 6 deletions device/dell/x86_64-dellemc_n3248pxe_c3338-r0/plugins/psuutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
# Platform-specific PSU status interface for SONiC
#

import commands
import os
import sys
import subprocess

SENSORS_CMD = "docker exec -i pmon /usr/bin/sensors"
SENSORS_CMD = ["docker", "exec", "-i", "pmon", "/usr/bin/sensors"]
DOCKER_SENSORS_CMD = "/usr/bin/sensors"

try:
Expand Down Expand Up @@ -95,10 +95,11 @@ def get_psu_presence(self, index):
def get_sensor(self):
dockerenv = self.isDockerEnv()
if not dockerenv:
status, cmd_output = commands.getstatusoutput(SENSORS_CMD)
else :
status, cmd_output = commands.getstatusoutput(DOCKER_SENSORS_CMD)

p = subprocess.run(SENSORS_CMD, capture_output=True, universal_newlines=True)
status, cmd_output = p.returncode, p.stdout
else:
p = subprocess.run(DOCKER_SENSORS_CMD, capture_output=True, universal_newlines=True)
status, cmd_output = p.returncode, p.stdout
if status:
print('Failed to execute sensors command')
sys.exit(0)
Expand Down
11 changes: 6 additions & 5 deletions device/dell/x86_64-dellemc_n3248te_c3338-r0/plugins/fanutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import subprocess
import sys

SENSORS_CMD = "docker exec -i pmon /usr/bin/sensors"
SENSORS_CMD = ["docker", "exec", "-i", "pmon", "/usr/bin/sensors"]
DOCKER_SENSORS_CMD = "/usr/bin/sensors"


Expand Down Expand Up @@ -47,10 +47,11 @@ def get_direction(self, idx):
def get_speed(self, idx):
dockerenv = self.isDockerEnv()
if not dockerenv:
status, cmd_output = subprocess.getstatusoutput(SENSORS_CMD)
else :
status, cmd_output = subprocess.getstatusoutput(DOCKER_SENSORS_CMD)

p = subprocess.run(SENSORS_CMD, capture_output=True, universal_newlines=True)
status, cmd_output = p.returncode, p.stdout
else:
p = subprocess.run(DOCKER_SENSORS_CMD, capture_output=True, universal_newlines=True)
status, cmd_output = p.returncode, p.stdout
if status:
print('Failed to execute sensors command')
sys.exit(0)
Expand Down
13 changes: 7 additions & 6 deletions device/dell/x86_64-dellemc_n3248te_c3338-r0/plugins/psuutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
# Platform-specific PSU status interface for SONiC
#

import commands
import os
import sys
import subprocess

SENSORS_CMD = "docker exec -i pmon /usr/bin/sensors"
SENSORS_CMD = ["docker", "exec", "-i", "pmon", "/usr/bin/sensors"]
DOCKER_SENSORS_CMD = "/usr/bin/sensors"

try:
Expand Down Expand Up @@ -95,10 +95,11 @@ def get_psu_presence(self, index):
def get_sensor(self):
dockerenv = self.isDockerEnv()
if not dockerenv:
status, cmd_output = commands.getstatusoutput(SENSORS_CMD)
else :
status, cmd_output = commands.getstatusoutput(DOCKER_SENSORS_CMD)

p = subprocess.run(SENSORS_CMD, capture_output=True, universal_newlines=True)
status, cmd_output = p.returncode, p.stdout
else:
p = subprocess.run(DOCKER_SENSORS_CMD, capture_output=True, universal_newlines=True)
status, cmd_output = p.returncode, p.stdout
if status:
print('Failed to execute sensors command')
sys.exit(0)
Expand Down
12 changes: 8 additions & 4 deletions device/dell/x86_64-dellemc_s5212f_c3538-r0/plugins/psuutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
import subprocess

S5212F_MAX_PSUS = 2
IPMI_PSU_DATA = "docker exec -it pmon ipmitool sdr list"
IPMI_PSU_DATA_DOCKER = "ipmitool sdr list"
IPMI_PSU_DATA = ["docker", "exec", "-it", "pmon", "ipmitool", "sdr", "list"]
IPMI_PSU_DATA_DOCKER = ["ipmitool", "sdr", "list"]
PSU_PRESENCE = "PSU{0}_stat"
# Use this for older firmware
# PSU_PRESENCE="PSU{0}_prsnt"
Expand Down Expand Up @@ -44,7 +44,8 @@ def get_pmc_register(self, reg_name):
if dockerenv == True:
ipmi_cmd = IPMI_PSU_DATA_DOCKER

status, ipmi_sdr_list = subprocess.getstatusoutput(ipmi_cmd)
p = subprocess.run(ipmi_cmd, capture_output=True, universal_newlines=True)
status, ipmi_sdr_list = p.returncode, p.stdout

if status:
logging.error('Failed to execute:' + ipmi_sdr_list)
Expand Down Expand Up @@ -91,6 +92,9 @@ def get_psu_presence(self, index):
:param index: An integer, index of the PSU of which to query status
:return: Boolean, True if PSU is plugged, False if not
"""
cmd_status, psu_status = subprocess.getstatusoutput('ipmitool raw 0x04 0x2d ' + hex(0x30 + index) + " | awk '{print substr($0,9,1)}'")
cmd = ["ipmitool", "raw", "0x04", "0x2d", hex(0x30 + index)]
proc = subprocess.run(cmd, capture_output=True, universal_newlines=True)
line = proc.stdout
psu_status = line[8] if len(line) > 8 else ''
return 1 if psu_status == '1' else 0

8 changes: 6 additions & 2 deletions device/dell/x86_64-dellemc_s5224f_c3538-r0/plugins/psuutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ def get_pmc_register(self, reg_name):
if dockerenv == True:
ipmi_cmd = IPMI_PSU_DATA_DOCKER

status, ipmi_sdr_list = subprocess.getstatusoutput(ipmi_cmd)
p = subprocess.run(ipmi_cmd, capture_output=True, universal_newlines=True)
status, ipmi_sdr_list = p.returncode, p.stdout

if status:
logging.error('Failed to execute:' + ipmi_sdr_list)
Expand Down Expand Up @@ -92,6 +93,9 @@ def get_psu_presence(self, index):
:param index: An integer, index of the PSU of which to query status
:return: Boolean, True if PSU is plugged, False if not
"""
cmd_status, psu_status = subprocess.getstatusoutput('ipmitool raw 0x04 0x2d ' + hex(0x30 + index) + " | awk '{print substr($0,9,1)}'")
cmd = ["ipmitool", "raw", "0x04", "0x2d", hex(0x30 + index)]
proc = subprocess.run(cmd, capture_output=True, universal_newlines=True)
line = proc.stdout
psu_status = line[8] if len(line) > 8 else ''
return 1 if psu_status == '1' else 0

48 changes: 26 additions & 22 deletions device/dell/x86_64-dellemc_s5232f_c3538-r0/plugins/psuutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,13 @@
import os.path
import logging
import sys

if sys.version_info[0] < 3:
import commands
else:
import subprocess as commands

import subprocess

S5232F_MAX_PSUS = 2
IPMI_PSU1_DATA = "docker exec -it pmon ipmitool raw 0x04 0x2d 0x31 | awk '{print substr($0,9,1)}'"
IPMI_PSU1_DATA_DOCKER = "ipmitool raw 0x04 0x2d 0x31 | awk '{print substr($0,9,1)}'"
IPMI_PSU2_DATA = "docker exec -it pmon ipmitool raw 0x04 0x2d 0x32 | awk '{print substr($0,9,1)}'"
IPMI_PSU2_DATA_DOCKER = "ipmitool raw 0x04 0x2d 0x32 | awk '{print substr($0,9,1)}'"
IPMI_PSU1_DATA = ["docker", "exec", "-it", "pmon", "ipmitool", "raw", "0x04", "0x2d", "0x31"]
IPMI_PSU1_DATA_DOCKER = ["ipmitool", "raw", "0x04", "0x2d", "0x31"]
IPMI_PSU2_DATA = ["docker", "exec", "-it", "pmon", "ipmitool", "raw", "0x04", "0x2d", "0x32"]
IPMI_PSU2_DATA_DOCKER = ["ipmitool", "raw", "0x04", "0x2d", "0x32"]
PSU_PRESENCE = "PSU{0}_stat"
# Use this for older firmware
# PSU_PRESENCE="PSU{0}_prsnt"
Expand Down Expand Up @@ -52,14 +47,17 @@ def get_pmc_register(self, reg_name):
dockerenv = self.isDockerEnv()
if dockerenv == True:
if index == 1:
status, ipmi_sdr_list = commands.getstatusoutput(IPMI_PSU1_DATA_DOCKER)
p = subprocess.run(IPMI_PSU1_DATA_DOCKER, capture_output=True, universal_newlines=True)
elif index == 2:
status, ipmi_sdr_list = commands.getstatusoutput(IPMI_PSU2_DATA_DOCKER)
p = subprocess.run(IPMI_PSU2_DATA_DOCKER, capture_output=True, universal_newlines=True)
else:
if index == 1:
status, ipmi_sdr_list = commands.getstatusoutput(IPMI_PSU1_DATA)
p = subprocess.run(IPMI_PSU1_DATA, capture_output=True, universal_newlines=True)
elif index == 2:
status, ipmi_sdr_list = commands.getstatusoutput(IPMI_PSU2_DATA)
p = subprocess.run(IPMI_PSU2_DATA, capture_output=True, universal_newlines=True)
status = p.returncode
line = p.stdout.replace('\n', '')
ipmi_sdr_list = line[8] if len(line) > 8 else ''

if status:
logging.error('Failed to execute ipmitool')
Expand Down Expand Up @@ -92,14 +90,17 @@ def get_psu_status(self, index):
dockerenv = self.isDockerEnv()
if dockerenv == True:
if index == 1:
ret_status, ipmi_sdr_list = commands.getstatusoutput(IPMI_PSU1_DATA_DOCKER)
p = subprocess.run(IPMI_PSU1_DATA_DOCKER, capture_output=True, universal_newlines=True)
elif index == 2:
ret_status, ipmi_sdr_list = commands.getstatusoutput(IPMI_PSU2_DATA_DOCKER)
p = subprocess.run(IPMI_PSU2_DATA_DOCKER, capture_output=True, universal_newlines=True)
else:
if index == 1:
ret_status, ipmi_sdr_list = commands.getstatusoutput(IPMI_PSU1_DATA)
p = subprocess.run(IPMI_PSU1_DATA, capture_output=True, universal_newlines=True)
elif index == 2:
ret_status, ipmi_sdr_list = commands.getstatusoutput(IPMI_PSU2_DATA)
p = subprocess.run(IPMI_PSU2_DATA, capture_output=True, universal_newlines=True)
ret_status = p.returncode
line = p.stdout.replace('\n', '')
ipmi_sdr_list = line[8] if len(line) > 8 else 'f'

if ret_status:
logging.error('Failed to execute ipmitool : ')
Expand All @@ -120,14 +121,17 @@ def get_psu_presence(self, index):
dockerenv = self.isDockerEnv()
if dockerenv == True:
if index == 1:
ret_status, ipmi_sdr_list = commands.getstatusoutput(IPMI_PSU1_DATA_DOCKER)
p = subprocess.run(IPMI_PSU1_DATA_DOCKER, capture_output=True, universal_newlines=True)
elif index == 2:
ret_status, ipmi_sdr_list = commands.getstatusoutput(IPMI_PSU2_DATA_DOCKER)
p = subprocess.run(IPMI_PSU2_DATA_DOCKER, capture_output=True, universal_newlines=True)
else:
if index == 1:
ret_status, ipmi_sdr_list = commands.getstatusoutput(IPMI_PSU1_DATA)
p = subprocess.run(IPMI_PSU1_DATA, capture_output=True, universal_newlines=True)
elif index == 2:
ret_status, ipmi_sdr_list = commands.getstatusoutput(IPMI_PSU2_DATA)
p = subprocess.run(IPMI_PSU2_DATA, capture_output=True, universal_newlines=True)
ret_status = p.returncode
line = p.stdout.replace('\n', '')
ipmi_sdr_list = line[8] if len(line) > 8 else '0'

if ret_status:
logging.error('Failed to execute ipmitool : ')
Expand Down
13 changes: 5 additions & 8 deletions device/dell/x86_64-dellemc_s5248f_c3538-r0/plugins/psuutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,12 @@
import os.path
import logging
import sys

if sys.version_info[0] < 3:
import commands
else:
import subprocess as commands
import subprocess


S5248F_MAX_PSUS = 2
IPMI_PSU_DATA = "docker exec -it pmon ipmitool sdr list"
IPMI_PSU_DATA_DOCKER = "ipmitool sdr list"
IPMI_PSU_DATA = ["docker", "exec", "-it", "pmon", "ipmitool", "sdr", "list"]
IPMI_PSU_DATA_DOCKER = ["ipmitool", "sdr", "list"]
PSU_PRESENCE = "PSU{0}_stat"
# Use this for older firmware
# PSU_PRESENCE="PSU{0}_prsnt"
Expand Down Expand Up @@ -53,7 +49,8 @@ def get_pmc_register(self, reg_name):
if dockerenv == True:
ipmi_cmd = IPMI_PSU_DATA_DOCKER

status, ipmi_sdr_list = commands.getstatusoutput(ipmi_cmd)
p = subprocess.run(ipmi_cmd, capture_output=True, universal_newlines=True)
status, ipmi_sdr_list = p.returncode, p.stdout

if status:
logging.error('Failed to execute:' + ipmi_sdr_list)
Expand Down
19 changes: 9 additions & 10 deletions device/dell/x86_64-dellemc_s5296f_c3538-r0/plugins/psuutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,12 @@

import logging
import sys

if sys.version_info[0] < 3:
import commands
else:
import subprocess as commands
import subprocess


S5296F_MAX_PSUS = 2
IPMI_PSU_DATA = "docker exec -it pmon ipmitool sdr list"
IPMI_PSU_DATA_DOCKER = "ipmitool sdr list"
IPMI_PSU_DATA = ["docker", "exec", "-it", "pmon", "ipmitool", "sdr", "list"]
IPMI_PSU_DATA_DOCKER = ["ipmitool", "sdr", "list"]
PSU_PRESENCE = "PSU{0}_stat"
# Use this for older firmware
# PSU_PRESENCE="PSU{0}_prsnt"
Expand Down Expand Up @@ -50,7 +46,8 @@ def get_pmc_register(self, reg_name):
if dockerenv == True:
ipmi_cmd = IPMI_PSU_DATA_DOCKER

status, ipmi_sdr_list = commands.getstatusoutput(ipmi_cmd)
p = subprocess.run(ipmi_cmd, capture_output=True, universal_newlines=True)
status, ipmi_sdr_list = p.returncode, p.stdout

if status:
logging.error('Failed to execute:' + ipmi_sdr_list)
Expand Down Expand Up @@ -97,6 +94,8 @@ def get_psu_presence(self, index):
:param index: An integer, index of the PSU of which to query status
:return: Boolean, True if PSU is plugged, False if not
"""
cmd_status, psu_status = commands.getstatusoutput(
'ipmitool raw 0x04 0x2d ' + hex(0x30 + index) + " | awk '{print substr($0,9,1)}'")
cmd = ["ipmitool", "raw", "0x04", "0x2d", hex(0x30 + index)]
p = subprocess.run(cmd, capture_output=True, universal_newlines=True)
line = p.stdout.replace('\n', '')
psu_status = line[8] if len(line) > 8 else ''
return 1 if psu_status == '1' else 0
13 changes: 5 additions & 8 deletions device/dell/x86_64-dellemc_z9264f_c3538-r0/plugins/psuutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,12 @@
import os.path
import logging
import sys

if sys.version_info[0] < 3:
import commands
else:
import subprocess as commands
import subprocess


Z9264F_MAX_PSUS = 2
IPMI_PSU_DATA = "docker exec -it pmon ipmitool sdr list"
IPMI_PSU_DATA_DOCKER = "ipmitool sdr list"
IPMI_PSU_DATA = ["docker", "exec", "-it", "pmon", "ipmitool", "sdr", "list"]
IPMI_PSU_DATA_DOCKER = ["ipmitool", "sdr", "list"]
PSU_PRESENCE = "PSU{0}_state"
# Use this for older firmware
# PSU_PRESENCE="PSU{0}_prsnt"
Expand Down Expand Up @@ -53,7 +49,8 @@ def get_pmc_register(self, reg_name):
if dockerenv == True:
ipmi_cmd = IPMI_PSU_DATA_DOCKER

status, ipmi_sdr_list = commands.getstatusoutput(ipmi_cmd)
p = subprocess.run(ipmi_cmd, capture_output=True, universal_newlines=True)
status, ipmi_sdr_list = p.returncode, p.stdout

if status:
logging.error('Failed to execute:' + ipmi_sdr_list)
Expand Down
Loading