Bug fixed when out and err are None in operation exec_command

oglive^2
Juan Manuel Bardallo 2019-05-27 10:48:30 +02:00 committed by Ramón M. Gómez
parent 2ac6daa3f5
commit 8055b1358a
1 changed files with 14 additions and 2 deletions

View File

@ -41,6 +41,7 @@ import array
import six
import chardet
from opengnsys import utils
from opengnsys.log import logger
def _getMacAddr(ifname):
@ -209,9 +210,20 @@ def exec_command(cmd):
"""
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
(out, err) = proc.communicate()
try:
if out is not None:
encoding = chardet.detect(out)["encoding"]
if encoding is not None:
out = out.decode(encoding).encode("utf8")
if err is not None:
encoding = chardet.detect(err)["encoding"]
if encoding is not None:
err = err.decode(encoding).encode("utf8")
except Exception as e:
logger.debug("ERROR EXEC COMMAND: {}".format(str(e)))
stat = proc.returncode
return stat, out.decode(chardet.detect(out)['encoding']).encode('utf8'),\
err.decode(chardet.detect(err)['encoding']).encode('utf8')
return stat, out, err
def get_hardware():