)]}'
{"nova/db/sqlalchemy/migrate_repo/versions/314_add_resource_provider_tables.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"1a794ec523a8d550f39a9a35d0671f34aef53765","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        Column(\u0027step_size\u0027, Integer, nullable\u003dFalse),"},{"line_number":52,"context_line":"        Column(\u0027allocation_ratio\u0027, Float, nullable\u003dFalse),"},{"line_number":53,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":54,"context_line":"        mysql_charset\u003d\u0027utf8\u0027"},{"line_number":55,"context_line":"    )"},{"line_number":56,"context_line":"    Index(\u0027inventories_resource_provider_id_idx\u0027,"},{"line_number":57,"context_line":"          inventories.c.resource_provider_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a5ae5dd_fb60c0a6","line":54,"updated":"2016-02-08 20:20:24.000000000","message":"Wrt Cells V2, I would perhaps consider this for the API DB if we assume some resource providers not only providing resources for one single cell, but for resources across all cells (like network and volume resource providers)","commit_id":"055efdaf3c866822a6a2a8e8935e753bf269c13e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5577c6ed799dc57f9ff5eb2de76876abc5b963ea","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        Column(\u0027uuid\u0027, String(36), nullable\u003dFalse),"},{"line_number":32,"context_line":"        UniqueConstraint(\u0027uuid\u0027, name\u003d\u0027uniq_resource_providers0uuid\u0027),"},{"line_number":33,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":34,"context_line":"        mysql_charset\u003d\u0027utf8\u0027"},{"line_number":35,"context_line":"    )"},{"line_number":36,"context_line":"    # NOTE(mriedem): DB2 creates an index when a unique constraint is created"},{"line_number":37,"context_line":"    # so trying to add a second index on the name column will fail with error"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_af6bb984","line":34,"updated":"2016-02-09 11:55:00.000000000","message":"This should *not* be UTF8. This should specifically be latin1 because we are only storing UUIDs in this table.","commit_id":"5eb0ef1bb96affded435baeb239918d6d86b7ea3"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5577c6ed799dc57f9ff5eb2de76876abc5b963ea","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        Column(\u0027step_size\u0027, Integer, nullable\u003dFalse),"},{"line_number":52,"context_line":"        Column(\u0027allocation_ratio\u0027, Float, nullable\u003dFalse),"},{"line_number":53,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":54,"context_line":"        mysql_charset\u003d\u0027utf8\u0027"},{"line_number":55,"context_line":"    )"},{"line_number":56,"context_line":"    Index(\u0027inventories_resource_provider_id_idx\u0027,"},{"line_number":57,"context_line":"          inventories.c.resource_provider_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_cf68758a","line":54,"updated":"2016-02-09 11:55:00.000000000","message":"Same comment about latin1. This table deliberately has no character fields in it.","commit_id":"5eb0ef1bb96affded435baeb239918d6d86b7ea3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"840a4414de0fc38e11a8c03a103e58ba946bf52d","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        Column(\u0027step_size\u0027, Integer, nullable\u003dFalse),"},{"line_number":52,"context_line":"        Column(\u0027allocation_ratio\u0027, Float, nullable\u003dFalse),"},{"line_number":53,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":54,"context_line":"        mysql_charset\u003d\u0027utf8\u0027"},{"line_number":55,"context_line":"    )"},{"line_number":56,"context_line":"    Index(\u0027inventories_resource_provider_id_idx\u0027,"},{"line_number":57,"context_line":"          inventories.c.resource_provider_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_8baca88d","line":54,"in_reply_to":"5a5ae5dd_5da99fde","updated":"2016-02-09 14:43:49.000000000","message":"Fair enough. Good point, Jay :-)","commit_id":"5eb0ef1bb96affded435baeb239918d6d86b7ea3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7ce8f4609022519f5bc67ec433a15a3c5c6ed427","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        Column(\u0027step_size\u0027, Integer, nullable\u003dFalse),"},{"line_number":52,"context_line":"        Column(\u0027allocation_ratio\u0027, Float, nullable\u003dFalse),"},{"line_number":53,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":54,"context_line":"        mysql_charset\u003d\u0027utf8\u0027"},{"line_number":55,"context_line":"    )"},{"line_number":56,"context_line":"    Index(\u0027inventories_resource_provider_id_idx\u0027,"},{"line_number":57,"context_line":"          inventories.c.resource_provider_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_fd12cb57","line":54,"in_reply_to":"5a5ae5dd_cf68758a","updated":"2016-02-09 12:30:43.000000000","message":"While I agree with your comment (and it\u0027s a really cool opinion), I wonder if we would like to add a new field, like \"resource_name\"...","commit_id":"5eb0ef1bb96affded435baeb239918d6d86b7ea3"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2ae363af3e28d8dbb4422b4f7933eaae56b06b26","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        Column(\u0027step_size\u0027, Integer, nullable\u003dFalse),"},{"line_number":52,"context_line":"        Column(\u0027allocation_ratio\u0027, Float, nullable\u003dFalse),"},{"line_number":53,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":54,"context_line":"        mysql_charset\u003d\u0027utf8\u0027"},{"line_number":55,"context_line":"    )"},{"line_number":56,"context_line":"    Index(\u0027inventories_resource_provider_id_idx\u0027,"},{"line_number":57,"context_line":"          inventories.c.resource_provider_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_5da99fde","line":54,"in_reply_to":"5a5ae5dd_fd12cb57","updated":"2016-02-09 12:32:47.000000000","message":"No, definitely not... That is redundant information that belongs in either a lookup table (the original proposal from me had that in a lookup table at the API database layer) or as it exists in this patch series as a ResourceClassField object with lookup abilities.","commit_id":"5eb0ef1bb96affded435baeb239918d6d86b7ea3"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5577c6ed799dc57f9ff5eb2de76876abc5b963ea","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        Column(\u0027resource_class_id\u0027, Integer, nullable\u003dFalse),"},{"line_number":67,"context_line":"        Column(\u0027used\u0027, Integer, nullable\u003dFalse),"},{"line_number":68,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":69,"context_line":"        mysql_charset\u003d\u0027utf8\u0027"},{"line_number":70,"context_line":"    )"},{"line_number":71,"context_line":"    Index(\u0027allocations_resource_provider_class_id_idx\u0027,"},{"line_number":72,"context_line":"          allocations.c.resource_provider_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_6f04e1c5","line":69,"updated":"2016-02-09 11:55:00.000000000","message":"latin1.","commit_id":"5eb0ef1bb96affded435baeb239918d6d86b7ea3"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5577c6ed799dc57f9ff5eb2de76876abc5b963ea","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    for table in [resource_providers, inventories, allocations]:"},{"line_number":79,"context_line":"        table.create(checkfirst\u003dTrue)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    for stupid in (\u0027\u0027, \u0027shadow_\u0027):"},{"line_number":82,"context_line":"        uuid_column \u003d Column(\u0027uuid\u0027, String(36))"},{"line_number":83,"context_line":"        compute_nodes \u003d Table(\u0027%scompute_nodes\u0027 % stupid, meta)"},{"line_number":84,"context_line":"        compute_nodes.create_column(uuid_column)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_8f091de0","line":81,"updated":"2016-02-09 11:55:00.000000000","message":"stupid, eh? :)","commit_id":"5eb0ef1bb96affded435baeb239918d6d86b7ea3"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"aeb67577608d12178b5e3bb6556ece018529a0f4","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        Column(\u0027id\u0027, Integer, primary_key\u003dTrue, nullable\u003dFalse),"},{"line_number":31,"context_line":"        Column(\u0027uuid\u0027, String(36), nullable\u003dFalse),"},{"line_number":32,"context_line":"        UniqueConstraint(\u0027uuid\u0027, name\u003d\u0027uniq_resource_providers0uuid\u0027),"},{"line_number":33,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":34,"context_line":"    )"},{"line_number":35,"context_line":"    # NOTE(mriedem): DB2 creates an index when a unique constraint is created"},{"line_number":36,"context_line":"    # so trying to add a second index on the name column will fail with error"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a57f1b5_ddc58b5b","line":33,"updated":"2016-02-10 10:50:26.000000000","message":"Should we not be more specific about the charset here and add latin1 here?\n\nI have a feeling if we don\u0027t it might just use the default charset, which I have a feeling we set to utf8.","commit_id":"5103561c00b8cbe1a122acd9449e6b42c60409dc"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"6edde0adb54f98019987b71dca2016b65ba30991","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        Column(\u0027id\u0027, Integer, primary_key\u003dTrue, nullable\u003dFalse),"},{"line_number":31,"context_line":"        Column(\u0027uuid\u0027, String(36), nullable\u003dFalse),"},{"line_number":32,"context_line":"        UniqueConstraint(\u0027uuid\u0027, name\u003d\u0027uniq_resource_providers0uuid\u0027),"},{"line_number":33,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":34,"context_line":"    )"},{"line_number":35,"context_line":"    # NOTE(mriedem): DB2 creates an index when a unique constraint is created"},{"line_number":36,"context_line":"    # so trying to add a second index on the name column will fail with error"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a57f1b5_1daec32e","line":33,"in_reply_to":"3a57f1b5_ddc58b5b","updated":"2016-02-10 10:56:42.000000000","message":"Yeah, overenthusiastic in my trimmings. New one soon.","commit_id":"5103561c00b8cbe1a122acd9449e6b42c60409dc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2b4cb2842afb016a962fa6cdec64aeac8bfa418d","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":69,"context_line":"        mysql_charset\u003d\u0027latin1\u0027"},{"line_number":70,"context_line":"    )"},{"line_number":71,"context_line":"    Index(\u0027allocations_resource_provider_class_id_idx\u0027,"},{"line_number":72,"context_line":"          allocations.c.resource_provider_id,"},{"line_number":73,"context_line":"          allocations.c.resource_class_id)"},{"line_number":74,"context_line":"    Index(\u0027allocations_consumer_id_idx\u0027, allocations.c.consumer_id)"},{"line_number":75,"context_line":"    Index(\u0027allocations_resource_class_id_idx\u0027,"},{"line_number":76,"context_line":"          allocations.c.resource_class_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0121b8_18cafaa1","line":73,"range":{"start_line":71,"start_character":4,"end_line":73,"end_character":42},"updated":"2016-03-28 18:57:10.000000000","message":"This doesn\u0027t fit the spec or the model, it supposed to also have the \u0027used\u0027 column in it, I\u0027ve reported a bug:\n\nhttps://bugs.launchpad.net/nova/+bug/1563006","commit_id":"c5707a97fd006b709eebf2971b363330751c8de3"}],"nova/db/sqlalchemy/models.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f2a099d962e0a3292de9463ae08bc94dc5619c50","unresolved":false,"context_lines":[{"line_number":1475,"context_line":"    max_unit \u003d Column(Integer, nullable\u003dFalse)"},{"line_number":1476,"context_line":"    step_size \u003d Column(Integer, nullable\u003dFalse)"},{"line_number":1477,"context_line":"    allocation_ratio \u003d Column(Float, nullable\u003dFalse)"},{"line_number":1478,"context_line":""},{"line_number":1479,"context_line":""},{"line_number":1480,"context_line":"class Allocation(BASE, models.ModelBase):"},{"line_number":1481,"context_line":"    \"\"\"A use of inventory.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a5ae5dd_5e178744","line":1478,"updated":"2016-02-08 18:39:16.000000000","message":"Hmm, on second thought, don\u0027t we want a resource_provider relationship here?","commit_id":"1f10d7dc09aee030a42a57ea21200cf6b83cfd14"}],"nova/tests/unit/db/test_migrations.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"72e93afc14077693e16bc2a6a636b972ff6f07ad","unresolved":false,"context_lines":[{"line_number":820,"context_line":"                        [\u0027compute_node_id\u0027, \u0027parent_addr\u0027, \u0027deleted\u0027])"},{"line_number":821,"context_line":""},{"line_number":822,"context_line":"    def _check_314(self, engine, data):"},{"line_number":823,"context_line":"        self.assertColumnExists(engine, \u0027inventories\u0027, \u0027resource_class_id\u0027)"},{"line_number":824,"context_line":"        self.assertColumnExists(engine, \u0027allocations\u0027, \u0027resource_class_id\u0027)"},{"line_number":825,"context_line":""},{"line_number":826,"context_line":"        self.assertColumnExists(engine, \u0027resource_providers\u0027, \u0027id\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a57f1b5_57409a56","line":823,"range":{"start_line":823,"start_character":41,"end_line":823,"end_character":52},"updated":"2016-02-10 10:26:04.000000000","message":"here we\u0027re infering that the inventories table has been created. All looks good, I was just surprised to see the test written that way.","commit_id":"5103561c00b8cbe1a122acd9449e6b42c60409dc"}]}
