)]}'
{"ceilometer/storage/impl_sqlalchemy.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"54fd673c467797cca301216ccc84ed0e3d6676c6","unresolved":false,"context_lines":[{"line_number":466,"context_line":"    def update_alarm(self, alarm):"},{"line_number":467,"context_line":"        \"\"\"update alarm"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        :param alarm: the new Alarm to update"},{"line_number":470,"context_line":"        \"\"\""},{"line_number":471,"context_line":"        if alarm.alarm_id:"},{"line_number":472,"context_line":"            alarm_row \u003d self.session.merge(Alarm(id\u003dstr(alarm.alarm_id)))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FgiE%3D","line":469,"updated":"2013-05-07 13:27:16.000000000","message":"Why are the id values converted to str() here? Aren\u0027t they already strings?","commit_id":"f73c92e5b2949bceae6d0e04aaeff52e0e655539"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"7da55b82bee75913a8ed71282d72c5e77004c74e","unresolved":false,"context_lines":[{"line_number":466,"context_line":"    def update_alarm(self, alarm):"},{"line_number":467,"context_line":"        \"\"\"update alarm"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        :param alarm: the new Alarm to update"},{"line_number":470,"context_line":"        \"\"\""},{"line_number":471,"context_line":"        if alarm.alarm_id:"},{"line_number":472,"context_line":"            alarm_row \u003d self.session.merge(Alarm(id\u003dstr(alarm.alarm_id)))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FfbM%3D","line":469,"in_reply_to":"AAAAOn%2F%2FgiE%3D","updated":"2013-05-08 00:48:26.000000000","message":"Done","commit_id":"f73c92e5b2949bceae6d0e04aaeff52e0e655539"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"54fd673c467797cca301216ccc84ed0e3d6676c6","unresolved":false,"context_lines":[{"line_number":496,"context_line":""},{"line_number":497,"context_line":"        self.session.delete(victim)"},{"line_number":498,"context_line":""},{"line_number":499,"context_line":"        query \u003d self.session.query(Alarm)"},{"line_number":500,"context_line":"        query \u003d query.filter(Alarm.id \u003d\u003d alarm_id)"},{"line_number":501,"context_line":"        query.delete()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2Fghs%3D","line":499,"updated":"2013-05-07 13:27:16.000000000","message":"Is this doing the same delete two different ways? What\u0027s the difference between the session.delete() and query.delete()?","commit_id":"f73c92e5b2949bceae6d0e04aaeff52e0e655539"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"7da55b82bee75913a8ed71282d72c5e77004c74e","unresolved":false,"context_lines":[{"line_number":496,"context_line":""},{"line_number":497,"context_line":"        self.session.delete(victim)"},{"line_number":498,"context_line":""},{"line_number":499,"context_line":"        query \u003d self.session.query(Alarm)"},{"line_number":500,"context_line":"        query \u003d query.filter(Alarm.id \u003d\u003d alarm_id)"},{"line_number":501,"context_line":"        query.delete()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2Ffaw%3D","line":499,"in_reply_to":"AAAAOn%2F%2Fghs%3D","updated":"2013-05-08 00:48:26.000000000","message":"Yea, they look redundant.","commit_id":"f73c92e5b2949bceae6d0e04aaeff52e0e655539"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"3bb5692219f95285c10e5729cdec5f0c8d876902","unresolved":false,"context_lines":[{"line_number":490,"context_line":"        query \u003d query.filter(Alarm.id \u003d\u003d alarm_id)"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        try:"},{"line_number":493,"context_line":"            victim \u003d query.one()"},{"line_number":494,"context_line":"        except exc.NoResultFound:"},{"line_number":495,"context_line":"            return"},{"line_number":496,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fcqw%3D","line":493,"updated":"2013-05-09 10:03:27.000000000","message":"Would it be neater just to apply the deletion directly on the filtered session query? i.e.\n\n  self.session.query(Alarm).filter(Alarm.id \u003d\u003d alarm_id).delete()\n\nAlso does the session need to be flushed? (as per line 481 in the update case)","commit_id":"dd65e5afb4b95adef8170358b3cf95b76d148665"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"d2d41465ad792f6bba288e7259d114f479e6f1ed","unresolved":false,"context_lines":[{"line_number":490,"context_line":"        query \u003d query.filter(Alarm.id \u003d\u003d alarm_id)"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        try:"},{"line_number":493,"context_line":"            victim \u003d query.one()"},{"line_number":494,"context_line":"        except exc.NoResultFound:"},{"line_number":495,"context_line":"            return"},{"line_number":496,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fa2E%3D","line":493,"in_reply_to":"AAAAOn%2F%2Fcqw%3D","updated":"2013-05-10 04:23:23.000000000","message":"Done","commit_id":"dd65e5afb4b95adef8170358b3cf95b76d148665"}],"ceilometer/storage/sqlalchemy/migrate_repo/versions/007_add_alarm_table.py":[{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"3bb5692219f95285c10e5729cdec5f0c8d876902","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright © 2013 eNovance \u003clicensing@enovance.com\u003e"},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Author: Mehdi Abaakouk \u003cmehdi.abaakouk@enovance.com\u003e"},{"line_number":6,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fcqo%3D","line":3,"updated":"2013-05-09 10:03:27.000000000","message":"Add Red Hat copyright also?","commit_id":"dd65e5afb4b95adef8170358b3cf95b76d148665"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"d2d41465ad792f6bba288e7259d114f479e6f1ed","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright © 2013 eNovance \u003clicensing@enovance.com\u003e"},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Author: Mehdi Abaakouk \u003cmehdi.abaakouk@enovance.com\u003e"},{"line_number":6,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fa18%3D","line":3,"in_reply_to":"AAAAOn%2F%2Fcqo%3D","updated":"2013-05-10 04:23:23.000000000","message":"Done","commit_id":"dd65e5afb4b95adef8170358b3cf95b76d148665"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"3bb5692219f95285c10e5729cdec5f0c8d876902","unresolved":false,"context_lines":[{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright © 2013 eNovance \u003clicensing@enovance.com\u003e"},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Author: Mehdi Abaakouk \u003cmehdi.abaakouk@enovance.com\u003e"},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"# Licensed under the Apache License, Version 2.0 (the \u0027License\u0027); you may"},{"line_number":8,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fcqs%3D","line":5,"updated":"2013-05-09 10:03:27.000000000","message":"Add Angus as additional author.","commit_id":"dd65e5afb4b95adef8170358b3cf95b76d148665"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"d2d41465ad792f6bba288e7259d114f479e6f1ed","unresolved":false,"context_lines":[{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright © 2013 eNovance \u003clicensing@enovance.com\u003e"},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Author: Mehdi Abaakouk \u003cmehdi.abaakouk@enovance.com\u003e"},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"# Licensed under the Apache License, Version 2.0 (the \u0027License\u0027); you may"},{"line_number":8,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fa14%3D","line":5,"in_reply_to":"AAAAOn%2F%2Fcqs%3D","updated":"2013-05-10 04:23:23.000000000","message":"Done","commit_id":"dd65e5afb4b95adef8170358b3cf95b76d148665"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"3bb5692219f95285c10e5729cdec5f0c8d876902","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def upgrade(migrate_engine):"},{"line_number":51,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":52,"context_line":"    for i in sorted(tables):"},{"line_number":53,"context_line":"        i.create()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fcqk%3D","line":52,"updated":"2013-05-09 10:03:27.000000000","message":"Since tables has just one element, is the sorting needed? (or indeed the list \u0026 for loop)","commit_id":"dd65e5afb4b95adef8170358b3cf95b76d148665"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"d2d41465ad792f6bba288e7259d114f479e6f1ed","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def upgrade(migrate_engine):"},{"line_number":51,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":52,"context_line":"    for i in sorted(tables):"},{"line_number":53,"context_line":"        i.create()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fa10%3D","line":52,"in_reply_to":"AAAAOn%2F%2Fcqk%3D","updated":"2013-05-10 04:23:23.000000000","message":"Done","commit_id":"dd65e5afb4b95adef8170358b3cf95b76d148665"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"3bb5692219f95285c10e5729cdec5f0c8d876902","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"def downgrade(migrate_engine):"},{"line_number":57,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":58,"context_line":"    for i in sorted(tables, reverse\u003dTrue):"},{"line_number":59,"context_line":"        i.drop()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fcqg%3D","line":58,"updated":"2013-05-09 10:03:27.000000000","message":"Similarly.","commit_id":"dd65e5afb4b95adef8170358b3cf95b76d148665"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"d2d41465ad792f6bba288e7259d114f479e6f1ed","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"def downgrade(migrate_engine):"},{"line_number":57,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":58,"context_line":"    for i in sorted(tables, reverse\u003dTrue):"},{"line_number":59,"context_line":"        i.drop()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fa1w%3D","line":58,"in_reply_to":"AAAAOn%2F%2Fcqg%3D","updated":"2013-05-10 04:23:23.000000000","message":"Done","commit_id":"dd65e5afb4b95adef8170358b3cf95b76d148665"}],"ceilometer/storage/sqlalchemy/models.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"54fd673c467797cca301216ccc84ed0e3d6676c6","unresolved":false,"context_lines":[{"line_number":150,"context_line":"class Alarm(Base):"},{"line_number":151,"context_line":"    \"\"\"Alarm data\"\"\""},{"line_number":152,"context_line":"    __tablename__ \u003d \u0027alarm\u0027"},{"line_number":153,"context_line":"    id \u003d Column(String(255), primary_key\u003dTrue)"},{"line_number":154,"context_line":"    enabled \u003d Column(Boolean)"},{"line_number":155,"context_line":"    name \u003d Column(String(255))"},{"line_number":156,"context_line":"    description \u003d Column(String(255))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2Fghc%3D","line":153,"updated":"2013-05-07 13:27:16.000000000","message":"That\u0027s bigger than a UUID, right?","commit_id":"f73c92e5b2949bceae6d0e04aaeff52e0e655539"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"7da55b82bee75913a8ed71282d72c5e77004c74e","unresolved":false,"context_lines":[{"line_number":150,"context_line":"class Alarm(Base):"},{"line_number":151,"context_line":"    \"\"\"Alarm data\"\"\""},{"line_number":152,"context_line":"    __tablename__ \u003d \u0027alarm\u0027"},{"line_number":153,"context_line":"    id \u003d Column(String(255), primary_key\u003dTrue)"},{"line_number":154,"context_line":"    enabled \u003d Column(Boolean)"},{"line_number":155,"context_line":"    name \u003d Column(String(255))"},{"line_number":156,"context_line":"    description \u003d Column(String(255))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2Ffb8%3D","line":153,"in_reply_to":"AAAAOn%2F%2Fghc%3D","updated":"2013-05-08 00:48:26.000000000","message":"All the current uuid based id\u0027s are String(255) like project_id, user_id, resource_id\n I doubt it is preallocated, just a limit.\n (nova uses this for all it\u0027s uuid fields too)","commit_id":"f73c92e5b2949bceae6d0e04aaeff52e0e655539"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"54fd673c467797cca301216ccc84ed0e3d6676c6","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    __tablename__ \u003d \u0027alarm\u0027"},{"line_number":153,"context_line":"    id \u003d Column(String(255), primary_key\u003dTrue)"},{"line_number":154,"context_line":"    enabled \u003d Column(Boolean)"},{"line_number":155,"context_line":"    name \u003d Column(String(255))"},{"line_number":156,"context_line":"    description \u003d Column(String(255))"},{"line_number":157,"context_line":"    timestamp \u003d Column(DateTime, default\u003dtimeutils.utcnow)"},{"line_number":158,"context_line":"    counter_name \u003d Column(String(255))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FghU%3D","line":155,"updated":"2013-05-07 13:27:16.000000000","message":"Fixed-length name? Isn\u0027t there a generic text type that lets us not specify a max name length?","commit_id":"f73c92e5b2949bceae6d0e04aaeff52e0e655539"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"7da55b82bee75913a8ed71282d72c5e77004c74e","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    __tablename__ \u003d \u0027alarm\u0027"},{"line_number":153,"context_line":"    id \u003d Column(String(255), primary_key\u003dTrue)"},{"line_number":154,"context_line":"    enabled \u003d Column(Boolean)"},{"line_number":155,"context_line":"    name \u003d Column(String(255))"},{"line_number":156,"context_line":"    description \u003d Column(String(255))"},{"line_number":157,"context_line":"    timestamp \u003d Column(DateTime, default\u003dtimeutils.utcnow)"},{"line_number":158,"context_line":"    counter_name \u003d Column(String(255))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2Ffbw%3D","line":155,"in_reply_to":"AAAAOn%2F%2FghU%3D","updated":"2013-05-08 00:48:26.000000000","message":"yea we should use Text","commit_id":"f73c92e5b2949bceae6d0e04aaeff52e0e655539"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"54fd673c467797cca301216ccc84ed0e3d6676c6","unresolved":false,"context_lines":[{"line_number":153,"context_line":"    id \u003d Column(String(255), primary_key\u003dTrue)"},{"line_number":154,"context_line":"    enabled \u003d Column(Boolean)"},{"line_number":155,"context_line":"    name \u003d Column(String(255))"},{"line_number":156,"context_line":"    description \u003d Column(String(255))"},{"line_number":157,"context_line":"    timestamp \u003d Column(DateTime, default\u003dtimeutils.utcnow)"},{"line_number":158,"context_line":"    counter_name \u003d Column(String(255))"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FghQ%3D","line":156,"updated":"2013-05-07 13:27:16.000000000","message":"Ditto.","commit_id":"f73c92e5b2949bceae6d0e04aaeff52e0e655539"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"7da55b82bee75913a8ed71282d72c5e77004c74e","unresolved":false,"context_lines":[{"line_number":153,"context_line":"    id \u003d Column(String(255), primary_key\u003dTrue)"},{"line_number":154,"context_line":"    enabled \u003d Column(Boolean)"},{"line_number":155,"context_line":"    name \u003d Column(String(255))"},{"line_number":156,"context_line":"    description \u003d Column(String(255))"},{"line_number":157,"context_line":"    timestamp \u003d Column(DateTime, default\u003dtimeutils.utcnow)"},{"line_number":158,"context_line":"    counter_name \u003d Column(String(255))"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FfbY%3D","line":156,"in_reply_to":"AAAAOn%2F%2FghQ%3D","updated":"2013-05-08 00:48:26.000000000","message":"Done","commit_id":"f73c92e5b2949bceae6d0e04aaeff52e0e655539"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"3bb5692219f95285c10e5729cdec5f0c8d876902","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"class Alarm(Base):"},{"line_number":151,"context_line":"    \"\"\"Alarm data\"\"\""},{"line_number":152,"context_line":"    __tablename__ \u003d \u0027alarm\u0027"},{"line_number":153,"context_line":"    id \u003d Column(String(255), primary_key\u003dTrue)"},{"line_number":154,"context_line":"    enabled \u003d Column(Boolean)"},{"line_number":155,"context_line":"    name \u003d Column(Text)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FcqQ%3D","line":152,"updated":"2013-05-09 10:03:27.000000000","message":"Do we need __table_args__ also with an Index for each of the indices defined in the migration script?\n\n(That\u0027s a genuine question, beyond the limits of my knowledge on sqlalchemy)","commit_id":"dd65e5afb4b95adef8170358b3cf95b76d148665"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"d2d41465ad792f6bba288e7259d114f479e6f1ed","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"class Alarm(Base):"},{"line_number":151,"context_line":"    \"\"\"Alarm data\"\"\""},{"line_number":152,"context_line":"    __tablename__ \u003d \u0027alarm\u0027"},{"line_number":153,"context_line":"    id \u003d Column(String(255), primary_key\u003dTrue)"},{"line_number":154,"context_line":"    enabled \u003d Column(Boolean)"},{"line_number":155,"context_line":"    name \u003d Column(Text)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fa1k%3D","line":152,"in_reply_to":"AAAAOn%2F%2FcqQ%3D","updated":"2013-05-10 04:23:23.000000000","message":"That\u0027s not how the other tables seem to do things, so I am assuming no.","commit_id":"dd65e5afb4b95adef8170358b3cf95b76d148665"}]}
