def __set_refresh_seconds(self, value): if value is not None: try: value = int(value) except (TypeError, ValueError): raise api_errors.BadRepositoryAttributeValue("refresh_seconds", value=value) if value < 0: raise api_errors.BadRepositoryAttributeValue("refresh_seconds", value=value) self.__refresh_seconds = value
def __replace_uris(self, attr, value, trailing_slash=True): if value is None: value = [] if not isinstance(value, list): raise api_errors.BadRepositoryAttributeValue(attr, value=value) uris = [] for u in value: if not isinstance(u, RepositoryURI): u = RepositoryURI(u, trailing_slash=trailing_slash) elif trailing_slash: u.uri = misc.url_affix_trailing_slash(u.uri) uris.append(u) uris.sort(key=URI_SORT_POLICIES[self.__sort_policy]) return uris
def __set_ssl_key(self, filename): if self.scheme not in SSL_SCHEMES and filename: raise api_errors.UnsupportedRepositoryURIAttribute( "ssl_key", scheme=self.scheme) if filename: if not isinstance(filename, basestring): raise api_errors.BadRepositoryAttributeValue("ssl_key", value=filename) filename = os.path.abspath(filename) if not os.path.exists(filename): raise api_errors.NoSuchKey(filename, uri=self.uri) if filename == "": filename = None # XXX attempt key verification here? self.__ssl_key = filename
def __set_last_refreshed(self, value): if not self.meta_root: return if value is not None and not isinstance(value, dt.datetime): raise api_errors.BadRepositoryAttributeValue("last_refreshed", value=value) lcfile = os.path.join(self.meta_root, "last_refreshed") if not value: # If no value was provided, attempt to remove the # tracking file. try: portable.remove(lcfile) except EnvironmentError, e: # If the file can't be removed due to # permissions, a read-only filesystem, or # because it doesn't exist, continue on. if e.errno not in (errno.ENOENT, errno.EACCES, errno.EROFS): raise return
def __set_trailing_slash(self, value): if value not in (True, False): raise api_errors.BadRepositoryAttributeValue("trailing_slash", value=value) self.__trailing_slash = value