network: Added hook for network modification event

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1181539
This commit is contained in:
Anton Khramov 2016-07-13 13:06:05 +02:00 committed by Cole Robinson
parent 200a40f94e
commit 128a8b2c9f
4 changed files with 11 additions and 1 deletions

View File

@ -250,6 +250,8 @@
<pre>/etc/libvirt/hooks/network network_name plugged begin -</pre>
Please note, that in this case, the script is passed both network and
domain XMLs on its stdin.</li>
<li>When network is updated, the hook script is called as:<br/>
<pre>/etc/libvirt/hooks/network network_name updated begin -</pre></li>
<li>When the domain from previous case is shutting down, the interface
is unplugged. This leads to another script invocation:<br/>
<pre>/etc/libvirt/hooks/network network_name unplugged begin -</pre>

View File

@ -3462,6 +3462,12 @@ networkUpdate(virNetworkPtr net,
goto cleanup;
}
}
/* call the 'updated' network hook script */
if (networkRunHook(network, NULL, NULL, VIR_HOOK_NETWORK_OP_UPDATED,
VIR_HOOK_SUBOP_BEGIN) < 0)
goto cleanup;
ret = 0;
cleanup:
virNetworkObjEndAPI(&network);

View File

@ -93,7 +93,8 @@ VIR_ENUM_IMPL(virHookNetworkOp, VIR_HOOK_NETWORK_OP_LAST,
"started",
"stopped",
"plugged",
"unplugged")
"unplugged",
"updated")
static int virHooksFound = -1;

View File

@ -82,6 +82,7 @@ typedef enum {
VIR_HOOK_NETWORK_OP_STOPPED, /* network has stopped */
VIR_HOOK_NETWORK_OP_IFACE_PLUGGED, /* an interface has been plugged into the network */
VIR_HOOK_NETWORK_OP_IFACE_UNPLUGGED, /* an interface was unplugged from the network */
VIR_HOOK_NETWORK_OP_UPDATED, /* network has been updated */
VIR_HOOK_NETWORK_OP_LAST,
} virHookNetworkOpType;