diff --git a/func/check.py b/func/check.py index 02e27b5f01f952849310e5e82eb987ec0b470d7a..280b2990056eaceeb22efc55235d9aa36ded193d 100644 --- a/func/check.py +++ b/func/check.py @@ -125,4 +125,77 @@ def init_remove_oldrepo(): fdst.write(repo+'\n'+backup_comment+content) fdst.close() fsrc.close() - os.remove(path_file) \ No newline at end of file + os.remove(path_file) + + +#初始化repo文件 +def initRepoFile(baseurl): + os_version_ret = platform.dist() + version = os_version_ret[1].split('.',-1) + reposdir = '/etc/yum.repos.d/' + h = 0 + if re.match('file:',baseurl): + str0, path = baseurl.split('://',1) + path = '/' + path.strip('/') + '/' + else: + h = 1 + if re.fullmatch('8',version[0]): + path_appstream = baseurl+'/AppStream' + path_baseos = baseurl+'/BaseOS' + path_310 = baseurl+'/kernel-3.10' + path_418 = baseurl+'/kernel-4.18' + path_510 = baseurl+'/kernel-5.10' + + repostr_uos = '''[UniontechOS-AppStream]\nname = UniontechOS AppStream\nbaseurl = '''+path_appstream.strip('\n')+'''\nenabled = 1\ngpgcheck = 0\n\n[UniontechOS-BaseOS]\nname = UniontechOS BaseOS\nbaseurl = '''+path_baseos.strip('\n')+'''\nenabled = 1\ngpgcheck = 0\n\n[UniontechOS-kernel-4.18.0]\nname = UniontechOS Kernel-4.18.0\nbaseurl = '''+path_418.strip('\n')+'''\nenabled = 0\ngpgcheck = 0\nskip_if_unavailable = 1\n\n[UniontechOS-kernel-5.10.0]\nname = UniontechOS Kernel-5.10.0\nbaseurl = '''+path_510.strip('\n')+'''\nenabled = 0\ngpgcheck = 0\nskip_if_unavailable = 1\n\n +''' + else: + path_310 = baseurl+'/kernel-3.10' + repostr_uos = '''[UniontechOS-AppStream]\nname = UniontechOS AppStream\nbaseurl = '''+baseurl.strip('\n')+'''\nenabled = 1\ngpgcheck = 0\n\n[UniontechOS-kernel-3.10.0]\nname = UniontechOS Kernel-3.10.0\nbaseurl = '''+path_310.strip('\n')+'''\nenabled = 0\ngpgcheck = 0\nskip_if_unavailable = 1\n + ''' + repofile = os.path.join(reposdir, 'switch-to-uos.repo') + with open(repofile,'w') as f_repo: + f_repo.write(repostr_uos) + f_repo.close() + + +#检测repo文件创建缓存 +def checkRepoMakeCache(): + os.system('yum clean all') + os.system('yum makecache') + os_version_ret = platform.dist() + version = os_version_ret[1].split('.',-1) + ret = os.path.exists('/var/cache/dnf/UniontechOS-AppStream.solv') + if ret: + ret = os.path.exists('/var/cache/dnf/UniontechOS-BaseOS.solv') + if ret or re.fullmatch('7',version[0]): + return 0 + else: + return 1 + else: + if re.fullmatch('7',version[0]): + ret = os.path.exists('/var/cache/yum/x86_64/7/UniontechOS-AppStream/repomd.xml') + if ret: + return 0 + return 1 + + +#检测repo +def check_repo(data_j): + uos_sysmig_conf = json.loads(getSysMigConf()) + AGENT_IP = json.loads(uos_sysmig_conf).get('agentip').strip()[1:-1] + baseurl = json.loads(data_j).get('repo_pwd') + keylist = None + valuelist = None + data = None + init_remove_oldrepo() + initRepoFile(baseurl) + state = checkRepoMakeCache() + + if state == 0: + keylist = ['ip','res','data'] + valuelist = [AGENT_IP,state,'连接成功'] + else: + data = '下载失败,请检查您的软件源' + keylist = ['ip','res','error'] + valuelist = [AGENT_IP,state,data] + return list_to_json(keylist,valuelist) \ No newline at end of file diff --git a/migration-tools-client.py b/migration-tools-client.py index c3f899c19fb272c2bbd9b1ef5f4116e774e3231e..7926bdee58325dace8b51043b572f541dde3c673 100644 --- a/migration-tools-client.py +++ b/migration-tools-client.py @@ -11,6 +11,7 @@ mods = { 'check_storage': check.check_storage, 'check_os': check.check_os, 'check_user': check.check_user, + 'check_repo': check.check_repo, } def check_methods(): @@ -44,6 +45,13 @@ def mt_check_user(): return Response(mod, content_type='application/json') +@app.route('/check_repo', methods=['GEt', 'POST']) +def mt_check_repo(): + mod = check_methods() + if mod: + return Response(mod, content_type='application/json') + + if __name__ == '__main__': app.config["JSON_AS_ASCII"] = False uos_sysmig_conf = json.loads(getSysMigConf()) diff --git a/templates/MT_kernel.html b/templates/MT_kernel.html new file mode 100755 index 0000000000000000000000000000000000000000..ed10a4de49ea53803b5d63c10908ebac87ade926 --- /dev/null +++ b/templates/MT_kernel.html @@ -0,0 +1,90 @@ + + +
+ + + +
+
+ 例如:
+1.本地仓库
+file:///mnt/iso/AppStream
+file:///mnt/iso/BaseOS
+file:///mnt/iso/Kernel-4.18
+请输入:file:///mnt/iso
+1.在线仓库
+http://0.0.0.0/iso/AppStream
+http://0.0.0.0/iso/BaseOS
+http://0.0.0.0/iso/Kernel-4.18
+请输入:http://0.0.0.0/iso
@@ -49,6 +60,7 @@