优化代码防止出现代码错误
This commit is contained in:
parent
59efb53774
commit
14ca155ed6
|
@ -316,10 +316,8 @@ class UpdateManager():
|
||||||
"message:\n") + str(e)
|
"message:\n") + str(e)
|
||||||
_success = False
|
_success = False
|
||||||
return _success,header,desc
|
return _success,header,desc
|
||||||
|
|
||||||
self._check_cache_broken(self.cache)
|
|
||||||
|
|
||||||
#检查出现安装过程异常重启 出现的话 进行异常修复
|
#1、 检查出现安装过程异常重启 出现的话 进行异常修复
|
||||||
if self.configs.getWithDefault("SystemStatus", "isabnormalreboot", False) == True:
|
if self.configs.getWithDefault("SystemStatus", "isabnormalreboot", False) == True:
|
||||||
header = self.INSTALL_ALONE_PROGRESS
|
header = self.INSTALL_ALONE_PROGRESS
|
||||||
self.configs.setValue("SystemStatus","isabnormalreboot",str(False),True)
|
self.configs.setValue("SystemStatus","isabnormalreboot",str(False),True)
|
||||||
|
@ -327,6 +325,9 @@ class UpdateManager():
|
||||||
self.start_fix_broken()
|
self.start_fix_broken()
|
||||||
return False,header,desc
|
return False,header,desc
|
||||||
|
|
||||||
|
#检查当前系统的状态 是否存在系统为破损状态 导致出现异常
|
||||||
|
self._check_cache_broken(self.cache)
|
||||||
|
|
||||||
self.update_list = UpdateList(self)
|
self.update_list = UpdateList(self)
|
||||||
|
|
||||||
#检查自己是否需要升级更新
|
#检查自己是否需要升级更新
|
||||||
|
|
|
@ -15,6 +15,7 @@ from SystemUpdater.Core.utils import (
|
||||||
)
|
)
|
||||||
import time
|
import time
|
||||||
from apt import Cache
|
from apt import Cache
|
||||||
|
from SystemUpdater.Core.UpdateList import LocalUpgradeDataList
|
||||||
|
|
||||||
class NowUpgradePara:
|
class NowUpgradePara:
|
||||||
"""
|
"""
|
||||||
|
@ -69,6 +70,10 @@ class InstallBackend():
|
||||||
if self.window_main.update_list != None:
|
if self.window_main.update_list != None:
|
||||||
#本地维护的升级列表和需要升级的包
|
#本地维护的升级列表和需要升级的包
|
||||||
self.upgrade_data = window_main.update_list.local_upgrade_data
|
self.upgrade_data = window_main.update_list.local_upgrade_data
|
||||||
|
else:
|
||||||
|
#生成一个空的列表 防止出现错误 在更新和安装单包的时候这个对象还没生成
|
||||||
|
self.upgrade_data = LocalUpgradeDataList({},[],[],[])
|
||||||
|
|
||||||
#要拿到升级列表必须调用_make_upgrade_list
|
#要拿到升级列表必须调用_make_upgrade_list
|
||||||
self.now_upgrade = NowUpgradePara([],self.MODE_DEFAULT_STATUS,[])
|
self.now_upgrade = NowUpgradePara([],self.MODE_DEFAULT_STATUS,[])
|
||||||
|
|
||||||
|
@ -84,7 +89,7 @@ class InstallBackend():
|
||||||
#拿到升级列表
|
#拿到升级列表
|
||||||
self.now_upgrade.upgrade_groups,self.now_upgrade.single_pkgs = self._make_groups_list(self.upgrade_data,_upgrade_mode,partial_upgrade_list)
|
self.now_upgrade.upgrade_groups,self.now_upgrade.single_pkgs = self._make_groups_list(self.upgrade_data,_upgrade_mode,partial_upgrade_list)
|
||||||
|
|
||||||
pkgs_install,pkgs_upgrade,pkgs_remove = self._get_mark_from_cache(self.cache,_upgrade_mode)
|
pkgs_install,pkgs_upgrade,pkgs_remove = self._get_mark_from_cache(self.cache,self.upgrade_data.adjust_pkgs,_upgrade_mode)
|
||||||
|
|
||||||
logging.info("INSTALL install:%d , upgrade:%d remove:%d",len(pkgs_install),len(pkgs_upgrade),len(pkgs_remove))
|
logging.info("INSTALL install:%d , upgrade:%d remove:%d",len(pkgs_install),len(pkgs_upgrade),len(pkgs_remove))
|
||||||
|
|
||||||
|
@ -125,7 +130,7 @@ class InstallBackend():
|
||||||
pkgs_install,pkgs_upgrade = self._make_pkgs_list(self.cache,self.upgrade_data.upgrade_groups_pkgs,self.now_upgrade.upgrade_groups,self.now_upgrade.single_pkgs)
|
pkgs_install,pkgs_upgrade = self._make_pkgs_list(self.cache,self.upgrade_data.upgrade_groups_pkgs,self.now_upgrade.upgrade_groups,self.now_upgrade.single_pkgs)
|
||||||
#计算解决依赖关系
|
#计算解决依赖关系
|
||||||
_success,delete_pkgs,delete_desc,header,desc = self._make_problem_resolver(pkgs_install,pkgs_upgrade)
|
_success,delete_pkgs,delete_desc,header,desc = self._make_problem_resolver(pkgs_install,pkgs_upgrade)
|
||||||
pkgs_install,pkgs_upgrade,pkgs_remove = self._get_mark_from_cache(self.cache,_upgrade_mode)
|
pkgs_install,pkgs_upgrade,pkgs_remove = self._get_mark_from_cache(self.cache,self.upgrade_data.adjust_pkgs,_upgrade_mode)
|
||||||
pkgs_remove = delete_pkgs
|
pkgs_remove = delete_pkgs
|
||||||
else:
|
else:
|
||||||
# 使用全盘升级 全盘使用dist-upgrade
|
# 使用全盘升级 全盘使用dist-upgrade
|
||||||
|
@ -133,7 +138,7 @@ class InstallBackend():
|
||||||
if self.cache.get_changes():
|
if self.cache.get_changes():
|
||||||
self.cache.clear()
|
self.cache.clear()
|
||||||
_success = self.cache._depcache.upgrade(True)
|
_success = self.cache._depcache.upgrade(True)
|
||||||
pkgs_install,pkgs_upgrade,pkgs_remove = self._get_mark_from_cache(self.cache,_upgrade_mode)
|
pkgs_install,pkgs_upgrade,pkgs_remove = self._get_mark_from_cache(self.cache,self.upgrade_data.adjust_pkgs,_upgrade_mode)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
_success = False
|
_success = False
|
||||||
desc = str(e)
|
desc = str(e)
|
||||||
|
@ -217,17 +222,17 @@ class InstallBackend():
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
#从cache中拿到标记的列表
|
#从cache中拿到标记的列表
|
||||||
def _get_mark_from_cache(self,cache,upgrade_mode):
|
def _get_mark_from_cache(self,cache,_adjust_pkgs,upgrade_mode):
|
||||||
pkgs_install = []
|
pkgs_install = []
|
||||||
pkgs_upgrade = []
|
pkgs_upgrade = []
|
||||||
pkgs_remove = []
|
pkgs_remove = []
|
||||||
|
|
||||||
#全盘升级不做任何的调整 修复bug,出现调整版本,报错不需要更新升级退出
|
#全盘升级不做任何的调整
|
||||||
if upgrade_mode == self.MODE_UPGRADE_SYSTEM:
|
if upgrade_mode == self.MODE_UPGRADE_SYSTEM:
|
||||||
adjust_pkgs = []
|
adjust_pkgs = []
|
||||||
else:
|
else:
|
||||||
#获取调整包列表 去掉版本号
|
#获取调整包列表 去掉版本号
|
||||||
adjust_pkgs = [i.split("=")[0] for i in self.upgrade_data.adjust_pkgs]
|
adjust_pkgs = [i.split("=")[0] for i in _adjust_pkgs]
|
||||||
|
|
||||||
for pkg in cache:
|
for pkg in cache:
|
||||||
try:
|
try:
|
||||||
|
@ -236,12 +241,12 @@ class InstallBackend():
|
||||||
if pkg.is_auto_installed:
|
if pkg.is_auto_installed:
|
||||||
pkgname += "#auto"
|
pkgname += "#auto"
|
||||||
if pkg.name in adjust_pkgs:
|
if pkg.name in adjust_pkgs:
|
||||||
pkgs_install.append(self.upgrade_data.adjust_pkgs[adjust_pkgs.index(pkg.name)])
|
pkgs_install.append(_adjust_pkgs[adjust_pkgs.index(pkg.name)])
|
||||||
else:
|
else:
|
||||||
pkgs_install.append(pkgname)
|
pkgs_install.append(pkgname)
|
||||||
elif pkg.marked_upgrade:
|
elif pkg.marked_upgrade:
|
||||||
if pkg.name in adjust_pkgs:
|
if pkg.name in adjust_pkgs:
|
||||||
pkgs_upgrade.append(self.upgrade_data.adjust_pkgs[adjust_pkgs.index(pkg.name)])
|
pkgs_upgrade.append(_adjust_pkgs[adjust_pkgs.index(pkg.name)])
|
||||||
else:
|
else:
|
||||||
pkgs_upgrade.append(pkg.name)
|
pkgs_upgrade.append(pkg.name)
|
||||||
elif pkg.marked_delete:
|
elif pkg.marked_delete:
|
||||||
|
@ -387,7 +392,7 @@ class InstallBackend():
|
||||||
else:
|
else:
|
||||||
#当单包升级的时候 升级本身时,让程序退出,再重新启动
|
#当单包升级的时候 升级本身时,让程序退出,再重新启动
|
||||||
if self.window_main.SELF_PKG_NAME in self.cache and self.cache[self.window_main.SELF_PKG_NAME] in self.cache.get_changes():
|
if self.window_main.SELF_PKG_NAME in self.cache and self.cache[self.window_main.SELF_PKG_NAME] in self.cache.get_changes():
|
||||||
self.window_main.dbusController.DistUpdateDetectFinished(False,[self.window_main.SELF_PKG_NAME],"更新管理器升级完成,请重启控制面板进行系统更新",error_desc)
|
self.window_main.dbusController.DistUpdateDetectFinished(False,[self.window_main.SELF_PKG_NAME],"更新管理器升级完成,请重启控制面板后再进行系统更新",error_desc)
|
||||||
self.window_main.dbusController.Quit(None)
|
self.window_main.dbusController.Quit(None)
|
||||||
else:
|
else:
|
||||||
#只有安装配置文件包 才会走到此处
|
#只有安装配置文件包 才会走到此处
|
||||||
|
@ -395,8 +400,12 @@ class InstallBackend():
|
||||||
return
|
return
|
||||||
#当更新过程中安装配置包时 失败时发送错误信号
|
#当更新过程中安装配置包时 失败时发送错误信号
|
||||||
elif success == False and self.now_upgrade.upgrade_mode == self.MODE_UPGRADE_SINGLE:
|
elif success == False and self.now_upgrade.upgrade_mode == self.MODE_UPGRADE_SINGLE:
|
||||||
self.window_main.dbusController.DistUpdateDetectFinished(success,upgrade_content,error_string+','+error_desc,error_desc)
|
# 防止错误结果太长导致出现控制面板显示太多 目前最多20字符
|
||||||
|
if len(error_string + error_desc) > 20:
|
||||||
|
self.window_main.dbusController.DistUpdateDetectFinished(success,upgrade_content,error_string,error_desc)
|
||||||
|
else:
|
||||||
|
self.window_main.dbusController.DistUpdateDetectFinished(success,upgrade_content,error_string+','+error_desc,error_desc)
|
||||||
|
|
||||||
if error_string != '' or error_desc != '':
|
if error_string != '' or error_desc != '':
|
||||||
logging.info(error_string + error_desc)
|
logging.info(error_string + error_desc)
|
||||||
|
|
||||||
|
@ -429,7 +438,6 @@ class InstallBackend():
|
||||||
try:
|
try:
|
||||||
error_desc = error_desc +'\n\n'+self.trans_error_details
|
error_desc = error_desc +'\n\n'+self.trans_error_details
|
||||||
|
|
||||||
# is_single_groups = success == False and upgrade_mode == self.MODE_UPGRADE_PARTIAL and self.now_upgrade.upgrade_groups != [] and self.upgrade_data.single_pkgs == []
|
|
||||||
if (upgrade_mode == self.MODE_UPGRADE_ALL and success == False) or (upgrade_mode == self.MODE_UPGRADE_PARTIAL and self.now_upgrade.upgrade_groups != []):
|
if (upgrade_mode == self.MODE_UPGRADE_ALL and success == False) or (upgrade_mode == self.MODE_UPGRADE_PARTIAL and self.now_upgrade.upgrade_groups != []):
|
||||||
|
|
||||||
#获取当前系统中最新的cache
|
#获取当前系统中最新的cache
|
||||||
|
|
Loading…
Reference in New Issue