class ReleaseRunner(object): def __init__(self, api_root=None, username=None, password=None, timeout=60): self.new_releases = [] self.releases_api = Releases((username, password), api_root=api_root, timeout=timeout) self.release_api = Release((username, password), api_root=api_root, timeout=timeout) self.release_l10n_api = ReleaseL10n((username, password), api_root=api_root, timeout=timeout) def get_release_requests(self): new_releases = self.releases_api.getReleases() if new_releases['releases']: self.new_releases = [self.release_api.getRelease(name) for name in new_releases['releases']] return True else: log.info("No new releases: %s" % new_releases) return False def get_release_l10n(self, release): return self.release_l10n_api.getL10n(release) def update_status(self, release, status): log.info('updating status for %s to %s' % (release['name'], status)) try: self.release_api.update(release['name'], status=status) except requests.HTTPError, e: log.warning('Caught HTTPError: %s' % e.response.content) log.warning('status update failed, continuing...', exc_info=True)
class ReleaseRunner(object): def __init__(self, api_root=None, username=None, password=None, timeout=60): self.new_releases = [] self.releases_api = Releases((username, password), api_root=api_root, timeout=timeout) self.release_api = Release((username, password), api_root=api_root, timeout=timeout) self.release_l10n_api = ReleaseL10n((username, password), api_root=api_root, timeout=timeout) def get_release_requests(self, release_patterns): new_releases = self.releases_api.getReleases() if new_releases['releases']: new_releases = [ self.release_api.getRelease(name) for name in new_releases['releases'] ] our_releases = [ r for r in new_releases if matches(r['name'], release_patterns) ] if our_releases: self.new_releases = our_releases log.info("Releases to handle are %s", self.new_releases) return True else: log.info("No releases to handle in %s", new_releases) return False else: log.info("No new releases: %s" % new_releases) return False def get_release_l10n(self, release): return self.release_l10n_api.getL10n(release) def update_status(self, release, status): log.info('updating status for %s to %s' % (release['name'], status)) try: self.release_api.update(release['name'], status=status) except requests.HTTPError as e: log.warning('Caught HTTPError: %s' % e.response.content) log.warning('status update failed, continuing...', exc_info=True) def mark_as_completed(self, release): log.info('mark as completed %s' % release['name']) self.release_api.update(release['name'], complete=True, status='Started') def mark_as_failed(self, release, why): log.info('mark as failed %s' % release['name']) self.release_api.update(release['name'], ready=False, status=why)
class ReleaseRunner(object): def __init__(self, api_root=None, username=None, password=None, timeout=60): self.new_releases = [] self.releases_api = Releases((username, password), api_root=api_root, timeout=timeout) self.release_api = Release((username, password), api_root=api_root, timeout=timeout) self.release_l10n_api = ReleaseL10n((username, password), api_root=api_root, timeout=timeout) def get_release_requests(self): new_releases = self.releases_api.getReleases() if new_releases['releases']: new_releases = [ self.release_api.getRelease(name) for name in new_releases['releases'] ] our_releases = [ r for r in new_releases if matches(r['name'], RELEASE_PATTERNS) ] if our_releases: # make sure to use long revision for r in our_releases: r["mozillaRevision"] = long_revision( r["branch"], r["mozillaRevision"]) self.new_releases = our_releases log.info("Releases to handle are %s", self.new_releases) return True else: log.info("No releases to handle in %s", new_releases) return False else: log.info("No new releases: %s" % new_releases) return False def get_release_l10n(self, release): return self.release_l10n_api.getL10n(release) def update_status(self, release, status): log.info('updating status for %s to %s' % (release['name'], status)) try: self.release_api.update(release['name'], status=status) except requests.HTTPError, e: log.warning('Caught HTTPError: %s' % e.response.content) log.warning('status update failed, continuing...', exc_info=True)
class ReleaseRunner(object): def __init__(self, api_root=None, username=None, password=None, timeout=60): self.new_releases = [] self.releases_api = Releases((username, password), api_root=api_root, timeout=timeout) self.release_api = Release((username, password), api_root=api_root, timeout=timeout) self.release_l10n_api = ReleaseL10n((username, password), api_root=api_root, timeout=timeout) def get_release_requests(self, release_patterns): new_releases = self.releases_api.getReleases() if new_releases['releases']: new_releases = [self.release_api.getRelease(name) for name in new_releases['releases']] our_releases = [r for r in new_releases if matches(r['name'], release_patterns)] if our_releases: self.new_releases = our_releases log.info("Releases to handle are %s", self.new_releases) return True else: log.info("No releases to handle in %s", new_releases) return False else: log.info("No new releases: %s" % new_releases) return False def get_release_l10n(self, release): return self.release_l10n_api.getL10n(release) def update_status(self, release, status): log.info('updating status for %s to %s' % (release['name'], status)) try: self.release_api.update(release['name'], status=status) except requests.HTTPError as e: log.warning('Caught HTTPError: %s' % e.response.content) log.warning('status update failed, continuing...', exc_info=True) def mark_as_completed(self, release): log.info('mark as completed %s' % release['name']) self.release_api.update(release['name'], complete=True, status='Started') def mark_as_failed(self, release, why): log.info('mark as failed %s' % release['name']) self.release_api.update(release['name'], ready=False, status=why)
class ReleaseRunner(object): def __init__(self, api_root=None, username=None, password=None, timeout=60): self.new_releases = [] self.releases_api = Releases((username, password), api_root=api_root, timeout=timeout) self.release_api = Release((username, password), api_root=api_root, timeout=timeout) self.release_l10n_api = ReleaseL10n((username, password), api_root=api_root, timeout=timeout) def get_release_requests(self): new_releases = self.releases_api.getReleases() if new_releases['releases']: new_releases = [self.release_api.getRelease(name) for name in new_releases['releases']] our_releases = [r for r in new_releases if matches(r['name'], RELEASE_PATTERNS)] if our_releases: # make sure to use long revision for r in our_releases: r["mozillaRevision"] = long_revision(r["branch"], r["mozillaRevision"]) self.new_releases = our_releases log.info("Releases to handle are %s", self.new_releases) return True else: log.info("No releases to handle in %s", new_releases) return False else: log.info("No new releases: %s" % new_releases) return False def get_release_l10n(self, release): return self.release_l10n_api.getL10n(release) def update_status(self, release, status): log.info('updating status for %s to %s' % (release['name'], status)) try: self.release_api.update(release['name'], status=status) except requests.HTTPError, e: log.warning('Caught HTTPError: %s' % e.response.content) log.warning('status update failed, continuing...', exc_info=True)