Just like QEMU and LXC, kvm driver intends to support running hook
script before domain starting and after domain shutdown too.
---
src/util/hooks.c | 11 ++++++++++-
src/util/hooks.h | 8 ++++++++
2 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/src/util/hooks.c b/src/util/hooks.c
index 110a94b..765cb68 100644
--- a/src/util/hooks.c
+++ b/src/util/hooks.c
@@ -52,12 +52,14 @@ VIR_ENUM_DECL(virHookDaemonOp)
VIR_ENUM_DECL(virHookSubop)
VIR_ENUM_DECL(virHookQemuOp)
VIR_ENUM_DECL(virHookLxcOp)
+VIR_ENUM_DECL(virHookKvmToolOp)
VIR_ENUM_IMPL(virHookDriver,
VIR_HOOK_DRIVER_LAST,
"daemon",
"qemu",
- "lxc")
+ "lxc",
+ "kvmtool")
VIR_ENUM_IMPL(virHookDaemonOp, VIR_HOOK_DAEMON_OP_LAST,
"start",
@@ -79,6 +81,10 @@ VIR_ENUM_IMPL(virHookLxcOp, VIR_HOOK_LXC_OP_LAST,
"start",
"stopped")
+VIR_ENUM_IMPL(virHookKvmToolOp, VIR_HOOK_KVMTOOL_OP_LAST,
+ "start",
+ "stopped")
+
static int virHooksFound = -1;
/**
@@ -230,6 +236,9 @@ virHookCall(int driver, const char *id, int op, int sub_op, const char
*extra,
case VIR_HOOK_DRIVER_LXC:
opstr = virHookLxcOpTypeToString(op);
break;
+ case VIR_HOOK_DRIVER_KVMTOOL:
+ opstr = virHookKvmToolOpTypeToString(op);
+ break;
}
if (opstr == NULL) {
virHookReportError(VIR_ERR_INTERNAL_ERROR,
diff --git a/src/util/hooks.h b/src/util/hooks.h
index fd7411c..69081c4 100644
--- a/src/util/hooks.h
+++ b/src/util/hooks.h
@@ -31,6 +31,7 @@ enum virHookDriverType {
VIR_HOOK_DRIVER_DAEMON = 0, /* Daemon related events */
VIR_HOOK_DRIVER_QEMU, /* QEmu domains related events */
VIR_HOOK_DRIVER_LXC, /* LXC domains related events */
+ VIR_HOOK_DRIVER_KVMTOOL, /* KVMTOOL domains related events */
VIR_HOOK_DRIVER_LAST,
};
@@ -67,6 +68,13 @@ enum virHookLxcOpType {
VIR_HOOK_LXC_OP_LAST,
};
+enum virHookKvmToolOpType {
+ VIR_HOOK_KVMTOOL_OP_START, /* domain is about to start */
+ VIR_HOOK_KVMTOOL_OP_STOPPED, /* domain has stopped */
+
+ VIR_HOOK_KVMTOOL_OP_LAST,
+};
+
int virHookInitialize(void);
int virHookPresent(int driver);
--
1.7.6