def handle_monitor_toggle(self, msg): status = msg['msg']['status'] name = msg['msg']['package']['name'] homepage = msg['msg']['package']['upstream_url'] self.log.info("Considering monitored %r with %r" % (name, homepage)) if not status: self.log.info(".. but it was turned off. Dropping.") return anitya = hotness.anitya.Anitya(self.anitya_url) results = anitya.search(name, homepage) total = results['total'] if total > 1: self.log.info("%i projects with %r %r already exist in anitya." % ( total, name, homepage)) return elif total == 1: # The project might exist in anitya, but it might not be mapped to # a Fedora package yet, so map it if necessary. project = results['projects'][0] anitya.login(self.anitya_username, self.anitya_password) reason = None try: anitya.map_new_package(name, project) except hotness.anitya.AnityaException as e: reason = str(e) self.publish("project.map", msg=dict( trigger=msg, project=project, success=not bool(reason), reason=reason)) # After mapping, force a check for new tarballs anitya.force_check(project) else: # OTHERWISE, there is *nothing* on anitya about it, so add one. self.log.info("Saw 0 matching projects on anitya. Adding.") anitya.login(self.anitya_username, self.anitya_password) reason = None try: anitya.add_new_project(name, homepage) except hotness.anitya.AnityaException as e: reason = str(e) self.publish("project.map", msg=dict( trigger=msg, success=not bool(reason), reason=reason))
def handle_new_package(self, msg): listing = msg['msg']['package_listing'] if listing['collection']['branchname'] != 'master': self.log.debug("Ignoring non-rawhide new package...") return name = listing['package']['name'] homepage = listing['package']['upstream_url'] self.log.info("Considering new package %r with %r" % (name, homepage)) anitya = hotness.anitya.Anitya(self.anitya_url) results = anitya.search(name, homepage) projects = results['projects'] total = results['total'] if total > 1: self.log.warning("Fail. %i matching projects on anitya." % total) self.publish("project.map", msg=dict( trigger=msg, total=total, success=False)) elif total == 1: self.log.info("Found one match on Anitya.") project = projects[0] anitya.login(self.anitya_username, self.anitya_password) reason = None try: anitya.map_new_package(name, project) except hotness.anitya.AnityaException as e: reason = str(e) self.publish("project.map", msg=dict( trigger=msg, project=project, success=not bool(reason), reason=reason)) else: self.log.info("Saw 0 matching projects on anitya. Adding.") anitya.login(self.anitya_username, self.anitya_password) reason = None try: anitya.add_new_project(name, homepage) except hotness.anitya.AnityaException as e: reason = str(e) self.publish("project.map", msg=dict( trigger=msg, success=not bool(reason), reason=reason))
def handle_new_package(self, msg): listing = msg['msg']['package_listing'] if listing['collection']['branchname'] != 'master': self.log.debug("Ignoring non-rawhide new package...") return name = listing['package']['name'] homepage = listing['package']['upstream_url'] self.log.info("Considering new package %r with %r" % (name, homepage)) anitya = hotness.anitya.Anitya(self.anitya_url) results = anitya.search(name, homepage) projects = results['projects'] total = results['total'] if total > 1: self.log.warning("Fail. %i matching projects on anitya." % total) self.publish("project.map", msg=dict(trigger=msg, total=total, success=False)) return elif total == 1: self.log.info("Found one match on Anitya.") project = projects[0] anitya.login(self.anitya_username, self.anitya_password) success = anitya.map_new_package(name, project) self.publish("project.map", msg=dict(trigger=msg, project=project, success=success)) return # ... else self.log.info("Saw 0 matching projects on anitya. Attempting to add.") anitya.login(self.anitya_username, self.anitya_password) success = anitya.add_new_project(name, homepage) self.publish("project.map", msg=dict(trigger=msg, success=success))