From 485dcd1449e2843bdfbb5f8f0d5fb98cafe03e6c Mon Sep 17 00:00:00 2001 From: rabbitali Date: Wed, 28 Aug 2024 14:14:42 +0800 Subject: [PATCH 1/1] update query host info command --- ceres/manages/collect_manage.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/ceres/manages/collect_manage.py b/ceres/manages/collect_manage.py index b2ba350..0901e4f 100644 --- a/ceres/manages/collect_manage.py +++ b/ceres/manages/collect_manage.py @@ -12,6 +12,7 @@ # ******************************************************************************/ import grp import os +import platform import pwd import re from socket import AF_INET, SOCK_DGRAM, socket @@ -54,6 +55,8 @@ class Collect: 'os_version': os_version, 'bios_version': bios_version, 'kernel': kernel_version + 'os_name': os_name, + "os_arch": arch_info }, "cpu": { "architecture": string, @@ -126,12 +129,36 @@ class Collect: kernel_info = re.search(r'[\d\.]+-[\d\.]+[\d]', self.get_current_kernel_version()) res = { + 'os_arch': platform.machine(), + 'os_name': self.get_os_name(), 'os_version': self.get_os_version(), 'bios_version': self.__get_bios_version(), 'kernel': kernel_info.group() if kernel_info else "", } return res + @staticmethod + def get_os_name() -> str: + """ + get os name + + Returns: + str + """ + os_release_path = "/etc/os-release" + name_value = None + + try: + with open(os_release_path, "r") as file: + for line in file: + if line.startswith("NAME="): + name_value = line.strip().split("=")[1].strip('"') + break + except OSError as error: + LOGGER.error(f"Error reading {os_release_path}: {error}") + + return name_value + @staticmethod def __get_bios_version() -> str: """ -- 2.33.0