From fe73dfbdc9bc338bddb6bfd09739835b5c48b30c Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Tue, 12 Oct 2021 12:24:03 -0400 Subject: [PATCH] Use current live value for bridge_mtu This will ensure that upgrading without the bridge_mtu config key set will keep things as they are. --- node-daemon/pvcnoded/util/config.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/node-daemon/pvcnoded/util/config.py b/node-daemon/pvcnoded/util/config.py index 003b0e47..9083f8ea 100644 --- a/node-daemon/pvcnoded/util/config.py +++ b/node-daemon/pvcnoded/util/config.py @@ -19,13 +19,17 @@ # ############################################################################### +import daemon_lib.common as common + import os import subprocess import yaml + from socket import gethostname from re import findall from psutil import cpu_count from ipaddress import ip_address, ip_network +from json import loads class MalformedConfigurationError(Exception): @@ -287,13 +291,20 @@ def get_configuration(): 'upstream_mtu': o_sysnetwork_upstream.get('mtu', None), 'upstream_dev_ip': o_sysnetwork_upstream.get('address', None), 'bridge_dev': o_sysnetworks.get('bridge_device', None), - 'bridge_mtu': o_sysnetworks.get('bridge_mtu', 1500), + 'bridge_mtu': o_sysnetworks.get('bridge_mtu', None), 'enable_sriov': o_sysnetworks.get('sriov_enable', False), 'sriov_device': o_sysnetworks.get('sriov_device', list()) } config = {**config, **config_networks} + if config_networks['bridge_mtu'] is None: + # Read the current MTU of bridge_dev and set bridge_mtu to it; avoids weird resets + retcode, stdout, stderr = common.run_os_command(f"ip -json link show dev {config_networks['bridge_dev']}") + current_bridge_mtu = loads(stdout)[0]['mtu'] + print(f"Config key bridge_mtu not explicitly set; using live MTU {current_bridge_mtu} from {config_networks['bridge_dev']}") + config_networks['bridge_mtu'] = current_bridge_mtu + for network_type in ['cluster', 'storage', 'upstream']: result, msg = validate_floating_ip(config, network_type) if not result: