Merge branch 'backend_manual' into 'backend_uu'

Backend manual

See merge request kylin-desktop/update-manager-group/kylin-system-updater!460
This commit is contained in:
luoxueyi 2022-07-29 07:47:29 +00:00
commit 20b05ce6ca
2 changed files with 53 additions and 4 deletions

View File

@ -9,6 +9,7 @@ import sqlite3
import logging
import datetime
from gettext import gettext as _
from sys import exec_prefix
from SystemUpdater.Core.DataAcquisition import PHPSeverSend
from SystemUpdater.Core.UpdaterConfigParser import UpgradeConfig
@ -259,8 +260,7 @@ class Sqlite3Server(object):
InstallInfos.update({"status":status})
InstallInfos.update({"errorCode":str(error_string+" "+error_desc)})
self.window_main.collector.Upgrade_Process_Msg("finish-install", InstallInfos.copy())
# 软件商店获取中文名
appname_cn = self.get_cn_appname(str(pkgname))
# 软件商店获取中文名insert_into_displayr(pkgname))
#FIXME: 临时方案 PHP
PHPSeverSend(_send_log = self.window_main.configs_uncover.getWithDefault("SystemStatus", "upload_upgrade_log", False), _appname=pkgname, _appversion=pkgversion, _statue=status, _errorcode="10000100")
try:
@ -523,7 +523,40 @@ class Sqlite3Server(object):
logging.error(_("Failed to initialize the database: %s"), str(e))
return ''
def insert_upgrade_history(self, args, caller):
caller_list = ['kylin-unattended-upgrade', "d-feet"]
if caller not in caller_list:
logging.warning("Caller \" %s \": Operation without permission...", caller)
return False
# {"appname":GLib.Variant("s", "kylin-system-updater"), "version":GLib.Variant("s", "0.0")}
# "description":GLib.Variant("s", "Update Manager for Kylin"), "date":GLib.Variant("s", "2022-07-27 15:23:51")
# "status":GLib.Variant("s", "failed"), "keyword":GLib.Variant("s", "1")
# "errorcode":GLib.Variant("s", "System upgrade is complete. "), "appname_cn":GLib.Variant("s", "音乐")
upgrade_info = {}
try:
for it in args:
upgrade_info[str(it)] = str(args[str(it)])
logging.info("upgrade_info: %s", upgrade_info)
#self.insert_into_updateinfo(str(i), pkgversion, pkgdescription, timestr, status, "1", errstr, appname_cn)
if "appname" in upgrade_info.keys() and "version" in upgrade_info.keys() \
and "description" in upgrade_info.keys() \
and "date" in upgrade_info.keys() \
and "status" in upgrade_info.keys() \
and "keyword" in upgrade_info.keys() \
and "errorcode" in upgrade_info.keys() \
and "appname_cn" in upgrade_info.keys() :
self.insert_into_updateinfo( upgrade_info["appname"], upgrade_info["version"], \
upgrade_info["description"], \
upgrade_info["date"], \
upgrade_info["status"], \
upgrade_info["keyword"], \
upgrade_info["errorcode"], \
upgrade_info["appname_cn"] )
except Exception as e:
logging.error(e)
return False
return True
def listtojsonstr(lists):
import json

View File

@ -1070,6 +1070,22 @@ class UpdateManagerDbusControllerUtils(dbus.service.Object):
logging.info("All silent upgrade: %s.",pkglist)
return pkglist
# 提供插入更新历史的接口
@dbus.service.method(UPDATER_DBUS_INTERFACE, in_signature='a{sv}', out_signature='b', sender_keyword='sender')
def InsertUpgradeHistory(self, arg = {}, sender=None):
try:
# {"appname":GLib.Variant("s", "kylin-system-updater"), "version":GLib.Variant("s", "string value")}
# "description":GLib.Variant("s", "Update Manager for Kylin"), "date":GLib.Variant("s", "2022-07-27 15:23:51")
# "status":GLib.Variant("s", "failed"), "keyword":GLib.Variant("s", "1")
# "errorcode":GLib.Variant("s", "System upgrade is complete. "), "appname_cn":GLib.Variant("s", "音乐")
sender_name = get_proc_from_dbus_name(sender)
logging.info(COLORMETHOR_PREFIX+'Method'+COLORLOG_SUFFIX+' Call InsertUpgradeHistory from %s.', sender_name)
if not self.parent.sqlite3_server.insert_upgrade_history(arg, sender_name) :
return False
except Exception as e:
logging.error("InsertUpgradeHistory Failed: %s" % str(e), exc_info=True)
return False
return True
WRITABLE_PROPERTIES = ()