def __init__(self, multitorrent, rawserver, test_new_version=None, test_current_version=None): TorrentButler.__init__(self, multitorrent) self.runs = 0 self.rawserver = rawserver self.estate = set() self.old_updates = set() self.log_root = "core.AutoUpdateButler" self.logger = logging.getLogger(self.log_root) self.installable_version = None self.available_version = None self.current_version = Version.from_str(version) self.debug_mode = DEBUG self.delay = 60*60*24 if self.debug_mode: self.delay = 10 if test_new_version: test_new_version = Version.from_str(test_new_version) self.debug_mode = True self.debug('__init__() turning debug on') def _hack_get_available(url): self.debug('_hack_get_available() run#%d: returning %s' % (self.runs, str(test_new_version))) return test_new_version self._get_available = _hack_get_available if test_current_version: self.debug_mode = True self.current_version = Version.from_str(test_current_version) self.version_site = version_host # The version URL format is: # http:// VERSION_SITE / OS_NAME / (LEGACY /) BETA or STABLE # LEGACY means that the user is on a version of an OS that has # been deemed "legacy", and as such the latest client version # for their OS version may be different than the latest client # version for the OS in general. For example, if we are going # to roll a version that requires WinXP/2K or greater, or a # version that requires OSX 10.5 or greater, we may maintain # an older version for Win98 or OSX 10.4 in OS_NAME/legacy/. if os.name == 'nt': self.version_site += 'win32/' if os_version not in ('XP', '2000', '2003'): self.version_site += 'legacy/' elif osx: self.version_site += 'osx/' elif self.debug_mode: self.version_site += 'win32/' self.installer_dir = self._calc_installer_dir() # kick it off self.rawserver.add_task(0, self.check_version)
def _get_available(self, url): """Get the available version from the version site. The command line option --new_version X.Y.Z overrides this method and returns 'X.Y.Z' instead.""" self.debug('_get_available() run#%d: hitting url %s' % (self.runs, url)) try: u = zurllib.urlopen(url) s = u.read() s = s.strip() except: raise BTFailure(_("Could not get latest version from %s")%url) try: # we're luck asserts are turned off in production. # this assert is false for 4.20.X #assert len(s) == 5 available_version = Version.from_str(s) except: raise BTFailure(_("Could not parse new version string from %s")%url) return available_version
def _get_available(self, url): """Get the available version from the version site. The command line option --new_version X.Y.Z overrides this method and returns 'X.Y.Z' instead.""" self.debug('_get_available() run#%d: hitting url %s' % (self.runs, url)) try: u = zurllib.urlopen(url) s = u.read() s = s.strip() except: raise BTFailure(_("Could not get latest version from %s") % url) try: # we're luck asserts are turned off in production. # this assert is false for 4.20.X #assert len(s) == 5 available_version = Version.from_str(s) except: raise BTFailure( _("Could not parse new version string from %s") % url) return available_version
def __init__(self, multitorrent, rawserver, test_new_version=None, test_current_version=None): TorrentButler.__init__(self, multitorrent) self.runs = 0 self.rawserver = rawserver self.estate = set() self.old_updates = set() self.log_root = "core.AutoUpdateButler" self.logger = logging.getLogger(self.log_root) self.installable_version = None self.available_version = None self.current_version = Version.from_str(version) self.debug_mode = DEBUG self.delay = 60 * 60 * 24 if self.debug_mode: self.delay = 10 if test_new_version: test_new_version = Version.from_str(test_new_version) self.debug_mode = True self.debug('__init__() turning debug on') def _hack_get_available(url): self.debug('_hack_get_available() run#%d: returning %s' % (self.runs, str(test_new_version))) return test_new_version self._get_available = _hack_get_available if test_current_version: self.debug_mode = True self.current_version = Version.from_str(test_current_version) self.version_site = version_host # The version URL format is: # http:// VERSION_SITE / OS_NAME / (LEGACY /) BETA or STABLE # LEGACY means that the user is on a version of an OS that has # been deemed "legacy", and as such the latest client version # for their OS version may be different than the latest client # version for the OS in general. For example, if we are going # to roll a version that requires WinXP/2K or greater, or a # version that requires OSX 10.5 or greater, we may maintain # an older version for Win98 or OSX 10.4 in OS_NAME/legacy/. if os.name == 'nt': self.version_site += 'win32/' if os_version not in ('XP', '2000', '2003'): self.version_site += 'legacy/' elif osx: self.version_site += 'osx/' elif self.debug_mode: self.version_site += 'win32/' self.installer_dir = self._calc_installer_dir() # kick it off self.rawserver.add_task(0, self.check_version)