)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d542855340f532f4f7c4d7c236ab220fdc842d3d","unresolved":false,"context_lines":[{"line_number":12,"context_line":"The traits table is used to represent the trait. The resource_provider_traits"},{"line_number":13,"context_line":"table is used to represent the relationship between trait and resource provider."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Part of implementation blueprint resource-provider-traits"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I5c34bdd1423beab53cc4af45e016d9a9bba5ffda"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"ba2be162_d42bf231","line":15,"updated":"2017-02-28 21:54:38.000000000","message":"In order to move this along faster, can we change this to be tracked against the shared-resources-pike blueprint?\n\nhttps://blueprints.launchpad.net/nova/+spec/shared-resources-pike\n\nThat\u0027s what has an immediate need for this change and we talked about at the PTG. That would also decouple this from the larger spec on traits which is going to be slower to move forward because of the review about the scheduler interaction and REST API.","commit_id":"6bea5b98cc168d760049f6d756784a739b0bce4a"}],"nova/db/sqlalchemy/api_migrations/migrate_repo/versions/041_resource_provider_traits.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"011c0e8ead5cd9727a4b5cfdf89b677ee95b344f","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        Column(\u0027id\u0027, Integer, primary_key\u003dTrue, nullable\u003dFalse,"},{"line_number":42,"context_line":"               autoincrement\u003dTrue),"},{"line_number":43,"context_line":"        Column(\u0027name\u0027, Unicode(255, **nameargs), nullable\u003dFalse),"},{"line_number":44,"context_line":"        UniqueConstraint(\u0027name\u0027, name\u003d\u0027uniq_traits0name\u0027),"},{"line_number":45,"context_line":"        Index(\u0027traits_name_idx\u0027, \u0027name\u0027),"},{"line_number":46,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":47,"context_line":"        mysql_charset\u003d\u0027latin1\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"da36d5c6_8a7f03aa","line":44,"updated":"2017-02-23 16:25:55.000000000","message":"Adding a unique constraint automatically adds an index, so there is no need for another index on name on line 45. This will just result in two indexes created on name for MySQL...","commit_id":"aad2f0371b1739f99215e49e5422abe7e85d448c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"ef75d32f72fcb9a1932c3f9a2f6bb7593de465c5","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        Column(\u0027id\u0027, Integer, primary_key\u003dTrue, nullable\u003dFalse,"},{"line_number":42,"context_line":"               autoincrement\u003dTrue),"},{"line_number":43,"context_line":"        Column(\u0027name\u0027, Unicode(255, **nameargs), nullable\u003dFalse),"},{"line_number":44,"context_line":"        UniqueConstraint(\u0027name\u0027, name\u003d\u0027uniq_traits0name\u0027),"},{"line_number":45,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":46,"context_line":"        mysql_charset\u003d\u0027latin1\u0027"},{"line_number":47,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba2be162_9730ae09","line":44,"updated":"2017-02-28 15:17:26.000000000","message":"Given we would sync using os-traits, looks to me good to constraint on naming, but we also maybe need to discuss later on the namespacing.","commit_id":"6bea5b98cc168d760049f6d756784a739b0bce4a"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"ef75d32f72fcb9a1932c3f9a2f6bb7593de465c5","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        Column(\u0027name\u0027, Unicode(255, **nameargs), nullable\u003dFalse),"},{"line_number":44,"context_line":"        UniqueConstraint(\u0027name\u0027, name\u003d\u0027uniq_traits0name\u0027),"},{"line_number":45,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":46,"context_line":"        mysql_charset\u003d\u0027latin1\u0027"},{"line_number":47,"context_line":"    )"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    resource_provider_traits \u003d Table("}],"source_content_type":"text/x-python","patch_set":11,"id":"ba2be162_4210364f","line":46,"range":{"start_line":46,"start_character":22,"end_line":46,"end_character":30},"updated":"2017-02-28 15:17:26.000000000","message":"I guess we set the collation to latin1 here for performance and memory reasons, right ? (ie. we only need unicoded utf-8 on the name column)","commit_id":"6bea5b98cc168d760049f6d756784a739b0bce4a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b5d8f0e4515aff04801941e9149f570679c41fa3","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        Column(\u0027name\u0027, Unicode(255, **nameargs), nullable\u003dFalse),"},{"line_number":44,"context_line":"        UniqueConstraint(\u0027name\u0027, name\u003d\u0027uniq_traits0name\u0027),"},{"line_number":45,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":46,"context_line":"        mysql_charset\u003d\u0027latin1\u0027"},{"line_number":47,"context_line":"    )"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    resource_provider_traits \u003d Table("}],"source_content_type":"text/x-python","patch_set":11,"id":"ba2be162_3417ee52","line":46,"range":{"start_line":46,"start_character":22,"end_line":46,"end_character":30},"in_reply_to":"ba2be162_4210364f","updated":"2017-02-28 22:35:41.000000000","message":"yeah.","commit_id":"6bea5b98cc168d760049f6d756784a739b0bce4a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d7b9bc518743d56377218fe02decee670bfa1233","unresolved":false,"context_lines":[{"line_number":54,"context_line":"               nullable\u003dFalse),"},{"line_number":55,"context_line":"        Column(\u0027resource_provider_id\u0027, Integer, primary_key\u003dTrue,"},{"line_number":56,"context_line":"               nullable\u003dFalse),"},{"line_number":57,"context_line":"        Index(\u0027resource_provider_traits_resource_provider_trait_idx\u0027,"},{"line_number":58,"context_line":"              \u0027resource_provider_id\u0027, \u0027trait_id\u0027),"},{"line_number":59,"context_line":"        ForeignKeyConstraint(columns\u003d[\u0027resource_provider_id\u0027],"},{"line_number":60,"context_line":"                             refcolumns\u003d[resource_providers.c.id]),"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba2be162_e93583f7","line":57,"updated":"2017-02-28 21:45:19.000000000","message":"Rather than an Index, should there be a UniqueConstraint on resource_provider_id and trait_id (which would implicitly create an index)? Or is a UniqueConstraint implied if both the trait_id and resource_provider_id are primary keys?","commit_id":"6bea5b98cc168d760049f6d756784a739b0bce4a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b5d8f0e4515aff04801941e9149f570679c41fa3","unresolved":false,"context_lines":[{"line_number":54,"context_line":"               nullable\u003dFalse),"},{"line_number":55,"context_line":"        Column(\u0027resource_provider_id\u0027, Integer, primary_key\u003dTrue,"},{"line_number":56,"context_line":"               nullable\u003dFalse),"},{"line_number":57,"context_line":"        Index(\u0027resource_provider_traits_resource_provider_trait_idx\u0027,"},{"line_number":58,"context_line":"              \u0027resource_provider_id\u0027, \u0027trait_id\u0027),"},{"line_number":59,"context_line":"        ForeignKeyConstraint(columns\u003d[\u0027resource_provider_id\u0027],"},{"line_number":60,"context_line":"                             refcolumns\u003d[resource_providers.c.id]),"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba2be162_0fb497f0","line":57,"in_reply_to":"ba2be162_e93583f7","updated":"2017-02-28 22:35:41.000000000","message":"Yep, a unique constraint implies uniqueness across any combination of the column order.","commit_id":"6bea5b98cc168d760049f6d756784a739b0bce4a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e2472eb40984cd3512d2484a3d23ae1e102f5397","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        Column(\u0027resource_provider_id\u0027, Integer, primary_key\u003dTrue,"},{"line_number":56,"context_line":"               nullable\u003dFalse),"},{"line_number":57,"context_line":"        Index(\u0027resource_provider_traits_resource_provider_trait_idx\u0027,"},{"line_number":58,"context_line":"              \u0027resource_provider_id\u0027, \u0027trait_id\u0027),"},{"line_number":59,"context_line":"        ForeignKeyConstraint(columns\u003d[\u0027resource_provider_id\u0027],"},{"line_number":60,"context_line":"                             refcolumns\u003d[resource_providers.c.id]),"},{"line_number":61,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"da36d5c6_681bb273","line":58,"updated":"2017-02-23 18:59:51.000000000","message":"technically the trait_id in the above index isn\u0027t necessary, since the primary key contains a left-most column of trait_id and for all secondary indexes, the primary key is included in the secondary index record.\n\nbut, meh, it\u0027s a minor point and a single integer duplication isn\u0027t going to result in a major performance problem.","commit_id":"6bea5b98cc168d760049f6d756784a739b0bce4a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"b910c0532ad3bac7a9637ec2ee00765c062d6c9a","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        Column(\u0027resource_provider_id\u0027, Integer, primary_key\u003dTrue,"},{"line_number":56,"context_line":"               nullable\u003dFalse),"},{"line_number":57,"context_line":"        Index(\u0027resource_provider_traits_resource_provider_trait_idx\u0027,"},{"line_number":58,"context_line":"              \u0027resource_provider_id\u0027, \u0027trait_id\u0027),"},{"line_number":59,"context_line":"        ForeignKeyConstraint(columns\u003d[\u0027resource_provider_id\u0027],"},{"line_number":60,"context_line":"                             refcolumns\u003d[resource_providers.c.id]),"},{"line_number":61,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"da36d5c6_e36a65ec","line":58,"in_reply_to":"da36d5c6_681bb273","updated":"2017-02-23 19:44:12.000000000","message":"ah, thanks","commit_id":"6bea5b98cc168d760049f6d756784a739b0bce4a"}]}
