Send message to windows guest
For example, the administrator wants to shutdown system or manteinance and send a message to guests:
{"execute":"guest-exec", "arguments":{"path":"cmd.exe","arg":["/c","echo 123 > c:\\123.txt"]}}
I've checked that we already have libvirt_qemu inside engine!!!
>>> import libvirt
>>> import libvirt_qemu
>>> libvirt_qemu.
libvirt_qemu.VIR_CONNECT_DOMAIN_QEMU_MONITOR_EVENT_REGISTER_NOCASE
libvirt_qemu.VIR_CONNECT_DOMAIN_QEMU_MONITOR_EVENT_REGISTER_REGEX
libvirt_qemu.VIR_DOMAIN_QEMU_AGENT_COMMAND_BLOCK
libvirt_qemu.VIR_DOMAIN_QEMU_AGENT_COMMAND_DEFAULT
libvirt_qemu.VIR_DOMAIN_QEMU_AGENT_COMMAND_MIN
libvirt_qemu.VIR_DOMAIN_QEMU_AGENT_COMMAND_NOWAIT
libvirt_qemu.VIR_DOMAIN_QEMU_AGENT_COMMAND_SHUTDOWN
libvirt_qemu.VIR_DOMAIN_QEMU_MONITOR_COMMAND_DEFAULT
libvirt_qemu.VIR_DOMAIN_QEMU_MONITOR_COMMAND_HMP
libvirt_qemu.libvirt
libvirt_qemu.libvirtmod_qemu
libvirt_qemu.qemuAgentCommand(
libvirt_qemu.qemuAttach(
libvirt_qemu.qemuMonitorCommand(
libvirt_qemu.sys
>>> libvirt_qemu.
So we can execute those command like this
try:
connect = libvirt.open(module.params['connection'])
domain = connect.lookupByName(module.params['name'])
network_interface_string \
= libvirt_qemu.qemuAgentCommand(domain,
'{"execute":"guest-network-get-interfaces"}',
module.params['timeout'],
0)
network_obj = json.loads(network_interface_string)
kwargs = {}
for device in network_obj['return']:
if device['name'] == module.params['device']:
for ip in device['ip-addresses']:
if ip['ip-address-type'] == 'ipv4' and module.params['ipv4']:
kwargs.update(ansible_virt_ipv4=ip['ip-address'])
if ip['ip-address-type'] == 'ipv6' and module.params['ipv6']:
kwargs.update(ansible_virt_ipv6=ip['ip-address'])
module.exit_json(**kwargs)
except Exception as e:
module.fail_json(msg=str(e))
Edited by Simó Albert i Beltran