Fix py3 issues

- Update popen to use universal_newlines=True to enable newlines
  for calls that we parse or consume output for. Without universal_newlines=True,
  the output is treated as bytes under python3
  which leads to issues later where we are using it as
  strings.
- The division operator in Python 3 results in a float, not an integer
  like in Python 2. Use the truncation division operator instead.
- Use python builtins since the behavior of round has changed between
  python2 and python3.
  (https://docs.python.org/3/whatsnew/3.0.html#builtins)

Story: 2006796
Task: 42695

Signed-off-by: Charles Short <charles.short@windriver.com>
Change-Id: I9c9a4fdfd8a65cf6a3034a2c80c3a620ab138d22
This commit is contained in:
Charles Short 2021-06-25 11:46:31 -04:00
parent f412074f59
commit 9ced50cf38

View File

@ -29,6 +29,7 @@ import textwrap
import keyring
import subprocess
import math
from builtins import round
from prettytable import PrettyTable
from cgtsclient.common import utils
from cgtsclient import client as cgts_client
@ -145,7 +146,7 @@ def get_system_creds():
proc = subprocess.Popen(['bash', '-c',
'source /etc/platform/openrc && env'],
stdout=subprocess.PIPE)
stdout=subprocess.PIPE, universal_newlines=True)
for line in proc.stdout:
key, _, value = line.partition("=")
@ -180,7 +181,7 @@ def convert_to_readable_size(size, orig_unit='B'):
if unitIndex > 5:
unitIndex = 5
sizer = math.pow(1024, unitIndex)
newsize = round(size / sizer, 2)
newsize = round(size // sizer, 2)
return "%s %s" % (newsize, units[unitIndex])