From 04eed649fe1136101b3c3d549b30fd125b1e8629 Mon Sep 17 00:00:00 2001 From: wangsong Date: Tue, 14 Dec 2021 21:01:07 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9longyans?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/SystemUpdater/UpdateManagerDbus.py | 30 ++++++++++--------- .../backend/InstallBackendAptdaemon.py | 2 +- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/backend/SystemUpdater/UpdateManagerDbus.py b/backend/SystemUpdater/UpdateManagerDbus.py index 7c12080..368e5f4 100755 --- a/backend/SystemUpdater/UpdateManagerDbus.py +++ b/backend/SystemUpdater/UpdateManagerDbus.py @@ -19,21 +19,23 @@ UPDATER_DBUS_SERVICE = 'com.kylin.systemupgrade' #颜色设置 COLORLOG_SUFFIX = "\033[0m" -# RED_PRE = "\033[31;1m" -# GREEN_PRE = "\033[32;1m" -# YELLOW_PRE = "\033[33;1m" -# BULE_PRE = "\033[34;1m" -# RED_PRE = "\033[35;1m" -# BACK_BLACK_PER = "\033[40;1m" -# BACK_RED_PER = "\033[41;1m" -# BACK_GREEN_PER = "\033[42;1m" -BACK_YELLOW_PER = "\033[43;1m" -# BACK_BLUE_PER = "\033[44;1m" -# GREEN_GREENBACK_PRE = "\033[1;32;42m" -BULE_GREENBACK_PRE = "\033[1;34;42m" +# Define some foreground colors +BLACK = 30 +RED = 31 +GREEN = 32 +YELLOW = 33 +BLUE = 34 +MAGENTA = 35 +CYAN = 36 +WHITE = 37 -COLORLOG_PREFIX = BACK_YELLOW_PER -COLORMETHOR_PREFIX = BULE_GREENBACK_PRE +#字体颜色 +FRONT_COLOR_SEQ = "\033[1;%dm" +#背景颜色 +BACK_COLOR_SEQ = "\033[%d;1m" + +COLORLOG_PREFIX = FRONT_COLOR_SEQ % GREEN +COLORMETHOR_PREFIX = FRONT_COLOR_SEQ % CYAN #dbus 建立 class UpdateManagerDbusController(dbus.service.Object): diff --git a/backend/SystemUpdater/backend/InstallBackendAptdaemon.py b/backend/SystemUpdater/backend/InstallBackendAptdaemon.py index e7f3ba6..7d09985 100644 --- a/backend/SystemUpdater/backend/InstallBackendAptdaemon.py +++ b/backend/SystemUpdater/backend/InstallBackendAptdaemon.py @@ -342,7 +342,7 @@ class InstallBackendAptdaemon(InstallBackend): if self.action == self.ACTION_REMOVE_PACKAGES or self.action == self.ACTION_UPDATE: return - logging.info("\033[43;1m" + "emit" + "\033[0m" +" Cancelable: %r",Cancelable) + logging.info("\033[43;1m" + "Emitting" + "\033[0m" +" Cancelable: %r",Cancelable) self.window_main.dbusController.Cancelable(Cancelable) #增加取消信号的频发机制 self.trans_cancelable = Cancelable From ab3a56996d3114d473501bf33241babff50b770c Mon Sep 17 00:00:00 2001 From: wangsong Date: Wed, 15 Dec 2021 15:56:22 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E6=AF=8F=E6=AC=A1=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E4=B9=8B=E5=89=8D=E5=88=A4=E6=96=AD=E7=94=A8=E6=88=B7=E7=9A=84?= =?UTF-8?q?=E8=AF=AD=E8=A8=80=EF=BC=8C=E6=A0=B9=E6=8D=AE=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=9A=84=E8=AF=AD=E8=A8=80=E7=8E=AF=E5=A2=83=E6=9D=A5=E5=86=B3?= =?UTF-8?q?=E5=AE=9A=E5=BD=93=E5=89=8D=E7=B3=BB=E7=BB=9F=E7=9A=84=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=EF=BC=8C=E4=B8=8D=E6=98=AF=E4=BB=A5root=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=9A=84=E8=AF=AD=E8=A8=80=E6=9D=A5=E5=86=B3=E5=AE=9A?= =?UTF-8?q?=E7=9A=84=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/SystemUpdater/UpdateManagerDbus.py | 7 ++ .../backend/InstallBackendAptdaemon.py | 66 +++++++++++-------- 2 files changed, 45 insertions(+), 28 deletions(-) diff --git a/backend/SystemUpdater/UpdateManagerDbus.py b/backend/SystemUpdater/UpdateManagerDbus.py index 368e5f4..77d2b88 100755 --- a/backend/SystemUpdater/UpdateManagerDbus.py +++ b/backend/SystemUpdater/UpdateManagerDbus.py @@ -147,7 +147,14 @@ class UpdateManagerDbusController(dbus.service.Object): #获取后端现在的状态 @dbus.service.method(UPDATER_DBUS_INTERFACE,out_signature='i') def GetBackendStatus(self): + # def GetBackendStatus(self,user_lang): try: + # if user_lang != os.environ["LANGUAGE"]: + # #如果系统不是中文也不是英文 就默认中文 + # if user_lang != "en" and user_lang != "zh_CN:en": + # user_lang = "zh_CN:en" + # os.environ["LANGUAGE"] = user_lang + #处于更新和升级中的话 不进行更新 logging.info(COLORMETHOR_PREFIX+'method'+COLORLOG_SUFFIX+' GetBackendStatus ...') return self.parent.is_working diff --git a/backend/SystemUpdater/backend/InstallBackendAptdaemon.py b/backend/SystemUpdater/backend/InstallBackendAptdaemon.py index 7d09985..5e6b951 100644 --- a/backend/SystemUpdater/backend/InstallBackendAptdaemon.py +++ b/backend/SystemUpdater/backend/InstallBackendAptdaemon.py @@ -1,14 +1,6 @@ #!/usr/bin/env python -from aptdaemon import client, errors from defer import inline_callbacks -from aptdaemon.enums import (EXIT_SUCCESS, - EXIT_FAILED, - EXIT_CANCELLED, - get_error_description_from_enum, - get_error_string_from_enum, - get_status_string_from_enum - ) from SystemUpdater.backend import InstallBackend import logging from gettext import gettext as _ @@ -30,6 +22,24 @@ class InstallBackendAptdaemon(InstallBackend): def __init__(self, window_main, action): InstallBackend.__init__(self, window_main, action) self.window_main = window_main + + from aptdaemon import client + from aptdaemon import errors + from aptdaemon.enums import (EXIT_SUCCESS, + EXIT_FAILED, + EXIT_CANCELLED, + get_error_description_from_enum, + get_error_string_from_enum, + get_status_string_from_enum + ) + self.errors = errors + self.EXIT_SUCCESS = EXIT_SUCCESS + self.EXIT_FAILED = EXIT_FAILED + self.EXIT_CANCELLED = EXIT_CANCELLED + self.get_error_description_from_enum = get_error_description_from_enum + self.get_error_string_from_enum = get_error_string_from_enum + self.get_status_string_from_enum = get_status_string_from_enum + #客户端连接aptdeamon的dbus接口 self.client = client.AptClient() self.trans_failed_msg = None @@ -106,7 +116,7 @@ class InstallBackendAptdaemon(InstallBackend): # 注册回调函数 接收更新的状态 yield self._show_transaction(trans, self.ACTION_UPDATE, _("Checking for updates…"), False) - except errors.NotAuthorizedError: + except self.errors.NotAuthorizedError: self._action_done(self.ACTION_UPDATE, authorized=False, success=False, error_string='', error_desc='') @@ -128,11 +138,11 @@ class InstallBackendAptdaemon(InstallBackend): yield self._show_transaction(trans, self.ACTION_INSTALL, _("Installing updates…"), True) - except errors.NotAuthorizedError: + except self.errors.NotAuthorizedError: self._action_done(self.ACTION_INSTALL, authorized=False, success=False, error_string='', error_desc='') - except errors.TransactionFailed as e: + except self.errors.TransactionFailed as e: self.trans_failed_msg = str(e) except dbus.DBusException as e: if e.get_dbus_name() != "org.freedesktop.DBus.Error.NoReply": @@ -154,7 +164,7 @@ class InstallBackendAptdaemon(InstallBackend): # 注册回调函数 接收更新的状态 yield self._show_transaction(trans, self.ACTION_INSTALL_DEB, _("Installing deb packages…"), False) - except errors.NotAuthorizedError: + except self.errors.NotAuthorizedError: self._action_done(self.ACTION_INSTALL_DEB, authorized=False, success=False, error_string='', error_desc='') @@ -174,7 +184,7 @@ class InstallBackendAptdaemon(InstallBackend): # 注册回调函数 接收更新的状态 yield self._show_transaction(trans, self.ACTION_FIX_BROKEN, _("Installing deb packages…"), False) - except errors.NotAuthorizedError: + except self.errors.NotAuthorizedError: self._action_done(self.ACTION_FIX_BROKEN, authorized=False, success=False, error_string='', error_desc='') @@ -193,7 +203,7 @@ class InstallBackendAptdaemon(InstallBackend): # 注册回调函数 接收更新的状态 yield self._show_transaction(trans, self.ACTION_FIX_INCOMPLETE, _("fix incomplete install"), False) - except errors.NotAuthorizedError: + except self.errors.NotAuthorizedError: self._action_done(self.ACTION_FIX_INCOMPLETE, authorized=False, success=False, error_string='', error_desc='') @@ -212,7 +222,7 @@ class InstallBackendAptdaemon(InstallBackend): # 注册回调函数 接收更新的状态 yield self._show_transaction(trans, self.ACTION_CLEAN, _("Remove all downloaded files."), False) - except errors.NotAuthorizedError: + except self.errors.NotAuthorizedError: self._action_done(self.ACTION_CLEAN, authorized=False, success=False, error_string='', error_desc='') @@ -231,7 +241,7 @@ class InstallBackendAptdaemon(InstallBackend): # 注册回调函数 接收更新的状态 yield self._show_transaction(trans, self.ACTION_DOWNLOADONLY, _("Downloading deb packages…"), False) - except errors.NotAuthorizedError: + except self.errors.NotAuthorizedError: self._action_done(self.ACTION_DOWNLOADONLY, authorized=False, success=False, error_string='', error_desc='') @@ -250,7 +260,7 @@ class InstallBackendAptdaemon(InstallBackend): # 注册回调函数 接收更新的状态 yield self._show_transaction(trans, self.ACTION_REMOVE_PACKAGES, _("Installing deb packages…"), False) - except errors.NotAuthorizedError: + except self.errors.NotAuthorizedError: self._action_done(self.ACTION_REMOVE_PACKAGES, authorized=False, success=False, error_string='', error_desc='') @@ -280,7 +290,7 @@ class InstallBackendAptdaemon(InstallBackend): #同步状态回调 def _on_status_changed(self, trans, status,action): #转化词条 - self.trans_status = get_status_string_from_enum(status) + self.trans_status = self.get_status_string_from_enum(status) self._dist_status_changed(action,self.now_upgrade.upgrade_groups+self.now_upgrade.single_pkgs,\ self.trans_progress,self.trans_status,self.details) @@ -349,7 +359,7 @@ class InstallBackendAptdaemon(InstallBackend): #增加记录当产生错误的时候 详细信息 def _on_error_changed(self, trans,error_code, error_details): - # error_string = get_error_string_from_enum(error_code) + # error_string = self.get_error_string_from_enum(error_code) self.trans_error_details = str(error_details) logging.error(str(error_details)) @@ -375,29 +385,29 @@ class InstallBackendAptdaemon(InstallBackend): #退出 self.on_install_stage = False - if status == EXIT_FAILED: - error_string = get_error_string_from_enum(trans.error.code) - error_desc = get_error_description_from_enum(trans.error.code) + if status == self.EXIT_FAILED: + error_string = self.get_error_string_from_enum(trans.error.code) + error_desc = self.get_error_description_from_enum(trans.error.code) if self.trans_failed_msg: error_desc = error_desc + "\n" + self.trans_failed_msg #取消下载 - elif status == EXIT_CANCELLED: + elif status == self.EXIT_CANCELLED: error_string = _("Failed to fetch") error_desc = _("_Cancel Upgrade") - elif status == EXIT_SUCCESS and action == self.ACTION_INSTALL: + elif status == self.EXIT_SUCCESS and action == self.ACTION_INSTALL: error_string = _("System upgrade is complete.") - elif status == EXIT_SUCCESS and action == self.ACTION_REMOVE_PACKAGES: + elif status == self.EXIT_SUCCESS and action == self.ACTION_REMOVE_PACKAGES: error_string = _("Uninstallation completed") - is_success = (status == EXIT_SUCCESS) + is_success = (status == self.EXIT_SUCCESS) try: self._action_done(action, - is_cancelled=(status == EXIT_CANCELLED), success=is_success, + is_cancelled=(status == self.EXIT_CANCELLED), success=is_success, error_string=error_string, error_desc=error_desc) except TypeError: # this module used to be be lazily imported and in older code # trans_failed= is not accepted # TODO: this workaround can be dropped in Ubuntu 20.10 self._action_done(action, - is_cancelled=(status == EXIT_CANCELLED), success=is_success, + is_cancelled=(status == self.EXIT_CANCELLED), success=is_success, error_string=error_string, error_desc=error_desc) From b224f27dcc949e16ba038ca1f3094ac3c24ac660 Mon Sep 17 00:00:00 2001 From: wangsong Date: Wed, 15 Dec 2021 17:01:17 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E6=89=93=E5=BC=80=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/SystemUpdater/UpdateManagerDbus.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/SystemUpdater/UpdateManagerDbus.py b/backend/SystemUpdater/UpdateManagerDbus.py index 77d2b88..1ce8e59 100755 --- a/backend/SystemUpdater/UpdateManagerDbus.py +++ b/backend/SystemUpdater/UpdateManagerDbus.py @@ -146,14 +146,14 @@ class UpdateManagerDbusController(dbus.service.Object): #获取后端现在的状态 @dbus.service.method(UPDATER_DBUS_INTERFACE,out_signature='i') - def GetBackendStatus(self): - # def GetBackendStatus(self,user_lang): + def GetBackendStatus(self,user_lang): try: - # if user_lang != os.environ["LANGUAGE"]: - # #如果系统不是中文也不是英文 就默认中文 - # if user_lang != "en" and user_lang != "zh_CN:en": - # user_lang = "zh_CN:en" - # os.environ["LANGUAGE"] = user_lang + if user_lang != os.environ["LANGUAGE"]: + #如果系统不是中文也不是英文 就默认中文 + if user_lang != "en" and user_lang != "zh_CN:en": + user_lang = "zh_CN:en" + logging.warning("The system language is switched to %s",user_lang) + os.environ["LANGUAGE"] = user_lang #处于更新和升级中的话 不进行更新 logging.info(COLORMETHOR_PREFIX+'method'+COLORLOG_SUFFIX+' GetBackendStatus ...') From a89d8b75727d4bfac283e3028fd1b4c4fce7ba33 Mon Sep 17 00:00:00 2001 From: wangsong Date: Wed, 15 Dec 2021 17:51:09 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E9=A2=91=E9=97=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/SystemUpdater/UpdateManagerDbus.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/backend/SystemUpdater/UpdateManagerDbus.py b/backend/SystemUpdater/UpdateManagerDbus.py index 1ce8e59..56d32e5 100755 --- a/backend/SystemUpdater/UpdateManagerDbus.py +++ b/backend/SystemUpdater/UpdateManagerDbus.py @@ -148,12 +148,14 @@ class UpdateManagerDbusController(dbus.service.Object): @dbus.service.method(UPDATER_DBUS_INTERFACE,out_signature='i') def GetBackendStatus(self,user_lang): try: - if user_lang != os.environ["LANGUAGE"]: + # if user_lang not in os.environ["LANG"]: #如果系统不是中文也不是英文 就默认中文 - if user_lang != "en" and user_lang != "zh_CN:en": - user_lang = "zh_CN:en" - logging.warning("The system language is switched to %s",user_lang) - os.environ["LANGUAGE"] = user_lang + # if user_lang != "en" and user_lang != "zh_CN:en": + # logging.error("%s",user_lang) + # user_lang = "zh_CN:en" + + # logging.warning("The system language is switched to %s",user_lang) + # os.environ["LANGUAGE"] = user_lang #处于更新和升级中的话 不进行更新 logging.info(COLORMETHOR_PREFIX+'method'+COLORLOG_SUFFIX+' GetBackendStatus ...') From ba1a9d6cc58cb66c5b40b17bfb4360e1c3b65fc0 Mon Sep 17 00:00:00 2001 From: wangsong Date: Thu, 16 Dec 2021 15:10:41 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E9=80=9A=E8=BF=87=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E6=9D=A5=E8=AF=86=E5=88=AB=E6=98=AF=E9=AA=8C=E8=AF=81=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E5=AF=BC=E8=87=B4=E5=87=BA=E7=8E=B0=E7=9A=84=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/SystemUpdater/backend/InstallBackendAptdaemon.py | 2 +- backend/SystemUpdater/backend/__init__.py | 4 ++++ backend/po/zh_CN.po | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/backend/SystemUpdater/backend/InstallBackendAptdaemon.py b/backend/SystemUpdater/backend/InstallBackendAptdaemon.py index 5e6b951..f8c0e3c 100644 --- a/backend/SystemUpdater/backend/InstallBackendAptdaemon.py +++ b/backend/SystemUpdater/backend/InstallBackendAptdaemon.py @@ -352,7 +352,7 @@ class InstallBackendAptdaemon(InstallBackend): if self.action == self.ACTION_REMOVE_PACKAGES or self.action == self.ACTION_UPDATE: return - logging.info("\033[43;1m" + "Emitting" + "\033[0m" +" Cancelable: %r",Cancelable) + logging.info("\033[1;32m" + "Emitting" + "\033[0m" +" Cancelable: %r",Cancelable) self.window_main.dbusController.Cancelable(Cancelable) #增加取消信号的频发机制 self.trans_cancelable = Cancelable diff --git a/backend/SystemUpdater/backend/__init__.py b/backend/SystemUpdater/backend/__init__.py index a03dd17..a4c33b7 100644 --- a/backend/SystemUpdater/backend/__init__.py +++ b/backend/SystemUpdater/backend/__init__.py @@ -451,6 +451,10 @@ class InstallBackend(): self.window_main.dbusController.PurgePackagesFinished(success,error_string,error_desc) elif action == self.ACTION_INSTALL_DEB: + #FIXME: '\r\n: \r\n\r\n'就认为是验证失败 + if success == False and '\r\n: \r\n\r\n' in self.trans_error_details: + error_string = "Package validation failed and installation was rejected." + error_desc = '' self.window_main.dbusController.InstalldebFinished(success,error_string,error_desc) #将安装完成的插入数据库 安装失败的计算那些包安装失败了 分类插入数据库中 diff --git a/backend/po/zh_CN.po b/backend/po/zh_CN.po index ea14b1e..d46f878 100644 --- a/backend/po/zh_CN.po +++ b/backend/po/zh_CN.po @@ -2598,6 +2598,9 @@ msgstr "更新管理器升级完成,请重启控制面板后再进行系统更 msgid "Uninstallation completed" msgstr "卸载完成。" +msgid "Package validation failed and installation was rejected." +msgstr "软件包验证失败,拒绝安装。" + msgid "Other tasks are being updated and upgraded, please uninstall them later." msgstr "其他任务正在更新升级中,请稍后再卸载。" From e6d97dcb07a2214b123189e8b597ddd23ef557a1 Mon Sep 17 00:00:00 2001 From: wangsong Date: Thu, 16 Dec 2021 15:22:17 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E8=AF=8D=E6=9D=A1=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/SystemUpdater/backend/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/SystemUpdater/backend/__init__.py b/backend/SystemUpdater/backend/__init__.py index a4c33b7..82704a5 100644 --- a/backend/SystemUpdater/backend/__init__.py +++ b/backend/SystemUpdater/backend/__init__.py @@ -453,7 +453,7 @@ class InstallBackend(): elif action == self.ACTION_INSTALL_DEB: #FIXME: '\r\n: \r\n\r\n'就认为是验证失败 if success == False and '\r\n: \r\n\r\n' in self.trans_error_details: - error_string = "Package validation failed and installation was rejected." + error_string = _("Package validation failed and installation was rejected.") error_desc = '' self.window_main.dbusController.InstalldebFinished(success,error_string,error_desc) From 8982ee64026d434361817f850419a2900602f48c Mon Sep 17 00:00:00 2001 From: wangsong Date: Fri, 17 Dec 2021 13:39:34 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E9=A2=91=E9=97=AD=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E8=AF=AD=E8=A8=80=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/SystemUpdater/UpdateManagerDbus.py | 4 ++-- backend/kylin-system-updater | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/backend/SystemUpdater/UpdateManagerDbus.py b/backend/SystemUpdater/UpdateManagerDbus.py index 56d32e5..7e1faf9 100755 --- a/backend/SystemUpdater/UpdateManagerDbus.py +++ b/backend/SystemUpdater/UpdateManagerDbus.py @@ -149,12 +149,12 @@ class UpdateManagerDbusController(dbus.service.Object): def GetBackendStatus(self,user_lang): try: # if user_lang not in os.environ["LANG"]: - #如果系统不是中文也不是英文 就默认中文 + # 如果系统不是中文也不是英文 就默认中文 # if user_lang != "en" and user_lang != "zh_CN:en": # logging.error("%s",user_lang) # user_lang = "zh_CN:en" - # logging.warning("The system language is switched to %s",user_lang) + # logging.warning("The system language is switched %s to %s",os.environ["LANGUAGE"],user_lang) # os.environ["LANGUAGE"] = user_lang #处于更新和升级中的话 不进行更新 diff --git a/backend/kylin-system-updater b/backend/kylin-system-updater index ce390a5..99284e2 100755 --- a/backend/kylin-system-updater +++ b/backend/kylin-system-updater @@ -70,7 +70,8 @@ if __name__ == "__main__": else: logging.basicConfig(format=FORMAT,level=logging.DEBUG,filename = logfile(),filemode = 'a') - logging.info('kylin-system-updater(lang:%s) starting ...',os.environ["LANGUAGE"]) + # logging.info('kylin-system-updater(lang:%s) starting ...',os.environ["LANGUAGE"]) + logging.info('kylin-system-updater starting ...') app = UpdateManager(options) From d4506165df8247db49822b51c6cdcf13dbcf021a Mon Sep 17 00:00:00 2001 From: wangsong Date: Fri, 17 Dec 2021 14:36:29 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E5=88=87=E6=8D=A2dbus=E7=9A=84=E5=BB=BA?= =?UTF-8?q?=E7=AB=8B=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/SystemUpdater/UpdateManager.py | 39 +++++++++++--------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/backend/SystemUpdater/UpdateManager.py b/backend/SystemUpdater/UpdateManager.py index 5e771b0..e37f148 100644 --- a/backend/SystemUpdater/UpdateManager.py +++ b/backend/SystemUpdater/UpdateManager.py @@ -431,33 +431,28 @@ class UpdateManager(): def _setup_dbus(self): # check if there is another g-a-i already and if not setup one # listening on dbus - try: - bus = dbus.SystemBus() - except Exception: - logging.error("warning: could not initiate dbus") - return - try: - proxy_obj = bus.get_object(UPDATER_DBUS_SERVICE, - UPDATER_DBUS_PATH) - #替换后台 + bus = dbus.SystemBus() + + try: + bus_name = dbus.service.BusName(UPDATER_DBUS_SERVICE, + bus, + do_not_queue=True) + logging.info(_("initiate dbus success ...")) + return UpdateManagerDbusController(self, bus_name) + except dbus.exceptions.NameExistsException: if self.options.replace is False: logging.critical("Another daemon is already running") sys.exit(1) - else: - logging.warning("Replacing already running daemon") - proxy_obj.Quit(dbus_interface=UPDATER_DBUS_INTERFACE, - timeout=300) - time.sleep(1) - bus_name = dbus.service.BusName(UPDATER_DBUS_SERVICE, - bus, - do_not_queue=True) - return UpdateManagerDbusController(self, bus_name) - - except dbus.DBusException: + logging.warning("Replacing already running daemon") + the_other_guy = bus.get_object(UPDATER_DBUS_SERVICE, + UPDATER_DBUS_PATH) + the_other_guy.Quit(dbus_interface=UPDATER_DBUS_INTERFACE, + timeout=300) + time.sleep(1) bus_name = dbus.service.BusName(UPDATER_DBUS_SERVICE, - bus) - logging.info(_("initiate dbus success ...")) + bus, + do_not_queue=True) return UpdateManagerDbusController(self, bus_name) # 是否查找本地依赖