From f2e5263206c87dde9b602c3660b8191398d9c555 Mon Sep 17 00:00:00 2001 From: Andrei Grosu Date: Fri, 18 Jun 2021 11:30:42 +0300 Subject: [PATCH] Fix startup issues for collectd. - Use encodeutils from olso library to handle string encodings. - Expand the generator into a list. - Use python3 iterator __next__(). Note: there needs to be a separate task to remove the Encoding parameter from python_plugins.conf which can be cherry-picked only for python3 deployments. Story: 2008454 Task: 42647 Depends-On: Iaa7bd0cadd3b1d097b276dcc37ebceaeb208a6a5 Signed-off-by: Andrei Grosu Change-Id: I58cd4829806e98b1e15471ce97a7c7ba6a2fe135 --- collectd-extensions/centos/collectd-extensions.spec | 1 + collectd-extensions/src/cpu.py | 2 +- collectd-extensions/src/fm_notifier.py | 3 ++- collectd-extensions/src/memory.py | 2 +- collectd-extensions/src/plugin_common.py | 2 +- 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/collectd-extensions/centos/collectd-extensions.spec b/collectd-extensions/centos/collectd-extensions.spec index 4130372..0f2c2c1 100644 --- a/collectd-extensions/centos/collectd-extensions.spec +++ b/collectd-extensions/centos/collectd-extensions.spec @@ -46,6 +46,7 @@ Requires: fm-api Requires: python3-httplib2 Requires: python3-influxdb Requires: python3-oslo-concurrency +Requires: python3-oslo-utils Requires: tsconfig Requires: /bin/systemctl diff --git a/collectd-extensions/src/cpu.py b/collectd-extensions/src/cpu.py index 123cfa5..1bcb6da 100755 --- a/collectd-extensions/src/cpu.py +++ b/collectd-extensions/src/cpu.py @@ -194,7 +194,7 @@ def get_cpuacct(): # Walk the first level cgroups and get cpuacct usage # (e.g., docker, k8s-infra, user.slice, system.slice, machine.slice) - dir_list = os.walk(CPUACCT).next()[1] + dir_list = next(os.walk(CPUACCT))[1] for name in dir_list: cg_path = '/'.join([CPUACCT, name]) acct = get_cgroup_cpuacct(cg_path) diff --git a/collectd-extensions/src/fm_notifier.py b/collectd-extensions/src/fm_notifier.py index b4a3776..aee951d 100755 --- a/collectd-extensions/src/fm_notifier.py +++ b/collectd-extensions/src/fm_notifier.py @@ -88,6 +88,7 @@ import re import socket import collectd from threading import RLock as Lock +from oslo_utils import encodeutils from fm_api import constants as fm_constants from fm_api import fm_api import tsconfig.tsconfig as tsc @@ -387,7 +388,7 @@ class DegradeObject: collectd.info("%s: %s" % (PLUGIN_DEGRADE, message)) mtce_socket.settimeout(1.0) - mtce_socket.sendto(message, (self.addr, self.port)) + mtce_socket.sendto(encodeutils.safe_encode(message), (self.addr, self.port)) mtce_socket.close() else: collectd.error("%s %s failed to open socket (%s)" % diff --git a/collectd-extensions/src/memory.py b/collectd-extensions/src/memory.py index 25f5915..7adbab3 100755 --- a/collectd-extensions/src/memory.py +++ b/collectd-extensions/src/memory.py @@ -261,7 +261,7 @@ def get_platform_memory(): # Walk the first level cgroups and get memory usage # (e.g., docker, k8s-infra, user.slice, system.slice, machine.slice) - dir_list = os.walk(MEMCONT).next()[1] + dir_list = next(os.walk(MEMCONT))[1] for name in dir_list: cg_path = '/'.join([MEMCONT, name]) m = get_cgroup_memory(cg_path) diff --git a/collectd-extensions/src/plugin_common.py b/collectd-extensions/src/plugin_common.py index 5242f3a..8475d43 100644 --- a/collectd-extensions/src/plugin_common.py +++ b/collectd-extensions/src/plugin_common.py @@ -785,7 +785,7 @@ def range_to_list(csv_range=None): if not csv_range: return [] - ranges = [(lambda L: range(L[0], L[-1] + 1))(map(int, r.split('-'))) + ranges = [(lambda L: range(L[0], L[-1] + 1))(list(map(int, r.split('-')))) for r in csv_range.split(',')] return [y for x in ranges for y in x]