调整部分代码逻辑
This commit is contained in:
parent
14c69c923a
commit
fa2272bd33
|
@ -161,38 +161,10 @@ class UpdateManager():
|
|||
if os.path.exists(REBOOT_REQUIRED_FILE):
|
||||
logging.error("REBOOT_REQUIRED_FILE")
|
||||
|
||||
def refresh_cache(self):
|
||||
def check_group_config(self):
|
||||
_success = True
|
||||
header = None
|
||||
desc = None
|
||||
try:
|
||||
self.update_list = UpdateList(self)
|
||||
|
||||
#第一次进入 之后update不进入
|
||||
if self.cache is None:
|
||||
self.cache = MyCache(None)
|
||||
else:
|
||||
self.cache.open(None)
|
||||
self.cache._initDepCache()
|
||||
except AssertionError:
|
||||
header = _("Software index is broken")
|
||||
desc = _("It is impossible to install or remove any software. "
|
||||
"Please use the package manager \"Synaptic\" or run "
|
||||
"\"sudo apt-get install -f\" in a terminal to fix "
|
||||
"this issue at first.")
|
||||
_success = False
|
||||
return _success,header,desc
|
||||
|
||||
except SystemError as e:
|
||||
header = _("Could not initialize the package information")
|
||||
desc = _("An unresolvable problem occurred while "
|
||||
"initializing the package information.\n\n"
|
||||
"Please report this bug against the 'update-manager' "
|
||||
"package and include the following error "
|
||||
"message:\n") + str(e)
|
||||
_success = False
|
||||
return _success,header,desc
|
||||
|
||||
#2、 安装JSON分组配置文件包 安装完毕会重新调start_available --> here 安装失败就直接退出不会进行下面的操作
|
||||
try:
|
||||
pkg_json = self.cache[self.update_list.GROUPS_JSON_PKG]
|
||||
|
@ -243,11 +215,49 @@ class UpdateManager():
|
|||
logging.info('Emptying the configuration file is complete...')
|
||||
except Exception as e:
|
||||
logging.warning(e)
|
||||
return _success,header,desc
|
||||
|
||||
#FIXME: 5、 待开发功能 根据监测存在配置文件 不存在进行重新安装包 再检测还是未存在的话 就判断此次没有可升级的
|
||||
def refresh_cache(self):
|
||||
_success = True
|
||||
header = None
|
||||
desc = None
|
||||
try:
|
||||
self.update_list = UpdateList(self)
|
||||
|
||||
#FIXME: 6、 出错后未进行处理 更新important.list 文件错误的话
|
||||
self.dbusController._on_update_important_list()
|
||||
#第一次进入 之后update不进入
|
||||
if self.cache is None:
|
||||
self.cache = MyCache(None)
|
||||
else:
|
||||
self.cache.open(None)
|
||||
self.cache._initDepCache()
|
||||
except AssertionError:
|
||||
header = _("Software index is broken")
|
||||
desc = _("It is impossible to install or remove any software. "
|
||||
"Please use the package manager \"Synaptic\" or run "
|
||||
"\"sudo apt-get install -f\" in a terminal to fix "
|
||||
"this issue at first.")
|
||||
_success = False
|
||||
return _success,header,desc
|
||||
|
||||
except SystemError as e:
|
||||
header = _("Could not initialize the package information")
|
||||
desc = _("An unresolvable problem occurred while "
|
||||
"initializing the package information.\n\n"
|
||||
"Please report this bug against the 'update-manager' "
|
||||
"package and include the following error "
|
||||
"message:\n") + str(e)
|
||||
_success = False
|
||||
return _success,header,desc
|
||||
|
||||
#更新important.list
|
||||
_success,header,desc = self.dbusController._on_update_important_list()
|
||||
if _success == False:
|
||||
return _success,header,desc
|
||||
|
||||
#检查更新分组配置表
|
||||
_success,header,desc = self.check_group_config()
|
||||
if _success == False:
|
||||
return _success,header,desc
|
||||
|
||||
try:
|
||||
_success,header,desc = self.update_list.update(self.cache)
|
||||
|
|
|
@ -4,6 +4,7 @@ import dbus.service
|
|||
import logging
|
||||
import threading
|
||||
|
||||
from gettext import gettext as _
|
||||
from .Core.AlertWatcher import AlertWatcher
|
||||
from .Core.roam import NetworkManagerHelper
|
||||
from .Core.filter import UpdateListFilterCache as fu
|
||||
|
@ -28,6 +29,10 @@ class UpdateManagerDbusController(dbus.service.Object):
|
|||
|
||||
#更新important.list的本次升级的列表
|
||||
def _on_update_important_list(self):
|
||||
_success = True
|
||||
header = None
|
||||
desc = None
|
||||
|
||||
lock = threading.Lock()
|
||||
bus = dbus.SystemBus()
|
||||
try:
|
||||
|
@ -41,11 +46,16 @@ class UpdateManagerDbusController(dbus.service.Object):
|
|||
return False
|
||||
|
||||
if retval == False:
|
||||
logging.warning("update SourceTemplate failed")
|
||||
return False
|
||||
#FIXME: 需要处理返回结果 转化成中文
|
||||
#获取软件推送失败
|
||||
#请检查推送服务器
|
||||
header = _("Get software push failure")
|
||||
desc = _("Please check the push servers")
|
||||
logging.warning(header + desc)
|
||||
return _success,header,desc
|
||||
else:
|
||||
logging.info("update sourceTemplate successed...")
|
||||
return True
|
||||
return _success,header,desc
|
||||
|
||||
#检测网络的状态
|
||||
def _on_network_alert(self, watcher, state):
|
||||
|
|
|
@ -9,7 +9,6 @@ from __future__ import absolute_import
|
|||
import logging
|
||||
import os
|
||||
from gettext import gettext as _
|
||||
from SystemUpdater.Core import Database
|
||||
|
||||
import apt_pkg
|
||||
|
||||
|
@ -69,6 +68,7 @@ class InstallBackend():
|
|||
logging.info("ProblemResolver install:%d , upgrade:%d",len(pkgs_install),len(pkgs_upgrade))
|
||||
|
||||
logging.info("Start calculating dependencies...")
|
||||
|
||||
self.window_main.cache._initDepCache()
|
||||
Fix = apt_pkg.ProblemResolver(self.window_main.cache._depcache)
|
||||
|
||||
|
@ -105,24 +105,18 @@ class InstallBackend():
|
|||
logging.error(e)
|
||||
|
||||
def start(self,partial_upgrade_list = []):
|
||||
|
||||
#FIXME: 在下载升级的能抑制系统关闭或者睡眠 参考ubuntu此部分代码
|
||||
|
||||
if self.action == self.ACTION_INSTALL:
|
||||
pkgs_install = []
|
||||
pkgs_upgrade = []
|
||||
pkgs_remove = []
|
||||
pkgs_purge = []
|
||||
|
||||
pkgs_install,pkgs_upgrade,pkgs_remove = self._make_problem_resolver(partial_upgrade_list)
|
||||
|
||||
try:
|
||||
logging.info("commit install:%d , upgrade:%d remove:%d",len(pkgs_install),len(pkgs_upgrade),len(pkgs_remove))
|
||||
self.commit(pkgs_install, pkgs_upgrade, pkgs_remove,pkgs_purge)
|
||||
self.commit(pkgs_install, pkgs_upgrade, pkgs_remove)
|
||||
except Exception as e:
|
||||
logging.error(e)
|
||||
else:
|
||||
self.update()
|
||||
|
||||
#调用此接口进行安装升级包的话,安装完成或者升级完成会重新调用升级
|
||||
def start_alone(self,pkgs_install = [], pkgs_upgrade = [], pkgs_remove = [],pkgs_purge = []):
|
||||
os.environ["APT_LISTCHANGES_FRONTEND"] = "none"
|
||||
|
@ -137,7 +131,7 @@ class InstallBackend():
|
|||
"""Run a update to refresh the package list"""
|
||||
raise NotImplementedError
|
||||
|
||||
def commit(self, pkgs_install, pkgs_upgrade, pkgs_remove,pkgs_purge):
|
||||
def commit(self, pkgs_install, pkgs_upgrade, pkgs_remove,pkgs_purge = []):
|
||||
"""Commit the cache changes """
|
||||
raise NotImplementedError
|
||||
|
||||
|
|
Loading…
Reference in New Issue