summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOleksandr Kuchmystyi <o.kuchmystyi@vyos.io>2026-07-23 12:17:36 +0300
committerViacheslav Hletenko <v.gletenko@vyos.io>2026-08-20 13:35:07 +0000
commitb1d4de376eb79c932539c5ec2ddb5241fbce8bb7 (patch)
tree35918f42e49caf196834baa8fae8a11e32512bcb /src
parent2054c3c53f8bc83733c8ef81c2cc57f4e6b27f5a (diff)
downloadvyos-1x-b1d4de376eb79c932539c5ec2ddb5241fbce8bb7.tar.gz
vyos-1x-b1d4de376eb79c932539c5ec2ddb5241fbce8bb7.zip
utils: T8868: Refactor kernel command-line arguments and memory info
- Replaced direct file reads from `/proc/cmdline` with `get_kernel_boot_arg()` for fetching kernel command-line arguments in multiple modules. - Improved memory information retrieval by utilizing `get_memory_info()`.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/helpers/run-config-activation.py3
-rwxr-xr-xsrc/helpers/run-config-migration.py5
-rwxr-xr-xsrc/helpers/vyos-boot-config-loader.py7
-rwxr-xr-xsrc/op_mode/memory.py19
4 files changed, 13 insertions, 21 deletions
diff --git a/src/helpers/run-config-activation.py b/src/helpers/run-config-activation.py
index 7e7a6571e..9e048e193 100755
--- a/src/helpers/run-config-activation.py
+++ b/src/helpers/run-config-activation.py
@@ -30,6 +30,7 @@ from vyos.utils.activate import set_activation
from vyos.utils.activate import is_active
from vyos.utils.system import load_as_module
from vyos.utils.func import FalseCallable
+from vyos.utils.kernel import get_kernel_boot_arg
from vyos.defaults import directories
from vyos.defaults import activation_list
@@ -54,7 +55,7 @@ fh.setFormatter(formatter)
logger.addHandler(fh)
-if 'vyos-activate-debug' in Path('/proc/cmdline').read_text():
+if get_kernel_boot_arg('vyos-activate-debug') is not None:
print(f'\nactivate-debug enabled: file {checkpoint_file}_* on error')
debug = checkpoint_file
logger.setLevel(logging.DEBUG)
diff --git a/src/helpers/run-config-migration.py b/src/helpers/run-config-migration.py
index 6329d2979..f538c1e86 100755
--- a/src/helpers/run-config-migration.py
+++ b/src/helpers/run-config-migration.py
@@ -19,7 +19,7 @@ import sys
import time
from argparse import ArgumentParser
from shutil import copyfile
-from vyos.utils.file import read_file
+from vyos.utils.kernel import get_kernel_boot_arg
from vyos.migrate import ConfigMigrate
from vyos.migrate import ConfigMigrateError
@@ -80,6 +80,5 @@ if backup is not None and not config_migrate.config_modified:
# T1771: add knob on Kernel command-line to simulate failed config migrator run
# used to test if the automatic image reboot works.
-kernel_cmdline = read_file('/proc/cmdline')
-if 'vyos-fail-migration' in kernel_cmdline.split():
+if get_kernel_boot_arg('vyos-fail-migration') is not None:
sys.exit(1)
diff --git a/src/helpers/vyos-boot-config-loader.py b/src/helpers/vyos-boot-config-loader.py
index a3a66eedc..e01b5bff6 100755
--- a/src/helpers/vyos-boot-config-loader.py
+++ b/src/helpers/vyos-boot-config-loader.py
@@ -28,6 +28,7 @@ from vyos.configsession import ConfigSessionError
from vyos.configtree import ConfigTree
from vyos.utils.process import cmdl
from vyos.utils.file import write_file
+from vyos.utils.kernel import get_kernel_boot_arg
STATUS_FILE = config_status
TRACE_FILE = '/tmp/boot-config-trace'
@@ -44,11 +45,9 @@ else:
LOG_FILE = LOG_DIR + '/vyos-boot-config-loader.log'
try:
- with open('/proc/cmdline', 'r') as f:
- cmdline = f.read()
- if 'vyos-debug' in cmdline:
+ if get_kernel_boot_arg('vyos-debug') is not None:
os.environ['VYOS_DEBUG'] = 'yes'
- if 'vyos-config-debug' in cmdline:
+ if get_kernel_boot_arg('vyos-config-debug') is not None:
os.environ['VYOS_DEBUG'] = 'yes'
trace_config = True
except Exception as e:
diff --git a/src/op_mode/memory.py b/src/op_mode/memory.py
index 20d937243..47a9c476e 100755
--- a/src/op_mode/memory.py
+++ b/src/op_mode/memory.py
@@ -18,23 +18,16 @@
import sys
import vyos.opmode
+from vyos.utils.memory import get_memory_info
def _get_raw_data():
- from re import search as re_search
+ mem_info = get_memory_info()
- def find_value(keyword, mem_data):
- regex = keyword + ':\s+(\d+)'
- res = re_search(regex, mem_data).group(1)
- return int(res)
-
- with open("/proc/meminfo", "r") as f:
- mem_data = f.read()
-
- total = find_value('MemTotal', mem_data)
- available = find_value('MemAvailable', mem_data)
- buffers = find_value('Buffers', mem_data)
- cached = find_value('Cached', mem_data)
+ total = mem_info['MemTotal']
+ available = mem_info['MemAvailable']
+ buffers = mem_info['Buffers']
+ cached = mem_info['Cached']
used = total - available