summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--admin/Sources/Clients/ogagent/src/opengnsys/oglive/operations.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/admin/Sources/Clients/ogagent/src/opengnsys/oglive/operations.py b/admin/Sources/Clients/ogagent/src/opengnsys/oglive/operations.py
index 9ec907c1..8c74f747 100644
--- a/admin/Sources/Clients/ogagent/src/opengnsys/oglive/operations.py
+++ b/admin/Sources/Clients/ogagent/src/opengnsys/oglive/operations.py
@@ -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():