)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"b8413935ca8f741a306b8d0962494711af98191e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"converge during live migrations. This option helps to live migrate"},{"line_number":11,"context_line":"instances with memory-intensive workload by throttling down CPU"},{"line_number":12,"context_line":"on guest machine."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Partially-implements: blueprint auto-live-migration-completion"},{"line_number":15,"context_line":"Change-Id: I967bad47b67586ea2838e219eed1c6dce91ce153"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7aa08908_25656e1d","line":13,"updated":"2016-06-08 09:37:52.000000000","message":"Also mention that it will only be used if post-copy is not available?","commit_id":"301d617a0ec35acb463a042beebe6e0ad16aa91b"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"479f202328dafb45d24c686afa212bac5bbeda53","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Since QEMU 1.6 and Libvirt 1.2.3 it is possible to use auto"},{"line_number":10,"context_line":"converge during live migrations. This option helps to live migrate"},{"line_number":11,"context_line":"instances with memory-intensive workload by throttling down CPU"},{"line_number":12,"context_line":"on guest machine."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Partially-implements: blueprint auto-live-migration-completion"},{"line_number":15,"context_line":"Change-Id: I967bad47b67586ea2838e219eed1c6dce91ce153"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7aa08908_77c9ed58","line":12,"updated":"2016-06-08 09:47:48.000000000","message":"Also mention that it will only be used if post-copy is not available?","commit_id":"54b8a2054a6748b78c345d4e56b2cd543ed4c53c"}],"nova/conf/libvirt.py":[{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"26bb587237036d7c08b167e2178d56423ec933b9","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                     \u0027only be used if this flag is set to True and \u0027"},{"line_number":161,"context_line":"                     \u0027live_migration_permit_post_copy is set to False or \u0027"},{"line_number":162,"context_line":"                     \u0027post_copy is unavailable due to the version of libvirt \u0027"},{"line_number":163,"context_line":"                     \u0027and QEMU in use. Requires libvirt\u003e\u003d1.2.3 and \u0027"},{"line_number":164,"context_line":"                     \u0027QEMU\u003e\u003d1.6.0.\u0027),"},{"line_number":165,"context_line":"    cfg.StrOpt(\u0027snapshot_image_format\u0027,"},{"line_number":166,"context_line":"               choices\u003d(\u0027raw\u0027, \u0027qcow2\u0027, \u0027vmdk\u0027, \u0027vdi\u0027),"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_5b6401b8","line":163,"updated":"2016-06-13 13:02:56.000000000","message":"Auto converge requires...\n\notherwise it reads like you are referring to post-copy","commit_id":"ace1576be3d13793eb081e3abc86cd5e7cbe4455"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"be869eecf60b376102ec6588d64b31b439548efc","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                     \u0027only be used if this flag is set to True and \u0027"},{"line_number":161,"context_line":"                     \u0027live_migration_permit_post_copy is set to False or \u0027"},{"line_number":162,"context_line":"                     \u0027post_copy is unavailable due to the version of libvirt \u0027"},{"line_number":163,"context_line":"                     \u0027and QEMU in use. Requires libvirt\u003e\u003d1.2.3 and \u0027"},{"line_number":164,"context_line":"                     \u0027QEMU\u003e\u003d1.6.0.\u0027),"},{"line_number":165,"context_line":"    cfg.StrOpt(\u0027snapshot_image_format\u0027,"},{"line_number":166,"context_line":"               choices\u003d(\u0027raw\u0027, \u0027qcow2\u0027, \u0027vmdk\u0027, \u0027vdi\u0027),"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_e75547c2","line":163,"in_reply_to":"7aa08908_5b6401b8","updated":"2016-06-13 13:29:21.000000000","message":"Done","commit_id":"ace1576be3d13793eb081e3abc86cd5e7cbe4455"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"759f9f1737525d0e5d4dca011c8842caee31ab54","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                help\u003d\u0027Auto converge throttles down CPU if a progress of \u0027"},{"line_number":168,"context_line":"                     \u0027on-going live migration is slow. Auto converge will \u0027"},{"line_number":169,"context_line":"                     \u0027only be used if this flag is set to True and \u0027"},{"line_number":170,"context_line":"                     \u0027live_migration_permit_post_copy is set to False or \u0027"},{"line_number":171,"context_line":"                     \u0027post_copy is unavailable due to the version of libvirt \u0027"},{"line_number":172,"context_line":"                     \u0027and QEMU in use. Auto converge requires libvirt\u003e\u003d1.2.3 \u0027"},{"line_number":173,"context_line":"                     \u0027and QEMU\u003e\u003d1.6.0.\u0027),"}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_f436374f","line":170,"range":{"start_line":170,"start_character":22,"end_line":170,"end_character":69},"updated":"2016-06-27 10:32:56.000000000","message":"Nit: Please note we have a specific format to cover \"related options\" now, so its much clearer.","commit_id":"4a7ed81112bb7114eddd0e76ce7f20a4d996666c"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"f0fd855a25107ea1ee1596bdd0f3a3438a6a6206","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                help\u003d\u0027Auto converge throttles down CPU if a progress of \u0027"},{"line_number":168,"context_line":"                     \u0027on-going live migration is slow. Auto converge will \u0027"},{"line_number":169,"context_line":"                     \u0027only be used if this flag is set to True and \u0027"},{"line_number":170,"context_line":"                     \u0027live_migration_permit_post_copy is set to False or \u0027"},{"line_number":171,"context_line":"                     \u0027post_copy is unavailable due to the version of libvirt \u0027"},{"line_number":172,"context_line":"                     \u0027and QEMU in use. Auto converge requires libvirt\u003e\u003d1.2.3 \u0027"},{"line_number":173,"context_line":"                     \u0027and QEMU\u003e\u003d1.6.0.\u0027),"}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_a5659b45","line":170,"range":{"start_line":170,"start_character":22,"end_line":170,"end_character":69},"in_reply_to":"3aaa91ec_f436374f","updated":"2016-06-27 11:03:18.000000000","message":"Will see how to use it, thanks","commit_id":"4a7ed81112bb7114eddd0e76ce7f20a4d996666c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4d7f5a2a69d45a47751bc58692b5e7049395cf59","unresolved":false,"context_lines":[{"line_number":184,"context_line":"of libvirt and QEMU in use. Auto converge requires libvirt\u003e\u003d1.2.3 and"},{"line_number":185,"context_line":"QEMU\u003e\u003d1.6.0."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"Possible values:"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    * True/False"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Services that use this:"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    * ``nova-compute``"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"Related options:"},{"line_number":196,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"3aaa91ec_0968d0b9","line":193,"range":{"start_line":187,"start_character":0,"end_line":193,"end_character":22},"updated":"2016-06-28 09:15:03.000000000","message":"Nit: these bits should all be dropped, see:\nhttps://wiki.openstack.org/wiki/ConfigOptionsConsistency","commit_id":"17625594021e155cdfb021f1f782f958d1784188"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"0892c1e113e6f05ba2ca9e054c1357f5b64009e5","unresolved":false,"context_lines":[{"line_number":184,"context_line":"of libvirt and QEMU in use. Auto converge requires libvirt\u003e\u003d1.2.3 and"},{"line_number":185,"context_line":"QEMU\u003e\u003d1.6.0."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"Possible values:"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    * True/False"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Services that use this:"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    * ``nova-compute``"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"Related options:"},{"line_number":196,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"3aaa91ec_aa06c31d","line":193,"range":{"start_line":187,"start_character":0,"end_line":193,"end_character":22},"in_reply_to":"3aaa91ec_0968d0b9","updated":"2016-06-28 12:46:05.000000000","message":"This does not merge to the latest version of post copy configuration so i will drop these bits in a minute","commit_id":"17625594021e155cdfb021f1f782f958d1784188"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"26bb587237036d7c08b167e2178d56423ec933b9","unresolved":false,"context_lines":[{"line_number":1204,"context_line":"                         libvirt_driver.libvirt.VIR_MIGRATE_NON_SHARED_INC |"},{"line_number":1205,"context_line":"                         libvirt_driver.libvirt.VIR_MIGRATE_POSTCOPY))"},{"line_number":1206,"context_line":""},{"line_number":1207,"context_line":"    @mock.patch.object(host.Host, \u0027has_min_version\u0027, return_value\u003dTrue)"},{"line_number":1208,"context_line":"    def test_live_migration_permit_auto_converge_true(self, host):"},{"line_number":1209,"context_line":"        self.flags(live_migration_permit_auto_converge\u003dTrue, group\u003d\u0027libvirt\u0027)"},{"line_number":1210,"context_line":"        self._do_test_parse_migration_flags("}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_492a7491","line":1207,"updated":"2016-06-13 13:02:56.000000000","message":"Maybe add a test for auto-converge on, post-copy on and libvirt version \u003c post-copy minimum?","commit_id":"ace1576be3d13793eb081e3abc86cd5e7cbe4455"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"be869eecf60b376102ec6588d64b31b439548efc","unresolved":false,"context_lines":[{"line_number":1204,"context_line":"                         libvirt_driver.libvirt.VIR_MIGRATE_NON_SHARED_INC |"},{"line_number":1205,"context_line":"                         libvirt_driver.libvirt.VIR_MIGRATE_POSTCOPY))"},{"line_number":1206,"context_line":""},{"line_number":1207,"context_line":"    @mock.patch.object(host.Host, \u0027has_min_version\u0027, return_value\u003dTrue)"},{"line_number":1208,"context_line":"    def test_live_migration_permit_auto_converge_true(self, host):"},{"line_number":1209,"context_line":"        self.flags(live_migration_permit_auto_converge\u003dTrue, group\u003d\u0027libvirt\u0027)"},{"line_number":1210,"context_line":"        self._do_test_parse_migration_flags("}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_c75acbf1","line":1207,"in_reply_to":"7aa08908_492a7491","updated":"2016-06-13 13:29:21.000000000","message":"Good point, done","commit_id":"ace1576be3d13793eb081e3abc86cd5e7cbe4455"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"09ecee46974557069d833423bd8f6db36858f3ae","unresolved":false,"context_lines":[{"line_number":688,"context_line":"            LOG.info(_LI(\u0027Adding the VIR_MIGRATE_AUTO_CONVERGE flag to \u0027"},{"line_number":689,"context_line":"                         \u0027%(config_name)s because it increases chances to \u0027"},{"line_number":690,"context_line":"                         \u0027complete live migration of instances with \u0027"},{"line_number":691,"context_line":"                         \u0027memory-intensive workload\u0027))"},{"line_number":692,"context_line":"            migration_flags |\u003d libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"        return migration_flags"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_c8ca061b","line":691,"updated":"2016-01-25 06:19:42.000000000","message":"Missing {\u0027config_name\u0027: config_name}.","commit_id":"db29a30d85a97a623a754e7a8afe94af18580965"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"a405ed9bea9119fac61ccc085ab7fd37feb88086","unresolved":false,"context_lines":[{"line_number":688,"context_line":"            LOG.info(_LI(\u0027Adding the VIR_MIGRATE_AUTO_CONVERGE flag to \u0027"},{"line_number":689,"context_line":"                         \u0027%(config_name)s because it increases chances to \u0027"},{"line_number":690,"context_line":"                         \u0027complete live migration of instances with \u0027"},{"line_number":691,"context_line":"                         \u0027memory-intensive workload\u0027))"},{"line_number":692,"context_line":"            migration_flags |\u003d libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"        return migration_flags"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_82aa3dd3","line":691,"in_reply_to":"9a68dd71_c8ca061b","updated":"2016-01-28 09:32:16.000000000","message":"Done","commit_id":"db29a30d85a97a623a754e7a8afe94af18580965"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"b8413935ca8f741a306b8d0962494711af98191e","unresolved":false,"context_lines":[{"line_number":586,"context_line":""},{"line_number":587,"context_line":"        return migration_flags"},{"line_number":588,"context_line":""},{"line_number":589,"context_line":"    def _handle_live_migration_auto_converge(self, migration_flags,"},{"line_number":590,"context_line":"                                             config_name):"},{"line_number":591,"context_line":"        if not CONF.libvirt.live_migration_permit_auto_converge:"},{"line_number":592,"context_line":"            migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_AUTO_CONVERGE"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_653936f2","line":589,"updated":"2016-06-08 09:37:52.000000000","message":"Need to check for post-copy flag value too here so it only sets auto-converge on if post-copy is not enabled.  If post-copy is enabled then I guess you can check libvirt and qemu versions to see if post-copy is supported and if not then set auto-converge on if enabled and the version of libvirt and qemu support the auto-converge feature","commit_id":"301d617a0ec35acb463a042beebe6e0ad16aa91b"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"479f202328dafb45d24c686afa212bac5bbeda53","unresolved":false,"context_lines":[{"line_number":597,"context_line":"        else:"},{"line_number":598,"context_line":"            migration_flags |\u003d libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":599,"context_line":"        return migration_flags"},{"line_number":600,"context_line":""},{"line_number":601,"context_line":"    def _parse_migration_flags(self):"},{"line_number":602,"context_line":"        def str2sum(str_val):"},{"line_number":603,"context_line":"            logical_sum \u003d 0"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_d76a6180","line":600,"updated":"2016-06-08 09:47:48.000000000","message":"Need to check for post-copy flag value too here so it only sets auto-converge on if post-copy is not enabled. If post-copy is enabled then I guess you can check libvirt and qemu versions to see if post-copy is supported and if not then set auto-converge on if enabled and the version of libvirt and qemu support the auto-converge feature","commit_id":"54b8a2054a6748b78c345d4e56b2cd543ed4c53c"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"26bb587237036d7c08b167e2178d56423ec933b9","unresolved":false,"context_lines":[{"line_number":614,"context_line":"            migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_POSTCOPY"},{"line_number":615,"context_line":"        return migration_flags"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"    def _handle_live_migration_auto_converge(self, migration_flags,"},{"line_number":618,"context_line":"                                             config_name):"},{"line_number":619,"context_line":"        if self._host.has_min_version(lv_ver\u003dMIN_LIBVIRT_AUTO_CONVERGE_VERSION,"},{"line_number":620,"context_line":"                                      hv_ver\u003dMIN_QEMU_AUTO_CONVERGE):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_4c8ba268","line":617,"updated":"2016-06-13 13:02:56.000000000","message":"Need to handel the case where auto-converge and post-copy are on but libvit/qemu versions are less than minimum for post-copy, i.e. in this case auto-converge should be enabled.","commit_id":"ace1576be3d13793eb081e3abc86cd5e7cbe4455"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"be869eecf60b376102ec6588d64b31b439548efc","unresolved":false,"context_lines":[{"line_number":614,"context_line":"            migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_POSTCOPY"},{"line_number":615,"context_line":"        return migration_flags"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"    def _handle_live_migration_auto_converge(self, migration_flags,"},{"line_number":618,"context_line":"                                             config_name):"},{"line_number":619,"context_line":"        if self._host.has_min_version(lv_ver\u003dMIN_LIBVIRT_AUTO_CONVERGE_VERSION,"},{"line_number":620,"context_line":"                                      hv_ver\u003dMIN_QEMU_AUTO_CONVERGE):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_eca88e8e","line":617,"in_reply_to":"7aa08908_4c8ba268","updated":"2016-06-13 13:29:21.000000000","message":"This case is already handled. We check for post copy flag and Libvirt/QEMU support first, so if post-copy is enabled but version is not met then line 621 will return False and line 628 will be executed.","commit_id":"ace1576be3d13793eb081e3abc86cd5e7cbe4455"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"59f68298148c57624b1f86bc5ebb0cce87a20214","unresolved":false,"context_lines":[{"line_number":621,"context_line":"                                      hv_ver\u003dMIN_QEMU_AUTO_CONVERGE):"},{"line_number":622,"context_line":"            if (migration_flags \u0026 libvirt.VIR_MIGRATE_POSTCOPY) !\u003d 0:"},{"line_number":623,"context_line":"                migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":624,"context_line":"                LOG.warning(_LW(\u0027Post copy live migration is set to True so \u0027"},{"line_number":625,"context_line":"                                \u0027auto-converge will not be in use.\u0027))"},{"line_number":626,"context_line":"            elif not CONF.libvirt.live_migration_permit_auto_converge:"},{"line_number":627,"context_line":"                migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":628,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_92f4f5cf","line":625,"range":{"start_line":624,"start_character":16,"end_line":625,"end_character":69},"updated":"2016-06-15 20:43:35.000000000","message":"I think it would be better to raise exception here rather than warn operator in logs. As this one is kind of misconfiguration.","commit_id":"69e208fb0584a2be06c527bc6557f8c4c77a4be5"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"1495c76bfc803448f8d556eb75936d0acc43acaf","unresolved":false,"context_lines":[{"line_number":621,"context_line":"                                      hv_ver\u003dMIN_QEMU_AUTO_CONVERGE):"},{"line_number":622,"context_line":"            if (migration_flags \u0026 libvirt.VIR_MIGRATE_POSTCOPY) !\u003d 0:"},{"line_number":623,"context_line":"                migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":624,"context_line":"                LOG.warning(_LW(\u0027Post copy live migration is set to True so \u0027"},{"line_number":625,"context_line":"                                \u0027auto-converge will not be in use.\u0027))"},{"line_number":626,"context_line":"            elif not CONF.libvirt.live_migration_permit_auto_converge:"},{"line_number":627,"context_line":"                migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":628,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_e1e465ad","line":625,"range":{"start_line":624,"start_character":16,"end_line":625,"end_character":69},"in_reply_to":"7aa08908_215dcdec","updated":"2016-06-16 12:51:18.000000000","message":"Current approach we are trying to implement is kind of best-effort. On the other hand as nova exposes this params over config and by default they are disabled it\u0027s on operator to decide whether its worth to enable it or not. So it\u0027s kind of operator duty. At the same time I as operator would try to enable *all* possible features that will help nova to congverge live-migration, while some of them are mutually exclusive, like here. So from my sight it could be left undetected if we just log info/warning. I find more preferable to do kind of validation of config and raise exception in case of conflicts.","commit_id":"69e208fb0584a2be06c527bc6557f8c4c77a4be5"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"475c9d31df1755eee6fba3915e5970de0bc7fca7","unresolved":false,"context_lines":[{"line_number":621,"context_line":"                                      hv_ver\u003dMIN_QEMU_AUTO_CONVERGE):"},{"line_number":622,"context_line":"            if (migration_flags \u0026 libvirt.VIR_MIGRATE_POSTCOPY) !\u003d 0:"},{"line_number":623,"context_line":"                migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":624,"context_line":"                LOG.warning(_LW(\u0027Post copy live migration is set to True so \u0027"},{"line_number":625,"context_line":"                                \u0027auto-converge will not be in use.\u0027))"},{"line_number":626,"context_line":"            elif not CONF.libvirt.live_migration_permit_auto_converge:"},{"line_number":627,"context_line":"                migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":628,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_15df010d","line":625,"range":{"start_line":624,"start_character":16,"end_line":625,"end_character":69},"in_reply_to":"7aa08908_3c5cd67c","updated":"2016-06-17 06:39:11.000000000","message":"Changed log level to info","commit_id":"69e208fb0584a2be06c527bc6557f8c4c77a4be5"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"c2dd7e159a8a5a9524115ef3d74f5b904e96d4e7","unresolved":false,"context_lines":[{"line_number":621,"context_line":"                                      hv_ver\u003dMIN_QEMU_AUTO_CONVERGE):"},{"line_number":622,"context_line":"            if (migration_flags \u0026 libvirt.VIR_MIGRATE_POSTCOPY) !\u003d 0:"},{"line_number":623,"context_line":"                migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":624,"context_line":"                LOG.warning(_LW(\u0027Post copy live migration is set to True so \u0027"},{"line_number":625,"context_line":"                                \u0027auto-converge will not be in use.\u0027))"},{"line_number":626,"context_line":"            elif not CONF.libvirt.live_migration_permit_auto_converge:"},{"line_number":627,"context_line":"                migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":628,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_a7472376","line":625,"range":{"start_line":624,"start_character":16,"end_line":625,"end_character":69},"in_reply_to":"7aa08908_92f4f5cf","updated":"2016-06-16 05:41:53.000000000","message":"Permit does not guarantee that auto converge will be used. Spec says that auto converge will be used only if available and if post copy is not set to True. In such case we shouldn\u0027t raise any exception, but just warn that auto converge is permitted but libvirt/qemu does not meet version requirements.","commit_id":"69e208fb0584a2be06c527bc6557f8c4c77a4be5"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"3071694124a5525913135fba58395f5cdfbac6dc","unresolved":false,"context_lines":[{"line_number":621,"context_line":"                                      hv_ver\u003dMIN_QEMU_AUTO_CONVERGE):"},{"line_number":622,"context_line":"            if (migration_flags \u0026 libvirt.VIR_MIGRATE_POSTCOPY) !\u003d 0:"},{"line_number":623,"context_line":"                migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":624,"context_line":"                LOG.warning(_LW(\u0027Post copy live migration is set to True so \u0027"},{"line_number":625,"context_line":"                                \u0027auto-converge will not be in use.\u0027))"},{"line_number":626,"context_line":"            elif not CONF.libvirt.live_migration_permit_auto_converge:"},{"line_number":627,"context_line":"                migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":628,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_215dcdec","line":625,"range":{"start_line":624,"start_character":16,"end_line":625,"end_character":69},"in_reply_to":"7aa08908_a7472376","updated":"2016-06-16 12:37:08.000000000","message":"It is definitely sufficient to use LOG.info here, perhaps even LOG.debug, because having post-copy take priority over auto-converge is a perfectly normal scenario you don\u0027t need to worry about","commit_id":"69e208fb0584a2be06c527bc6557f8c4c77a4be5"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"59219d27473517f7c2780e3acd97ef0bb44434eb","unresolved":false,"context_lines":[{"line_number":621,"context_line":"                                      hv_ver\u003dMIN_QEMU_AUTO_CONVERGE):"},{"line_number":622,"context_line":"            if (migration_flags \u0026 libvirt.VIR_MIGRATE_POSTCOPY) !\u003d 0:"},{"line_number":623,"context_line":"                migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":624,"context_line":"                LOG.warning(_LW(\u0027Post copy live migration is set to True so \u0027"},{"line_number":625,"context_line":"                                \u0027auto-converge will not be in use.\u0027))"},{"line_number":626,"context_line":"            elif not CONF.libvirt.live_migration_permit_auto_converge:"},{"line_number":627,"context_line":"                migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":628,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_3c5cd67c","line":625,"range":{"start_line":624,"start_character":16,"end_line":625,"end_character":69},"in_reply_to":"7aa08908_e1e465ad","updated":"2016-06-16 12:55:24.000000000","message":"The intention is that these config parameters will actually default to True once we\u0027ve proved the code is working well. This will mean migration will \"just work\" and take the best approach out of the box with no need for admins to set any config parameters unless they wish to explicitly opt-in to a worse configuration for some reason.  This is why we will *not* raise errors here","commit_id":"69e208fb0584a2be06c527bc6557f8c4c77a4be5"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"59f68298148c57624b1f86bc5ebb0cce87a20214","unresolved":false,"context_lines":[{"line_number":628,"context_line":"            else:"},{"line_number":629,"context_line":"                migration_flags |\u003d libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":630,"context_line":"        elif CONF.libvirt.live_migration_permit_auto_converge:"},{"line_number":631,"context_line":"            LOG.warning(_LW(\u0027The live_migration_permit_auto_converge is set \u0027"},{"line_number":632,"context_line":"                            \u0027to True, but it is not supported.\u0027))"},{"line_number":633,"context_line":"        return migration_flags"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"    def _parse_migration_flags(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_32d1c130","line":632,"range":{"start_line":631,"start_character":12,"end_line":632,"end_character":65},"updated":"2016-06-15 20:43:35.000000000","message":"see comment above","commit_id":"69e208fb0584a2be06c527bc6557f8c4c77a4be5"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"c2dd7e159a8a5a9524115ef3d74f5b904e96d4e7","unresolved":false,"context_lines":[{"line_number":628,"context_line":"            else:"},{"line_number":629,"context_line":"                migration_flags |\u003d libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":630,"context_line":"        elif CONF.libvirt.live_migration_permit_auto_converge:"},{"line_number":631,"context_line":"            LOG.warning(_LW(\u0027The live_migration_permit_auto_converge is set \u0027"},{"line_number":632,"context_line":"                            \u0027to True, but it is not supported.\u0027))"},{"line_number":633,"context_line":"        return migration_flags"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"    def _parse_migration_flags(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_67341bfb","line":632,"range":{"start_line":631,"start_character":12,"end_line":632,"end_character":65},"in_reply_to":"7aa08908_32d1c130","updated":"2016-06-16 05:41:53.000000000","message":"ditto","commit_id":"69e208fb0584a2be06c527bc6557f8c4c77a4be5"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"3071694124a5525913135fba58395f5cdfbac6dc","unresolved":false,"context_lines":[{"line_number":628,"context_line":"            else:"},{"line_number":629,"context_line":"                migration_flags |\u003d libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":630,"context_line":"        elif CONF.libvirt.live_migration_permit_auto_converge:"},{"line_number":631,"context_line":"            LOG.warning(_LW(\u0027The live_migration_permit_auto_converge is set \u0027"},{"line_number":632,"context_line":"                            \u0027to True, but it is not supported.\u0027))"},{"line_number":633,"context_line":"        return migration_flags"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"    def _parse_migration_flags(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_816c819e","line":632,"range":{"start_line":631,"start_character":12,"end_line":632,"end_character":65},"in_reply_to":"7aa08908_67341bfb","updated":"2016-06-16 12:37:08.000000000","message":"And LOG.info here too","commit_id":"69e208fb0584a2be06c527bc6557f8c4c77a4be5"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"475c9d31df1755eee6fba3915e5970de0bc7fca7","unresolved":false,"context_lines":[{"line_number":628,"context_line":"            else:"},{"line_number":629,"context_line":"                migration_flags |\u003d libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":630,"context_line":"        elif CONF.libvirt.live_migration_permit_auto_converge:"},{"line_number":631,"context_line":"            LOG.warning(_LW(\u0027The live_migration_permit_auto_converge is set \u0027"},{"line_number":632,"context_line":"                            \u0027to True, but it is not supported.\u0027))"},{"line_number":633,"context_line":"        return migration_flags"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"    def _parse_migration_flags(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_75e645e9","line":632,"range":{"start_line":631,"start_character":12,"end_line":632,"end_character":65},"in_reply_to":"7aa08908_816c819e","updated":"2016-06-17 06:39:11.000000000","message":"Changed log level to info","commit_id":"69e208fb0584a2be06c527bc6557f8c4c77a4be5"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"759f9f1737525d0e5d4dca011c8842caee31ab54","unresolved":false,"context_lines":[{"line_number":622,"context_line":"            if (self._is_post_copy_available() and"},{"line_number":623,"context_line":"                    (migration_flags \u0026 libvirt.VIR_MIGRATE_POSTCOPY) !\u003d 0):"},{"line_number":624,"context_line":"                migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":625,"context_line":"                LOG.info(_LI(\u0027The live_migration_permit_post_copy is set to \u0027"},{"line_number":626,"context_line":"                             \u0027True and post copy live migration is available \u0027"},{"line_number":627,"context_line":"                             \u0027so auto-converge will not be in use.\u0027))"},{"line_number":628,"context_line":"            elif not CONF.libvirt.live_migration_permit_auto_converge:"}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_0a7bde7b","line":625,"range":{"start_line":625,"start_character":20,"end_line":625,"end_character":24},"updated":"2016-06-27 10:32:56.000000000","message":"is info correct here? feels like we are miss configured, so it should be a warning?","commit_id":"4a7ed81112bb7114eddd0e76ce7f20a4d996666c"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"f0fd855a25107ea1ee1596bdd0f3a3438a6a6206","unresolved":false,"context_lines":[{"line_number":622,"context_line":"            if (self._is_post_copy_available() and"},{"line_number":623,"context_line":"                    (migration_flags \u0026 libvirt.VIR_MIGRATE_POSTCOPY) !\u003d 0):"},{"line_number":624,"context_line":"                migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":625,"context_line":"                LOG.info(_LI(\u0027The live_migration_permit_post_copy is set to \u0027"},{"line_number":626,"context_line":"                             \u0027True and post copy live migration is available \u0027"},{"line_number":627,"context_line":"                             \u0027so auto-converge will not be in use.\u0027))"},{"line_number":628,"context_line":"            elif not CONF.libvirt.live_migration_permit_auto_converge:"}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_a530fb56","line":625,"range":{"start_line":625,"start_character":20,"end_line":625,"end_character":24},"in_reply_to":"3aaa91ec_0a7bde7b","updated":"2016-06-27 11:03:18.000000000","message":"Given what is described in specification this is expected behavior, not misconfiguration. We always want to choose method out of all available methods that has the highest chance of success","commit_id":"4a7ed81112bb7114eddd0e76ce7f20a4d996666c"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"e3db11c497acc92704d8737232e9111150c0d169","unresolved":false,"context_lines":[{"line_number":622,"context_line":"            if (self._is_post_copy_available() and"},{"line_number":623,"context_line":"                    (migration_flags \u0026 libvirt.VIR_MIGRATE_POSTCOPY) !\u003d 0):"},{"line_number":624,"context_line":"                migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":625,"context_line":"                LOG.info(_LI(\u0027The live_migration_permit_post_copy is set to \u0027"},{"line_number":626,"context_line":"                             \u0027True and post copy live migration is available \u0027"},{"line_number":627,"context_line":"                             \u0027so auto-converge will not be in use.\u0027))"},{"line_number":628,"context_line":"            elif not CONF.libvirt.live_migration_permit_auto_converge:"}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_d31063ae","line":625,"range":{"start_line":625,"start_character":20,"end_line":625,"end_character":24},"in_reply_to":"3aaa91ec_a530fb56","updated":"2016-06-27 14:10:04.000000000","message":"In \"normal\" circumstances we are aiming to have both auto-converge \u0026 post-copy allowed by default, and Nova will then chose the right one. So as Pawel says, this is an expected scenario not a mis-configuration.\n\nIt just looks odd right now since we\u0027re defaulting to off for Newton. In Ocata hopefully we\u0027ll default to post-copy+auto-converge allowed out of the bo.","commit_id":"4a7ed81112bb7114eddd0e76ce7f20a4d996666c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"555f849ae8b3b072962e7d8320f47e8205174ce0","unresolved":false,"context_lines":[{"line_number":622,"context_line":"            if (self._is_post_copy_available() and"},{"line_number":623,"context_line":"                    (migration_flags \u0026 libvirt.VIR_MIGRATE_POSTCOPY) !\u003d 0):"},{"line_number":624,"context_line":"                migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":625,"context_line":"                LOG.info(_LI(\u0027The live_migration_permit_post_copy is set to \u0027"},{"line_number":626,"context_line":"                             \u0027True and post copy live migration is available \u0027"},{"line_number":627,"context_line":"                             \u0027so auto-converge will not be in use.\u0027))"},{"line_number":628,"context_line":"            elif not CONF.libvirt.live_migration_permit_auto_converge:"}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_a95b7c2d","line":625,"range":{"start_line":625,"start_character":20,"end_line":625,"end_character":24},"in_reply_to":"3aaa91ec_d31063ae","updated":"2016-06-28 09:13:26.000000000","message":"Ah, OK.","commit_id":"4a7ed81112bb7114eddd0e76ce7f20a4d996666c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"759f9f1737525d0e5d4dca011c8842caee31ab54","unresolved":false,"context_lines":[{"line_number":630,"context_line":"            else:"},{"line_number":631,"context_line":"                migration_flags |\u003d libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":632,"context_line":"        elif CONF.libvirt.live_migration_permit_auto_converge:"},{"line_number":633,"context_line":"            LOG.info(_LI(\u0027The live_migration_permit_auto_converge is set \u0027"},{"line_number":634,"context_line":"                            \u0027to True, but it is not supported.\u0027))"},{"line_number":635,"context_line":"        return migration_flags"},{"line_number":636,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_eaa6520d","line":633,"range":{"start_line":633,"start_character":16,"end_line":633,"end_character":20},"updated":"2016-06-27 10:32:56.000000000","message":"As above, should this be a warning? to match ln612, and our general log guidelines?\nhttp://specs.openstack.org/openstack/openstack-specs/specs/log-guidelines.html","commit_id":"4a7ed81112bb7114eddd0e76ce7f20a4d996666c"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"e3db11c497acc92704d8737232e9111150c0d169","unresolved":false,"context_lines":[{"line_number":630,"context_line":"            else:"},{"line_number":631,"context_line":"                migration_flags |\u003d libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":632,"context_line":"        elif CONF.libvirt.live_migration_permit_auto_converge:"},{"line_number":633,"context_line":"            LOG.info(_LI(\u0027The live_migration_permit_auto_converge is set \u0027"},{"line_number":634,"context_line":"                            \u0027to True, but it is not supported.\u0027))"},{"line_number":635,"context_line":"        return migration_flags"},{"line_number":636,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_d3c5030b","line":633,"range":{"start_line":633,"start_character":16,"end_line":633,"end_character":20},"in_reply_to":"3aaa91ec_4570370b","updated":"2016-06-27 14:10:04.000000000","message":"No, this one should *not* be a warning either. Again, consider that we intend to have both of these options enabled by default in future. We don\u0027t want to spam users logs with warnings at startup if they just happen to have older QEMU on their deployment.\n\nNote this is why the config options are named \"permit_FOO\" as opposed to \"use_FOO\".","commit_id":"4a7ed81112bb7114eddd0e76ce7f20a4d996666c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"555f849ae8b3b072962e7d8320f47e8205174ce0","unresolved":false,"context_lines":[{"line_number":630,"context_line":"            else:"},{"line_number":631,"context_line":"                migration_flags |\u003d libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":632,"context_line":"        elif CONF.libvirt.live_migration_permit_auto_converge:"},{"line_number":633,"context_line":"            LOG.info(_LI(\u0027The live_migration_permit_auto_converge is set \u0027"},{"line_number":634,"context_line":"                            \u0027to True, but it is not supported.\u0027))"},{"line_number":635,"context_line":"        return migration_flags"},{"line_number":636,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_0941f039","line":633,"range":{"start_line":633,"start_character":16,"end_line":633,"end_character":20},"in_reply_to":"3aaa91ec_d3c5030b","updated":"2016-06-28 09:13:26.000000000","message":"OK.","commit_id":"4a7ed81112bb7114eddd0e76ce7f20a4d996666c"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"f0fd855a25107ea1ee1596bdd0f3a3438a6a6206","unresolved":false,"context_lines":[{"line_number":630,"context_line":"            else:"},{"line_number":631,"context_line":"                migration_flags |\u003d libvirt.VIR_MIGRATE_AUTO_CONVERGE"},{"line_number":632,"context_line":"        elif CONF.libvirt.live_migration_permit_auto_converge:"},{"line_number":633,"context_line":"            LOG.info(_LI(\u0027The live_migration_permit_auto_converge is set \u0027"},{"line_number":634,"context_line":"                            \u0027to True, but it is not supported.\u0027))"},{"line_number":635,"context_line":"        return migration_flags"},{"line_number":636,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3aaa91ec_4570370b","line":633,"range":{"start_line":633,"start_character":16,"end_line":633,"end_character":20},"in_reply_to":"3aaa91ec_eaa6520d","updated":"2016-06-27 11:03:18.000000000","message":"Yes, this one can be a warning to indicate that auto converge will not be used and therefore chances of live migrating any instance are lower.","commit_id":"4a7ed81112bb7114eddd0e76ce7f20a4d996666c"}]}
