diff --git a/dashboard/templates/engineer_details.html b/dashboard/templates/engineer_details.html index 462bb5fcf..90aeec573 100644 --- a/dashboard/templates/engineer_details.html +++ b/dashboard/templates/engineer_details.html @@ -6,8 +6,8 @@ {% block scripts %} {% endblock %} @@ -75,12 +75,11 @@ {% include "commits_overview.html" %}

Contribution per companies:

- {% for company_info in user.companies %} + {% for company_name, company_info in companies.iteritems() %}
- {% set company_name = company_info.company_name %} {{ company_name|link('/companies/' + company_name)|safe }}: - {{ companies[company_name].commits }} commits and - {{ companies[company_name].loc }} LOC + {{ company_info.commits }} commits and + {{ company_info.loc }} LOC
{% endfor %} diff --git a/dashboard/web.py b/dashboard/web.py index 5279d14c9..ca1e78cd8 100644 --- a/dashboard/web.py +++ b/dashboard/web.py @@ -25,6 +25,7 @@ import flask from flask.ext import gravatar as gravatar_ext from oslo.config import cfg import time +from werkzeug import exceptions from dashboard import memory_storage from stackalytics.openstack.common import log as logging @@ -343,7 +344,9 @@ def exception_handler(): try: return f(*args, **kwargs) except Exception as e: - LOG.error(e) + if isinstance(e, exceptions.HTTPException): + raise # ignore Flask exceptions + LOG.exception(e) flask.abort(404) return exception_handler_decorated_function @@ -502,7 +505,8 @@ def engineer_details(user_id, records): runtime_storage_inst = get_vault()['runtime_storage'] users_index = runtime_storage_inst.get_by_key('users') if user_id not in users_index: - raise Exception('User "%s" not in index' % user_id) + LOG.info('User not found: %s', user_id) + flask.abort(404) details = contribution_details(records) details['user'] = users_index[user_id] diff --git a/etc/default_data.json b/etc/default_data.json index 0b17f921b..5bae11004 100644 --- a/etc/default_data.json +++ b/etc/default_data.json @@ -55,17 +55,6 @@ "user_name": "Kun Huang", "emails": ["gareth@unitedstack.com", "academicgareth@gmail.com"] }, - { - "launchpad_id": "adri2000", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Adrien Cunin", - "emails": ["acunin@linagora.com"] - }, { "launchpad_id": "adriansmith", "companies": [ @@ -121,17 +110,6 @@ "user_name": "Alexei Kornienko", "emails": ["alexei.kornienko@gmail.com", "akornienko@mirantis.com"] }, - { - "launchpad_id": "alexhandle", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Alex Handle", - "emails": ["ah@mynet.at"] - }, { "launchpad_id": "alexpilotti", "companies": [ @@ -143,17 +121,6 @@ "user_name": "Alessandro Pilotti", "emails": ["ap@pilotti.it"] }, - { - "launchpad_id": "andrew-mccrae", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Andy McCrae", - "emails": ["andy.mccrae@gmail.com", "andy.mccrae@googlemail.com"] - }, { "launchpad_id": "andrewbogott", "companies": [ @@ -202,17 +169,6 @@ "user_name": "Antony Messerli", "emails": ["root@debian.ohthree.com", "ant@openstack.org", "amesserl@rackspace.com"] }, - { - "launchpad_id": "arathi-darshanam", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Arathi", - "emails": ["arathi_darshanam@persistent.co.in"] - }, { "launchpad_id": "armando-migliaccio", "companies": [ @@ -235,17 +191,6 @@ "user_name": "Angus Salkeld", "emails": ["angus@salkeld.id.au", "asalkeld@redhat.com"] }, - { - "launchpad_id": "asbjorn-sannes", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Asbj\u00f8rn Sannes", - "emails": ["asbjorn.sannes@interhost.no"] - }, { "launchpad_id": "asomya", "companies": [ @@ -334,28 +279,6 @@ "user_name": "Brad Hall", "emails": ["brad@nicira.com", "bhall@nicira.com"] }, - { - "launchpad_id": "bilalakhtar", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Bilal Akhtar", - "emails": ["bilalakhtar@ubuntu.com"] - }, - { - "launchpad_id": "bkerensa", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Benjamin Kerensa", - "emails": ["bkerensa@ubuntu.com"] - }, { "launchpad_id": "bmcconne", "companies": [ @@ -404,17 +327,6 @@ "user_name": "Boris Pavlovic", "emails": ["boris@pavlovic.me"] }, - { - "launchpad_id": "briancline", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Brian Cline", - "emails": ["bcline@softlayer.com"] - }, { "launchpad_id": "broskos", "companies": [ @@ -448,28 +360,6 @@ "user_name": "Marcelo Martins", "emails": ["btorch@gmail.com", "marcelo.martins@rackspace.com"] }, - { - "launchpad_id": "burt-t", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Burt Holzman", - "emails": ["burt@fnal.gov"] - }, - { - "launchpad_id": "c-kassen", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Christoph Kassen", - "emails": ["c.kassen@telekom.de"] - }, { "launchpad_id": "cbehrens", "companies": [ @@ -503,17 +393,6 @@ "user_name": "Matt Dietz", "emails": ["matt.dietz@rackspace.com", "matthew.dietz@gmail.com", "matthewdietz@Matthew-Dietzs-MacBook-Pro.local"] }, - { - "launchpad_id": "cgoncalves", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Carlos Gon\u00e7alves", - "emails": ["cgoncalves@av.it.pt"] - }, { "launchpad_id": "chemikadze", "companies": [ @@ -551,7 +430,7 @@ "launchpad_id": "christophe.sauthier", "companies": [ { - "company_name": "*independent", + "company_name": "Objectif Libre", "end_date": null } ], @@ -584,17 +463,6 @@ "user_name": "Clint Byrum", "emails": ["clint@fewbar.com", "clint.byrum@hp.com", "clint@ubuntu.com"] }, - { - "launchpad_id": "colin-nicholson", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Colin Nicholson", - "emails": ["colin.nicholson@iomart.com"] - }, { "launchpad_id": "corvus", "companies": [ @@ -705,33 +573,11 @@ "user_name": "David Hadas", "emails": ["davidh@il.ibm.com", "david.hadas@gmail.com"] }, - { - "launchpad_id": "david-hill", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "David Hill", - "emails": ["david.hill@ubisoft.com"] - }, - { - "launchpad_id": "david-kranz", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "David Kranz", - "emails": ["david.kranz@qrclab.com"] - }, { "launchpad_id": "dazworrall", "companies": [ { - "company_name": "*independent", + "company_name": "iWeb", "end_date": null } ], @@ -760,17 +606,6 @@ "user_name": "Deepak Garg", "emails": ["deepak.garg@citrix.com", "deepakgarg.iitg@gmail.com"] }, - { - "launchpad_id": "deevi-rani", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "D LALITHA RANI", - "emails": ["deevi_rani@persistent.co.in"] - }, { "launchpad_id": "derek-morton", "companies": [ @@ -804,28 +639,6 @@ "user_name": "Devananda van der Veen", "emails": ["devananda.vdv@gmail.com"] }, - { - "launchpad_id": "devcamcar", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Devin Carlen", - "emails": ["devcamcar@illian.local", "devin.carlen@gmail.com"] - }, - { - "launchpad_id": "diego-parrilla-santamaria", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Diego Parrilla", - "emails": ["diego.parrilla@stackops.com"] - }, { "launchpad_id": "dims-v", "companies": [ @@ -1013,17 +826,6 @@ "user_name": "Ewan Mellor", "emails": ["ewan.mellor@citrix.com"] }, - { - "launchpad_id": "fghaas", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Florian Haas", - "emails": ["florian@hastexo.com"] - }, { "launchpad_id": "fifieldt", "companies": [ @@ -1142,7 +944,7 @@ "launchpad_id": "gpocentek", "companies": [ { - "company_name": "*independent", + "company_name": "Objectif Libre", "end_date": null } ], @@ -1160,17 +962,6 @@ "user_name": "Greg Lange", "emails": ["greglange@gmail.com", "glange@rackspace.com"] }, - { - "launchpad_id": "gregory-althaus", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Greg Althaus", - "emails": ["galthaus@austin.rr.com"] - }, { "launchpad_id": "gtt116", "companies": [ @@ -1248,39 +1039,6 @@ "user_name": "Hugh Saunders", "emails": ["hugh@wherenow.org"] }, - { - "launchpad_id": "hzguanqiang", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "QiangGuan", - "emails": ["hzguanqiang@corp.netease.com"] - }, - { - "launchpad_id": "hzwangpan", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "wangpan", - "emails": ["hzwangpan@corp.netease.com"] - }, - { - "launchpad_id": "hzzhoushaoyu", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Zhou ShaoYu", - "emails": ["hzzhoushaoyu@corp.netease.com"] - }, { "launchpad_id": "ilyaalekseyev", "companies": [ @@ -1347,17 +1105,6 @@ "user_name": "Ante Karamati\u0107", "emails": ["ivoks@ubuntu.com", "ante.karamatic@canonical.com"] }, - { - "launchpad_id": "jajohnson", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Jason Johnson", - "emails": ["jajohnson@softlayer.com"] - }, { "launchpad_id": "jake-hyperboledesign", "companies": [ @@ -1369,17 +1116,6 @@ "user_name": "jakedahn", "emails": ["admin@jakedahn.com", "jake@ansolabs.com"] }, - { - "launchpad_id": "james-page", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "James Page", - "emails": ["james.page@ubuntu.com"] - }, { "launchpad_id": "james-slagle", "companies": [ @@ -1479,17 +1215,6 @@ "user_name": "Josh Durgin", "emails": ["joshd@hq.newdream.net", "josh.durgin@dreamhost.com", "josh.durgin@inktank.com"] }, - { - "launchpad_id": "jens-christian-fischer", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Jens-Christian Fischer", - "emails": ["jens-christian.fischer@switch.ch"] - }, { "launchpad_id": "jiangwt100", "companies": [ @@ -1598,17 +1323,6 @@ "user_name": "John Garbutt", "emails": ["john@johngarbutt.com", "john.garbutt@rackspace.com", "john.garbutt@citrix.com"] }, - { - "launchpad_id": "jolyon", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Jolyon Brown", - "emails": ["git@limilo.com"] - }, { "launchpad_id": "jordan-pittier", "companies": [ @@ -1807,17 +1521,6 @@ "user_name": "K Jonathan Harker", "emails": ["k.jonathan.harker@hp.com"] }, - { - "launchpad_id": "krum-spencer", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Spencer Krum", - "emails": ["nibz@cat.pdx.edu"] - }, { "launchpad_id": "kshileev", "companies": [ @@ -1851,17 +1554,6 @@ "user_name": "Lakhinder Walia", "emails": ["lakhindr@hotmail.com", "lakhinder.walia@hds.com"] }, - { - "launchpad_id": "leamhall", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Leam", - "emails": ["leam.hall@mailtrust.com"] - }, { "launchpad_id": "letterj", "companies": [ @@ -1928,28 +1620,6 @@ "user_name": "Jiajun Liu", "emails": ["iamljj@gmail.com", "jiajun@unitedstack.com"] }, - { - "launchpad_id": "lmatter", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Larry Matter", - "emails": ["lmatter@coraid.com"] - }, - { - "launchpad_id": "long-wang", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "wanglong", - "emails": ["long.wang@bj.cs2c.com.cn"] - }, { "launchpad_id": "lorinh", "companies": [ @@ -1983,17 +1653,6 @@ "user_name": "Zhi Yan Liu", "emails": ["lzy.dev@gmail.com", "zhiyanl@cn.ibm.com"] }, - { - "launchpad_id": "m-koderer", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Marc Koderer", - "emails": ["m.koderer@telekom.de"] - }, { "launchpad_id": "maksimov", "companies": [ @@ -2016,17 +1675,6 @@ "user_name": "Mandar Vaze", "emails": ["mandar.vaze@vertex.co.in"] }, - { - "launchpad_id": "mandoonandy", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Andy McCallum", - "emails": ["andy@aptira.com"] - }, { "launchpad_id": "markwash", "companies": [ @@ -2229,17 +1877,6 @@ "user_name": "Nicolas Barcet", "emails": ["nicolas@barcet.com", "nick@enovance.com", "nijaba@ubuntu.com", "nick.barcet@canonical.com"] }, - { - "launchpad_id": "ning", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "ning_zhang", - "emails": ["ning@zmanda.com"] - }, { "launchpad_id": "nobodycam", "companies": [ @@ -2350,17 +1987,6 @@ "user_name": "Peter Portante", "emails": ["peter.portante@redhat.com"] }, - { - "launchpad_id": "philip-knouff", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Philip Knouff", - "emails": ["philip.knouff@mailtrust.com"] - }, { "launchpad_id": "phongdly", "companies": [ @@ -2449,17 +2075,6 @@ "user_name": "Major Hayden", "emails": ["major.hayden@rackspace.com", "major@mhtx.net"] }, - { - "launchpad_id": "ram-nalluri", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "rampradeep", - "emails": ["ram_nalluri@persistent.co.in"] - }, { "launchpad_id": "rconradharris", "companies": [ @@ -2493,28 +2108,6 @@ "user_name": "Eldar Nugaev", "emails": ["eldr@ya.ru", "enugaev@griddynamics.com", "reldan@oscloud.ru"] }, - { - "launchpad_id": "rellerreller", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Nathan Reller", - "emails": ["nathan.reller@jhuapl.edu"] - }, - { - "launchpad_id": "ripal-nathuji", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Ripal Nathuji", - "emails": ["ripal.nathuji@calxeda.com"] - }, { "launchpad_id": "rizumu", "companies": [ @@ -2592,17 +2185,6 @@ "user_name": "Robert Myers", "emails": ["robert_myers@earthlink.net", "robert.myers@rackspace.com"] }, - { - "launchpad_id": "robert-van-leeuwen", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Robert van Leeuwen", - "emails": ["robert.vanleeuwen@spilgames.com"] - }, { "launchpad_id": "rohitagarwalla", "companies": [ @@ -2636,17 +2218,6 @@ "user_name": "Rainer Toebbicke", "emails": ["rainer.toebbicke@cern.ch"] }, - { - "launchpad_id": "russell", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Russell Cloran", - "emails": ["russell@nimbula.com"] - }, { "launchpad_id": "russellb", "companies": [ @@ -2713,17 +2284,6 @@ "user_name": "Sascha Peilicke", "emails": ["saschpe@suse.de", "saschpe@gmx.de"] }, - { - "launchpad_id": "satya-patibandla", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Satyanarayana Patibandla", - "emails": ["satya.patibandla@tcs.com"] - }, { "launchpad_id": "scollins", "companies": [ @@ -2735,17 +2295,6 @@ "user_name": "Sean M. Collins", "emails": ["sean@coreitpro.com"] }, - { - "launchpad_id": "scott-devoid", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Scott Devoid", - "emails": ["devoid@anl.gov"] - }, { "launchpad_id": "sdague", "companies": [ @@ -2768,17 +2317,6 @@ "user_name": "Sean McCully", "emails": ["sean.mccully@rackspace.com"] }, - { - "launchpad_id": "seif", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Seif Lotfy", - "emails": ["s.lotfy@telekom.de"] - }, { "launchpad_id": "sergey.vilgelm", "companies": [ @@ -2823,17 +2361,6 @@ "user_name": "Simon Pasquier", "emails": ["simon.pasquier@bull.net", "pasquier.simon@gmail.com"] }, - { - "launchpad_id": "sirisha-devineni", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Sirisha Devineni", - "emails": ["sirisha_devineni@persistent.co.in"] - }, { "launchpad_id": "sleepsonthefloor", "companies": [ @@ -2900,17 +2427,6 @@ "user_name": "Sumit Naiksatam", "emails": ["sumitnaiksatam@gmail.com", "snaiksat@cisco.com"] }, - { - "launchpad_id": "soheil-h-y", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Soheil Hassas Yeganeh", - "emails": ["soheil@cs.toronto.edu"] - }, { "launchpad_id": "somikbehera", "companies": [ @@ -3014,28 +2530,6 @@ "user_name": "termie", "emails": ["termie@preciousroy.local", "github@anarkystic.com", "code@term.ie"] }, - { - "launchpad_id": "terriyu", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Terri Yu", - "emails": ["teryu@alum.mit.edu"] - }, - { - "launchpad_id": "thedodd", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Anthony Dodd", - "emails": ["adodd@vbridges.com"] - }, { "launchpad_id": "therve", "companies": [ @@ -3080,17 +2574,6 @@ "user_name": "Tim Simpson", "emails": ["tim.simpson@rackspace.com", "tim.simpson4@gmail.com"] }, - { - "launchpad_id": "toabctl", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Thomas Bechtold", - "emails": ["thomasbechtold@jpberlin.de"] - }, { "launchpad_id": "torgomatic", "companies": [ @@ -3179,17 +2662,6 @@ "user_name": "Lvov Maxim", "emails": ["usrleon@gmail.com", "mlvov@mirantis.com"] }, - { - "launchpad_id": "vaddi-kiran", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "sasikiran", - "emails": ["vaddi_kiran@persistent.co.in"] - }, { "launchpad_id": "victor-r-howard", "companies": [ @@ -3201,17 +2673,6 @@ "user_name": "Victor Howard", "emails": ["victor.r.howard@gmail.com"] }, - { - "launchpad_id": "vijaya-erukala", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Vijaya Erukala", - "emails": ["vijaya_erukala@persistent.co.in"] - }, { "launchpad_id": "vishvananda", "companies": [ @@ -3245,28 +2706,6 @@ "user_name": "Vasyl Khomenko", "emails": ["vasiliyk@yahoo-inc.com"] }, - { - "launchpad_id": "wanglong", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "drabbit", - "emails": ["wl3617@qq.com"] - }, - { - "launchpad_id": "wbatterson", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Walter Batterson", - "emails": ["wbatterson@brinkster.com"] - }, { "launchpad_id": "wenjianhn", "companies": [ @@ -3311,17 +2750,6 @@ "user_name": "Yejia Xu", "emails": ["yejia@unitedstack.com", "xyj.asmy@gmail.com"] }, - { - "launchpad_id": "yazirian", - "companies": [ - { - "company_name": "*independent", - "end_date": null - } - ], - "user_name": "Dan Dillinger", - "emails": ["dan.dillinger@sonian.net"] - }, { "launchpad_id": "yogesh-srikrishnan", "companies": [ @@ -3359,12 +2787,12 @@ "launchpad_id": "yportnova", "companies": [ { - "company_name": "Yahoo!", + "company_name": "Mirantis", "end_date": null } ], "user_name": "Yuliya Portnova", - "emails": ["yportnova@griddynamics.com", "yportnov@yahoo-inc.com"] + "emails": ["yportnova@griddynamics.com", "yportnov@yahoo-inc.com", "yportnova@mirantis.com"] }, { "launchpad_id": "yugsuo", @@ -3901,6 +3329,10 @@ "domains": ["ustack.com", "unitedstack.com"], "company_name": "UnitedStack" }, + { + "domains": ["unican.es"], + "company_name": "Universidad de Cantabria" + }, { "domains": ["umd.edu"], "company_name": "University of Maryland" diff --git a/stackalytics/processor/record_processor.py b/stackalytics/processor/record_processor.py index d2063d862..d3d7428d4 100644 --- a/stackalytics/processor/record_processor.py +++ b/stackalytics/processor/record_processor.py @@ -69,6 +69,7 @@ class RecordProcessor(object): }], } normalizer.normalize_user(user) + LOG.debug('Create new user: %s', user) return user def _get_lp_info(self, email):