Return 0 instead of ERR_NO_SUPPORT in each driver
where we don't support managed save.
This avoids spamming daemon logs when 'virsh dominfo' is run.
https://bugzilla.redhat.com/show_bug.cgi?id=1095637
---
src/bhyve/bhyve_driver.c | 25 ++++++++++++++++++++++++-
src/esx/esx_driver.c | 11 ++++++++++-
src/lxc/lxc_driver.c | 26 +++++++++++++++++++++++++-
src/openvz/openvz_driver.c | 12 +++++++++++-
src/parallels/parallels_driver.c | 11 ++++++++++-
src/phyp/phyp_driver.c | 11 ++++++++++-
src/uml/uml_driver.c | 33 ++++++++++++++++++++++++++++++++-
src/vbox/vbox_common.c | 11 ++++++++++-
src/vmware/vmware_driver.c | 11 ++++++++++-
src/xenapi/xenapi_driver.c | 11 ++++++++++-
10 files changed, 152 insertions(+), 10 deletions(-)
diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c
index 56cc8ab..ae39917 100644
--- a/src/bhyve/bhyve_driver.c
+++ b/src/bhyve/bhyve_driver.c
@@ -2,7 +2,7 @@
* bhyve_driver.c: core driver methods for managing bhyve guests
*
* Copyright (C) 2014 Roman Bogorodskiy
- * Copyright (C) 2014 Red Hat, Inc.
+ * Copyright (C) 2014-2015 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -1430,6 +1430,28 @@ bhyveConnectDomainEventDeregisterAny(virConnectPtr conn,
return 0;
}
+static int
+bhyveDomainHasManagedSaveImage(virDomainPtr domain, unsigned int flags)
+{
+ virDomainObjPtr vm = NULL;
+ int ret = -1;
+
+ virCheckFlags(0, -1);
+
+ if (!(vm = bhyveDomObjFromDomain(domain)))
+ goto cleanup;
+
+ if (virDomainHasManagedSaveImageEnsureACL(domain->conn, vm->def) < 0)
+ goto cleanup;
+
+ ret = 0;
+
+ cleanup:
+ if (vm)
+ virObjectUnlock(vm);
+ return ret;
+}
+
static virHypervisorDriver bhyveHypervisorDriver = {
.name = "bhyve",
.connectOpen = bhyveConnectOpen, /* 1.2.2 */
@@ -1476,6 +1498,7 @@ static virHypervisorDriver bhyveHypervisorDriver = {
.connectCompareCPU = bhyveConnectCompareCPU, /* 1.2.4 */
.connectDomainEventRegisterAny = bhyveConnectDomainEventRegisterAny, /* 1.2.5 */
.connectDomainEventDeregisterAny = bhyveConnectDomainEventDeregisterAny, /* 1.2.5 */
+ .domainHasManagedSaveImage = bhyveDomainHasManagedSaveImage, /* 1.2.13 */
};
diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
index 6b9965f..53d31e3 100644
--- a/src/esx/esx_driver.c
+++ b/src/esx/esx_driver.c
@@ -1,7 +1,7 @@
/*
* esx_driver.c: core driver functions for managing VMware ESX hosts
*
- * Copyright (C) 2010-2014 Red Hat, Inc.
+ * Copyright (C) 2010-2015 Red Hat, Inc.
* Copyright (C) 2009-2014 Matthias Bolte <matthias.bolte(a)googlemail.com>
* Copyright (C) 2009 Maximilian Wilhelm <max(a)rfc2324.org>
*
@@ -5147,6 +5147,14 @@ esxConnectListAllDomains(virConnectPtr conn,
}
#undef MATCH
+static int
+esxDomainHasManagedSaveImage(virDomainPtr dom ATTRIBUTE_UNUSED, unsigned int flags)
+{
+ virCheckFlags(0, -1);
+
+ return 0;
+}
+
static virHypervisorDriver esxHypervisorDriver = {
.name = "ESX",
@@ -5226,6 +5234,7 @@ static virHypervisorDriver esxHypervisorDriver = {
.domainSnapshotHasMetadata = esxDomainSnapshotHasMetadata, /* 0.9.13 */
.domainSnapshotDelete = esxDomainSnapshotDelete, /* 0.8.0 */
.connectIsAlive = esxConnectIsAlive, /* 0.9.8 */
+ .domainHasManagedSaveImage = esxDomainHasManagedSaveImage, /* 1.2.13 */
};
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index 487e2a2..3adb21d 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2014 Red Hat, Inc.
+ * Copyright (C) 2010-2015 Red Hat, Inc.
* Copyright IBM Corp. 2008
*
* lxc_driver.c: linux container driver functions
@@ -5726,6 +5726,29 @@ lxcNodeAllocPages(virConnectPtr conn,
}
+static int
+lxcDomainHasManagedSaveImage(virDomainPtr dom, unsigned int flags)
+{
+ virDomainObjPtr vm = NULL;
+ int ret = -1;
+
+ virCheckFlags(0, -1);
+
+ if (!(vm = lxcDomObjFromDomain(dom)))
+ return ret;
+
+ if (virDomainHasManagedSaveImageEnsureACL(dom->conn, vm->def) < 0)
+ goto cleanup;
+
+ ret = 0;
+
+ cleanup:
+ if (vm)
+ virObjectUnlock(vm);
+ return ret;
+}
+
+
/* Function Tables */
static virHypervisorDriver lxcHypervisorDriver = {
.name = LXC_DRIVER_NAME,
@@ -5818,6 +5841,7 @@ static virHypervisorDriver lxcHypervisorDriver = {
.domainLxcOpenNamespace = lxcDomainLxcOpenNamespace, /* 1.0.2 */
.nodeGetFreePages = lxcNodeGetFreePages, /* 1.2.6 */
.nodeAllocPages = lxcNodeAllocPages, /* 1.2.9 */
+ .domainHasManagedSaveImage = lxcDomainHasManagedSaveImage, /* 1.2.13 */
};
static virConnectDriver lxcConnectDriver = {
diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c
index 556f626..4ce5a41 100644
--- a/src/openvz/openvz_driver.c
+++ b/src/openvz/openvz_driver.c
@@ -1,7 +1,7 @@
/*
* openvz_driver.c: core driver methods for managing OpenVZ VEs
*
- * Copyright (C) 2010-2014 Red Hat, Inc.
+ * Copyright (C) 2010-2015 Red Hat, Inc.
* Copyright (C) 2006, 2007 Binary Karma
* Copyright (C) 2006 Shuveb Hussain
* Copyright (C) 2007 Anoop Joe Cyriac
@@ -2567,6 +2567,15 @@ openvzDomainMigrateConfirm3Params(virDomainPtr domain,
return ret;
}
+static int
+openvzDomainHasManagedSaveImage(virDomainPtr dom ATTRIBUTE_UNUSED, unsigned int flags)
+{
+ virCheckFlags(0, -1);
+
+ return 0;
+}
+
+
static virHypervisorDriver openvzHypervisorDriver = {
.name = "OPENVZ",
@@ -2632,6 +2641,7 @@ static virHypervisorDriver openvzHypervisorDriver = {
.domainMigratePerform3Params = openvzDomainMigratePerform3Params, /* 1.2.8 */
.domainMigrateFinish3Params = openvzDomainMigrateFinish3Params, /* 1.2.8 */
.domainMigrateConfirm3Params = openvzDomainMigrateConfirm3Params, /* 1.2.8 */
+ .domainHasManagedSaveImage = openvzDomainHasManagedSaveImage, /* 1.2.13 */
};
static virConnectDriver openvzConnectDriver = {
diff --git a/src/parallels/parallels_driver.c b/src/parallels/parallels_driver.c
index b569160..819f662 100644
--- a/src/parallels/parallels_driver.c
+++ b/src/parallels/parallels_driver.c
@@ -2,7 +2,7 @@
* parallels_driver.c: core driver functions for managing
* Parallels Cloud Server hosts
*
- * Copyright (C) 2014 Red Hat, Inc.
+ * Copyright (C) 2014-2015 Red Hat, Inc.
* Copyright (C) 2012 Parallels, Inc.
*
* This library is free software; you can redistribute it and/or
@@ -956,6 +956,14 @@ parallelsDomainUndefine(virDomainPtr domain)
return parallelsDomainUndefineFlags(domain, 0);
}
+static int
+parallelsDomainHasManagedSaveImage(virDomainPtr dom ATTRIBUTE_UNUSED, unsigned int
flags)
+{
+ virCheckFlags(0, -1);
+
+ return 0;
+}
+
static virHypervisorDriver parallelsDriver = {
.name = "Parallels",
.connectOpen = parallelsConnectOpen, /* 0.10.0 */
@@ -997,6 +1005,7 @@ static virHypervisorDriver parallelsDriver = {
.connectIsEncrypted = parallelsConnectIsEncrypted, /* 1.2.5 */
.connectIsSecure = parallelsConnectIsSecure, /* 1.2.5 */
.connectIsAlive = parallelsConnectIsAlive, /* 1.2.5 */
+ .domainHasManagedSaveImage = parallelsDomainHasManagedSaveImage, /* 1.2.13 */
};
static virConnectDriver parallelsConnectDriver = {
diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c
index 6c5a91e..d392709 100644
--- a/src/phyp/phyp_driver.c
+++ b/src/phyp/phyp_driver.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2014 Red Hat, Inc.
+ * Copyright (C) 2010-2015 Red Hat, Inc.
* Copyright IBM Corp. 2009
*
* phyp_driver.c: ssh layer to access Power Hypervisors
@@ -3669,6 +3669,14 @@ phypDomainSetVcpus(virDomainPtr dom, unsigned int nvcpus)
return phypDomainSetVcpusFlags(dom, nvcpus, VIR_DOMAIN_VCPU_LIVE);
}
+static int
+phypDomainHasManagedSaveImage(virDomainPtr dom ATTRIBUTE_UNUSED, unsigned int flags)
+{
+ virCheckFlags(0, -1);
+
+ return 0;
+}
+
static virHypervisorDriver phypHypervisorDriver = {
.name = "PHYP",
.connectOpen = phypConnectOpen, /* 0.7.0 */
@@ -3698,6 +3706,7 @@ static virHypervisorDriver phypHypervisorDriver = {
.connectIsSecure = phypConnectIsSecure, /* 0.7.3 */
.domainIsUpdated = phypDomainIsUpdated, /* 0.8.6 */
.connectIsAlive = phypConnectIsAlive, /* 0.9.8 */
+ .domainHasManagedSaveImage = phypDomainHasManagedSaveImage, /* 1.2.13 */
};
static virStorageDriver phypStorageDriver = {
diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c
index 6ca038a..68efd18 100644
--- a/src/uml/uml_driver.c
+++ b/src/uml/uml_driver.c
@@ -1,7 +1,7 @@
/*
* uml_driver.c: core driver methods for managing UML guests
*
- * Copyright (C) 2006-2014 Red Hat, Inc.
+ * Copyright (C) 2006-2015 Red Hat, Inc.
* Copyright (C) 2006-2008 Daniel P. Berrange
*
* This library is free software; you can redistribute it and/or
@@ -2943,6 +2943,36 @@ umlNodeAllocPages(virConnectPtr conn,
}
+static int
+umlDomainHasManagedSaveImage(virDomainPtr dom, unsigned int flags)
+{
+ struct uml_driver *driver = dom->conn->privateData;
+ int ret = -1;
+ virDomainObjPtr vm;
+
+ virCheckFlags(0, -1);
+
+ umlDriverLock(driver);
+ vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
+ umlDriverUnlock(driver);
+
+ if (!vm) {
+ virReportError(VIR_ERR_NO_DOMAIN, NULL);
+ goto cleanup;
+ }
+
+ if (virDomainHasManagedSaveImageEnsureACL(dom->conn, vm->def) < 0)
+ goto cleanup;
+
+ ret = 0;
+
+ cleanup:
+ if (vm)
+ virObjectUnlock(vm);
+ return ret;
+}
+
+
static virHypervisorDriver umlHypervisorDriver = {
.name = "UML",
.connectOpen = umlConnectOpen, /* 0.5.0 */
@@ -3006,6 +3036,7 @@ static virHypervisorDriver umlHypervisorDriver = {
.nodeSetMemoryParameters = umlNodeSetMemoryParameters, /* 0.10.2 */
.nodeGetFreePages = umlNodeGetFreePages, /* 1.2.6 */
.nodeAllocPages = umlNodeAllocPages, /* 1.2.9 */
+ .domainHasManagedSaveImage = umlDomainHasManagedSaveImage, /* 1.2.13 */
};
static virConnectDriver umlConnectDriver = {
diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c
index bd3f50c..76fcc72 100644
--- a/src/vbox/vbox_common.c
+++ b/src/vbox/vbox_common.c
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2014, Taowei Luo (uaedante(a)gmail.com)
- * Copyright (C) 2010-2014 Red Hat, Inc.
+ * Copyright (C) 2010-2015 Red Hat, Inc.
* Copyright (C) 2008-2009 Sun Microsystems, Inc.
*
* This library is free software; you can redistribute it and/or
@@ -7588,6 +7588,14 @@ vboxNodeAllocPages(virConnectPtr conn ATTRIBUTE_UNUSED,
startCell, cellCount, add);
}
+static int
+vboxDomainHasManagedSaveImage(virDomainPtr dom ATTRIBUTE_UNUSED, unsigned int flags)
+{
+ virCheckFlags(0, -1);
+
+ return 0;
+}
+
/**
* Function Tables
@@ -7661,6 +7669,7 @@ virHypervisorDriver vboxCommonDriver = {
.connectIsAlive = vboxConnectIsAlive, /* 0.9.8 */
.nodeGetFreePages = vboxNodeGetFreePages, /* 1.2.6 */
.nodeAllocPages = vboxNodeAllocPages, /* 1.2.9 */
+ .domainHasManagedSaveImage = vboxDomainHasManagedSaveImage, /* 1.2.13 */
};
static void updateDriver(void)
diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c
index 2d7ba04..22d0c91 100644
--- a/src/vmware/vmware_driver.c
+++ b/src/vmware/vmware_driver.c
@@ -1,6 +1,6 @@
/*---------------------------------------------------------------------------*/
/*
- * Copyright (C) 2011-2012 Red Hat, Inc.
+ * Copyright (C) 2011-2015 Red Hat, Inc.
* Copyright 2010, diateam (
www.diateam.net)
* Copyright (C) 2013. Doug Goldstein <cardoe(a)cardoe.com>
*
@@ -1195,6 +1195,14 @@ vmwareConnectListAllDomains(virConnectPtr conn,
return ret;
}
+static int
+vmwareDomainHasManagedSaveImage(virDomainPtr dom ATTRIBUTE_UNUSED, unsigned int flags)
+{
+ virCheckFlags(0, -1);
+
+ return 0;
+}
+
static virHypervisorDriver vmwareHypervisorDriver = {
@@ -1233,6 +1241,7 @@ static virHypervisorDriver vmwareHypervisorDriver = {
.domainIsActive = vmwareDomainIsActive, /* 0.8.7 */
.domainIsPersistent = vmwareDomainIsPersistent, /* 0.8.7 */
.connectIsAlive = vmwareConnectIsAlive, /* 0.9.8 */
+ .domainHasManagedSaveImage = vmwareDomainHasManagedSaveImage, /* 1.2.13 */
};
static virConnectDriver vmwareConnectDriver = {
diff --git a/src/xenapi/xenapi_driver.c b/src/xenapi/xenapi_driver.c
index 0902f9a..c7b9798 100644
--- a/src/xenapi/xenapi_driver.c
+++ b/src/xenapi/xenapi_driver.c
@@ -1,6 +1,6 @@
/*
* xenapi_driver.c: Xen API driver.
- * Copyright (C) 2011-2014 Red Hat, Inc.
+ * Copyright (C) 2011-2015 Red Hat, Inc.
* Copyright (C) 2009, 2010 Citrix Ltd.
*
* This library is free software; you can redistribute it and/or
@@ -1977,6 +1977,14 @@ xenapiConnectIsAlive(virConnectPtr conn)
return 0;
}
+static int
+xenapiDomainHasManagedSaveImage(virDomainPtr dom ATTRIBUTE_UNUSED, unsigned int flags)
+{
+ virCheckFlags(0, -1);
+
+ return 0;
+}
+
/* The interface which we export upwards to libvirt.c. */
static virHypervisorDriver xenapiHypervisorDriver = {
.name = "XenAPI",
@@ -2029,6 +2037,7 @@ static virHypervisorDriver xenapiHypervisorDriver = {
.nodeGetFreeMemory = xenapiNodeGetFreeMemory, /* 0.8.0 */
.domainIsUpdated = xenapiDomainIsUpdated, /* 0.8.6 */
.connectIsAlive = xenapiConnectIsAlive, /* 0.9.8 */
+ .domainHasManagedSaveImage = xenapiDomainHasManagedSaveImage, /* 1.2.13 */
};
--
2.0.5