)]}'
{"nova/db/sqlalchemy/migrate_repo/versions/313_add_migration_progresss_detail.py":[{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"f5ad47d514cb26614dc08d4fdeba65f7fc5fcd89","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        table \u003d Table(prefix + BASE_TABLE_NAME, meta, autoload\u003dTrue)"},{"line_number":30,"context_line":"        new_column \u003d Column(NEW_COLUMN_NAME, Text, nullable\u003dTrue)"},{"line_number":31,"context_line":"        if not hasattr(table.c, NEW_COLUMN_NAME):"},{"line_number":32,"context_line":"            table.create_column(new_column)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a7e1126_cf946844","line":32,"range":{"start_line":32,"start_character":18,"end_line":32,"end_character":31},"updated":"2015-12-21 06:39:26.000000000","message":"just create column?","commit_id":"5cd2660f3289867aa7a6777466ac27c771c1551e"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"a87068718f8cfaf1c39f7529c8695f97c530334f","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    migrations \u003d Table(\u0027migrations\u0027, meta, autoload\u003dTrue)"},{"line_number":23,"context_line":"    shadow_migrations \u003d Table(\u0027shadow_migrations\u0027, meta, autoload\u003dTrue)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    memory_total \u003d Column(\u0027memory_total\u0027, BigInteger, nullable\u003dTrue)"},{"line_number":26,"context_line":"    migrations.create_column(memory_total)"},{"line_number":27,"context_line":"    shadow_migrations.create_column(memory_total.copy())"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    memory_processed \u003d Column(\u0027memory_processed\u0027, BigInteger, nullable\u003dTrue)"},{"line_number":30,"context_line":"    migrations.create_column(memory_processed)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_00d0af52","line":27,"range":{"start_line":25,"start_character":4,"end_line":27,"end_character":56},"updated":"2015-12-30 04:32:39.000000000","message":"Can we use a loop instead of repeating similar statements here ?\n\nSome thing like:\n\ncolume_name \u003d (\u0027memory_total\u0027, \u0027memory_processed\u0027, \u0027memory_remaining\u0027, \u0027disk_total\u0027, \u0027disk_processed\u0027, \u0027disk_remaining\u0027)\n\nfor name in colume_name:\n    column \u003d Column(name, BigInteger, nullable\u003dTrue)\n    migrations.create_column(column)\n    shadow_migrations.create_column(column.copy())","commit_id":"d96e9ff744d85e76c69115d8a60a240c86e9c70b"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"06496495135a2df68e85baaf2849e6101636cc43","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    migrations.create_column(disk_processed)"},{"line_number":43,"context_line":"    shadow_migrations.create_column(disk_processed.copy())"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    disk_remaining \u003d Column(\u0027disk_remaining\u0027, BigInteger, default\u003dFalse)"},{"line_number":46,"context_line":"    migrations.create_column(disk_remaining)"},{"line_number":47,"context_line":"    shadow_migrations.create_column(disk_remaining.copy())"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_2bef30ea","line":45,"range":{"start_line":45,"start_character":66,"end_line":45,"end_character":71},"updated":"2015-12-29 05:36:09.000000000","message":"nullable\u003dTrue","commit_id":"d96e9ff744d85e76c69115d8a60a240c86e9c70b"}],"nova/objects/migration.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d51c4622cd95b25fa96c6a93f90d61370bdb1651","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                                            \u0027live-migration\u0027, \u0027evacuation\u0027],"},{"line_number":55,"context_line":"                                           nullable\u003dFalse),"},{"line_number":56,"context_line":"        \u0027hidden\u0027: fields.BooleanField(nullable\u003dFalse, default\u003dFalse),"},{"line_number":57,"context_line":"        \u0027memory_total\u0027: fields.IntegerField(nullable\u003dTrue),"},{"line_number":58,"context_line":"        \u0027memory_processed\u0027: fields.IntegerField(nullable\u003dTrue),"},{"line_number":59,"context_line":"        \u0027memory_remaining\u0027: fields.IntegerField(nullable\u003dTrue),"},{"line_number":60,"context_line":"        \u0027disk_total\u0027: fields.IntegerField(nullable\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":13,"id":"dae33548_07b8f173","line":57,"updated":"2016-02-18 15:50:05.000000000","message":"I wasn\u0027t sure about these at first, but it matches what we do with BigInteger for VolumeUsage object.","commit_id":"2e48a60d82712519c0e90cb2b8998a79ca300caf"}],"nova/tests/unit/api/openstack/compute/test_migrations.py":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"3fa6f693071d5150d46651222b9b9ab9d38ec570","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        \u0027new_instance_type_id\u0027: 2,"},{"line_number":42,"context_line":"        \u0027migration_type\u0027: \u0027resize\u0027,"},{"line_number":43,"context_line":"        \u0027hidden\u0027: False,"},{"line_number":44,"context_line":"        \u0027memory_total\u0027: 123456,"},{"line_number":45,"context_line":"        \u0027memory_processed\u0027: 12345,"},{"line_number":46,"context_line":"        \u0027memory_remaining\u0027: 120000,"},{"line_number":47,"context_line":"        \u0027disk_total\u0027: 234567,"},{"line_number":48,"context_line":"        \u0027disk_processed\u0027: 23456,"},{"line_number":49,"context_line":"        \u0027disk_remaining\u0027: 230000,"},{"line_number":50,"context_line":"        \u0027created_at\u0027: datetime.datetime(2012, 10, 29, 13, 42, 2),"},{"line_number":51,"context_line":"        \u0027updated_at\u0027: datetime.datetime(2012, 10, 29, 13, 42, 2),"},{"line_number":52,"context_line":"        \u0027deleted_at\u0027: None,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_f731e35a","line":49,"range":{"start_line":44,"start_character":8,"end_line":49,"end_character":32},"updated":"2016-01-25 10:48:46.000000000","message":"maybe it will be better if we make those data correct, memory_total \u003d memory_processed + memory_remaining, etc.","commit_id":"8fa2e225809c937fa3fe1a98c28fd45548c6600f"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"516a58733da6fb510432bc1e513640068f189b7d","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        \u0027new_instance_type_id\u0027: 2,"},{"line_number":42,"context_line":"        \u0027migration_type\u0027: \u0027resize\u0027,"},{"line_number":43,"context_line":"        \u0027hidden\u0027: False,"},{"line_number":44,"context_line":"        \u0027memory_total\u0027: 123456,"},{"line_number":45,"context_line":"        \u0027memory_processed\u0027: 12345,"},{"line_number":46,"context_line":"        \u0027memory_remaining\u0027: 120000,"},{"line_number":47,"context_line":"        \u0027disk_total\u0027: 234567,"},{"line_number":48,"context_line":"        \u0027disk_processed\u0027: 23456,"},{"line_number":49,"context_line":"        \u0027disk_remaining\u0027: 230000,"},{"line_number":50,"context_line":"        \u0027created_at\u0027: datetime.datetime(2012, 10, 29, 13, 42, 2),"},{"line_number":51,"context_line":"        \u0027updated_at\u0027: datetime.datetime(2012, 10, 29, 13, 42, 2),"},{"line_number":52,"context_line":"        \u0027deleted_at\u0027: None,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_abda1f15","line":49,"range":{"start_line":44,"start_character":8,"end_line":49,"end_character":32},"in_reply_to":"9a68dd71_2bc94fac","updated":"2016-01-25 12:11:23.000000000","message":"what do you mean by unbond task? but it will be equal for disk?","commit_id":"8fa2e225809c937fa3fe1a98c28fd45548c6600f"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"fe0724b94e724cd9128ae8202e85c0f1beea4102","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        \u0027new_instance_type_id\u0027: 2,"},{"line_number":42,"context_line":"        \u0027migration_type\u0027: \u0027resize\u0027,"},{"line_number":43,"context_line":"        \u0027hidden\u0027: False,"},{"line_number":44,"context_line":"        \u0027memory_total\u0027: 123456,"},{"line_number":45,"context_line":"        \u0027memory_processed\u0027: 12345,"},{"line_number":46,"context_line":"        \u0027memory_remaining\u0027: 120000,"},{"line_number":47,"context_line":"        \u0027disk_total\u0027: 234567,"},{"line_number":48,"context_line":"        \u0027disk_processed\u0027: 23456,"},{"line_number":49,"context_line":"        \u0027disk_remaining\u0027: 230000,"},{"line_number":50,"context_line":"        \u0027created_at\u0027: datetime.datetime(2012, 10, 29, 13, 42, 2),"},{"line_number":51,"context_line":"        \u0027updated_at\u0027: datetime.datetime(2012, 10, 29, 13, 42, 2),"},{"line_number":52,"context_line":"        \u0027deleted_at\u0027: None,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_460b5a24","line":49,"range":{"start_line":44,"start_character":8,"end_line":49,"end_character":32},"in_reply_to":"9a68dd71_abda1f15","updated":"2016-01-25 12:17:59.000000000","message":"Hmm, I saw it, I will read more of it.","commit_id":"8fa2e225809c937fa3fe1a98c28fd45548c6600f"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"eb4519988cb7322e2c2aeb465d1bd5e6a8e04a9f","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        \u0027new_instance_type_id\u0027: 2,"},{"line_number":42,"context_line":"        \u0027migration_type\u0027: \u0027resize\u0027,"},{"line_number":43,"context_line":"        \u0027hidden\u0027: False,"},{"line_number":44,"context_line":"        \u0027memory_total\u0027: 123456,"},{"line_number":45,"context_line":"        \u0027memory_processed\u0027: 12345,"},{"line_number":46,"context_line":"        \u0027memory_remaining\u0027: 120000,"},{"line_number":47,"context_line":"        \u0027disk_total\u0027: 234567,"},{"line_number":48,"context_line":"        \u0027disk_processed\u0027: 23456,"},{"line_number":49,"context_line":"        \u0027disk_remaining\u0027: 230000,"},{"line_number":50,"context_line":"        \u0027created_at\u0027: datetime.datetime(2012, 10, 29, 13, 42, 2),"},{"line_number":51,"context_line":"        \u0027updated_at\u0027: datetime.datetime(2012, 10, 29, 13, 42, 2),"},{"line_number":52,"context_line":"        \u0027deleted_at\u0027: None,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_2bc94fac","line":49,"range":{"start_line":44,"start_character":8,"end_line":49,"end_character":32},"in_reply_to":"9a68dd71_f731e35a","updated":"2016-01-25 12:05:12.000000000","message":"live migration is an unbound task.\nusually, memory_total do  not equal (memory_processed + memory_remaining)\n\n\nbut memory_total \u003e memory_remaining.","commit_id":"8fa2e225809c937fa3fe1a98c28fd45548c6600f"}],"nova/tests/unit/db/test_migrations.py":[{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"a7e1930b43cd5da4cd9da3a2a8da434b132f9195","unresolved":false,"context_lines":[{"line_number":845,"context_line":"        self.assertColumnExists(engine, \u0027migrations\u0027,"},{"line_number":846,"context_line":"                                \u0027disk_processed\u0027)"},{"line_number":847,"context_line":"        self.assertColumnExists(engine, \u0027migrations\u0027,"},{"line_number":848,"context_line":"                                \u0027disk_remaining\u0027)"},{"line_number":849,"context_line":""},{"line_number":850,"context_line":""},{"line_number":851,"context_line":"class TestNovaMigrationsSQLite(NovaMigrationsCheckers,"}],"source_content_type":"text/x-python","patch_set":13,"id":"dae33548_e2160df0","line":848,"updated":"2016-02-16 22:56:31.000000000","message":"We can also check for the column type (BigInt).","commit_id":"2e48a60d82712519c0e90cb2b8998a79ca300caf"}]}
