char: report frontend open/closed state in 'query-chardev'
In addition to the on-line reporting added in the previous patch, allow libvirt to query frontend state independently of events. Libvirt's path to identify the guest agent channel it cares about differs between the event added in the previous patch and the QMP response field added here. The event identifies the frontend device, by "id". The 'query-chardev' QMP command identifies the backend device (again by "id"). The association is under libvirt's control. RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1080376 Reviewed-by: Amit Shah <amit.shah@redhat.com> Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
		
							parent
							
								
									e2ae6159de
								
							
						
					
					
						commit
						32a97ea171
					
				| @ -214,12 +214,18 @@ | ||||
| # | ||||
| # @filename: the filename of the character device | ||||
| # | ||||
| # @frontend-open: shows whether the frontend device attached to this backend | ||||
| #                 (eg. with the chardev=... option) is in open or closed state | ||||
| #                 (since 2.1) | ||||
| # | ||||
| # Notes: @filename is encoded using the QEMU command line character device | ||||
| #        encoding.  See the QEMU man page for details. | ||||
| # | ||||
| # Since: 0.14.0 | ||||
| ## | ||||
| { 'type': 'ChardevInfo', 'data': {'label': 'str', 'filename': 'str'} } | ||||
| { 'type': 'ChardevInfo', 'data': {'label': 'str', | ||||
|                                   'filename': 'str', | ||||
|                                   'frontend-open': 'bool'} } | ||||
| 
 | ||||
| ## | ||||
| # @query-chardev: | ||||
|  | ||||
| @ -3705,6 +3705,7 @@ ChardevInfoList *qmp_query_chardev(Error **errp) | ||||
|         info->value = g_malloc0(sizeof(*info->value)); | ||||
|         info->value->label = g_strdup(chr->label); | ||||
|         info->value->filename = g_strdup(chr->filename); | ||||
|         info->value->frontend_open = chr->fe_open; | ||||
| 
 | ||||
|         info->next = chr_list; | ||||
|         chr_list = info; | ||||
|  | ||||
| @ -1921,6 +1921,8 @@ Each json-object contain the following: | ||||
| 
 | ||||
| - "label": device's label (json-string) | ||||
| - "filename": device's file (json-string) | ||||
| - "frontend-open": open/closed state of the frontend device attached to this | ||||
|                    backend (json-bool) | ||||
| 
 | ||||
| Example: | ||||
| 
 | ||||
| @ -1928,12 +1930,19 @@ Example: | ||||
| <- { | ||||
|       "return": [ | ||||
|          { | ||||
|             "label":"monitor", | ||||
|             "filename":"stdio" | ||||
|             "label": "charchannel0", | ||||
|             "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.agent,server", | ||||
|             "frontend-open": false | ||||
|          }, | ||||
|          { | ||||
|             "label":"serial0", | ||||
|             "filename":"vc" | ||||
|             "label": "charmonitor", | ||||
|             "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.monitor,server", | ||||
|             "frontend-open": true | ||||
|          }, | ||||
|          { | ||||
|             "label": "charserial0", | ||||
|             "filename": "pty:/dev/pts/2", | ||||
|             "frontend-open": true | ||||
|          } | ||||
|       ] | ||||
|    } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Laszlo Ersek
						Laszlo Ersek