)]}'
{"nova/conf/libvirt.py":[{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"b07f12789a91722d7773fba8a95e2befb2b80fa3","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                     \u0027and QEMU in use.\u0027),"},{"line_number":154,"context_line":"    cfg.BoolOpt(\u0027live_migration_permit_post_copy\u0027,"},{"line_number":155,"context_line":"                default\u003dFalse,"},{"line_number":156,"context_line":"                help\u003d\u0027Post-copy allows to drive the live migration process \u0027"},{"line_number":157,"context_line":"                     \u0027from the destination VM, therefore ensuring an upper \u0027"},{"line_number":158,"context_line":"                     \u0027bound on the memory that needs to be transferred. \u0027"},{"line_number":159,"context_line":"                     \u0027Post-copy will only be used if this flag is set to \u0027"},{"line_number":160,"context_line":"                     \u0027True and it is available at the libvirt and QEMU \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_97cc596b","line":157,"range":{"start_line":156,"start_character":39,"end_line":157,"end_character":45},"updated":"2016-06-08 09:52:19.000000000","message":"nova to switch the active VM to the one on the destination node before the migration is complete,","commit_id":"d69303f4fbd33720eed884ff88cc20a64eac6d55"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"60fd28a4f36d4a4b65dda07b1328b5c51173ebcc","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                     \u0027QEMU\u003e\u003d1.6.0.\u0027),"},{"line_number":155,"context_line":"    cfg.BoolOpt(\u0027live_migration_permit_post_copy\u0027,"},{"line_number":156,"context_line":"                default\u003dFalse,"},{"line_number":157,"context_line":"                help\u003d\u0027Post-copy allows nova to swtich the active VM to the \u0027"},{"line_number":158,"context_line":"                     \u0027one on the destination node before the migration is \u0027"},{"line_number":159,"context_line":"                     \u0027complete, therefore ensuring an upper bound on the \u0027"},{"line_number":160,"context_line":"                     \u0027memory that needs to be transferred. \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_cb747837","line":157,"range":{"start_line":157,"start_character":47,"end_line":157,"end_character":53},"updated":"2016-06-08 10:43:04.000000000","message":"typo","commit_id":"c23b2ae9a962c428b11c52213dc69544c76a7fdb"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2e5a53b553a782d2dd024116fd03ae9acf685235","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                    \u0027operation. Set to 0 to disable timeouts.\u0027),"},{"line_number":155,"context_line":"    cfg.BoolOpt(\u0027live_migration_permit_post_copy\u0027,"},{"line_number":156,"context_line":"                default\u003dFalse,"},{"line_number":157,"context_line":"                help\u003d\u0027Post-copy allows nova to switch the active VM to the \u0027"},{"line_number":158,"context_line":"                     \u0027one on the destination node before the migration is \u0027"},{"line_number":159,"context_line":"                     \u0027complete, therefore ensuring an upper bound on the \u0027"},{"line_number":160,"context_line":"                     \u0027memory that needs to be transferred. \u0027"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_8780678c","line":157,"range":{"start_line":157,"start_character":32,"end_line":157,"end_character":53},"updated":"2016-06-27 10:28:08.000000000","message":"It feels like we need to mention the change in the behaviour of the \"live-migration-force-complete\" call, that can be used to trigger post_copy?\n\nAlso I feel we should mention the 10% threshold used when memory is no longer updating enough to automatically trigger post_copy?\n\nPlease note, I am reviewing this thinking about how an operator would set this configuration reading only the admin and configuration docs, and not reading the code. As that is our intent with these docs.","commit_id":"faca245e18f2e6e78e5909049ba6438df5855d7f"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"e2eba483bdacac712acd5789e87116ff87f84658","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                    \u0027operation. Set to 0 to disable timeouts.\u0027),"},{"line_number":155,"context_line":"    cfg.BoolOpt(\u0027live_migration_permit_post_copy\u0027,"},{"line_number":156,"context_line":"                default\u003dFalse,"},{"line_number":157,"context_line":"                help\u003d\u0027Post-copy allows nova to switch the active VM to the \u0027"},{"line_number":158,"context_line":"                     \u0027one on the destination node before the migration is \u0027"},{"line_number":159,"context_line":"                     \u0027complete, therefore ensuring an upper bound on the \u0027"},{"line_number":160,"context_line":"                     \u0027memory that needs to be transferred. \u0027"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_3378c72b","line":157,"range":{"start_line":157,"start_character":32,"end_line":157,"end_character":53},"in_reply_to":"3aaa91ec_8780678c","updated":"2016-06-27 14:06:00.000000000","message":"I tend to think that the additions you\u0027re requesting here belong in the admin guide rather than against this config option. Not least because the threshold you refer to is just one small part of the logic of migration, and I think it\u0027d be more useful if we described live migration as a whole.","commit_id":"faca245e18f2e6e78e5909049ba6438df5855d7f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2e5a53b553a782d2dd024116fd03ae9acf685235","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                     \u0027Post-copy will only be used if this flag is set to \u0027"},{"line_number":162,"context_line":"                     \u0027True and it is available at the libvirt and QEMU \u0027"},{"line_number":163,"context_line":"                     \u0027version in use. Requires libvirt\u003e\u003d1.3.3 and \u0027"},{"line_number":164,"context_line":"                     \u0027QEMU\u003e\u003d2.5.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),"},{"line_number":167,"context_line":"               help\u003d\u0027Snapshot image format. Defaults to same as source image\u0027),"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_b19a0112","line":164,"updated":"2016-06-27 10:28:08.000000000","message":"Nit: I would would much rather we added this with the correct new format, but thats not a blocker for me. See examples: https://git.openstack.org/cgit/openstack/nova/tree/nova/conf/availability_zone.py and https://wiki.openstack.org/wiki/ConfigOptionsConsistency","commit_id":"faca245e18f2e6e78e5909049ba6438df5855d7f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2dfcb86f777ee51115c755424e9f94e8c9312361","unresolved":false,"context_lines":[{"line_number":160,"context_line":"migration is complete, therefore ensuring an upper bound on the memory that"},{"line_number":161,"context_line":"needs to be transferred. Post-copy will only be used if this flag is set to"},{"line_number":162,"context_line":"True and it is available at the libvirt and QEMU version in use."},{"line_number":163,"context_line":"Requires libvirt\u003e\u003d1.3.3 and QEMU\u003e\u003d2.5.0."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Possible values:"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_7cbaf3c1","line":163,"updated":"2016-06-28 08:46:42.000000000","message":"I still don\u0027t think this is sufficient detail for the configuration option.","commit_id":"7149b8e0c7f729308b1599efa53fbe59433ef189"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2dfcb86f777ee51115c755424e9f94e8c9312361","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Related options:"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    * None"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"\"\"\"),"},{"line_number":178,"context_line":"    cfg.StrOpt(\u0027snapshot_image_format\u0027,"}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_bcb45bd1","line":175,"updated":"2016-06-28 08:46:42.000000000","message":"None of these three things should be present in this case.","commit_id":"7149b8e0c7f729308b1599efa53fbe59433ef189"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c5ee06e8ebd7297e88e3eb116b83e55d58e759dc","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Related options:"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    * None"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"\"\"\"),"},{"line_number":178,"context_line":"    cfg.StrOpt(\u0027snapshot_image_format\u0027,"}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_7c083392","line":175,"in_reply_to":"3aaa91ec_bcb45bd1","updated":"2016-06-28 08:47:22.000000000","message":"For context, this is based on the rules here:\nhttps://wiki.openstack.org/wiki/ConfigOptionsConsistency","commit_id":"7149b8e0c7f729308b1599efa53fbe59433ef189"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c742fe495b88a0a38912afb400b07724c34f38c2","unresolved":false,"context_lines":[{"line_number":161,"context_line":"needs to be transferred. Post-copy requires libvirt\u003e\u003d1.3.3 and QEMU\u003e\u003d2.5.0."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"When permitted, post-copy mode will be automatically be activated if a"},{"line_number":164,"context_line":"live-migration memory copy iteration does not make 10% progress towards copying"},{"line_number":165,"context_line":"all the memory."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"The live-migration force complete API also uses post-copy when permitted. If"},{"line_number":168,"context_line":"post-copy mode is not available, force complete falls back to pausing the VM"}],"source_content_type":"text/x-python","patch_set":21,"id":"3aaa91ec_0c20de48","line":165,"range":{"start_line":164,"start_character":51,"end_line":165,"end_character":14},"updated":"2016-06-28 09:38:26.000000000","message":"turns out this is not accurate, pkoniszewski is drafting an update.","commit_id":"32c124beea6fe4448f9e859a1de01e7f03cf9992"}],"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":"92a3b0dc7219021d6a69b4a1d49a9a2050a99541","unresolved":false,"context_lines":[{"line_number":1225,"context_line":"                         libvirt_driver.libvirt.VIR_MIGRATE_PEER2PEER |"},{"line_number":1226,"context_line":"                         libvirt_driver.libvirt.VIR_MIGRATE_LIVE |"},{"line_number":1227,"context_line":"                         libvirt_driver.libvirt.VIR_MIGRATE_TUNNELLED |"},{"line_number":1228,"context_line":"                         libvirt_driver.libvirt.VIR_MIGRATE_NON_SHARED_INC))"},{"line_number":1229,"context_line":""},{"line_number":1230,"context_line":"    def test_live_migration_permit_postcopy_false(self):"},{"line_number":1231,"context_line":"        self._do_test_parse_migration_flags("}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_16998479","line":1228,"updated":"2016-06-14 07:05:03.000000000","message":"In case you need to respin you can mock here log.warning and assert log message here. Something like line 1180","commit_id":"dc791b2aa28fe3c531165275d94e9d998fa245f9"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"cd7dadc9b43c94be70682570a39d6e452924b601","unresolved":false,"context_lines":[{"line_number":6342,"context_line":"                      instance\u003dinstance)"},{"line_number":6343,"context_line":""},{"line_number":6344,"context_line":"    def live_migration_force_complete(self, instance):"},{"line_number":6345,"context_line":"        # NOTE(pkoniszewski): currently only pause during live migration is"},{"line_number":6346,"context_line":"        # supported to force live migration to complete, so just try to pause"},{"line_number":6347,"context_line":"        # the instance"},{"line_number":6348,"context_line":"        try:"},{"line_number":6349,"context_line":"            if CONF.libvirt.live_migration_permit_post_copy:"},{"line_number":6350,"context_line":"                self.active_migrations[instance.uuid].append("}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_e311025f","line":6347,"range":{"start_line":6345,"start_character":8,"end_line":6347,"end_character":22},"updated":"2016-06-10 15:32:35.000000000","message":"You should remove this note","commit_id":"b6d94a33a539860c5d16eb49a5d1d3c58b2db8c7"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"1bb1872aaaa4a41230530abfa0e325f43df95d0d","unresolved":false,"context_lines":[{"line_number":6312,"context_line":""},{"line_number":6313,"context_line":"    def live_migration_force_complete(self, instance):"},{"line_number":6314,"context_line":"        try:"},{"line_number":6315,"context_line":"            if CONF.libvirt.live_migration_permit_post_copy:"},{"line_number":6316,"context_line":"                self.active_migrations[instance.uuid].append("},{"line_number":6317,"context_line":"                                                         \u0027postcopy_switch\u0027)"},{"line_number":6318,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_4f0c7442","line":6315,"updated":"2016-06-10 17:35:56.000000000","message":"I think you should check migration_flags here instead of a config file. Reasoning is that this flag only permits post-copy live migrations, it does not guarantee that this switch will be possible. In case if post-copy is not supported but permit_post_copy is set true, force complete will not work at all.","commit_id":"9cc612d33a06cdd867ec34bf0adeeb9ba79e9d94"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"2b02b9085f0ed0314055f18a59b8660b0b501509","unresolved":false,"context_lines":[{"line_number":596,"context_line":"                                         config_name):"},{"line_number":597,"context_line":"        if CONF.libvirt.live_migration_permit_post_copy:"},{"line_number":598,"context_line":"            if not self._host.has_min_version(MIN_LIBVIRT_POSTCOPY_VERSION):"},{"line_number":599,"context_line":"                LOG.error(_LE(\u0027The live_migration_permit_post_copy is set \u0027"},{"line_number":600,"context_line":"                                \u0027to True, but the version of libvirt in use \u0027"},{"line_number":601,"context_line":"                                \u0027does not support post-copy\u0027))"},{"line_number":602,"context_line":"            elif not self._host.has_min_version("}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_3298561b","line":599,"range":{"start_line":599,"start_character":20,"end_line":599,"end_character":25},"updated":"2016-06-11 18:20:00.000000000","message":"This should be warning I think. Permitting is not something that should result in an error","commit_id":"d15d3f346e4c037c9d245bfa1e84fd8cb359bc71"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"2b02b9085f0ed0314055f18a59b8660b0b501509","unresolved":false,"context_lines":[{"line_number":601,"context_line":"                                \u0027does not support post-copy\u0027))"},{"line_number":602,"context_line":"            elif not self._host.has_min_version("},{"line_number":603,"context_line":"                hv_ver\u003dMIN_QEMU_POSTCOPY_VERSION):"},{"line_number":604,"context_line":"                LOG.error(_LE(\u0027The live_migration_permit_post_copy is set \u0027"},{"line_number":605,"context_line":"                                \u0027to True, but the version of qemu in use \u0027"},{"line_number":606,"context_line":"                                \u0027does not support post-copy\u0027))"},{"line_number":607,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_929f8a02","line":604,"range":{"start_line":604,"start_character":20,"end_line":604,"end_character":25},"updated":"2016-06-11 18:20:00.000000000","message":"ditto","commit_id":"d15d3f346e4c037c9d245bfa1e84fd8cb359bc71"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"2b02b9085f0ed0314055f18a59b8660b0b501509","unresolved":false,"context_lines":[{"line_number":607,"context_line":"            else:"},{"line_number":608,"context_line":"                migration_flags |\u003d libvirt.VIR_MIGRATE_POSTCOPY"},{"line_number":609,"context_line":"        else:"},{"line_number":610,"context_line":"            migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_POSTCOPY"},{"line_number":611,"context_line":"        return migration_flags"},{"line_number":612,"context_line":""},{"line_number":613,"context_line":"    def _parse_migration_flags(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_f2f7ee56","line":610,"range":{"start_line":610,"start_character":12,"end_line":610,"end_character":60},"updated":"2016-06-11 18:20:00.000000000","message":"You need a version check here. Otherwise it will always fail when libvirt \u003c\u003d 1.3.3 is used because older version do not have this property set (VIR_MIGRATE_POSTCOPY)\n\nI\u0027m thinking of a separate method, something like _is_post_copy_available which will also be useful for checking and setting up auto convergence.","commit_id":"d15d3f346e4c037c9d245bfa1e84fd8cb359bc71"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"2b02b9085f0ed0314055f18a59b8660b0b501509","unresolved":false,"context_lines":[{"line_number":6296,"context_line":""},{"line_number":6297,"context_line":"    def live_migration_force_complete(self, instance):"},{"line_number":6298,"context_line":"        try:"},{"line_number":6299,"context_line":"            if (self._live_migration_flags \u0026 libvirt.VIR_MIGRATE_POSTCOPY):"},{"line_number":6300,"context_line":"                self.active_migrations[instance.uuid].append("},{"line_number":6301,"context_line":"                                                         \u0027postcopy_switch\u0027)"},{"line_number":6302,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_529522e2","line":6299,"updated":"2016-06-11 18:20:00.000000000","message":"You need a version check here too.","commit_id":"d15d3f346e4c037c9d245bfa1e84fd8cb359bc71"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"53633620d60ac967cc7eb934f14e7d90e0cbaaf6","unresolved":false,"context_lines":[{"line_number":6306,"context_line":"                self.active_migrations[instance.uuid].append("},{"line_number":6307,"context_line":"                                                         \u0027postcopy_switch\u0027)"},{"line_number":6308,"context_line":"            else:"},{"line_number":6309,"context_line":"                self.active_migrations[instance.uuid].append(\u0027pause\u0027)"},{"line_number":6310,"context_line":"        except KeyError:"},{"line_number":6311,"context_line":"            raise exception.NoActiveMigrationForInstance("},{"line_number":6312,"context_line":"                instance_id\u003dinstance.uuid)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_db94718c","line":6309,"updated":"2016-06-13 11:39:23.000000000","message":"I don\u0027t think we need to do this conditional check for post-copy here. I\u0027d suggest that we simply change the existing \u0027pause\u0027 task name to be \u0027force-complete\u0027 here. Have the _check_scheduled_migration_tasks method decide whether todo pause or post-copy.","commit_id":"9e6b976d5f66c67bfeeccb31b77d0689dbef4c3f"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"93dae5962aac65af4c6c62bf952c7303e4891cc7","unresolved":false,"context_lines":[{"line_number":605,"context_line":"            if self._is_post_copy_available():"},{"line_number":606,"context_line":"                migration_flags |\u003d libvirt.VIR_MIGRATE_POSTCOPY"},{"line_number":607,"context_line":"            else:"},{"line_number":608,"context_line":"                LOG.warning(_LW(\u0027The live_migration_permit_post_copy is set \u0027"},{"line_number":609,"context_line":"                                \u0027to True, but it is not supported.\u0027))"},{"line_number":610,"context_line":"        elif self._is_post_copy_available():"},{"line_number":611,"context_line":"            migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_POSTCOPY"},{"line_number":612,"context_line":"        return migration_flags"}],"source_content_type":"text/x-python","patch_set":17,"id":"7aa08908_cd241e10","line":609,"range":{"start_line":608,"start_character":16,"end_line":609,"end_character":69},"updated":"2016-06-15 21:14:23.000000000","message":"I\u0027d raise exception here, because it nova misconfiguration.","commit_id":"a10eed7cb472a1004bc02bd4c48ff576b934de96"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"7969f0ab5db363e0b85304a90801149cf8de6396","unresolved":false,"context_lines":[{"line_number":605,"context_line":"            if self._is_post_copy_available():"},{"line_number":606,"context_line":"                migration_flags |\u003d libvirt.VIR_MIGRATE_POSTCOPY"},{"line_number":607,"context_line":"            else:"},{"line_number":608,"context_line":"                LOG.warning(_LW(\u0027The live_migration_permit_post_copy is set \u0027"},{"line_number":609,"context_line":"                                \u0027to True, but it is not supported.\u0027))"},{"line_number":610,"context_line":"        elif self._is_post_copy_available():"},{"line_number":611,"context_line":"            migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_POSTCOPY"},{"line_number":612,"context_line":"        return migration_flags"}],"source_content_type":"text/x-python","patch_set":17,"id":"7aa08908_e7200bb3","line":609,"range":{"start_line":608,"start_character":16,"end_line":609,"end_character":69},"in_reply_to":"7aa08908_cd241e10","updated":"2016-06-16 05:49:41.000000000","message":"It shouldn\u0027t raise exception here because this flag does not guarantee that post-copy will be in use. This flag only permits post copy if available (i.e. QEMU and Libvirt version requirements are met).","commit_id":"a10eed7cb472a1004bc02bd4c48ff576b934de96"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"7e87e01b2811929f54cb546b8f2b052cfbcbeef1","unresolved":false,"context_lines":[{"line_number":605,"context_line":"            if self._is_post_copy_available():"},{"line_number":606,"context_line":"                migration_flags |\u003d libvirt.VIR_MIGRATE_POSTCOPY"},{"line_number":607,"context_line":"            else:"},{"line_number":608,"context_line":"                LOG.warning(_LW(\u0027The live_migration_permit_post_copy is set \u0027"},{"line_number":609,"context_line":"                                \u0027to True, but it is not supported.\u0027))"},{"line_number":610,"context_line":"        elif self._is_post_copy_available():"},{"line_number":611,"context_line":"            migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_POSTCOPY"},{"line_number":612,"context_line":"        return migration_flags"}],"source_content_type":"text/x-python","patch_set":17,"id":"7aa08908_c15cc91b","line":609,"range":{"start_line":608,"start_character":16,"end_line":609,"end_character":69},"in_reply_to":"7aa08908_e7200bb3","updated":"2016-06-16 12:32:46.000000000","message":"Yep, and I think it is sufficient to use LOG.info here too, as this is an entirely expected scenario that shouldn\u0027t really bother admins with.","commit_id":"a10eed7cb472a1004bc02bd4c48ff576b934de96"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2e5a53b553a782d2dd024116fd03ae9acf685235","unresolved":false,"context_lines":[{"line_number":608,"context_line":"                LOG.warning(_LW(\u0027The live_migration_permit_post_copy is set \u0027"},{"line_number":609,"context_line":"                                \u0027to True, but it is not supported.\u0027))"},{"line_number":610,"context_line":"        elif self._is_post_copy_available():"},{"line_number":611,"context_line":"            migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_POSTCOPY"},{"line_number":612,"context_line":"        return migration_flags"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"    def _parse_migration_flags(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_310a9126","line":611,"updated":"2016-06-27 10:28:08.000000000","message":"hmm, seems a bit odd you can set the flag via CONF.libvirt.live_migration_flag or CONF.libvirt.live_migration_permit_post_copy.\n\nShould we not always drop this flag, if live_migration_permit_post_copy \u003d false?","commit_id":"faca245e18f2e6e78e5909049ba6438df5855d7f"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"a9e57497495f81c4d0c6f9c394462aaecc0512c8","unresolved":false,"context_lines":[{"line_number":608,"context_line":"                LOG.warning(_LW(\u0027The live_migration_permit_post_copy is set \u0027"},{"line_number":609,"context_line":"                                \u0027to True, but it is not supported.\u0027))"},{"line_number":610,"context_line":"        elif self._is_post_copy_available():"},{"line_number":611,"context_line":"            migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_POSTCOPY"},{"line_number":612,"context_line":"        return migration_flags"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"    def _parse_migration_flags(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_05af4f7d","line":611,"in_reply_to":"3aaa91ec_05258f5a","updated":"2016-06-27 10:59:31.000000000","message":"I think we should drop live_migration_flag entirely as we manage everything outside of this flag right now.","commit_id":"faca245e18f2e6e78e5909049ba6438df5855d7f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"81a0f38b50cfab7b403393470d66ef09c1eccfa9","unresolved":false,"context_lines":[{"line_number":608,"context_line":"                LOG.warning(_LW(\u0027The live_migration_permit_post_copy is set \u0027"},{"line_number":609,"context_line":"                                \u0027to True, but it is not supported.\u0027))"},{"line_number":610,"context_line":"        elif self._is_post_copy_available():"},{"line_number":611,"context_line":"            migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_POSTCOPY"},{"line_number":612,"context_line":"        return migration_flags"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"    def _parse_migration_flags(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_06a46e06","line":611,"in_reply_to":"3aaa91ec_05af4f7d","updated":"2016-06-27 13:27:52.000000000","message":"So my request here is to remove line 611 and replace with just if, so it makes things simpler for both CONF.libvirt.live_migration_flag and CONF.libvirt.block_migration_flag cases.\n\nIt seems odd we bother with that.","commit_id":"faca245e18f2e6e78e5909049ba6438df5855d7f"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"97bcf44d74fd40f0ad2ff40bd7a96f22f24c77d4","unresolved":false,"context_lines":[{"line_number":608,"context_line":"                LOG.warning(_LW(\u0027The live_migration_permit_post_copy is set \u0027"},{"line_number":609,"context_line":"                                \u0027to True, but it is not supported.\u0027))"},{"line_number":610,"context_line":"        elif self._is_post_copy_available():"},{"line_number":611,"context_line":"            migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_POSTCOPY"},{"line_number":612,"context_line":"        return migration_flags"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"    def _parse_migration_flags(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_61739c16","line":611,"in_reply_to":"3aaa91ec_06a46e06","updated":"2016-06-27 13:52:58.000000000","message":"The live_migration_flags config parameters was marked deprecated for deletion in Mitaka.\n\nWith the explicit support for auto-converge and post-copy, I think we\u0027re probably at the point we can finally delete that config parameter now.\n\nI\u0027d suggest we do deleteion of live_migration_flags as a followup patch at the end of this series though.","commit_id":"faca245e18f2e6e78e5909049ba6438df5855d7f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8c1137cc6f5a2e1037328c311eca96d808da15da","unresolved":false,"context_lines":[{"line_number":608,"context_line":"                LOG.warning(_LW(\u0027The live_migration_permit_post_copy is set \u0027"},{"line_number":609,"context_line":"                                \u0027to True, but it is not supported.\u0027))"},{"line_number":610,"context_line":"        elif self._is_post_copy_available():"},{"line_number":611,"context_line":"            migration_flags \u0026\u003d ~libvirt.VIR_MIGRATE_POSTCOPY"},{"line_number":612,"context_line":"        return migration_flags"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"    def _parse_migration_flags(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_05258f5a","line":611,"in_reply_to":"3aaa91ec_310a9126","updated":"2016-06-27 10:56:10.000000000","message":"A quick follow up, if we want this behaviour, we should document it in the configuration help text.","commit_id":"faca245e18f2e6e78e5909049ba6438df5855d7f"}]}
