Fri Feb 23 08:49:12 IST 2007 Mark McLoughlin <markmc@redhat.com>

* include/libvirt/libvirt.h.in, src/libvirt.c add
        virDomainGetAutostart(), virDomainSetAutostart(),
        virNetworkGetAutostart() and virNetworkSetAutostart().

        * src/libvirt_sym.version: export the API

        * src/driver.h: add methods to the driver vtables.

        * src/proxy_internal.c, src/qemu_internal.c,
          src/test.c, src/xen_internal.c, src/xend_internal.c,
          src/xm_internal.c, src/xs_internal.c: set those
        methods to NULL
This commit is contained in:
Mark McLoughlin 2007-02-23 08:51:30 +00:00
parent d954480892
commit 57a1819881
13 changed files with 199 additions and 1 deletions

View File

@ -1,3 +1,18 @@
Fri Feb 23 08:49:12 IST 2007 Mark McLoughlin <markmc@redhat.com>
* include/libvirt/libvirt.h.in, src/libvirt.c add
virDomainGetAutostart(), virDomainSetAutostart(),
virNetworkGetAutostart() and virNetworkSetAutostart().
* src/libvirt_sym.version: export the API
* src/driver.h: add methods to the driver vtables.
* src/proxy_internal.c, src/qemu_internal.c,
src/test.c, src/xen_internal.c, src/xend_internal.c,
src/xm_internal.c, src/xs_internal.c: set those
methods to NULL
Fri Feb 23 08:41:34 IST 2007 Mark McLoughlin <markmc@redhat.com>
* qemud/conf.[ch]: significantly re-factor qemudLoadConfigXML()

View File

@ -328,6 +328,11 @@ int virConnectListDefinedDomains (virConnectPtr conn,
int maxnames);
int virDomainCreate (virDomainPtr domain);
int virDomainGetAutostart (virDomainPtr domain,
int *autostart);
int virDomainSetAutostart (virDomainPtr domain,
int autostart);
/**
* virVcpuInfo: structure for information about a virtual CPU in a domain.
*/
@ -528,6 +533,11 @@ char * virNetworkGetXMLDesc (virNetworkPtr network,
int flags);
char * virNetworkGetBridgeName (virNetworkPtr network);
int virNetworkGetAutostart (virNetworkPtr network,
int *autostart);
int virNetworkSetAutostart (virNetworkPtr network,
int autostart);
#ifdef __cplusplus
}
#endif

View File

@ -328,6 +328,11 @@ int virConnectListDefinedDomains (virConnectPtr conn,
int maxnames);
int virDomainCreate (virDomainPtr domain);
int virDomainGetAutostart (virDomainPtr domain,
int *autostart);
int virDomainSetAutostart (virDomainPtr domain,
int autostart);
/**
* virVcpuInfo: structure for information about a virtual CPU in a domain.
*/
@ -528,6 +533,11 @@ char * virNetworkGetXMLDesc (virNetworkPtr network,
int flags);
char * virNetworkGetBridgeName (virNetworkPtr network);
int virNetworkGetAutostart (virNetworkPtr network,
int *autostart);
int virNetworkSetAutostart (virNetworkPtr network,
int autostart);
#ifdef __cplusplus
}
#endif

View File

@ -134,6 +134,12 @@ typedef int
typedef int
(*virDrvDomainDetachDevice) (virDomainPtr domain,
char *xml);
typedef int
(*virDrvDomainGetAutostart) (virDomainPtr domain,
int *autostart);
typedef int
(*virDrvDomainSetAutostart) (virDomainPtr domain,
int autostart);
typedef struct _virDriver virDriver;
typedef virDriver *virDriverPtr;
@ -183,6 +189,8 @@ struct _virDriver {
virDrvDomainUndefine domainUndefine;
virDrvDomainAttachDevice domainAttachDevice;
virDrvDomainDetachDevice domainDetachDevice;
virDrvDomainGetAutostart domainGetAutostart;
virDrvDomainSetAutostart domainSetAutostart;
};
typedef int
@ -219,6 +227,13 @@ typedef char *
int flags);
typedef char *
(*virDrvNetworkGetBridgeName) (virNetworkPtr network);
typedef int
(*virDrvNetworkGetAutostart) (virNetworkPtr network,
int *autostart);
typedef int
(*virDrvNetworkSetAutostart) (virNetworkPtr network,
int autostart);
typedef struct _virNetworkDriver virNetworkDriver;
typedef virNetworkDriver *virNetworkDriverPtr;
@ -245,6 +260,8 @@ struct _virNetworkDriver {
virDrvNetworkDestroy networkDestroy;
virDrvNetworkDumpXML networkDumpXML;
virDrvNetworkGetBridgeName networkGetBridgeName;
virDrvNetworkGetAutostart networkGetAutostart;
virDrvNetworkSetAutostart networkSetAutostart;
};

View File

@ -1861,6 +1861,69 @@ virDomainCreate(virDomainPtr domain) {
return(ret);
}
/**
* virDomainGetAutostart:
* @domain: a domain object
*
* Return a boolean value indicating whether the domain
* configured to be automatically started when the host
* machine boots.
*
* Returns -1 in case of error, 0 in case of success
*/
int
virDomainGetAutostart(virDomainPtr domain,
int *autostart) {
int i;
if (!VIR_IS_DOMAIN(domain)) {
virLibDomainError(domain, VIR_ERR_INVALID_DOMAIN, __FUNCTION__);
return (-1);
}
if (!autostart) {
virLibDomainError(domain, VIR_ERR_INVALID_ARG, __FUNCTION__);
return (-1);
}
for (i = 0;i < domain->conn->nb_drivers;i++) {
if ((domain->conn->drivers[i] != NULL) &&
(domain->conn->drivers[i]->domainGetAutostart != NULL) &&
(domain->conn->drivers[i]->domainGetAutostart(domain, autostart) == 0))
return (0);
}
virLibConnError(domain->conn, VIR_ERR_CALL_FAILED, __FUNCTION__);
return (-1);
}
/**
* virDomainSetAutostart:
* @domain: a domain object
*
* Configure the domain to be automatically started
* when the host machine boots.
*
* Returns -1 in case of error, 0 in case of success
*/
int
virDomainSetAutostart(virDomainPtr domain,
int autostart) {
int i;
if (!VIR_IS_DOMAIN(domain)) {
virLibDomainError(domain, VIR_ERR_INVALID_DOMAIN, __FUNCTION__);
return (-1);
}
for (i = 0;i < domain->conn->nb_drivers;i++) {
if ((domain->conn->drivers[i] != NULL) &&
(domain->conn->drivers[i]->domainSetAutostart != NULL) &&
(domain->conn->drivers[i]->domainSetAutostart(domain, autostart) == 0))
return (0);
}
virLibConnError(domain->conn, VIR_ERR_CALL_FAILED, __FUNCTION__);
return (-1);
}
/**
* virDomainSetVcpus:
* @domain: pointer to domain object, or NULL for Domain0
@ -2766,3 +2829,66 @@ virNetworkGetBridgeName(virNetworkPtr network)
}
return(ret);
}
/**
* virNetworkGetAutostart:
* @network: a network object
*
* Return a boolean value indicating whether the network
* configured to be automatically started when the host
* machine boots.
*
* Returns -1 in case of error, 0 in case of success
*/
int
virNetworkGetAutostart(virNetworkPtr network,
int *autostart) {
int i;
if (!VIR_IS_NETWORK(network)) {
virLibNetworkError(network, VIR_ERR_INVALID_NETWORK, __FUNCTION__);
return (-1);
}
if (!autostart) {
virLibNetworkError(network, VIR_ERR_INVALID_ARG, __FUNCTION__);
return (-1);
}
for (i = 0;i < network->conn->nb_network_drivers;i++) {
if ((network->conn->networkDrivers[i] != NULL) &&
(network->conn->networkDrivers[i]->networkGetAutostart != NULL) &&
(network->conn->networkDrivers[i]->networkGetAutostart(network, autostart) == 0))
return (0);
}
virLibConnError(network->conn, VIR_ERR_CALL_FAILED, __FUNCTION__);
return (-1);
}
/**
* virNetworkSetAutostart:
* @network: a network object
*
* Configure the network to be automatically started
* when the host machine boots.
*
* Returns -1 in case of error, 0 in case of success
*/
int
virNetworkSetAutostart(virNetworkPtr network,
int autostart) {
int i;
if (!VIR_IS_NETWORK(network)) {
virLibNetworkError(network, VIR_ERR_INVALID_NETWORK, __FUNCTION__);
return (-1);
}
for (i = 0;i < network->conn->nb_network_drivers;i++) {
if ((network->conn->networkDrivers[i] != NULL) &&
(network->conn->networkDrivers[i]->networkSetAutostart != NULL) &&
(network->conn->networkDrivers[i]->networkSetAutostart(network, autostart) == 0))
return (0);
}
virLibConnError(network->conn, VIR_ERR_CALL_FAILED, __FUNCTION__);
return (-1);
}

View File

@ -37,6 +37,8 @@
virConnectListDefinedDomains;
virConnectNumOfDefinedDomains;
virDomainUndefine;
virDomainGetAutostart;
virDomainSetAutostart;
virGetVersion;
virCopyLastError;
virConnSetErrorFunc;
@ -76,6 +78,8 @@
virNetworkGetUUIDString;
virNetworkGetXMLDesc;
virNetworkGetBridgeName;
virNetworkGetAutostart;
virNetworkSetAutostart;
local: *;
};

View File

@ -81,6 +81,8 @@ static virDriver xenProxyDriver = {
NULL, /* domainUndefine */
NULL, /* domainAttachDevice */
NULL, /* domainDetachDevice */
NULL, /* domainGetAutostart */
NULL, /* domainSetAutostart */
};
/**

View File

@ -1132,6 +1132,8 @@ static virDriver qemuDriver = {
qemuUndefine, /* domainUndefine */
NULL, /* domainAttachDevice */
NULL, /* domainDetachDevice */
NULL, /* domainGetAutostart */
NULL, /* domainSetAutostart */
};
static virNetworkDriver qemuNetworkDriver = {
@ -1150,6 +1152,8 @@ static virNetworkDriver qemuNetworkDriver = {
qemuNetworkDestroy, /* networkDestroy */
qemuNetworkDumpXML, /* networkDumpXML */
qemuNetworkGetBridgeName, /* networkGetBridgeName */
NULL, /* networkGetAutostart */
NULL, /* networkSetAutostart */
};
void qemuRegister(void) {

View File

@ -125,6 +125,8 @@ static virDriver testDriver = {
testDomainUndefine, /* domainUndefine */
NULL, /* domainAttachDevice */
NULL, /* domainDetachDevice */
NULL, /* domainGetAutostart */
NULL, /* domainSetAutostart */
};
typedef struct _testDev {

View File

@ -454,6 +454,8 @@ static virDriver xenHypervisorDriver = {
NULL, /* domainUndefine */
NULL, /* domainAttachDevice */
NULL, /* domainDetachDevice */
NULL, /* domainGetAutostart */
NULL, /* domainSetAutostart */
};
#endif /* !PROXY */

View File

@ -96,7 +96,9 @@ static virDriver xenDaemonDriver = {
xenDaemonDomainDefineXML, /* domainDefineXML */
xenDaemonDomainUndefine, /* domainUndefine */
xenDaemonAttachDevice, /* domainAttachDevice */
xenDaemonDetachDevice /* domainDetachDevice */
xenDaemonDetachDevice, /* domainDetachDevice */
NULL, /* domainGetAutostart */
NULL, /* domainSetAutostart */
};
/**

View File

@ -106,6 +106,8 @@ static virDriver xenXMDriver = {
xenXMDomainUndefine, /* domainUndefine */
NULL, /* domainAttachDevice */
NULL, /* domainDetachDevice */
NULL, /* domainGetAutostart */
NULL, /* domainSetAutostart */
};
static void

View File

@ -75,6 +75,8 @@ static virDriver xenStoreDriver = {
NULL, /* domainUndefine */
NULL, /* domainAttachDevice */
NULL, /* domainDetachDevice */
NULL, /* domainGetAutostart */
NULL, /* domainSetAutostart */
};
/**