View | Details | Raw Unified | Return to bug 41846 | Differences between
and this patch

Collapse All | Expand All

(-)python/appcenter/app.py (-8 / +17 lines)
 Lines 1004-1020    Link Here 
1004
		required_version = self.required_ucs_version
1004
		required_version = self.required_ucs_version
1005
		if not required_version:
1005
		if not required_version:
1006
			return True
1006
			return True
1007
		current_version = self.get_current_ucs_version_as_string()
1008
1009
		if not self.is_fitting_ucs_version(required_version, current_version):
1010
			return {'required_version': required_version}
1011
		return True
1012
1013
	@staticmethod
1014
	def get_current_ucs_version_as_string():
1007
		ucr_load()
1015
		ucr_load()
1008
		version_bits = re.match(r'^(\d+)\.(\d+)-(\d+)(?: errata(\d+))?$', required_version).groups()
1016
		version = ucr_get('version/version')
1009
		major, minor = ucr_get('version/version').split('.', 1)
1010
		patchlevel = ucr_get('version/patchlevel')
1017
		patchlevel = ucr_get('version/patchlevel')
1011
		errata = ucr_get('version/erratalevel')
1018
		erratalevel = ucr_get('version/erratalevel')
1012
		comparisons = zip(version_bits, [major, minor, patchlevel, errata])
1013
		for required, present in comparisons:
1014
			if int(required or 0) > int(present):
1015
				return {'required_version': required_version}
1016
		return True
1017
1019
1020
		current_version = '{version}-{patchlevel} errata{erratalevel}'.format(version=version, patchlevel=patchlevel, erratalevel=erratalevel)
1021
		return current_version
1022
1023
	@staticmethod
1024
	def is_fitting_ucs_version(required_version, current_version): # type: (str, str) -> bool 
1025
		return LooseVersion(required_version) <= LooseVersion(current_version)
1026
1018
	@hard_requirement('install', 'upgrade')
1027
	@hard_requirement('install', 'upgrade')
1019
	def must_have_fitting_kernel_version(self):
1028
	def must_have_fitting_kernel_version(self):
1020
		if self.docker:
1029
		if self.docker:

Return to bug 41846