Throttle collectd OVS interface plugin startup wait log
This update turns a flooding failure log into a single waiting log while the collectd OVS interface plugin initialization sequence waits for a running ovs daemon. A few pep8 long line warning are fixed. Test Plan: PASS: Verify plugin behavior of compute system install without Openstack PASS: Verify plugin behavior in AIO-SX with Openstack PASS: Verify plugin failure handling and recovery with Openstack Note: the ovs-vswitch pmon conf file was changed to allow process failure recovery to verify the plugin was able to handle transition from not running/waiting to running once process started. PASS: Verify plugin failure handling when ovs-vswitchd process fails. Note: pmond does not try and recover and the following collectd log is produced every 10 seconds. 'err ovs interface plugin failed to dump ports br-phy1 desc' Change-Id: I95d308f771ebabc77dbeb5113feae283538d37d3 Closes-Bug: 1855597 Signed-off-by: Eric MacDonald <eric.macdonald@windriver.com>
This commit is contained in:
parent
02b1d056ee
commit
4ab570a850
|
@ -41,10 +41,10 @@
|
||||||
# 0 or 0% percent used - all interfaces for that port are Down
|
# 0 or 0% percent used - all interfaces for that port are Down
|
||||||
#
|
#
|
||||||
# For example:
|
# For example:
|
||||||
# x will be 0 when all interfaces of that port are Down.
|
# x is 0 when all interfaces of that port are Down.
|
||||||
# x will be 50 when one interface of the bond which contains two interfaces is down.
|
# x is 50 when one interface of a two interface bond is down.
|
||||||
# x will be 66.7 when two of the bond which contains three interfaces are down.
|
# x is 66.7 when two of a three interface bond is down.
|
||||||
# x will be 100 when all interfaces of that port are up.
|
# x is 100 when all interfaces of that port are up.
|
||||||
#
|
#
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
|
@ -56,6 +56,7 @@ import plugin_common as pc
|
||||||
from oslo_concurrency import processutils
|
from oslo_concurrency import processutils
|
||||||
from fm_api import constants as fm_constants
|
from fm_api import constants as fm_constants
|
||||||
from fm_api import fm_api
|
from fm_api import fm_api
|
||||||
|
import tsconfig.tsconfig as tsc
|
||||||
|
|
||||||
# Fault manager API Object
|
# Fault manager API Object
|
||||||
api = fm_api.FaultAPIsV2()
|
api = fm_api.FaultAPIsV2()
|
||||||
|
@ -219,7 +220,7 @@ class InterfaceObject:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def manage_interface_alarm(self, current_state):
|
def manage_interface_alarm(self, current_state):
|
||||||
"""raise or clear interface alarm based on previous state and current state"""
|
"""raise or clear interface alarm based on previous/current state"""
|
||||||
|
|
||||||
if current_state != self.state:
|
if current_state != self.state:
|
||||||
if current_state == LINK_UP:
|
if current_state == LINK_UP:
|
||||||
|
@ -858,7 +859,9 @@ def init_func():
|
||||||
if obj.init_ready() is False:
|
if obj.init_ready() is False:
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
obj.hostname = obj.gethostname()
|
# Only runs on worker nodes
|
||||||
|
if 'worker' not in tsc.subfunctions:
|
||||||
|
return 0
|
||||||
|
|
||||||
# Check whether this host is openstack worker node or not
|
# Check whether this host is openstack worker node or not
|
||||||
# OVS and OVSDPDK will only run on openstack worker node
|
# OVS and OVSDPDK will only run on openstack worker node
|
||||||
|
@ -873,15 +876,22 @@ def init_func():
|
||||||
if count == 1 and pid:
|
if count == 1 and pid:
|
||||||
# /var/run/openvswitch/ovs-vswitchd.43.ctl
|
# /var/run/openvswitch/ovs-vswitchd.43.ctl
|
||||||
global OVS_VSWITCHD_SOCKET
|
global OVS_VSWITCHD_SOCKET
|
||||||
OVS_VSWITCHD_SOCKET = "".join([OVS_VSWITCHD_PATH, ".", pid, ".ctl"])
|
OVS_VSWITCHD_SOCKET = \
|
||||||
|
"".join([OVS_VSWITCHD_PATH, ".", pid, ".ctl"])
|
||||||
obj.init_done = True
|
obj.init_done = True
|
||||||
|
obj.hostname = obj.gethostname()
|
||||||
collectd.info("%s initialization complete" % PLUGIN)
|
collectd.info("%s initialization complete" % PLUGIN)
|
||||||
else:
|
obj.error_logged = False
|
||||||
|
|
||||||
|
elif obj.error_logged is False:
|
||||||
collectd.info("%s failed to retrieve pid for ovs-vswitchd in "
|
collectd.info("%s failed to retrieve pid for ovs-vswitchd in "
|
||||||
"file /var/run/openvswitch/ovs-vswitchd.pid" % PLUGIN)
|
"file /var/run/openvswitch/ovs-vswitchd.pid" %
|
||||||
else:
|
PLUGIN)
|
||||||
collectd.info("%s failed to initial because pid file "
|
obj.error_logged = True
|
||||||
"for ovs-vswitchd doesn't exist" % PLUGIN)
|
|
||||||
|
elif obj.error_logged is False:
|
||||||
|
collectd.info("%s waiting for ovs-vswitchd to be running" % PLUGIN)
|
||||||
|
obj.error_logged = True
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue