)]}'
{"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"4ab3e75eb5dfe19c448e758da68216eb6fb6cfd5","unresolved":false,"context_lines":[{"line_number":6862,"context_line":"                    datetime.datetime(2001, 1, 20, 20, 1, 0)"},{"line_number":6863,"context_line":"                    .strftime(\u0027%s\u0027))"},{"line_number":6864,"context_line":""},{"line_number":6865,"context_line":"        class Migration(ovoo_base.VersionedObjectDictCompat):"},{"line_number":6866,"context_line":"            def save(self):"},{"line_number":6867,"context_line":"                pass"},{"line_number":6868,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_e9536369","line":6865,"range":{"start_line":6865,"start_character":14,"end_line":6865,"end_character":23},"updated":"2016-01-14 15:43:46.000000000","message":"You can @mock.patch.object(objects.Migration, \"save\") instead of creating a new class or I\u0027m missing something.","commit_id":"abbc7fc4769b88ea26197629cbbb7c95fc6daeaa"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"0801c65a7039c6f6dd05ccdf7b2a1ed87176d276","unresolved":false,"context_lines":[{"line_number":6862,"context_line":"                    datetime.datetime(2001, 1, 20, 20, 1, 0)"},{"line_number":6863,"context_line":"                    .strftime(\u0027%s\u0027))"},{"line_number":6864,"context_line":""},{"line_number":6865,"context_line":"        class Migration(ovoo_base.VersionedObjectDictCompat):"},{"line_number":6866,"context_line":"            def save(self):"},{"line_number":6867,"context_line":"                pass"},{"line_number":6868,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_546c7234","line":6865,"range":{"start_line":6865,"start_character":14,"end_line":6865,"end_character":23},"in_reply_to":"da6ed579_e9536369","updated":"2016-01-25 05:28:37.000000000","message":"Done","commit_id":"abbc7fc4769b88ea26197629cbbb7c95fc6daeaa"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"accd38432e1b22db9c384c1dfcaca332af705906","unresolved":false,"context_lines":[{"line_number":6862,"context_line":"                    datetime.datetime(2001, 1, 20, 20, 1, 0)"},{"line_number":6863,"context_line":"                    .strftime(\u0027%s\u0027))"},{"line_number":6864,"context_line":""},{"line_number":6865,"context_line":"        class Migration(ovoo_base.VersionedObjectDictCompat):"},{"line_number":6866,"context_line":"            def save(self):"},{"line_number":6867,"context_line":"                pass"},{"line_number":6868,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_0bb52bcf","line":6865,"range":{"start_line":6865,"start_character":14,"end_line":6865,"end_character":23},"in_reply_to":"da6ed579_e9536369","updated":"2016-01-16 09:11:18.000000000","message":"line 5867 of https://review.openstack.org/#/c/258813/4/nova/virt/libvirt/driver.py\n\nI need to get \"Migration\" object from migrate_data, not only use the \"save\" method.","commit_id":"abbc7fc4769b88ea26197629cbbb7c95fc6daeaa"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"611c3b06b37012305097faea961510348ce75790","unresolved":false,"context_lines":[{"line_number":5976,"context_line":"                migration.disk_total \u003d info.disk_total"},{"line_number":5977,"context_line":"                migration.disk_processed \u003d info.disk_processed"},{"line_number":5978,"context_line":"                migration.disk_remaining \u003d info.disk_remaining"},{"line_number":5979,"context_line":"                migration.save()"},{"line_number":5980,"context_line":""},{"line_number":5981,"context_line":"                if ((progress_watermark is None) or"},{"line_number":5982,"context_line":"                    (progress_watermark \u003e info.data_remaining)):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a7e1126_6ebb7273","line":5979,"updated":"2015-12-17 13:43:51.000000000","message":"These fields don\u0027t exist in this patch - they are defined in https://review.openstack.org/#/c/258797/1/nova/objects/migration.py\n\nYou need to rebase this patch on that one.\n\nCould also add a test to check these values.","commit_id":"35e92eb59c89298c5b54b75e847427de4946307e"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"ed27b9e45d50dc9157792c5ac5b12aa223ddf0c0","unresolved":false,"context_lines":[{"line_number":5976,"context_line":"                migration.disk_total \u003d info.disk_total"},{"line_number":5977,"context_line":"                migration.disk_processed \u003d info.disk_processed"},{"line_number":5978,"context_line":"                migration.disk_remaining \u003d info.disk_remaining"},{"line_number":5979,"context_line":"                migration.save()"},{"line_number":5980,"context_line":""},{"line_number":5981,"context_line":"                if ((progress_watermark is None) or"},{"line_number":5982,"context_line":"                    (progress_watermark \u003e info.data_remaining)):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a7e1126_4f32b860","line":5979,"in_reply_to":"3a7e1126_6ebb7273","updated":"2015-12-21 06:44:57.000000000","message":"+1","commit_id":"35e92eb59c89298c5b54b75e847427de4946307e"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"4ab3e75eb5dfe19c448e758da68216eb6fb6cfd5","unresolved":false,"context_lines":[{"line_number":5864,"context_line":"        completion_timeout \u003d int("},{"line_number":5865,"context_line":"            CONF.libvirt.live_migration_completion_timeout * data_gb)"},{"line_number":5866,"context_line":"        progress_timeout \u003d CONF.libvirt.live_migration_progress_timeout"},{"line_number":5867,"context_line":"        migration \u003d migrate_data[\u0027migration\u0027]"},{"line_number":5868,"context_line":""},{"line_number":5869,"context_line":"        n \u003d 0"},{"line_number":5870,"context_line":"        start \u003d time.time()"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_c9cc5f6c","line":5867,"updated":"2016-01-14 15:43:46.000000000","message":"So this didn\u0027t fail a rebase, but it will not work anymore. Dan\u0027s changes are merged (almost all) and migrate_data is an object, not a dict anymore.","commit_id":"abbc7fc4769b88ea26197629cbbb7c95fc6daeaa"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"0801c65a7039c6f6dd05ccdf7b2a1ed87176d276","unresolved":false,"context_lines":[{"line_number":5864,"context_line":"        completion_timeout \u003d int("},{"line_number":5865,"context_line":"            CONF.libvirt.live_migration_completion_timeout * data_gb)"},{"line_number":5866,"context_line":"        progress_timeout \u003d CONF.libvirt.live_migration_progress_timeout"},{"line_number":5867,"context_line":"        migration \u003d migrate_data[\u0027migration\u0027]"},{"line_number":5868,"context_line":""},{"line_number":5869,"context_line":"        n \u003d 0"},{"line_number":5870,"context_line":"        start \u003d time.time()"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_b4636e41","line":5867,"in_reply_to":"da6ed579_c9cc5f6c","updated":"2016-01-25 05:28:37.000000000","message":"Done","commit_id":"abbc7fc4769b88ea26197629cbbb7c95fc6daeaa"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"accd38432e1b22db9c384c1dfcaca332af705906","unresolved":false,"context_lines":[{"line_number":5864,"context_line":"        completion_timeout \u003d int("},{"line_number":5865,"context_line":"            CONF.libvirt.live_migration_completion_timeout * data_gb)"},{"line_number":5866,"context_line":"        progress_timeout \u003d CONF.libvirt.live_migration_progress_timeout"},{"line_number":5867,"context_line":"        migration \u003d migrate_data[\u0027migration\u0027]"},{"line_number":5868,"context_line":""},{"line_number":5869,"context_line":"        n \u003d 0"},{"line_number":5870,"context_line":"        start \u003d time.time()"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_0b8e8b27","line":5867,"in_reply_to":"da6ed579_c9cc5f6c","updated":"2016-01-16 09:11:18.000000000","message":"Good info.\n\nThank you.","commit_id":"abbc7fc4769b88ea26197629cbbb7c95fc6daeaa"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"4b3b2cfc932885c0840e24a4a985d41b243e8e7a","unresolved":false,"context_lines":[{"line_number":5926,"context_line":"                # migration status. eg change max downtime, cancel"},{"line_number":5927,"context_line":"                # the operation, change max bandwidth"},{"line_number":5928,"context_line":""},{"line_number":5929,"context_line":"                # Note(Shaohe Feng) every 0.5s, we update the migration db."},{"line_number":5930,"context_line":"                migration.memory_total \u003d info.memory_total"},{"line_number":5931,"context_line":"                migration.memory_processed \u003d info.memory_processed"},{"line_number":5932,"context_line":"                migration.memory_remaining \u003d info.memory_remaining"},{"line_number":5933,"context_line":"                migration.disk_total \u003d info.disk_total"},{"line_number":5934,"context_line":"                migration.disk_processed \u003d info.disk_processed"},{"line_number":5935,"context_line":"                migration.disk_remaining \u003d info.disk_remaining"},{"line_number":5936,"context_line":"                migration.save()"},{"line_number":5937,"context_line":"                now \u003d time.time()"},{"line_number":5938,"context_line":"                elapsed \u003d now - start"},{"line_number":5939,"context_line":"                abort \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_cfebe3da","line":5936,"range":{"start_line":5929,"start_character":16,"end_line":5936,"end_character":32},"updated":"2016-01-15 02:55:14.000000000","message":"Hi, I have a question about this, per 0.5s we update the migration DB, it will be accurate for small number of migrations. But if we are having large numbers of migrations in the same time, maybe this will lead to serious performance down grade. Have considered this?","commit_id":"abbc7fc4769b88ea26197629cbbb7c95fc6daeaa"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"7a645b3cb6edaffcc1f2df217803200e9cd31b31","unresolved":false,"context_lines":[{"line_number":5926,"context_line":"                # migration status. eg change max downtime, cancel"},{"line_number":5927,"context_line":"                # the operation, change max bandwidth"},{"line_number":5928,"context_line":""},{"line_number":5929,"context_line":"                # Note(Shaohe Feng) every 0.5s, we update the migration db."},{"line_number":5930,"context_line":"                migration.memory_total \u003d info.memory_total"},{"line_number":5931,"context_line":"                migration.memory_processed \u003d info.memory_processed"},{"line_number":5932,"context_line":"                migration.memory_remaining \u003d info.memory_remaining"},{"line_number":5933,"context_line":"                migration.disk_total \u003d info.disk_total"},{"line_number":5934,"context_line":"                migration.disk_processed \u003d info.disk_processed"},{"line_number":5935,"context_line":"                migration.disk_remaining \u003d info.disk_remaining"},{"line_number":5936,"context_line":"                migration.save()"},{"line_number":5937,"context_line":"                now \u003d time.time()"},{"line_number":5938,"context_line":"                elapsed \u003d now - start"},{"line_number":5939,"context_line":"                abort \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_c216fff0","line":5936,"range":{"start_line":5929,"start_character":16,"end_line":5936,"end_character":32},"in_reply_to":"da6ed579_8b7b5b29","updated":"2016-01-19 03:41:19.000000000","message":"Hmm, actually, I\u0027m not quite sure for saving this kind of constantly changing data to DB is a good idea, but I cannot come up with better ideas. Besides, as the spec has already passed, I think others are good with this design, I don\u0027t want block it, overall it is a useful feature. Maybe set it to 1s or 2s, it will update not so rapidly but the data will be also acurate enough. After merge we can try it out in large deployment and maybe adjust then or make changes if the problem is critical. Let\u0027s see how others think.","commit_id":"abbc7fc4769b88ea26197629cbbb7c95fc6daeaa"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"0801c65a7039c6f6dd05ccdf7b2a1ed87176d276","unresolved":false,"context_lines":[{"line_number":5926,"context_line":"                # migration status. eg change max downtime, cancel"},{"line_number":5927,"context_line":"                # the operation, change max bandwidth"},{"line_number":5928,"context_line":""},{"line_number":5929,"context_line":"                # Note(Shaohe Feng) every 0.5s, we update the migration db."},{"line_number":5930,"context_line":"                migration.memory_total \u003d info.memory_total"},{"line_number":5931,"context_line":"                migration.memory_processed \u003d info.memory_processed"},{"line_number":5932,"context_line":"                migration.memory_remaining \u003d info.memory_remaining"},{"line_number":5933,"context_line":"                migration.disk_total \u003d info.disk_total"},{"line_number":5934,"context_line":"                migration.disk_processed \u003d info.disk_processed"},{"line_number":5935,"context_line":"                migration.disk_remaining \u003d info.disk_remaining"},{"line_number":5936,"context_line":"                migration.save()"},{"line_number":5937,"context_line":"                now \u003d time.time()"},{"line_number":5938,"context_line":"                elapsed \u003d now - start"},{"line_number":5939,"context_line":"                abort \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_14727a11","line":5936,"range":{"start_line":5929,"start_character":16,"end_line":5936,"end_character":32},"in_reply_to":"da6ed579_c216fff0","updated":"2016-01-25 05:28:37.000000000","message":"Done.\n\nset 2s.\n\nThanks.","commit_id":"abbc7fc4769b88ea26197629cbbb7c95fc6daeaa"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"50098ba2963f893183a2fb4b00865ae3708aa90a","unresolved":false,"context_lines":[{"line_number":5926,"context_line":"                # migration status. eg change max downtime, cancel"},{"line_number":5927,"context_line":"                # the operation, change max bandwidth"},{"line_number":5928,"context_line":""},{"line_number":5929,"context_line":"                # Note(Shaohe Feng) every 0.5s, we update the migration db."},{"line_number":5930,"context_line":"                migration.memory_total \u003d info.memory_total"},{"line_number":5931,"context_line":"                migration.memory_processed \u003d info.memory_processed"},{"line_number":5932,"context_line":"                migration.memory_remaining \u003d info.memory_remaining"},{"line_number":5933,"context_line":"                migration.disk_total \u003d info.disk_total"},{"line_number":5934,"context_line":"                migration.disk_processed \u003d info.disk_processed"},{"line_number":5935,"context_line":"                migration.disk_remaining \u003d info.disk_remaining"},{"line_number":5936,"context_line":"                migration.save()"},{"line_number":5937,"context_line":"                now \u003d time.time()"},{"line_number":5938,"context_line":"                elapsed \u003d now - start"},{"line_number":5939,"context_line":"                abort \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba63e191_58271e64","line":5936,"range":{"start_line":5929,"start_character":16,"end_line":5936,"end_character":32},"in_reply_to":"da6ed579_c216fff0","updated":"2016-01-20 10:41:32.000000000","message":"Sounds reasonable. \nThank you.","commit_id":"abbc7fc4769b88ea26197629cbbb7c95fc6daeaa"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"accd38432e1b22db9c384c1dfcaca332af705906","unresolved":false,"context_lines":[{"line_number":5926,"context_line":"                # migration status. eg change max downtime, cancel"},{"line_number":5927,"context_line":"                # the operation, change max bandwidth"},{"line_number":5928,"context_line":""},{"line_number":5929,"context_line":"                # Note(Shaohe Feng) every 0.5s, we update the migration db."},{"line_number":5930,"context_line":"                migration.memory_total \u003d info.memory_total"},{"line_number":5931,"context_line":"                migration.memory_processed \u003d info.memory_processed"},{"line_number":5932,"context_line":"                migration.memory_remaining \u003d info.memory_remaining"},{"line_number":5933,"context_line":"                migration.disk_total \u003d info.disk_total"},{"line_number":5934,"context_line":"                migration.disk_processed \u003d info.disk_processed"},{"line_number":5935,"context_line":"                migration.disk_remaining \u003d info.disk_remaining"},{"line_number":5936,"context_line":"                migration.save()"},{"line_number":5937,"context_line":"                now \u003d time.time()"},{"line_number":5938,"context_line":"                elapsed \u003d now - start"},{"line_number":5939,"context_line":"                abort \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_8b7b5b29","line":5936,"range":{"start_line":5929,"start_character":16,"end_line":5936,"end_character":32},"in_reply_to":"da6ed579_cfebe3da","updated":"2016-01-16 09:11:18.000000000","message":"yes. That\u0027s why I put a \"Note\" explicit here.\n\nWhich is more better? \n0.5s, 1s, 2s, 5s?  \nAny suggestion?\n\nlet\u0027s get a consistency here.","commit_id":"abbc7fc4769b88ea26197629cbbb7c95fc6daeaa"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"138b93d8bde1ebf305f1b4c7192073654f2fc694","unresolved":false,"context_lines":[{"line_number":6061,"context_line":"                # migration status. eg change max downtime, cancel"},{"line_number":6062,"context_line":"                # the operation, change max bandwidth"},{"line_number":6063,"context_line":""},{"line_number":6064,"context_line":"                # Note(Shaohe Feng) every 2s, we update the migration db."},{"line_number":6065,"context_line":"                if (n % 4) \u003d\u003d 0:"},{"line_number":6066,"context_line":"                    migration.memory_total \u003d info.memory_total"},{"line_number":6067,"context_line":"                    migration.memory_processed \u003d info.memory_processed"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_d7005a04","line":6064,"range":{"start_line":6064,"start_character":16,"end_line":6064,"end_character":73},"updated":"2016-01-25 10:51:41.000000000","message":"Hi, sorry for didn\u0027t point out last time, I just realised, can we make this a configure option? set 2s to default and user can overwirte it using config options, because once this is merged, it will have impact to every usage of this table.","commit_id":"49225a73d061aa38eab7cbc474ec76e172c07919"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"2fda05b7f02642bbcfb796df63ebd8ba06c84e49","unresolved":false,"context_lines":[{"line_number":6061,"context_line":"                # migration status. eg change max downtime, cancel"},{"line_number":6062,"context_line":"                # the operation, change max bandwidth"},{"line_number":6063,"context_line":""},{"line_number":6064,"context_line":"                # Note(Shaohe Feng) every 2s, we update the migration db."},{"line_number":6065,"context_line":"                if (n % 4) \u003d\u003d 0:"},{"line_number":6066,"context_line":"                    migration.memory_total \u003d info.memory_total"},{"line_number":6067,"context_line":"                    migration.memory_processed \u003d info.memory_processed"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_f23a03e7","line":6064,"range":{"start_line":6064,"start_character":16,"end_line":6064,"end_character":73},"in_reply_to":"7a5de9d1_9304d17e","updated":"2016-02-03 11:47:28.000000000","message":"We update instance.progress() every 5 seconds. I think it is desirable that we keep updates to the instance and migration objects in sync. So that though suggest change this to every 5 seconds too, or changing the instance update to every 2 seconds. I\u0027m tending towards the former though.","commit_id":"49225a73d061aa38eab7cbc474ec76e172c07919"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"6ed0115d0f14781778ff03e62e7133388893160c","unresolved":false,"context_lines":[{"line_number":6061,"context_line":"                # migration status. eg change max downtime, cancel"},{"line_number":6062,"context_line":"                # the operation, change max bandwidth"},{"line_number":6063,"context_line":""},{"line_number":6064,"context_line":"                # Note(Shaohe Feng) every 2s, we update the migration db."},{"line_number":6065,"context_line":"                if (n % 4) \u003d\u003d 0:"},{"line_number":6066,"context_line":"                    migration.memory_total \u003d info.memory_total"},{"line_number":6067,"context_line":"                    migration.memory_processed \u003d info.memory_processed"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_ebd1f723","line":6064,"range":{"start_line":6064,"start_character":16,"end_line":6064,"end_character":73},"in_reply_to":"9a68dd71_d7005a04","updated":"2016-01-25 12:09:18.000000000","message":"I have no objection to set it in conf.\n\nJust for other reviewer\u0027s comments.","commit_id":"49225a73d061aa38eab7cbc474ec76e172c07919"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"41256dc98c2bb678885ca5935bcc2fdeaedd6d28","unresolved":false,"context_lines":[{"line_number":6061,"context_line":"                # migration status. eg change max downtime, cancel"},{"line_number":6062,"context_line":"                # the operation, change max bandwidth"},{"line_number":6063,"context_line":""},{"line_number":6064,"context_line":"                # Note(Shaohe Feng) every 2s, we update the migration db."},{"line_number":6065,"context_line":"                if (n % 4) \u003d\u003d 0:"},{"line_number":6066,"context_line":"                    migration.memory_total \u003d info.memory_total"},{"line_number":6067,"context_line":"                    migration.memory_processed \u003d info.memory_processed"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_9304d17e","line":6064,"range":{"start_line":6064,"start_character":16,"end_line":6064,"end_character":73},"in_reply_to":"9a68dd71_ebd1f723","updated":"2016-01-28 10:40:25.000000000","message":"In a quick chat between HPE public cloud and rackspace guys we thought that every 2 seconds is reasonable. For HP we would expect on the order of 150 concurrent migrations in a rolling reboot use case, so this makes about 75 updates per second to the db in total - not too much. I don\u0027t think we really need to add a config parameter.","commit_id":"49225a73d061aa38eab7cbc474ec76e172c07919"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"0f31b25a48af6e098439082663e4246cea925187","unresolved":false,"context_lines":[{"line_number":6284,"context_line":"                    migration.disk_total \u003d info.disk_total"},{"line_number":6285,"context_line":"                    migration.disk_processed \u003d info.disk_processed"},{"line_number":6286,"context_line":"                    migration.disk_remaining \u003d info.disk_remaining"},{"line_number":6287,"context_line":"                    migration.save()"},{"line_number":6288,"context_line":"                    # Ignoring memory_processed, as due to repeated"},{"line_number":6289,"context_line":"                    # dirtying of data, this can be way larger than"},{"line_number":6290,"context_line":"                    # memory_total. Best to just look at what\u0027s"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a5ae5dd_61643ab8","line":6287,"range":{"start_line":6287,"start_character":20,"end_line":6287,"end_character":36},"updated":"2016-02-08 12:53:24.000000000","message":"So I played a bit with this and what makes me confused is that we don\u0027t reset this information anywhere. I ended up with bunch of migrations with \u0027completed\u0027 state that still have memory and disk to be transferred. Such information is a bit misleading and makes me think that there was an error somewhere...","commit_id":"9f3898580817c7b7bce7ad25cef14f873608548a"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"d9bd0ff6ef1d061a273e5deb794968ec7e4ebc51","unresolved":false,"context_lines":[{"line_number":6284,"context_line":"                    migration.disk_total \u003d info.disk_total"},{"line_number":6285,"context_line":"                    migration.disk_processed \u003d info.disk_processed"},{"line_number":6286,"context_line":"                    migration.disk_remaining \u003d info.disk_remaining"},{"line_number":6287,"context_line":"                    migration.save()"},{"line_number":6288,"context_line":"                    # Ignoring memory_processed, as due to repeated"},{"line_number":6289,"context_line":"                    # dirtying of data, this can be way larger than"},{"line_number":6290,"context_line":"                    # memory_total. Best to just look at what\u0027s"}],"source_content_type":"text/x-python","patch_set":6,"id":"dae33548_aa08d392","line":6287,"range":{"start_line":6287,"start_character":20,"end_line":6287,"end_character":36},"in_reply_to":"5a5ae5dd_61643ab8","updated":"2016-02-14 04:21:34.000000000","message":"Hi Pawel, not understand well with your comments. \n\nCan you tell me how should I improve it explicitly?","commit_id":"9f3898580817c7b7bce7ad25cef14f873608548a"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"82f4c48ccd01f8735be47e4dd6b08cffe6ade255","unresolved":false,"context_lines":[{"line_number":6284,"context_line":"                    migration.disk_total \u003d info.disk_total"},{"line_number":6285,"context_line":"                    migration.disk_processed \u003d info.disk_processed"},{"line_number":6286,"context_line":"                    migration.disk_remaining \u003d info.disk_remaining"},{"line_number":6287,"context_line":"                    migration.save()"},{"line_number":6288,"context_line":"                    # Ignoring memory_processed, as due to repeated"},{"line_number":6289,"context_line":"                    # dirtying of data, this can be way larger than"},{"line_number":6290,"context_line":"                    # memory_total. Best to just look at what\u0027s"}],"source_content_type":"text/x-python","patch_set":6,"id":"dae33548_6486eeba","line":6287,"range":{"start_line":6287,"start_character":20,"end_line":6287,"end_character":36},"in_reply_to":"dae33548_aa08d392","updated":"2016-02-15 08:28:17.000000000","message":"You can ignore this comment, John suggested that we can fix it later and that\u0027s fine.","commit_id":"9f3898580817c7b7bce7ad25cef14f873608548a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a2522360cd8a834a8cbac4c9fd28486ec0bd6c7a","unresolved":false,"context_lines":[{"line_number":6327,"context_line":"                    migration.disk_total \u003d info.disk_total"},{"line_number":6328,"context_line":"                    migration.disk_processed \u003d info.disk_processed"},{"line_number":6329,"context_line":"                    migration.disk_remaining \u003d info.disk_remaining"},{"line_number":6330,"context_line":"                    migration.save()"},{"line_number":6331,"context_line":"                    # Ignoring memory_processed, as due to repeated"},{"line_number":6332,"context_line":"                    # dirtying of data, this can be way larger than"},{"line_number":6333,"context_line":"                    # memory_total. Best to just look at what\u0027s"}],"source_content_type":"text/x-python","patch_set":7,"id":"dae33548_db1a386e","line":6330,"range":{"start_line":6330,"start_character":20,"end_line":6330,"end_character":36},"updated":"2016-02-15 08:56:19.000000000","message":"a little idea, how about we compare the value and we only save to db when there is a change? then we avoid some useless update when the live-migration stuck at some point.\n\nBut this won\u0027t be problem,  this can be added if you like when you have to update the patch or add in the later patch.","commit_id":"c8e3361ac9ffcb81f0ab1f512061eeffba60dd1f"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"90ec44f087a7eb8a55e5746cae3e0ce0ce912795","unresolved":false,"context_lines":[{"line_number":6327,"context_line":"                    migration.disk_total \u003d info.disk_total"},{"line_number":6328,"context_line":"                    migration.disk_processed \u003d info.disk_processed"},{"line_number":6329,"context_line":"                    migration.disk_remaining \u003d info.disk_remaining"},{"line_number":6330,"context_line":"                    migration.save()"},{"line_number":6331,"context_line":"                    # Ignoring memory_processed, as due to repeated"},{"line_number":6332,"context_line":"                    # dirtying of data, this can be way larger than"},{"line_number":6333,"context_line":"                    # memory_total. Best to just look at what\u0027s"}],"source_content_type":"text/x-python","patch_set":7,"id":"dae33548_3b824453","line":6330,"range":{"start_line":6330,"start_character":20,"end_line":6330,"end_character":36},"in_reply_to":"dae33548_db1a386e","updated":"2016-02-15 09:01:52.000000000","message":"It will be beneficial to update at least \u0027updated_at\u0027 field to see that migration is stuck even if there is no change in data transfer. In case you don\u0027t update \u0027updated_at\u0027 in the DB operator might think that the process died completely.","commit_id":"c8e3361ac9ffcb81f0ab1f512061eeffba60dd1f"}]}
