mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
xenapi: reject unknown flags
* src/xenapi/xenapi_driver.c (xenapiOpen, xenapiDomainReboot): Reject unknown flags. (xenapiDomainGetXMLDesc): Likewise, and pass known flags through to XML generation.
This commit is contained in:
parent
8cf1b7fc86
commit
4ba3faac2c
@ -92,12 +92,14 @@ getCapsObject (void)
|
|||||||
*/
|
*/
|
||||||
static virDrvOpenStatus
|
static virDrvOpenStatus
|
||||||
xenapiOpen (virConnectPtr conn, virConnectAuthPtr auth,
|
xenapiOpen (virConnectPtr conn, virConnectAuthPtr auth,
|
||||||
unsigned int flags ATTRIBUTE_UNUSED)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
char *username = NULL;
|
char *username = NULL;
|
||||||
char *password = NULL;
|
char *password = NULL;
|
||||||
struct _xenapiPrivate *privP = NULL;
|
struct _xenapiPrivate *privP = NULL;
|
||||||
|
|
||||||
|
virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
|
||||||
|
|
||||||
if (conn->uri == NULL || conn->uri->scheme == NULL ||
|
if (conn->uri == NULL || conn->uri->scheme == NULL ||
|
||||||
STRCASENEQ(conn->uri->scheme, "XenAPI")) {
|
STRCASENEQ(conn->uri->scheme, "XenAPI")) {
|
||||||
return VIR_DRV_OPEN_DECLINED;
|
return VIR_DRV_OPEN_DECLINED;
|
||||||
@ -804,12 +806,15 @@ xenapiDomainShutdown (virDomainPtr dom)
|
|||||||
* Returns 0 on success or -1 in case of error
|
* Returns 0 on success or -1 in case of error
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
xenapiDomainReboot (virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED)
|
xenapiDomainReboot (virDomainPtr dom, unsigned int flags)
|
||||||
{
|
{
|
||||||
/* vm.clean_reboot */
|
/* vm.clean_reboot */
|
||||||
xen_vm vm;
|
xen_vm vm;
|
||||||
struct xen_vm_set *vms;
|
struct xen_vm_set *vms;
|
||||||
xen_session *session = ((struct _xenapiPrivate *)(dom->conn->privateData))->session;
|
xen_session *session = ((struct _xenapiPrivate *)(dom->conn->privateData))->session;
|
||||||
|
|
||||||
|
virCheckFlags(0, -1);
|
||||||
|
|
||||||
if (xen_vm_get_by_name_label(session, &vms, dom->name) && vms->size > 0) {
|
if (xen_vm_get_by_name_label(session, &vms, dom->name) && vms->size > 0) {
|
||||||
if (vms->size != 1) {
|
if (vms->size != 1) {
|
||||||
xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR,
|
xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR,
|
||||||
@ -1297,7 +1302,7 @@ xenapiDomainGetMaxVcpus (virDomainPtr dom)
|
|||||||
* Returns XML string of the domain configuration on success or -1 in case of error
|
* Returns XML string of the domain configuration on success or -1 in case of error
|
||||||
*/
|
*/
|
||||||
static char *
|
static char *
|
||||||
xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED)
|
xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags)
|
||||||
{
|
{
|
||||||
xen_vm vm=NULL;
|
xen_vm vm=NULL;
|
||||||
xen_vm_set *vms;
|
xen_vm_set *vms;
|
||||||
@ -1311,6 +1316,10 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED)
|
|||||||
struct xen_vif_set *vif_set = NULL;
|
struct xen_vif_set *vif_set = NULL;
|
||||||
char *xml;
|
char *xml;
|
||||||
|
|
||||||
|
virCheckFlags(VIR_DOMAIN_XML_SECURE |
|
||||||
|
VIR_DOMAIN_XML_INACTIVE |
|
||||||
|
VIR_DOMAIN_XML_UPDATE_CPU, NULL);
|
||||||
|
|
||||||
if (!xen_vm_get_by_name_label(session, &vms, dom->name)) return NULL;
|
if (!xen_vm_get_by_name_label(session, &vms, dom->name)) return NULL;
|
||||||
if (vms->size != 1) {
|
if (vms->size != 1) {
|
||||||
xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR,
|
xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR,
|
||||||
@ -1476,7 +1485,7 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED)
|
|||||||
xen_vif_set_free(vif_set);
|
xen_vif_set_free(vif_set);
|
||||||
}
|
}
|
||||||
if (vms) xen_vm_set_free(vms);
|
if (vms) xen_vm_set_free(vms);
|
||||||
xml = virDomainDefFormat(defPtr, 0);
|
xml = virDomainDefFormat(defPtr, flags);
|
||||||
virDomainDefFree(defPtr);
|
virDomainDefFree(defPtr);
|
||||||
return xml;
|
return xml;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user