diff --git a/serverStatus/templates/serverStatus/packageManager.html b/serverStatus/templates/serverStatus/packageManager.html index 8f20c01b9..334f9e915 100755 --- a/serverStatus/templates/serverStatus/packageManager.html +++ b/serverStatus/templates/serverStatus/packageManager.html @@ -124,8 +124,8 @@ - - + + - - + + - - + + -1: + + data = open(yumConf, 'r').readlines() + + for items in data: + if items.find('exclude') > -1: + locked = items.split('=')[1].rstrip('\n').split(' ') + break + if type == 'installed': #### Cater for packages that need updates. @@ -875,6 +894,8 @@ def fetchPackages(request): try: if type == 'installed' or type == 'upgrade': + ### + details = items.split(' ') details = [a for a in details if a != ''] @@ -886,9 +907,15 @@ def fetchPackages(request): else: upgrade = 'Upgrade available' + + if details[0].split('.')[0] in locked: + lock = 1 + else: + lock = 0 + dic = {'package': details[0], 'version': details[1], - 'upgrade': upgrade, 'lock': 1} + 'upgrade': upgrade, 'lock': lock} counter = counter + 1 if checker == 0: @@ -899,6 +926,7 @@ def fetchPackages(request): except BaseException as msg: + print(str(msg)) logging.CyberCPLogFileWriter.writeToFile('[ERROR] %s. [fetchPackages:839]' % (str(msg))) json_data = json_data + ']' @@ -1005,6 +1033,49 @@ def lockStatus(request): command = 'apt-mark hold %s' % (package) ProcessUtilities.executioner(command) + elif ProcessUtilities.decideDistro() == ProcessUtilities.centos: + + package = package.split('.')[0] + + if os.path.exists('/etc/yum.conf'): + yumConf = '/etc/yum.conf' + elif os.path.exists('/etc/yum/yum.conf'): + yumConf = '/etc/yum/yum.conf' + + yumConfData = open(yumConf, 'r').read() + data = open(yumConf, 'r').readlines() + + + if type == 0: + writeToFile = open(yumConf, 'w') + + for items in data: + if items.find('exclude') > -1: + writeToFile.writelines(items.replace(package, '')) + else: + writeToFile.writelines(items) + + writeToFile.close() + else: + + if yumConfData.find('exclude') == -1: + + writeToFile = open(yumConf, 'a') + writeToFile.writelines('exclude=%s\n' % (package)) + writeToFile.close() + + else: + writeToFile = open(yumConf, 'w') + + for items in data: + if items.find('exclude') > -1: + excludeLine = items.strip('\n') + writeToFile.writelines('%s %s\n' % (excludeLine, package)) + else: + writeToFile.writelines(items) + + writeToFile.close() + data_ret = {'status': 1} json_data = json.dumps(data_ret) return HttpResponse(json_data)