)]}'
{"cinder/db/sqlalchemy/migrate_repo/versions/112_add_uuid_to_services_table.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"acd1d7a7d325966eae5475a9721cbe3c26298839","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    meta \u003d MetaData(bind\u003dmigrate_engine)"},{"line_number":27,"context_line":"    services \u003d Table(\u0027services\u0027, meta, autoload\u003dTrue)"},{"line_number":28,"context_line":"    if not hasattr(services.c, \u0027uuid\u0027):"},{"line_number":29,"context_line":"        services.create_column(Column(\u0027uuid\u0027, String(36), nullable\u003dTrue))"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    uuid_index_name \u003d \u0027services_uuid_idx\u0027"},{"line_number":32,"context_line":"    indexes \u003d Inspector(migrate_engine).get_indexes(\u0027services\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_127e7fae","line":29,"range":{"start_line":29,"start_character":57,"end_line":29,"end_character":71},"updated":"2017-09-28 17:37:17.000000000","message":"You have nullable \u003d True here, do we really want that?  It also doesn\u0027t agree with what you have in the model.","commit_id":"ca23e9e46d911f94bc1de511a14ea52db56caa43"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"05ae04b15e10741c462bd6fdfef7f80f6c34967f","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    meta \u003d MetaData(bind\u003dmigrate_engine)"},{"line_number":27,"context_line":"    services \u003d Table(\u0027services\u0027, meta, autoload\u003dTrue)"},{"line_number":28,"context_line":"    if not hasattr(services.c, \u0027uuid\u0027):"},{"line_number":29,"context_line":"        services.create_column(Column(\u0027uuid\u0027, String(36), nullable\u003dTrue))"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    uuid_index_name \u003d \u0027services_uuid_idx\u0027"},{"line_number":32,"context_line":"    indexes \u003d Inspector(migrate_engine).get_indexes(\u0027services\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_e52f9b85","line":29,"range":{"start_line":29,"start_character":57,"end_line":29,"end_character":71},"in_reply_to":"7f515b1d_127e7fae","updated":"2017-09-28 17:41:32.000000000","message":"Yeah, it has to be True for the indexing.  I\u0027ll fix the model, thanks!","commit_id":"ca23e9e46d911f94bc1de511a14ea52db56caa43"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"9778793bac348425ac003831bde660101f32a506","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    meta \u003d MetaData(bind\u003dmigrate_engine)"},{"line_number":27,"context_line":"    services \u003d Table(\u0027services\u0027, meta, autoload\u003dTrue)"},{"line_number":28,"context_line":"    if not hasattr(services.c, \u0027uuid\u0027):"},{"line_number":29,"context_line":"        services.create_column(Column(\u0027uuid\u0027, String(36), nullable\u003dTrue))"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    uuid_index_name \u003d \u0027services_uuid_idx\u0027"},{"line_number":32,"context_line":"    indexes \u003d Inspector(migrate_engine).get_indexes(\u0027services\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_a82e1a8f","line":29,"range":{"start_line":29,"start_character":57,"end_line":29,"end_character":71},"in_reply_to":"7f515b1d_8532275d","updated":"2017-09-28 18:35:27.000000000","message":"Most likely I  think it\u0027s a safe assumption (else the migration shouldn\u0027t be executed) but with H/A, multiple DB\u0027s etc etc; I thought it would be safer (and more importantly benign) to explicitly check.\n\nI\u0027m not sure about the indexing part, admittedly my migration foo isn\u0027t great so if there\u0027s a better way to do that I\u0027m certainly open.","commit_id":"ca23e9e46d911f94bc1de511a14ea52db56caa43"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"798c13cbeaad5e330dee94d67f6ae0ca7e44ec84","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    meta \u003d MetaData(bind\u003dmigrate_engine)"},{"line_number":27,"context_line":"    services \u003d Table(\u0027services\u0027, meta, autoload\u003dTrue)"},{"line_number":28,"context_line":"    if not hasattr(services.c, \u0027uuid\u0027):"},{"line_number":29,"context_line":"        services.create_column(Column(\u0027uuid\u0027, String(36), nullable\u003dTrue))"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    uuid_index_name \u003d \u0027services_uuid_idx\u0027"},{"line_number":32,"context_line":"    indexes \u003d Inspector(migrate_engine).get_indexes(\u0027services\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_48fa06bd","line":29,"range":{"start_line":29,"start_character":57,"end_line":29,"end_character":71},"in_reply_to":"7f515b1d_a82e1a8f","updated":"2017-09-28 18:50:14.000000000","message":"Nah, you\u0027re totally right. The way you have it should be safer, so I think it\u0027s good.","commit_id":"ca23e9e46d911f94bc1de511a14ea52db56caa43"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3e44aee31cf1348df1a1f4640f6ce60419dafa94","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    meta \u003d MetaData(bind\u003dmigrate_engine)"},{"line_number":27,"context_line":"    services \u003d Table(\u0027services\u0027, meta, autoload\u003dTrue)"},{"line_number":28,"context_line":"    if not hasattr(services.c, \u0027uuid\u0027):"},{"line_number":29,"context_line":"        services.create_column(Column(\u0027uuid\u0027, String(36), nullable\u003dTrue))"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    uuid_index_name \u003d \u0027services_uuid_idx\u0027"},{"line_number":32,"context_line":"    indexes \u003d Inspector(migrate_engine).get_indexes(\u0027services\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_8532275d","line":29,"range":{"start_line":29,"start_character":57,"end_line":29,"end_character":71},"in_reply_to":"7f515b1d_e52f9b85","updated":"2017-09-28 18:16:29.000000000","message":"Is there a reason this could have been defined already and already exists? Seems like it should be safe to assume no. Then the index logic below could just be included in the column definition.","commit_id":"ca23e9e46d911f94bc1de511a14ea52db56caa43"}],"cinder/db/sqlalchemy/models.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3e44aee31cf1348df1a1f4640f6ce60419dafa94","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    \"\"\"Represents a running service on a host.\"\"\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    __tablename__ \u003d \u0027services\u0027"},{"line_number":67,"context_line":"    __table_args__ \u003d ("},{"line_number":68,"context_line":"        Index(\u0027services_uuid_idx\u0027, \u0027uuid\u0027, unique\u003dTrue),"},{"line_number":69,"context_line":"    )"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_e5ed5bb7","line":67,"updated":"2017-09-28 18:16:29.000000000","message":"For single column indexes I tried to standardize on just using index\u003dTrue in the Column initialization rather than using the __table_args__. We kind of had a mix in the code, so it really could be either way. But that seemed to make since if there wasn\u0027t a need to define multiple columns together, with the added benefit that you don\u0027t need to provide a name for the index that may or may not match.\n\nFor reference:\nhttps://review.openstack.org/#/c/507288/","commit_id":"ca23e9e46d911f94bc1de511a14ea52db56caa43"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"9778793bac348425ac003831bde660101f32a506","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    \"\"\"Represents a running service on a host.\"\"\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    __tablename__ \u003d \u0027services\u0027"},{"line_number":67,"context_line":"    __table_args__ \u003d ("},{"line_number":68,"context_line":"        Index(\u0027services_uuid_idx\u0027, \u0027uuid\u0027, unique\u003dTrue),"},{"line_number":69,"context_line":"    )"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_c84ef66d","line":67,"in_reply_to":"7f515b1d_e5ed5bb7","updated":"2017-09-28 18:35:27.000000000","message":"Ahh, ok; I\u0027m happy to use the column approach, it\u0027s a bit cleaner and given I\u0027m only setting the single arg probably makes sense.","commit_id":"ca23e9e46d911f94bc1de511a14ea52db56caa43"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"acd1d7a7d325966eae5475a9721cbe3c26298839","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    )"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue)"},{"line_number":72,"context_line":"    uuid \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":73,"context_line":"    cluster_name \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":74,"context_line":"    host \u003d Column(String(255))  # , ForeignKey(\u0027hosts.id\u0027))"},{"line_number":75,"context_line":"    binary \u003d Column(String(255))"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_d24d879a","line":72,"range":{"start_line":72,"start_character":31,"end_line":72,"end_character":44},"updated":"2017-09-28 17:37:17.000000000","message":"Doesn\u0027t agree with your migration.","commit_id":"ca23e9e46d911f94bc1de511a14ea52db56caa43"}]}
