)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"4f322884f40aeaeab70faa7f402dcbfab1e5f143","unresolved":false,"context_lines":[{"line_number":10,"context_line":"be set as shared so that the rules"},{"line_number":11,"context_line":"associated with this label will be"},{"line_number":12,"context_line":"applied to all routers for all tenants."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Partially implements"},{"line_number":15,"context_line":"blueprint l3-metering-mgnt-ext"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAUH%2F9qU0%3D","line":13,"updated":"2014-02-05 09:05:51.000000000","message":"I think DocImpact should be added with the explanation about extending the metering API.","commit_id":"425484242e82e07c51edb953979cc284ad1861c7"}],"neutron/db/metering/metering_db.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"50e88cfe0248967a7c668b86ea8bfff29f01f1f6","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        return res"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def _process_sync_metering_data(self, context, labels):"},{"line_number":216,"context_line":"        all_routers \u003d None"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        routers_dict \u003d {}"},{"line_number":219,"context_line":"        for label in labels:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2Fp3w%3D","line":216,"updated":"2014-03-04 20:38:49.000000000","message":"this sounds like its use is just as a sentinel, aka a boolean flag. I think the first loop would be more readable if we used it instead of using the all_routers passing-through dictionary.","commit_id":"29a6f3e433b8c88b8df34f3ccd9f24109e022c72"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"82d3a76e7eff3d7e9b4e5e33ed760fe842a1df70","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        return res"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def _process_sync_metering_data(self, context, labels):"},{"line_number":216,"context_line":"        all_routers \u003d None"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        routers_dict \u003d {}"},{"line_number":219,"context_line":"        for label in labels:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2FiZ0%3D","line":216,"in_reply_to":"AAAAVn%2F%2FkqQ%3D","updated":"2014-03-05 14:47:39.000000000","message":"ok, but you assign it once and never use it.","commit_id":"29a6f3e433b8c88b8df34f3ccd9f24109e022c72"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"e62c982fdaa7128984b98da809db1d1c4a903715","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        return res"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def _process_sync_metering_data(self, context, labels):"},{"line_number":216,"context_line":"        all_routers \u003d None"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        routers_dict \u003d {}"},{"line_number":219,"context_line":"        for label in labels:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2FkqQ%3D","line":216,"in_reply_to":"AAAAVn%2F%2Fp3w%3D","updated":"2014-03-05 09:46:11.000000000","message":"This is more a cache than a boolean flag, to be sure to get all routers only one time.","commit_id":"29a6f3e433b8c88b8df34f3ccd9f24109e022c72"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"61068eac5a8eba96714b1d9d5dbf8ca84b290843","unresolved":false,"context_lines":[{"line_number":219,"context_line":"        for label in labels:"},{"line_number":220,"context_line":"            if label.shared:"},{"line_number":221,"context_line":"                if not all_routers:"},{"line_number":222,"context_line":"                    all_routers \u003d self._get_collection_query(context,"},{"line_number":223,"context_line":"                                                             l3_db.Router)"},{"line_number":224,"context_line":"                routers \u003d all_routers"},{"line_number":225,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_ecbda4b8","line":222,"updated":"2014-09-03 05:02:09.000000000","message":"why not have this at line 216?","commit_id":"18afdc0007bf8bb9e25ee9874a13d07f587f3796"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"83921694a6d97ed550625407eb66aa7e6b8a7fd7","unresolved":false,"context_lines":[{"line_number":219,"context_line":"        for label in labels:"},{"line_number":220,"context_line":"            if label.shared:"},{"line_number":221,"context_line":"                if not all_routers:"},{"line_number":222,"context_line":"                    all_routers \u003d self._get_collection_query(context,"},{"line_number":223,"context_line":"                                                             l3_db.Router)"},{"line_number":224,"context_line":"                routers \u003d all_routers"},{"line_number":225,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_8bdf8c68","line":222,"in_reply_to":"fa98f980_ecbda4b8","updated":"2014-09-03 14:29:43.000000000","message":"Because we don\u0027t want to make the query if \"shared\" isn\u0027t set in a label.  Once we see it we\u0027ll query and save the info for the next time through the list.\n\nBTW, this comment was on PS8 and not the latest.","commit_id":"18afdc0007bf8bb9e25ee9874a13d07f587f3796"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"d4fc01b321f39a519f3d4fa11968aeba934e95d2","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        primaryjoin\u003d\"MeteringLabel.tenant_id\u003d\u003dRouter.tenant_id\","},{"line_number":55,"context_line":"        foreign_keys\u003d\u0027MeteringLabel.tenant_id\u0027,"},{"line_number":56,"context_line":"        uselist\u003dTrue)"},{"line_number":57,"context_line":"    shared \u003d sa.Column(sa.Boolean, default\u003dFalse)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"class MeteringDbMixin(metering.MeteringPluginBase,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1abeadc6_900eee8a","line":57,"updated":"2014-08-28 13:38:59.000000000","message":"Please add server_default here to for synchronization of models with migration.","commit_id":"c4448fadbca10fc7d171460d977e75db0fdd4ea8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c4e416abea84488c9708f732a66827f2e0aa81ce","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        primaryjoin\u003d\"MeteringLabel.tenant_id\u003d\u003dRouter.tenant_id\","},{"line_number":55,"context_line":"        foreign_keys\u003d\u0027MeteringLabel.tenant_id\u0027,"},{"line_number":56,"context_line":"        uselist\u003dTrue)"},{"line_number":57,"context_line":"    shared \u003d sa.Column(sa.Boolean, default\u003dFalse)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"class MeteringDbMixin(metering.MeteringPluginBase,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1abeadc6_bb4bcb29","line":57,"in_reply_to":"1abeadc6_900eee8a","updated":"2014-08-28 13:50:28.000000000","message":"Done","commit_id":"c4448fadbca10fc7d171460d977e75db0fdd4ea8"}],"neutron/db/migration/alembic_migrations/versions/17e4ccbe7f4a_metering_label_share.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"6067078428246ae03508c91598fba67651542c4b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        return"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    op.add_column(\u0027meteringlabels\u0027, sa.Column(\u0027shared\u0027, sa.Boolean(),"},{"line_number":46,"context_line":"                                              nullable\u003dTrue))"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def downgrade(active_plugins\u003dNone, options\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2BslI%3D","line":46,"updated":"2014-02-19 18:40:55.000000000","message":"Shouldn\u0027t the default be set the same as the model?  Also, would it make sense to add a update and set shared\u003dFalse for all existing rows?","commit_id":"6dff1447d02937ff33c36cc4b5e2a0e3ed5dd07f"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"a489f782917c230f0246aab5d953e03a9375420d","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        return"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    op.add_column(\u0027meteringlabels\u0027, sa.Column(\u0027shared\u0027, sa.Boolean(),"},{"line_number":46,"context_line":"                                              nullable\u003dTrue))"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def downgrade(active_plugins\u003dNone, options\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAVn%2F%2F7CQ%3D","line":46,"in_reply_to":"AAAAUX%2F%2BslI%3D","updated":"2014-03-03 12:08:19.000000000","message":"I will fix this","commit_id":"6dff1447d02937ff33c36cc4b5e2a0e3ed5dd07f"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"50e88cfe0248967a7c668b86ea8bfff29f01f1f6","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\"\"\"metering_label_shared"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Revision ID: 17e4ccbe7f4a"},{"line_number":21,"context_line":"Revises: 2eeaf963a447"},{"line_number":22,"context_line":"Create Date: 2014-01-30 16:00:41.507154"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2Fp9o%3D","line":21,"updated":"2014-03-04 20:38:49.000000000","message":"I think this needs a new migration id: fcac4c42e2cc","commit_id":"29a6f3e433b8c88b8df34f3ccd9f24109e022c72"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"e62c982fdaa7128984b98da809db1d1c4a903715","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\"\"\"metering_label_shared"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Revision ID: 17e4ccbe7f4a"},{"line_number":21,"context_line":"Revises: 2eeaf963a447"},{"line_number":22,"context_line":"Create Date: 2014-01-30 16:00:41.507154"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2FkqM%3D","line":21,"in_reply_to":"AAAAVn%2F%2Fp9o%3D","updated":"2014-03-05 09:46:11.000000000","message":"Done","commit_id":"29a6f3e433b8c88b8df34f3ccd9f24109e022c72"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"24f3af558012b3a08155f17230c76d06d700384a","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        return"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    op.add_column(\u0027meteringlabels\u0027, sa.Column(\u0027shared\u0027, sa.Boolean(),"},{"line_number":46,"context_line":"                                              default\u003dFalse,"},{"line_number":47,"context_line":"                                              nullable\u003dTrue))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    op.execute(\"UPDATE meteringlabels SET shared\u003dFalse\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2F3VQ%3D","line":46,"updated":"2014-04-09 20:36:59.000000000","message":"default parameter here has no result, server_default should be used instead:\nhttp://alembic.readthedocs.org/en/latest/ops.html","commit_id":"0f2ce035b5761ebcd08139c945eda28ac57060a9"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"6311263d7d33bfeefe5a99638369bdc1022a5ff4","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        return"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    op.add_column(\u0027meteringlabels\u0027, sa.Column(\u0027shared\u0027, sa.Boolean(),"},{"line_number":46,"context_line":"                                              default\u003dFalse,"},{"line_number":47,"context_line":"                                              nullable\u003dTrue))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    op.execute(\"UPDATE meteringlabels SET shared\u003dFalse\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2Fvto%3D","line":46,"in_reply_to":"AAAAW3%2F%2F3VQ%3D","updated":"2014-04-10 17:09:42.000000000","message":"you\u0027re right, thx","commit_id":"0f2ce035b5761ebcd08139c945eda28ac57060a9"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"24f3af558012b3a08155f17230c76d06d700384a","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                                              default\u003dFalse,"},{"line_number":47,"context_line":"                                              nullable\u003dTrue))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    op.execute(\"UPDATE meteringlabels SET shared\u003dFalse\")"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"def downgrade(active_plugins\u003dNone, options\u003dNone):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2F3VA%3D","line":49,"updated":"2014-04-09 20:36:59.000000000","message":"...and this line should not be needed","commit_id":"0f2ce035b5761ebcd08139c945eda28ac57060a9"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"61068eac5a8eba96714b1d9d5dbf8ca84b290843","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"# Change to [\u0027*\u0027] if this migration applies to all plugins"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"migration_for_plugins \u003d [\u0027neutron.services.metering.metering_plugin.\u0027"},{"line_number":33,"context_line":"                         \u0027MeteringPlugin\u0027]"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"from alembic import op"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_2cb40cd0","line":32,"updated":"2014-09-03 05:02:09.000000000","message":"no more conditional migrations","commit_id":"18afdc0007bf8bb9e25ee9874a13d07f587f3796"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"bdd2bc2751c739dc4953d95098019c76be2ce743","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"# Change to [\u0027*\u0027] if this migration applies to all plugins"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"migration_for_plugins \u003d [\u0027neutron.services.metering.metering_plugin.\u0027"},{"line_number":33,"context_line":"                         \u0027MeteringPlugin\u0027]"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"from alembic import op"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_66f7fdf5","line":32,"in_reply_to":"fa98f980_2cb40cd0","updated":"2014-09-03 14:50:33.000000000","message":"This was already addressed in PS11.","commit_id":"18afdc0007bf8bb9e25ee9874a13d07f587f3796"}],"neutron/db/migration/alembic_migrations/versions/3c346828361e_metering_label_shared.py":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"d4fc01b321f39a519f3d4fa11968aeba934e95d2","unresolved":false,"context_lines":[{"line_number":28,"context_line":"# Change to [\u0027*\u0027] if this migration applies to all plugins"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"migration_for_plugins \u003d [\u0027neutron.services.metering.metering_plugin.\u0027"},{"line_number":31,"context_line":"                         \u0027MeteringPlugin\u0027]"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"from alembic import op"},{"line_number":34,"context_line":"import sqlalchemy as sa"}],"source_content_type":"text/x-python","patch_set":10,"id":"1abeadc6_f0d722ec","line":31,"updated":"2014-08-28 13:38:59.000000000","message":"Migrations are unconditional now. Remove all conditions from migrations.","commit_id":"c4448fadbca10fc7d171460d977e75db0fdd4ea8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c4e416abea84488c9708f732a66827f2e0aa81ce","unresolved":false,"context_lines":[{"line_number":28,"context_line":"# Change to [\u0027*\u0027] if this migration applies to all plugins"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"migration_for_plugins \u003d [\u0027neutron.services.metering.metering_plugin.\u0027"},{"line_number":31,"context_line":"                         \u0027MeteringPlugin\u0027]"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"from alembic import op"},{"line_number":34,"context_line":"import sqlalchemy as sa"}],"source_content_type":"text/x-python","patch_set":10,"id":"1abeadc6_bbc4ab92","line":31,"in_reply_to":"1abeadc6_f0d722ec","updated":"2014-08-28 13:50:28.000000000","message":"Done","commit_id":"c4448fadbca10fc7d171460d977e75db0fdd4ea8"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"d4fc01b321f39a519f3d4fa11968aeba934e95d2","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"def upgrade(active_plugins\u003dNone, options\u003dNone):"},{"line_number":41,"context_line":"    if not migration.should_run(active_plugins, migration_for_plugins):"},{"line_number":42,"context_line":"        return"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    op.add_column(\u0027meteringlabels\u0027, sa.Column(\u0027shared\u0027, sa.Boolean(),"},{"line_number":45,"context_line":"                                              server_default\u003dexpr.false(),"}],"source_content_type":"text/x-python","patch_set":10,"id":"1abeadc6_500a968a","line":42,"updated":"2014-08-28 13:38:59.000000000","message":"Remove this check.","commit_id":"c4448fadbca10fc7d171460d977e75db0fdd4ea8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c4e416abea84488c9708f732a66827f2e0aa81ce","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"def upgrade(active_plugins\u003dNone, options\u003dNone):"},{"line_number":41,"context_line":"    if not migration.should_run(active_plugins, migration_for_plugins):"},{"line_number":42,"context_line":"        return"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    op.add_column(\u0027meteringlabels\u0027, sa.Column(\u0027shared\u0027, sa.Boolean(),"},{"line_number":45,"context_line":"                                              server_default\u003dexpr.false(),"}],"source_content_type":"text/x-python","patch_set":10,"id":"1abeadc6_dbc16781","line":42,"in_reply_to":"1abeadc6_500a968a","updated":"2014-08-28 13:50:28.000000000","message":"Done","commit_id":"c4448fadbca10fc7d171460d977e75db0fdd4ea8"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"d4fc01b321f39a519f3d4fa11968aeba934e95d2","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def downgrade(active_plugins\u003dNone, options\u003dNone):"},{"line_number":50,"context_line":"    if not migration.should_run(active_plugins, migration_for_plugins):"},{"line_number":51,"context_line":"        return"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    op.drop_column(\u0027meteringlabels\u0027, \u0027shared\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1abeadc6_d0f5c683","line":51,"updated":"2014-08-28 13:38:59.000000000","message":"the same.","commit_id":"c4448fadbca10fc7d171460d977e75db0fdd4ea8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c4e416abea84488c9708f732a66827f2e0aa81ce","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def downgrade(active_plugins\u003dNone, options\u003dNone):"},{"line_number":50,"context_line":"    if not migration.should_run(active_plugins, migration_for_plugins):"},{"line_number":51,"context_line":"        return"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    op.drop_column(\u0027meteringlabels\u0027, \u0027shared\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1abeadc6_1bb83f10","line":51,"in_reply_to":"1abeadc6_d0f5c683","updated":"2014-08-28 13:50:28.000000000","message":"Done","commit_id":"c4448fadbca10fc7d171460d977e75db0fdd4ea8"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"98a679e6e798e88de9b0a7d272b0149f2faf70e5","unresolved":false,"context_lines":[{"line_number":33,"context_line":"def upgrade(active_plugins\u003dNone, options\u003dNone):"},{"line_number":34,"context_line":"    op.add_column(\u0027meteringlabels\u0027, sa.Column(\u0027shared\u0027, sa.Boolean(),"},{"line_number":35,"context_line":"                                              server_default\u003dexpr.false(),"},{"line_number":36,"context_line":"                                              nullable\u003dTrue))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def downgrade(active_plugins\u003dNone, options\u003dNone):"}],"source_content_type":"text/x-python","patch_set":15,"id":"fa98f980_5e32c15f","line":36,"updated":"2014-09-03 17:25:32.000000000","message":"Why is nulllable\u003dTrue needed? In the model, nullable is not specified and I think the default value of nullable is False.","commit_id":"be718ea470ca8b355d42a7e5e314f18ea9ba1ebd"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e5cdc51e6fe03b39dde48c536b7fe771b3a83d6d","unresolved":false,"context_lines":[{"line_number":33,"context_line":"def upgrade(active_plugins\u003dNone, options\u003dNone):"},{"line_number":34,"context_line":"    op.add_column(\u0027meteringlabels\u0027, sa.Column(\u0027shared\u0027, sa.Boolean(),"},{"line_number":35,"context_line":"                                              server_default\u003dexpr.false(),"},{"line_number":36,"context_line":"                                              nullable\u003dTrue))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def downgrade(active_plugins\u003dNone, options\u003dNone):"}],"source_content_type":"text/x-python","patch_set":15,"id":"fa98f980_b3867ed9","line":36,"in_reply_to":"fa98f980_5e32c15f","updated":"2014-09-03 20:01:04.000000000","message":"From sqlalchemy/schema.py:\n\n        :param nullable: If set to the default of ``True``, indicates the \n            column will be rendered as allowing NULL, else it\u0027s rendered as\n            NOT NULL. This parameter is only used when issuing CREATE TABLE\n            statements.\n\nI\u0027m inclined to leave this as-is.","commit_id":"be718ea470ca8b355d42a7e5e314f18ea9ba1ebd"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f36aaf87b23b33a7ce7d2a883c4d1610ced520ee","unresolved":false,"context_lines":[{"line_number":33,"context_line":"def upgrade(active_plugins\u003dNone, options\u003dNone):"},{"line_number":34,"context_line":"    op.add_column(\u0027meteringlabels\u0027, sa.Column(\u0027shared\u0027, sa.Boolean(),"},{"line_number":35,"context_line":"                                              server_default\u003dexpr.false(),"},{"line_number":36,"context_line":"                                              nullable\u003dTrue))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def downgrade(active_plugins\u003dNone, options\u003dNone):"}],"source_content_type":"text/x-python","patch_set":15,"id":"fa98f980_5b5648cf","line":36,"in_reply_to":"fa98f980_b3867ed9","updated":"2014-09-03 20:37:07.000000000","message":"Got it. Thanks for the clarification.","commit_id":"be718ea470ca8b355d42a7e5e314f18ea9ba1ebd"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"9b6297391429e37c05eb289f4a4696fa45258ee8","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def upgrade(active_plugins\u003dNone, options\u003dNone):"},{"line_number":34,"context_line":"    op.add_column(\u0027meteringlabels\u0027, sa.Column(\u0027shared\u0027, sa.Boolean(),"},{"line_number":35,"context_line":"                                              server_default\u003dexpr.false(),"},{"line_number":36,"context_line":"                                              nullable\u003dTrue))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"fa98f980_8aea1472","line":35,"updated":"2014-09-12 09:31:27.000000000","message":"Could be used sa.sql.false()","commit_id":"53da5159b21e79ae0e9d6b343551a5cda9a23aa8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"9cd1a948d83e48bc975434f194b720f47864b948","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def upgrade(active_plugins\u003dNone, options\u003dNone):"},{"line_number":34,"context_line":"    op.add_column(\u0027meteringlabels\u0027, sa.Column(\u0027shared\u0027, sa.Boolean(),"},{"line_number":35,"context_line":"                                              server_default\u003dexpr.false(),"},{"line_number":36,"context_line":"                                              nullable\u003dTrue))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"fa98f980_76c87322","line":35,"in_reply_to":"fa98f980_8aea1472","updated":"2014-09-12 15:41:08.000000000","message":"Done","commit_id":"53da5159b21e79ae0e9d6b343551a5cda9a23aa8"}],"neutron/extensions/metering.py":[{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"3d3818c9512c543d327ad1bc27e2844fa6a05c93","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        \u0027tenant_id\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":59,"context_line":"                      \u0027required_by_policy\u0027: True,"},{"line_number":60,"context_line":"                      \u0027is_visible\u0027: True},"},{"line_number":61,"context_line":"        \u0027shared\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,"},{"line_number":62,"context_line":"                   \u0027is_visible\u0027: True, \u0027default\u0027: False,"},{"line_number":63,"context_line":"                   \u0027convert_to\u0027: attr.convert_to_boolean}"},{"line_number":64,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9%2FXo%3D","line":61,"updated":"2014-01-31 09:31:21.000000000","message":"allow_put: True indicates that the attribute can be updated.\nHowever there are no update_ methods for metering labels at all.\nBtw, it applies to other attributes of metering_labels","commit_id":"58716401a431c3c360de78f12994059da4872036"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"6067078428246ae03508c91598fba67651542c4b","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        \u0027id\u0027: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"},{"line_number":52,"context_line":"               \u0027is_visible\u0027: True,"},{"line_number":53,"context_line":"               \u0027primary_key\u0027: True},"},{"line_number":54,"context_line":"        \u0027name\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":55,"context_line":"                 \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":56,"context_line":"        \u0027description\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":57,"context_line":"                        \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2Bskk%3D","line":54,"updated":"2014-02-19 18:40:55.000000000","message":"What is the reason for no longer allowing the name to be changed?","commit_id":"6dff1447d02937ff33c36cc4b5e2a0e3ed5dd07f"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"da6273c772771c323b1b08d3719921a6bbde5457","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        \u0027id\u0027: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"},{"line_number":52,"context_line":"               \u0027is_visible\u0027: True,"},{"line_number":53,"context_line":"               \u0027primary_key\u0027: True},"},{"line_number":54,"context_line":"        \u0027name\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":55,"context_line":"                 \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":56,"context_line":"        \u0027description\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":57,"context_line":"                        \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2Bl%2F8%3D","line":54,"in_reply_to":"AAAAUX%2F%2Bskk%3D","updated":"2014-02-20 10:02:23.000000000","message":"It was a comment on PS 3 that there are no update_ methods for metering labels. This probably should be fixed in a separate patch.","commit_id":"6dff1447d02937ff33c36cc4b5e2a0e3ed5dd07f"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"6067078428246ae03508c91598fba67651542c4b","unresolved":false,"context_lines":[{"line_number":53,"context_line":"               \u0027primary_key\u0027: True},"},{"line_number":54,"context_line":"        \u0027name\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":55,"context_line":"                 \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":56,"context_line":"        \u0027description\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":57,"context_line":"                        \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":58,"context_line":"        \u0027tenant_id\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":59,"context_line":"                      \u0027required_by_policy\u0027: True,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2Bsk0%3D","line":56,"updated":"2014-02-19 18:40:55.000000000","message":"What is the reason for no longer changing the description?","commit_id":"6dff1447d02937ff33c36cc4b5e2a0e3ed5dd07f"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"a489f782917c230f0246aab5d953e03a9375420d","unresolved":false,"context_lines":[{"line_number":53,"context_line":"               \u0027primary_key\u0027: True},"},{"line_number":54,"context_line":"        \u0027name\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":55,"context_line":"                 \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":56,"context_line":"        \u0027description\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":57,"context_line":"                        \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":58,"context_line":"        \u0027tenant_id\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":59,"context_line":"                      \u0027required_by_policy\u0027: True,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAVn%2F%2F7Cc%3D","line":56,"in_reply_to":"AAAAUX%2F%2Bsk0%3D","updated":"2014-03-03 12:08:19.000000000","message":"As Oleg said there is no update methods, will be addressed in another patch.","commit_id":"6dff1447d02937ff33c36cc4b5e2a0e3ed5dd07f"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"50e88cfe0248967a7c668b86ea8bfff29f01f1f6","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        \u0027id\u0027: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"},{"line_number":52,"context_line":"               \u0027is_visible\u0027: True,"},{"line_number":53,"context_line":"               \u0027primary_key\u0027: True},"},{"line_number":54,"context_line":"        \u0027name\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":55,"context_line":"                 \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":56,"context_line":"        \u0027description\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":57,"context_line":"                        \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2Fp3M%3D","line":54,"updated":"2014-03-04 20:38:49.000000000","message":"are we okay changing the API here?","commit_id":"29a6f3e433b8c88b8df34f3ccd9f24109e022c72"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"82d3a76e7eff3d7e9b4e5e33ed760fe842a1df70","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        \u0027id\u0027: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"},{"line_number":52,"context_line":"               \u0027is_visible\u0027: True,"},{"line_number":53,"context_line":"               \u0027primary_key\u0027: True},"},{"line_number":54,"context_line":"        \u0027name\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":55,"context_line":"                 \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":56,"context_line":"        \u0027description\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":57,"context_line":"                        \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2FiYU%3D","line":54,"in_reply_to":"AAAAVn%2F%2FksU%3D","updated":"2014-03-05 14:47:39.000000000","message":"now, what about the future?","commit_id":"29a6f3e433b8c88b8df34f3ccd9f24109e022c72"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"e62c982fdaa7128984b98da809db1d1c4a903715","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        \u0027id\u0027: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"},{"line_number":52,"context_line":"               \u0027is_visible\u0027: True,"},{"line_number":53,"context_line":"               \u0027primary_key\u0027: True},"},{"line_number":54,"context_line":"        \u0027name\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":55,"context_line":"                 \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":56,"context_line":"        \u0027description\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":57,"context_line":"                        \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2FksU%3D","line":54,"in_reply_to":"AAAAVn%2F%2Fp3M%3D","updated":"2014-03-05 09:46:11.000000000","message":"I think, there no update methods","commit_id":"29a6f3e433b8c88b8df34f3ccd9f24109e022c72"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"50e88cfe0248967a7c668b86ea8bfff29f01f1f6","unresolved":false,"context_lines":[{"line_number":53,"context_line":"               \u0027primary_key\u0027: True},"},{"line_number":54,"context_line":"        \u0027name\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":55,"context_line":"                 \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":56,"context_line":"        \u0027description\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":57,"context_line":"                        \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":58,"context_line":"        \u0027tenant_id\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":59,"context_line":"                      \u0027required_by_policy\u0027: True,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2Fp3A%3D","line":56,"updated":"2014-03-04 20:38:49.000000000","message":"and here? Are these part of this patch?","commit_id":"29a6f3e433b8c88b8df34f3ccd9f24109e022c72"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"e62c982fdaa7128984b98da809db1d1c4a903715","unresolved":false,"context_lines":[{"line_number":53,"context_line":"               \u0027primary_key\u0027: True},"},{"line_number":54,"context_line":"        \u0027name\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":55,"context_line":"                 \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":56,"context_line":"        \u0027description\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":57,"context_line":"                        \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":58,"context_line":"        \u0027tenant_id\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":59,"context_line":"                      \u0027required_by_policy\u0027: True,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2FksQ%3D","line":56,"in_reply_to":"AAAAVn%2F%2Fp3A%3D","updated":"2014-03-05 09:46:11.000000000","message":"same","commit_id":"29a6f3e433b8c88b8df34f3ccd9f24109e022c72"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"40ea9c7ad5b60688cf6ea282c1a702c4f14db4ef","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        \u0027tenant_id\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":59,"context_line":"                      \u0027required_by_policy\u0027: True,"},{"line_number":60,"context_line":"                      \u0027is_visible\u0027: True},"},{"line_number":61,"context_line":"        \u0027shared\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":62,"context_line":"                   \u0027is_visible\u0027: True, \u0027default\u0027: False,"},{"line_number":63,"context_line":"                   \u0027convert_to\u0027: attr.convert_to_boolean}"},{"line_number":64,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_0c445272","line":61,"updated":"2014-07-07 12:55:25.000000000","message":"Seems like we need a policy.json file change to limit this admins.  right?","commit_id":"18afdc0007bf8bb9e25ee9874a13d07f587f3796"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"216bee5e70d8d9f85d79228875e53c86833b6fd4","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        \u0027tenant_id\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":59,"context_line":"                      \u0027required_by_policy\u0027: True,"},{"line_number":60,"context_line":"                      \u0027is_visible\u0027: True},"},{"line_number":61,"context_line":"        \u0027shared\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":62,"context_line":"                   \u0027is_visible\u0027: True, \u0027default\u0027: False,"},{"line_number":63,"context_line":"                   \u0027convert_to\u0027: attr.convert_to_boolean}"},{"line_number":64,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_6a9bca65","line":61,"in_reply_to":"baada198_0c445272","updated":"2014-07-08 10:18:53.000000000","message":"Is it not handle by the current policy, which limits all operations to the admins ?","commit_id":"18afdc0007bf8bb9e25ee9874a13d07f587f3796"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"fa60b54b79af27a82d0dc55414a27d8a650f4ece","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        \u0027tenant_id\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":59,"context_line":"                      \u0027required_by_policy\u0027: True,"},{"line_number":60,"context_line":"                      \u0027is_visible\u0027: True},"},{"line_number":61,"context_line":"        \u0027shared\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":62,"context_line":"                   \u0027is_visible\u0027: True, \u0027default\u0027: False,"},{"line_number":63,"context_line":"                   \u0027convert_to\u0027: attr.convert_to_boolean}"},{"line_number":64,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_a5219b4e","line":61,"in_reply_to":"baada198_6a9bca65","updated":"2014-07-15 13:35:29.000000000","message":"Agree with Sylvain, all metering operations are currently limited to admins.","commit_id":"18afdc0007bf8bb9e25ee9874a13d07f587f3796"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"98a679e6e798e88de9b0a7d272b0149f2faf70e5","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        \u0027id\u0027: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"},{"line_number":52,"context_line":"               \u0027is_visible\u0027: True,"},{"line_number":53,"context_line":"               \u0027primary_key\u0027: True},"},{"line_number":54,"context_line":"        \u0027name\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":55,"context_line":"                 \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":56,"context_line":"        \u0027description\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":57,"context_line":"                        \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"}],"source_content_type":"text/x-python","patch_set":15,"id":"fa98f980_3ec97d26","line":54,"updated":"2014-09-03 17:25:32.000000000","message":"Could you put a note that allow_put is changed to False and its background. I read the comment in the past reviews and understand there is no update methods and allow_put is set to False. I agree this but a note in the commit message help us understand why later.","commit_id":"be718ea470ca8b355d42a7e5e314f18ea9ba1ebd"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e5cdc51e6fe03b39dde48c536b7fe771b3a83d6d","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        \u0027id\u0027: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"},{"line_number":52,"context_line":"               \u0027is_visible\u0027: True,"},{"line_number":53,"context_line":"               \u0027primary_key\u0027: True},"},{"line_number":54,"context_line":"        \u0027name\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":55,"context_line":"                 \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":56,"context_line":"        \u0027description\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":57,"context_line":"                        \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"}],"source_content_type":"text/x-python","patch_set":15,"id":"fa98f980_a5271111","line":54,"in_reply_to":"fa98f980_3ec97d26","updated":"2014-09-03 20:01:04.000000000","message":"I will put a comment in the changelog to this effect.","commit_id":"be718ea470ca8b355d42a7e5e314f18ea9ba1ebd"}],"neutron/tests/unit/services/metering/test_metering_plugin.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"61068eac5a8eba96714b1d9d5dbf8ca84b290843","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        tenant_id_2 \u003d \u00278a268a58-1610-4890-87e0-07abb8231206\u0027"},{"line_number":136,"context_line":"        with self.router(name\u003d\u0027router1\u0027, tenant_id\u003dself.tenant_id,"},{"line_number":137,"context_line":"                         set_context\u003dTrue):"},{"line_number":138,"context_line":"            with self.metering_label(tenant_id\u003dself.tenant_id,"},{"line_number":139,"context_line":"                                     set_context\u003dTrue):"},{"line_number":140,"context_line":"                self.mock_uuid.return_value \u003d second_uuid"},{"line_number":141,"context_line":"                with self.metering_label(tenant_id\u003dtenant_id_2, shared\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_0caf487e","line":138,"updated":"2014-09-03 05:02:09.000000000","message":"use \"with contextlib.nested\" so these don\u0027t look like a staircase :-)","commit_id":"18afdc0007bf8bb9e25ee9874a13d07f587f3796"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"bdd2bc2751c739dc4953d95098019c76be2ce743","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        tenant_id_2 \u003d \u00278a268a58-1610-4890-87e0-07abb8231206\u0027"},{"line_number":136,"context_line":"        with self.router(name\u003d\u0027router1\u0027, tenant_id\u003dself.tenant_id,"},{"line_number":137,"context_line":"                         set_context\u003dTrue):"},{"line_number":138,"context_line":"            with self.metering_label(tenant_id\u003dself.tenant_id,"},{"line_number":139,"context_line":"                                     set_context\u003dTrue):"},{"line_number":140,"context_line":"                self.mock_uuid.return_value \u003d second_uuid"},{"line_number":141,"context_line":"                with self.metering_label(tenant_id\u003dtenant_id_2, shared\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_a671e577","line":138,"in_reply_to":"fa98f980_0caf487e","updated":"2014-09-03 14:50:33.000000000","message":"Since this test was basically a copy/paste of another one in this file, I\u0027d rather leave a contextlib.nested cleanup for another time.","commit_id":"18afdc0007bf8bb9e25ee9874a13d07f587f3796"}]}
