def list(self, build=None, tg_errors=None, mine=False, release=None, show_expired=False, **kw): query = [] title = '%d Buildroot Overrides' if mine: show_expired = True query.append( BuildRootOverride.q.submitter == identity.current.user_name) title += ' submitted by %s' % identity.current.user_name if release: rel = Release.byName(release) query.append( BuildRootOverride.q.releaseID == rel.id) title += ' for %s' % rel.long_name if not show_expired: query.append( BuildRootOverride.q.date_expired == None) overrides = BuildRootOverride.select(AND(*query)) if request_format() == 'json': overrides = [o.__json__() for o in overrides] num_items = len(overrides) else: num_items = overrides.count() return dict(overrides=overrides, title=title % num_items, num_items=num_items, show_expired=show_expired, mine=mine)
def expire_buildroot_overrides(): """ Iterate over all of the buildroot overrides, expiring appropriately """ log.info('Running expire_buildroot_overrides job') now = datetime.utcnow() for override in BuildRootOverride.select(BuildRootOverride.q.date_expired == None): if override.expiration and now > override.expiration: log.info('Automatically expiring buildroot override: %s' % override.build) # Hack around overrides w/o a release. if not override.release: try: build = PackageBuild.byNvr(override.build) if len(build.updates): override.release = build.updates[0].release print "Fixing release for %s: %s" % (override.build, override.release.name) override.untag() override.date_expired = now else: log.error("Cannot determine release for override: %s" % override) except SQLObjectNotFound: log.error("Cannot find build for override: %s" % override) else: override.untag() override.date_expired = now log.info('expire_buildroot_overrides job complete!')
def save_db(): ## Save each release and it's metrics releases = [] for release in Release.select(): rel = {} for attr in ('name', 'long_name', 'id_prefix', 'dist_tag', 'locked', 'metrics'): rel[attr] = getattr(release, attr) releases.append(rel) updates = [] all_updates = PackageUpdate.select() progress = ProgressBar(maxValue=all_updates.count()) for update in all_updates: data = {} data['title'] = update.title data['builds'] = [(build.package.name, build.nvr) for build in update.builds] data['date_submitted'] = update.date_submitted data['date_pushed'] = update.date_pushed data['date_modified'] = update.date_modified data['release'] = [update.release.name, update.release.long_name, update.release.id_prefix, update.release.dist_tag] data['submitter'] = update.submitter data['update_id'] = hasattr(update, 'update_id') and update.update_id or update.updateid data['type'] = update.type data['karma'] = update.karma data['cves'] = [cve.cve_id for cve in update.cves] data['bugs'] = [] for bug in update.bugs: data['bugs'].append([bug.bz_id, bug.title, bug.security]) if hasattr(bug, 'parent'): data['bugs'][-1].append(bug.parent) else: data['bugs'][-1].append(False) data['status'] = update.status data['pushed'] = update.pushed data['notes'] = update.notes data['request'] = update.request data['comments'] = [(c.timestamp, c.author, c.text, c.karma, c.anonymous) for c in update.comments] if hasattr(update, 'approved'): data['approved'] = update.approved else: data['approved'] = None updates.append(data) progress() # Save all buildroot overrides overrides = [] for override in BuildRootOverride.select(): try: overrides.append(override.__json__()) except: print("Removing stray override: %s" % override) override.destroySelf() dump = file('bodhi-pickledb-%s' % time.strftime("%y%m%d.%H%M"), 'w') pickle.dump({'updates': updates, 'releases': releases, 'overrides': overrides}, dump) dump.close()
def list(self, build=None, tg_errors=None, mine=False, release=None, show_expired=False, **kw): query = [] title = '%d Buildroot Overrides' if mine: query.append( BuildRootOverride.q.submitter == identity.current.user_name) title += ' submitted by %s' % identity.current.user_name if release: rel = Release.byName(release) query.append(BuildRootOverride.q.releaseID == rel.id) title += ' for %s' % rel.long_name if not show_expired: query.append(BuildRootOverride.q.date_expired == None) overrides = BuildRootOverride.select(AND(*query)) if request_format() == 'json': overrides = [o.__json__() for o in overrides] num_items = len(overrides) else: num_items = overrides.count() return dict(overrides=overrides, title=title % num_items, num_items=num_items, show_expired=show_expired, mine=mine)
def expire_buildroot_overrides(): """ Iterate over all of the buildroot overrides, expiring appropriately """ log.info('Running expire_buildroot_overrides job') now = datetime.utcnow() for override in BuildRootOverride.select( BuildRootOverride.q.date_expired == None): if override.expiration and now > override.expiration: log.info('Automatically expiring buildroot override: %s' % override.build) # Hack around overrides w/o a release. if not override.release: try: build = PackageBuild.byNvr(override.build) if len(build.updates): override.release = build.updates[0].release print "Fixing release for %s: %s" % ( override.build, override.release.name) override.untag() override.date_expired = now else: log.error("Cannot determine release for override: %s" % override) except SQLObjectNotFound: log.error("Cannot find build for override: %s" % override) else: override.untag() override.date_expired = now log.info('expire_buildroot_overrides job complete!')
def expire_buildroot_overrides(): """ Iterate over all of the buildroot overrides, expiring appropriately """ log.info('Running expire_buildroot_overrides job') now = datetime.utcnow() for override in BuildRootOverride.select(BuildRootOverride.date_expired == None): if now > override.expiration: log.info('Automatically expiring buildroot override: %s' % override.build) override.untag() override.date_expired = now log.info('expire_buildroot_overrides job complete!')
def expire_buildroot_overrides(): """ Iterate over all of the buildroot overrides, expiring appropriately """ log.info('Running expire_buildroot_overrides job') now = datetime.utcnow() for override in BuildRootOverride.select( BuildRootOverride.date_expired == None): if now > override.expiration: log.info('Automatically expiring buildroot override: %s' % override.build) override.untag() override.date_expired = now log.info('expire_buildroot_overrides job complete!')
def main(): load_config() __connection__ = hub = PackageHub("bodhi") if len(sys.argv) != 2: print "Usage: %s <release>" % sys.argv[0] sys.exit(1) try: release = Release.byName(sys.argv[1].upper()) except SQLObjectNotFound: print "Cannot find Release '%s'" % sys.argv[1] sys.exit(1) updates = PackageUpdate.select(PackageUpdate.q.releaseID == release.id) progress = ProgressBar(maxValue=updates.count()) print "Destroying all updates, comments, and bugs associated with %s" % release.name for update in updates: for comment in update.comments: comment.destroySelf() for build in update.builds: build.destroySelf() for bug in update.bugs: if len(bug.updates) == 1: bug.destroySelf() update.destroySelf() progress() overrides = BuildRootOverride.select( BuildRootOverride.releaseID == release.id) num_overrides = overrides.count() if num_overrides: progress = ProgressBar(maxValue=num_overrides) print "Destroying all buildroot overrides associated with %s" % release.name for override in overrides: override.destroySelf() progress() release.destroySelf() hub.commit() print
def main(): load_config() __connection__ = hub = PackageHub("bodhi") if len(sys.argv) != 2: print "Usage: %s <release>" % sys.argv[0] sys.exit(1) try: release = Release.byName(sys.argv[1].upper()) except SQLObjectNotFound: print "Cannot find Release '%s'" % sys.argv[1] sys.exit(1) updates = PackageUpdate.select(PackageUpdate.q.releaseID == release.id) progress = ProgressBar(maxValue=updates.count()) print "Destroying all updates, comments, and bugs associated with %s" % release.name for update in updates: for comment in update.comments: comment.destroySelf() for build in update.builds: build.destroySelf() for bug in update.bugs: if len(bug.updates) == 1: bug.destroySelf() update.destroySelf() progress() overrides = BuildRootOverride.select(BuildRootOverride.releaseID==release.id) num_overrides = overrides.count() if num_overrides: progress = ProgressBar(maxValue=num_overrides) print "Destroying all buildroot overrides associated with %s" % release.name for override in overrides: override.destroySelf() progress() release.destroySelf() hub.commit() print
def save_db(): ## Save each release and it's metrics releases = [] for release in Release.select(): rel = {} for attr in ('name', 'long_name', 'id_prefix', 'dist_tag', 'locked', 'metrics'): rel[attr] = getattr(release, attr) releases.append(rel) updates = [] all_updates = PackageUpdate.select() progress = ProgressBar(maxValue=all_updates.count()) for update in all_updates: data = {} data['title'] = update.title data['builds'] = [(build.package.name, build.nvr) for build in update.builds] data['date_submitted'] = update.date_submitted data['date_pushed'] = update.date_pushed data['date_modified'] = update.date_modified data['release'] = [ update.release.name, update.release.long_name, update.release.id_prefix, update.release.dist_tag ] data['submitter'] = update.submitter data['update_id'] = hasattr( update, 'update_id') and update.update_id or update.updateid data['type'] = update.type data['karma'] = update.karma data['cves'] = [cve.cve_id for cve in update.cves] data['bugs'] = [] for bug in update.bugs: data['bugs'].append([bug.bz_id, bug.title, bug.security]) if hasattr(bug, 'parent'): data['bugs'][-1].append(bug.parent) else: data['bugs'][-1].append(False) data['status'] = update.status data['pushed'] = update.pushed data['notes'] = update.notes data['request'] = update.request data['comments'] = [(c.timestamp, c.author, c.text, c.karma, c.anonymous) for c in update.comments] if hasattr(update, 'approved'): data['approved'] = update.approved else: data['approved'] = None updates.append(data) progress() # Save all buildroot overrides overrides = [] for override in BuildRootOverride.select(): try: overrides.append(override.__json__()) except: print("Removing stray override: %s" % override) override.destroySelf() dump = file('bodhi-pickledb-%s' % time.strftime("%y%m%d.%H%M"), 'w') pickle.dump( { 'updates': updates, 'releases': releases, 'overrides': overrides }, dump) dump.close()