spice: fix libvirt snapshots
Only notify spice-server about migration events in case we got target host information beforehand. So we kick the seamless spice client migration only in case a actual live migration happens, not when libvirt uses live-migration-to-file for snapshotting. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
		
							parent
							
								
									4f60af9ac0
								
							
						
					
					
						commit
						a76a2f729a
					
				| @ -48,6 +48,7 @@ static char *auth_passwd; | |||||||
| static time_t auth_expires = TIME_MAX; | static time_t auth_expires = TIME_MAX; | ||||||
| static int spice_migration_completed; | static int spice_migration_completed; | ||||||
| static int spice_display_is_running; | static int spice_display_is_running; | ||||||
|  | static int spice_have_target_host; | ||||||
| int using_spice = 0; | int using_spice = 0; | ||||||
| 
 | 
 | ||||||
| static QemuThread me; | static QemuThread me; | ||||||
| @ -564,12 +565,18 @@ static void migration_state_notifier(Notifier *notifier, void *data) | |||||||
| { | { | ||||||
|     MigrationState *s = data; |     MigrationState *s = data; | ||||||
| 
 | 
 | ||||||
|  |     if (!spice_have_target_host) { | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     if (migration_in_setup(s)) { |     if (migration_in_setup(s)) { | ||||||
|         spice_server_migrate_start(spice_server); |         spice_server_migrate_start(spice_server); | ||||||
|     } else if (migration_has_finished(s)) { |     } else if (migration_has_finished(s)) { | ||||||
|         spice_server_migrate_end(spice_server, true); |         spice_server_migrate_end(spice_server, true); | ||||||
|  |         spice_have_target_host = false; | ||||||
|     } else if (migration_has_failed(s)) { |     } else if (migration_has_failed(s)) { | ||||||
|         spice_server_migrate_end(spice_server, false); |         spice_server_migrate_end(spice_server, false); | ||||||
|  |         spice_have_target_host = false; | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -583,6 +590,7 @@ int qemu_spice_migrate_info(const char *hostname, int port, int tls_port, | |||||||
|     spice_migrate.connect_complete.opaque = opaque; |     spice_migrate.connect_complete.opaque = opaque; | ||||||
|     ret = spice_server_migrate_connect(spice_server, hostname, |     ret = spice_server_migrate_connect(spice_server, hostname, | ||||||
|                                        port, tls_port, subject); |                                        port, tls_port, subject); | ||||||
|  |     spice_have_target_host = true; | ||||||
|     return ret; |     return ret; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Gerd Hoffmann
						Gerd Hoffmann