migration-tools/0057-abi-basic-data-for-report.patch

141 lines
5.1 KiB
Diff
Raw Normal View History

2024-11-06 17:01:53 +08:00
From 9031ccf7e657286dfb18fe181fe97080ce5228dc Mon Sep 17 00:00:00 2001
From: xuezhixin <xuezhixin@uniontech.com>
Date: Mon, 13 Nov 2023 09:58:36 +0800
Subject: [PATCH] =?UTF-8?q?ABI=E6=A3=80=E6=B5=8B=E6=8A=A5=E5=91=8A?=
=?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=95=B0=E6=8D=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sysmig_agent/Abisystmcompchk.py | 116 ++++++++++++++++++++++++++++++++
1 file changed, 116 insertions(+)
create mode 100644 sysmig_agent/Abisystmcompchk.py
diff --git a/sysmig_agent/Abisystmcompchk.py b/sysmig_agent/Abisystmcompchk.py
new file mode 100644
index 0000000..abe6083
--- /dev/null
+++ b/sysmig_agent/Abisystmcompchk.py
@@ -0,0 +1,116 @@
+# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
+# SPDX-License-Identifier: MulanPubL-2.0-or-later
+
+
+import queue,os,string
+import threading,codecs
+import time,rpm,stat,re
+import datetime
+import platform
+import json,xlrd,xlwt
+import socket
+from xlutils.copy import copy
+from shutil import copyfile
+#from sysmig_agent.share import *
+from multiprocessing import Process
+from multiprocessing import cpu_count
+
+from logger import *
+#from connect_sql import DBHelper
+
+workQueue = queue.Queue()
+queueLock = threading.Lock()
+
+#为便于测试将变量、接口从share.py中拷贝到当前文件待联调通过后删除即可
+######################## add for test start ########################
+local_dir = '/var/tmp/uos-migration/data/'
+exp_rst_dir = local_dir+'exp-rst/'
+
+current_system_unique = exp_rst_dir + 'current-system-unique.csv'
+migration_system_install = exp_rst_dir + 'migration-system-install.csv'
+migration_system_total = exp_rst_dir + 'migration-system-total.csv'
+abi_comp_chk = exp_rst_dir + 'abi-comp-chk.csv'
+abi_incomp_chk = exp_rst_dir + 'abi-incomp-chk.csv'
+exitFlag = 0
+total_rpm_nums = 0
+percentage = ''
+deal_rpm_num = 0
+agent_abi_check_result = exp_rst_dir + 'agent_ABI_check_result.csv'
+suffix_list = ['.mo', '.gz', '.xml', '.conf', '.png', '.page', '.woff', '.ttf', '.pyc', '.typelib', '.pdf', '.ppt', '.txt', '.ico', '.icc', '.tcc', '.gif', '.oga', '.rom', '.jpg', '.dict', '.webm', '.pyc', '.wav', '.ucode', '.ttc', '.gresource', '.otf', '.t1', '.db', '.elc', '.cache', '.fd', '.iso', '.efi', '.mmdb', '.bz2', '.img', '.bin', '.fw', '.cis', '.itb', '.inp', '.sbcf', '.ddc', '.sfi', '.bseq', '.mfa2', '.chk', '.mgc', '.stub', '.dfu', '.dat', '.sys', '.bts', '.dlmem', '.brd', '.hwm', '.pwd', '.pwi', '.exe', '.der', '.p12', '.ogg', '.signed', '.dafsa', '.gpg', '.tri', '.x86_64']
+
+#Queue = queue.Queue()
+
+def os_storage():
+ """
+ 判断系统剩余空间大小
+ :return: GB
+ """
+ path = '/var/cache'
+ stat = os.statvfs(path)
+ CACHE_SPACE = 10.0
+ state = 1
+ ava_cache = format(stat.f_bavail * stat.f_frsize / 1024 // 1024 / 1024, '.1f')
+ if stat:
+ # with open(PRE_MIG,'a+') as pf:
+ # pf.write('/var/cache可用空间为'+ava_cache+'GB')
+ # pf.close()
+ if float(ava_cache) >= CACHE_SPACE:
+ state = 0
+ return ava_cache
+ # data = '可用空间为'+ava_cache+'GB'
+ else:
+ return ava_cache
+ # data = '可用空间为' + ava_cache + 'GB,请清理/var/cache的空间后重试。'
+ else:
+ return ava_cache
+ # data = '可用空间为'+ava_cache+'GB,请清理/var/cache的空间后重试。'
+ # return list_to_json(keylist,valuelist)
+
+def get_local_ip():
+ try:
+ s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+ s.connect(('8.8.8.8', 80))
+ ip = s.getsockname()[0]
+ return ip
+ finally:
+ s.close()
+
+def abi_check_sys_type():
+ path = '/etc/os-version'
+ if os.path.exists(path):
+ with open(path,'r') as v:
+ ret = v.readlines()
+ localos=ostype=''
+ for i in range(len(ret)):
+ if not ret[i]:
+ continue
+ if 'MinorVersion' in ret[i]:
+ strminor = str(ret[i])
+ _, localos = strminor.split('=',1)
+ if 'EditionName[zh_CN]' in ret[i]:
+ strminor = str(ret[i])
+ _, ostype = strminor.split('=',1)
+ ostype = re.sub('[^a-zA-Z]+','',ostype)
+ localos = localos.strip().strip('\n') + ostype.strip().strip('\n')
+ #localos = new_os.format(localos.strip().strip('\n'))
+ return localos
+
+def abi_check_sys():
+ c8 = ['1020a', '1021a', '1050a']
+ c7 = ['1000c', '1001c', '1002a']
+ system_type = abi_check_sys_type()
+ if not system_type:
+ os_version_ret = platform.dist()
+ osname = os_version_ret[1].strip()
+ osn = osname.split('.',-1)[0]
+ return osn.strip('\n')
+ for i in range(len(c8)):
+ if c8[i] in system_type:
+ return 8
+ for i in range(len(c7)):
+ if c7[i] in system_type:
+ return 7
+ return None
+
+######################## add for test end ########################
+######################## add for test end ########################
\ No newline at end of file
--
2.20.1