From eb0a7caf455615906c3c0910bb0b3c0756115bc5 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Fri, 18 May 2018 10:19:58 +0200 Subject: [PATCH] Make the badge SAR script working according to the set standards Signed-off-by: Pierre-Yves Chibon --- .../backend/files/get-sar-person-details | 46 +++++++------------ 1 file changed, 17 insertions(+), 29 deletions(-) diff --git a/roles/badges/backend/files/get-sar-person-details b/roles/badges/backend/files/get-sar-person-details index 2d9f4cf4bf..2e18536912 100644 --- a/roles/badges/backend/files/get-sar-person-details +++ b/roles/badges/backend/files/get-sar-person-details @@ -2,37 +2,26 @@ """ This is a CLI script for getting all the details of a person """ +from __future__ import print_function + import __main__ __main__.__requires__ = __requires__ = ["tahrir-api", "sqlalchemy>=0.7"] import pkg_resources pkg_resources.require(__requires__) -import argparse import json import os import sys from tahrir_api.dbapi import TahrirDatabase -import fedmsg import fedmsg.config import fedbadges.utils -def parse_args(): - parser = argparse.ArgumentParser(__doc__) - parser.add_argument('--person', default=None, help="A person FAS username") - args = parser.parser_args() - return args - - def initialize(): fm_config = fedmsg.config.load_config() - fm_config['cert_prefix'] = 'fedbadges' - fm_config['name'] = 'relay_inbound' - fm_config['active'] = True - fedmsg.init(**fm_config) uri = fm_config['badges_global']['database_uri'] tahrir = TahrirDatabase( uri, @@ -41,13 +30,19 @@ def initialize(): return tahrir -def main(tahrir, nickname): +def main(): + tahrir = initialize() + nickname = os.getenv('SAR_USERNAME') + if not nickname: + print('An username is required to query datagrepper') + return 1 + payload = {} person = tahrir.get_person(nickname=nickname) if not person: print 'No such person %r' % nickname - sys.exit(1) + return 1 payload = { 'id': person.id, @@ -55,8 +50,8 @@ def main(tahrir, nickname): 'email': person.email, 'website': person.website, 'bio': person.bio, - 'created_on': person.created_on, - 'last_login': person.last_login, + 'created_on': person.created_on.isoformat(), + 'last_login': person.last_login.isoformat(), 'opt_out': person.opt_out, 'rank': person.rank, 'assertions': [] @@ -69,23 +64,16 @@ def main(tahrir, nickname): for assertion in assertions: assertion_list.append({ 'badge_id': assertion.badge_id, - 'issued_on': assertion.issued_on + 'issued_on': assertion.issued_on.isoformat() }) payload['assertions'] = assertion_list - print json.dumps(payload) + print(json.dumps( + payload, sort_keys=True, indent=4, separators=(',', ': ') + ).encode('utf-8')) if __name__ == '__main__': - args = parse_args() - if not args.person: - nickname = os.environ['BADGE_USER'] - if nickname is None: - print "You must specify a person id." - sys.exit(1) - else: - nickname = args.person + sys.exit(main()) - tahrir = initialize() - main(tahrir, nickname)