Cronjob for awarding the mirror badge.

This commit is contained in:
Ralph Bean 2013-12-19 15:56:55 +00:00
parent a9bc26b963
commit 0a836bf6af
4 changed files with 70 additions and 0 deletions

View file

@ -0,0 +1,62 @@
#!/usr/bin/env python
import __main__
# This is going to require sqlalchemy 0.8 sooner than later.
__main__.__requires__ = __requires__ = ["tahrir-api", "sqlalchemy>=0.7"]
import pkg_resources
pkg_resources.require(__requires__)
import time
from tahrir_api.dbapi import TahrirDatabase
import transaction
import logging
log = logging.getLogger()
logging.basicConfig()
import fedmsg
import fedmsg.config
fm_config = fedmsg.config.load_config()
fm_config['cert_prefix'] = 'fedbadges'
fm_config['name'] = 'relay_inbound'
fm_config['active'] = True
fedmsg.init(**fm_config)
import fedbadges.utils
def main():
url = 'https://admin.fedoraproject.org/mirrormanager/mirroradmins'
response = requests.get(url)
usernames = response.text.split()
badge = tahrir.get_badge(badge_id='mirror,-mirror-on-the-wall')
if not badge:
raise ValueError("badge does not exist")
for username in usernames:
email = username + "@fedoraproject.org"
if tahrir.assertion_exists(badge.id, email):
print email, "already has", badge.id, "skipping."
continue
time.sleep(1)
print "awarding", badge.id, "to", email
try:
transaction.begin()
tahrir.add_assertion(badge.id, email, None)
transaction.commit()
except Exception as e:
transaction.abort()
print "Failure:", e
if __name__ == '__main__':
uri = fm_config['badges_global']['database_uri']
tahrir = TahrirDatabase(
uri,
notification_callback=fedbadges.utils.notification_callback,
)
main()

View file

@ -0,0 +1 @@
20 */2 * * * fedmsg /usr/share/badges/cronjobs/award-mirror-badge >> /var/log/fedmsg/cron-award-mirror-badge.log 2>&1

View file

@ -10,6 +10,12 @@
rotate 4
weekly
}
/var/log/fedmsg/cron-award-mirror-badge.log {
missingok
notifempty
rotate 4
weekly
}
/var/log/fedmsg/cron-award-oldschool-badges.log {
missingok
notifempty

View file

@ -108,6 +108,7 @@
- award-oldschool-badges
- award-libravatar-badge
- award-flock-paparazzi-badge
- award-mirror-badge
tags:
- config
- cron