aboutsummaryrefslogtreecommitdiffstats
path: root/domain.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2012-09-06 14:17:34 +0200
committerGerd Hoffmann <kraxel@redhat.com>2012-09-06 14:17:34 +0200
commit0b005f4cff8ae28655243043529fa091a481c9fa (patch)
tree767d4f67afe4f17801965af8181c8ae37eb06617 /domain.c
parent8776506e3cabba93083438fef1587de915af8113 (diff)
downloadvconsole-0b005f4cff8ae28655243043529fa091a481c9fa.tar.gz
add menu item to save guest to disk
Diffstat (limited to 'domain.c')
-rw-r--r--domain.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/domain.c b/domain.c
index d0dc35c..ff768e0 100644
--- a/domain.c
+++ b/domain.c
@@ -313,6 +313,22 @@ void domain_pause(struct vconsole_domain *dom)
}
}
+void domain_save(struct vconsole_domain *dom)
+{
+ virDomainPtr d = virDomainLookupByUUIDString(dom->conn->ptr, dom->uuid);
+
+ virDomainGetInfo(d, &dom->info);
+ switch (dom->info.state) {
+ case VIR_DOMAIN_RUNNING:
+ case VIR_DOMAIN_PAUSED:
+ virDomainManagedSave(d, 0);
+ break;
+ default:
+ fprintf(stderr, "%s: invalid guest state: %s\n",
+ __func__, domain_state_name(dom));
+ }
+}
+
void domain_reboot(struct vconsole_domain *dom)
{
virDomainPtr d = virDomainLookupByUUIDString(dom->conn->ptr, dom->uuid);