def check_higher_kernel(path=None): """ Check through kernel modules dir, the higher version available path -- The path to kernel modules dir """ higher_kernel = None if path is None: modules_dir = "/lib/modules" else: modules_dir = "{0}/lib/modules".format(path) modules_dir = os.listdir(modules_dir) for km1, km2 in combinations(modules_dir, 2): ret = compareVerOnly(km1, km2) # Extra validation via rpmUtils.miscutils to # check if new value in km1 or in km2 is higher than # the current hold in higher_kernel if ret == 1: if higher_kernel is None or \ compareVerOnly(km1, higher_kernel) == 1: higher_kernel = km1 elif ret == -1: if higher_kernel is None or \ compareVerOnly(km2, higher_kernel) == 1: higher_kernel = km2 return higher_kernel
def compare_rpm_versions(cls, v1, v2): """Compare two RPM version strings. Arguments: v1 -- a version string v2 -- a version string Returns: 0 -- the versions are equal 1 -- v1 is greater -1 -- v2 is greater """ if v1 and v2: return rpmutils.compareVerOnly(v1, v2) elif v1: return 1 elif v2: return -1 else: return 0