def _remove_old_updates(self): # Removes old updates from cache. Patch updates # start from currently installed version. # ToDo: Better filename comparison # Please chime in if this is sufficient # Will remove todo if so... temp = os.listdir(self.update_folder) try: filename = self._get_filename(self.name, self.version) except KeyError: filename = u'0.0.0' try: current_version_str = get_version_number(filename) except UtilsError: log.debug(u'Cannot parse version info') current_version_str = u'0.0.0' current_version = version_string_to_tuple(current_version_str) with ChDir(self.update_folder): for t in temp: try: t_versoin_str = get_version_number(t) except UtilsError: log.debug(u'Cannot parse version info') t_versoin_str = u'0.0.0' t_version = version_string_to_tuple(t_versoin_str) if self.name in t and t_version < current_version: log.debug(u'Removing old update: {}'.format(t)) os.remove(t)
def extract_info(self, package): """Gets version number, platform & hash for package. Args: package (str): filename """ if os.path.splitext(package)[1].lower() not in \ self.supported_extensions: msg = u'Not a supported archive format: {}'.format(package) self.info['reason'] = msg log.error(msg) return try: self.version = get_version_number(package) except UtilsError: msg = u'Package version not formatted correctly' self.info[u'reason'] = msg log.error(msg) return try: self.platform = parse_platform(package) except UtilsError: msg = u'Package platform not formatted correctly' self.info[u'reason'] = msg log.error(msg) return # No need to get any more info if above failed self.name = self._get_package_name(package) self.file_hash = get_package_hashes(package) self.info[u'status'] = True
def check_version(options): try: version = options.version_num except: raise ArchiverError('You must pass -v option with version # of update', expected=True) if version is None: raise ArchiverError('You must pass version number') try: version = get_version_number(version) except: raise ArchiverError('Can not parse version number', expected=True) try: version_tuple = version_string_to_tuple(version) except: raise ArchiverError('Version not in correct format. eg. "0.0.1"', expected=True) if len(version_tuple) != 3: raise ArchiverError('Version must be MAJOR.MINOR.PATCH', expected=True) return version