+Thu May 28 14:11:30 BST 2009 Daniel P. Berrange <berrange@redhat.com>
+
+ Fix misc syntax check failures with OpenNebula driver
+ * src/opennebula/one_conf.c, src/opennebula/one_conf.h,
+ src/opennebula/one_driver.c, src/opennebula/one_driver.h: Kill
+ trailing whitespace, automatic re-indent of all code, added
+ missing translation marking
+ * Makefile.maint: Add oneError() as a function with translatable
+ strings.
+ * po/POTFILES.in: Add one_conf.c, one_driver.c
+
Thu May 28 13:27:30 BST 2009 Daniel P. Berrange <berrange@redhat.com>
* src/logging.c: Include function name & line number in all
msg_gen_function += lxcError
msg_gen_function += networkLog
msg_gen_function += networkReportError
+msg_gen_function += oneError
msg_gen_function += openvzError
msg_gen_function += openvzLog
msg_gen_function += qemudDispatchClientFailure
src/node_device.c
src/node_device_conf.c
src/nodeinfo.c
+src/opennebula/one_conf.c
+src/opennebula/one_driver.c
src/openvz_conf.c
src/openvz_driver.c
src/pci.c
/*----------------------------------------------------------------------------------*/
-/* Copyright 2002-2009, Distributed Systems Architecture Group, Universidad
- * Complutense de Madrid (dsa-research.org)
- *
+/* Copyright 2002-2009, Distributed Systems Architecture Group, Universidad
+ * Complutense de Madrid (dsa-research.org)
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
+ */
/*-----------------------------------------------------------------------------------*/
#include <config.h>
}
- if ((guest = virCapabilitiesAddGuest(caps,
+ if ((guest = virCapabilitiesAddGuest(caps,
"hvm",
"x86_64",
64,
* @param vm the virtual machine pointer
* @return the OpenNebula ID for the new VM or -1 in case of error
*/
-
+
int oneSubmitVM(virConnectPtr conn,
one_driver_t* driver ATTRIBUTE_UNUSED,
virDomainObjPtr vm)
{
char* templ;
int oneid;
-
- if((templ=xmlOneTemplate(conn,vm->def))==NULL )
- return -1;
- if( (oneid=c_oneAllocateTemplate(templ))<0 ){
+ if ((templ = xmlOneTemplate(conn,vm->def)) == NULL)
+ return -1;
+
+ if ((oneid = c_oneAllocateTemplate(templ)) < 0) {
oneError(conn, NULL, VIR_ERR_OPERATION_FAILED,
- "Error submitting virtual machine to OpenNebula");
- VIR_FREE(templ);
- return -1;
+ _("Error submitting virtual machine to OpenNebula"));
+ VIR_FREE(templ);
+ return -1;
}
VIR_FREE(templ);
*/
char* xmlOneTemplate(virConnectPtr conn,virDomainDefPtr def)
-{
- int i;
- virBuffer buf= VIR_BUFFER_INITIALIZER;
- virBufferVSprintf(&buf,"#OpenNebula Template automatically generated by libvirt\nNAME = %s\nCPU = %ld\nMEMORY = %ld\n",
- def->name,
- def->vcpus,
- (def->maxmem)/1024);
-
+{
+ int i;
+ virBuffer buf= VIR_BUFFER_INITIALIZER;
+ virBufferVSprintf(&buf,"#OpenNebula Template automatically generated by libvirt\nNAME = %s\nCPU = %ld\nMEMORY = %ld\n",
+ def->name,
+ def->vcpus,
+ (def->maxmem)/1024);
+
/*Optional Booting OpenNebula Information:*/
- if( def->os.kernel ){
+ if (def->os.kernel) {
virBufferVSprintf(&buf,"OS=[ kernel = \"%s\"",def->os.kernel);
- if(def->os.initrd)
- virBufferVSprintf(&buf,",\n initrd = \"%s\"",def->os.initrd);
- if(def->os.cmdline)
- virBufferVSprintf(&buf,",\n kernel_cmd = \"%s\"",def->os.cmdline);
- if(def->os.root)
- virBufferVSprintf(&buf,",\n root = \"%s\"",def->os.root);
-
- virBufferAddLit(&buf," ]\n");
+ if (def->os.initrd)
+ virBufferVSprintf(&buf,",\n initrd = \"%s\"",def->os.initrd);
+ if (def->os.cmdline)
+ virBufferVSprintf(&buf,",\n kernel_cmd = \"%s\"",def->os.cmdline);
+ if (def->os.root)
+ virBufferVSprintf(&buf,",\n root = \"%s\"",def->os.root);
+
+ virBufferAddLit(&buf," ]\n");
}
/* set Disks & NICS */
- for(i=0 ; i<def->ndisks ; i++){
- // missing source is only allowed at cdrom and floppy
- if(def->disks[i]->device==VIR_DOMAIN_DISK_DEVICE_DISK){
- virBufferVSprintf(&buf, "DISK=[ type = disk,\n"
- " source = \"%s\",\n",
- def->disks[i]->src);
- }
- else if(def->disks[i]->device==VIR_DOMAIN_DISK_DEVICE_CDROM){
- virBufferAddLit(&buf, "DISK=[ type = cdrom,\n");
- if(def->disks[i]->src) virBufferVSprintf(&buf, " source = \"%s\",\n",def->disks[i]->src);
- }
- else if(def->disks[i]->device==VIR_DOMAIN_DISK_DEVICE_FLOPPY){
- virBufferAddLit(&buf, "DISK=[ type = floppy,\n");
- if(def->disks[i]->src) virBufferVSprintf(&buf, " source = \"%s\",\n",def->disks[i]->src);
- }
-
- virBufferVSprintf(&buf, " target = \"%s\",\n"
- " readonly =",
- def->disks[i]->dst);
-
- if(def->disks[i]->readonly)
- virBufferAddLit(&buf,"\"yes\"]\n");
- else
- virBufferAddLit(&buf,"\"no\"]\n");
+ for (i=0 ; i < def->ndisks ; i++) {
+ // missing source is only allowed at cdrom and floppy
+ if (def->disks[i]->device == VIR_DOMAIN_DISK_DEVICE_DISK) {
+ virBufferVSprintf(&buf, "DISK=[ type = disk,\n"
+ " source = \"%s\",\n",
+ def->disks[i]->src);
+ }
+ else if (def->disks[i]->device == VIR_DOMAIN_DISK_DEVICE_CDROM) {
+ virBufferAddLit(&buf, "DISK=[ type = cdrom,\n");
+ if (def->disks[i]->src) virBufferVSprintf(&buf, " source = \"%s\",\n",def->disks[i]->src);
+ }
+ else if (def->disks[i]->device == VIR_DOMAIN_DISK_DEVICE_FLOPPY) {
+ virBufferAddLit(&buf, "DISK=[ type = floppy,\n");
+ if (def->disks[i]->src) virBufferVSprintf(&buf, " source = \"%s\",\n",def->disks[i]->src);
+ }
+
+ virBufferVSprintf(&buf, " target = \"%s\",\n"
+ " readonly =",
+ def->disks[i]->dst);
+
+ if (def->disks[i]->readonly)
+ virBufferAddLit(&buf,"\"yes\"]\n");
+ else
+ virBufferAddLit(&buf,"\"no\"]\n");
}
-
- for(i=0 ; i< def->nnets ; i++)
+
+ for (i=0 ; i< def->nnets ; i++)
{
- if ( !def->nets[i] ) {
+ if (!def->nets[i]) {
continue;
}
switch(def->nets[i]->type)
{
- case VIR_DOMAIN_NET_TYPE_BRIDGE:
- virBufferVSprintf(&buf,"NIC=[ bridge =\"%s\",\n",def->nets[i]->data.bridge.brname);
-
- if(def->nets[i]->ifname)
- virBufferVSprintf(&buf," target =\"%s\",\n",def->nets[i]->ifname);
-
- virBufferVSprintf(&buf," mac =\"%02x:%02x:%02x:%02x:%02x:%02x\" ]\n",
- def->nets[i]->mac[0],def->nets[i]->mac[1],
- def->nets[i]->mac[2],def->nets[i]->mac[3],
- def->nets[i]->mac[4],def->nets[i]->mac[5]);
- break;
-
- case VIR_DOMAIN_NET_TYPE_NETWORK:
- virBufferVSprintf(&buf,"NIC=[ network=\"%s\"",def->nets[i]->data.network.name);
- if(def->nets[i]->ifname)
- virBufferVSprintf(&buf,",\n target =\"%s\"",def->nets[i]->ifname);
- virBufferAddLit(&buf," ]\n");
- break;
-
- default: break;
- }
+ case VIR_DOMAIN_NET_TYPE_BRIDGE:
+ virBufferVSprintf(&buf,"NIC=[ bridge =\"%s\",\n",def->nets[i]->data.bridge.brname);
+
+ if (def->nets[i]->ifname)
+ virBufferVSprintf(&buf," target =\"%s\",\n",def->nets[i]->ifname);
+
+ virBufferVSprintf(&buf," mac =\"%02x:%02x:%02x:%02x:%02x:%02x\" ]\n",
+ def->nets[i]->mac[0],def->nets[i]->mac[1],
+ def->nets[i]->mac[2],def->nets[i]->mac[3],
+ def->nets[i]->mac[4],def->nets[i]->mac[5]);
+ break;
+
+ case VIR_DOMAIN_NET_TYPE_NETWORK:
+ virBufferVSprintf(&buf,"NIC=[ network=\"%s\"",def->nets[i]->data.network.name);
+ if (def->nets[i]->ifname)
+ virBufferVSprintf(&buf,",\n target =\"%s\"",def->nets[i]->ifname);
+ virBufferAddLit(&buf," ]\n");
+ break;
+
+ default: break;
+ }
+ }
+
+ if (def->graphics != NULL) {
+ if (def->graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC) {
+ virBufferAddLit(&buf,"GRAPHICS = [\n type = \"vnc\"");
+
+ if (def->graphics->data.vnc.listenAddr != NULL)
+ virBufferVSprintf(&buf,",\n listen = \"%s\"",def->graphics->data.vnc.listenAddr);
+
+ if (def->graphics->data.vnc.autoport == 0)
+ virBufferVSprintf(&buf,",\n port = \"%d\"",def->graphics->data.vnc.port);
+
+ if (def->graphics->data.vnc.passwd != NULL)
+ virBufferVSprintf(&buf,",\n passwd = \"%s\"",def->graphics->data.vnc.passwd);
+
+ virBufferAddLit(&buf," ]\n");
+
+ }
+ else //graphics.type==VIR_DOMAIN_GRAPHICS_TYPE_SDL
+ virBufferAddLit(&buf,"GRAPHICS = [\n type = \"sdl\" ]\n");
+
}
-
- if(def->graphics!=NULL){
- if(def->graphics->type==VIR_DOMAIN_GRAPHICS_TYPE_VNC){
- virBufferAddLit(&buf,"GRAPHICS = [\n type = \"vnc\"");
-
- if(def->graphics->data.vnc.listenAddr!=NULL)
- virBufferVSprintf(&buf,",\n listen = \"%s\"",def->graphics->data.vnc.listenAddr);
-
- if(def->graphics->data.vnc.autoport==0)
- virBufferVSprintf(&buf,",\n port = \"%d\"",def->graphics->data.vnc.port);
-
- if(def->graphics->data.vnc.passwd!=NULL)
- virBufferVSprintf(&buf,",\n passwd = \"%s\"",def->graphics->data.vnc.passwd);
-
- virBufferAddLit(&buf," ]\n");
-
- }
- else //graphics.type==VIR_DOMAIN_GRAPHICS_TYPE_SDL
- virBufferAddLit(&buf,"GRAPHICS = [\n type = \"sdl\" ]\n");
-
- }
if (virBufferError(&buf))
goto no_memory;
return virBufferContentAndReset(&buf);
- no_memory:
+no_memory:
virReportOOMError(conn);
char* tmp = virBufferContentAndReset(&buf);
VIR_FREE(tmp);
return NULL;
-};
+};
/*----------------------------------------------------------------------------------*/
-/* Copyright 2002-2009, Distributed Systems Architecture Group, Universidad
- * Complutense de Madrid (dsa-research.org)
- *
+/* Copyright 2002-2009, Distributed Systems Architecture Group, Universidad
+ * Complutense de Madrid (dsa-research.org)
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
+ */
/*-----------------------------------------------------------------------------------*/
#ifndef ONE_CONF_H
virCapsPtr caps;
virDomainObjList domains;
int nextid;
-};
+};
typedef struct one_driver one_driver_t;
char* xmlOneTemplate(virConnectPtr conn,virDomainDefPtr def);
-#define oneError(conn, dom, code, fmt...) \
- virReportErrorHelper(conn, VIR_FROM_ONE, code, __FILE__, \
- __FUNCTION__, __LINE__, fmt)
+#define oneError(conn, dom, code, fmt...) \
+ virReportErrorHelper(conn, VIR_FROM_ONE, code, __FILE__, \
+ __FUNCTION__, __LINE__, fmt)
#endif /* ONE_CONF_H */
/*---------------------------------------------------------------------------*/
-/* Copyright 2002-2009, Distributed Systems Architecture Group, Universidad
- * Complutense de Madrid (dsa-research.org)
- *
+/* Copyright 2002-2009, Distributed Systems Architecture Group, Universidad
+ * Complutense de Madrid (dsa-research.org)
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
+ */
/*---------------------------------------------------------------------------*/
#include <config.h>
virConnectAuthPtr auth ATTRIBUTE_UNUSED,
int flags ATTRIBUTE_UNUSED)
{
- /* Verify uri was specified */
+ /* Verify uri was specified */
if (conn->uri == NULL) {
conn->uri = xmlParseURI("one:///");
if (!conn->uri) {
goto declineConnection;
}
conn->privateData = one_driver;
-
+
return VIR_DRV_OPEN_SUCCESS;
declineConnection:
}
static int oneClose(virConnectPtr conn)
-{
+{
conn->privateData = NULL;
return 0;
}
if(vm) {
virDomainObjUnlock(vm);
}
-
+
return dom;
}
if(vm) {
virDomainObjUnlock(vm);
}
-
+
return dom;
}
if(vm) {
virDomainObjUnlock(vm);
}
-
+
return dom;
}
if (virDomainIsActive(driver->domains.objs[i]))
n++;
virDomainObjUnlock(driver->domains.objs[i]);
- }
+ }
oneDriverUnlock(driver);
return n;
oneDriverLock(driver);
for (i = 0 ; i < driver->domains.count && got < nnames ; i++) {
- virDomainObjLock(driver->domains.objs[i]);
+ virDomainObjLock(driver->domains.objs[i]);
if (!virDomainIsActive(driver->domains.objs[i])) {
if (!(names[got++] = strdup(driver->domains.objs[i]->def->name))) {
virReportOOMError(conn);
- virDomainObjUnlock(driver->domains.objs[i]);
+ virDomainObjUnlock(driver->domains.objs[i]);
goto cleanup;
}
}
virDomainObjUnlock(driver->domains.objs[i]);
}
oneDriverUnlock(driver);
-
+
return got;
- cleanup:
+cleanup:
for (i = 0 ; i < got ; i++)
VIR_FREE(names[i]);
oneDriverUnlock(driver);
-
+
return -1;
}
if (!virDomainIsActive(driver->domains.objs[i]))
n++;
virDomainObjUnlock(driver->domains.objs[i]);
- }
+ }
oneDriverUnlock(driver);
return n;
virDomainPtr dom=NULL;
oneDriverLock(driver);
- if (!(def = virDomainDefParseString(conn, driver->caps, xml,
+ if (!(def = virDomainDefParseString(conn, driver->caps, xml,
VIR_DOMAIN_XML_INACTIVE)))
goto return_point;
one_driver_t *driver = (one_driver_t *)dom->conn->privateData;
virDomainObjPtr vm = NULL;
int ret=-1;
-
+
oneDriverLock(driver);
vm =virDomainFindByUUID(&driver->domains, dom->uuid);
if (!vm) {
oneError(dom->conn, dom, VIR_ERR_INVALID_DOMAIN,
- "no domain with matching uuid");
+ _("no domain with matching uuid"));
goto return_point;
}
if (!vm->persistent) {
oneError(dom->conn, dom, VIR_ERR_INTERNAL_ERROR,
- "cannot undefine transient domain");
+ _("cannot undefine transient domain"));
goto return_point;
}
virDomainRemoveInactive(&driver->domains, vm);
if(gettimeofday(&tv,NULL)<0) {
oneError(dom->conn,dom, VIR_ERR_INTERNAL_ERROR,
- "%s",_("getting time of day"));
+ "%s",_("getting time of day"));
virDomainObjUnlock(vm);
return -1;
}
cptr = index(cptr, ':');
cptr++;
int one_state=atoi(cptr);
-
+
switch(one_state) {
- case 3: /** running */
- if (vm->state!=VIR_DOMAIN_SHUTDOWN)
- vm->state=VIR_DOMAIN_RUNNING;
- break;
- case 5: /** pause */
- vm->state=VIR_DOMAIN_PAUSED;
- break;
- case 6: /** done */
- vm->state=VIR_DOMAIN_SHUTOFF;
- vm->def->id=-1;
- break;
- case 7: /** error */
- vm->state=VIR_DOMAIN_CRASHED;
- break;
- default:
- break;
+ case 3: /** running */
+ if (vm->state!=VIR_DOMAIN_SHUTDOWN)
+ vm->state=VIR_DOMAIN_RUNNING;
+ break;
+ case 5: /** pause */
+ vm->state=VIR_DOMAIN_PAUSED;
+ break;
+ case 6: /** done */
+ vm->state=VIR_DOMAIN_SHUTOFF;
+ vm->def->id=-1;
+ break;
+ case 7: /** error */
+ vm->state=VIR_DOMAIN_CRASHED;
+ break;
+ default:
+ break;
};
//Memory:
cptr=strstr(vm_info,"MEMORY");
info->cpuTime = (tv.tv_sec - starttime) *1000ll *1000ll *1000ll;
}
-
+
info->state = vm->state;
info->maxMem = vm->def->maxmem;
info->memory = vm->def->memory;
virDomainObjPtr vm;
int ret = -1;
int oneid;
-
+
oneDriverLock(driver);
vm = virDomainFindByName(&driver->domains, dom->name);
if (!vm) {
oneError(conn, dom, VIR_ERR_INVALID_DOMAIN,
- "no domain named %s", dom->name);
+ _("no domain named %s"), dom->name);
goto return_point;
}
if((oneid = oneSubmitVM(dom->conn,driver,vm)) < 0) {
if(vm)
virDomainObjUnlock(vm);
oneDriverUnlock(driver);
-
+
return ret;
}
virDomainObjPtr vm = NULL;
virDomainDefPtr def;
virDomainPtr dom = NULL;
- int oneid;
+ int oneid;
oneDriverLock(driver);
if (!(def = virDomainDefParseString(conn, driver->caps, xml,
- VIR_DOMAIN_XML_INACTIVE)))
+ VIR_DOMAIN_XML_INACTIVE)))
goto return_point;
vm = virDomainFindByName(&driver->domains, def->name);
if (vm) {
oneError(conn,NULL, VIR_ERR_OPERATION_FAILED,
- _("Already an OpenNebula VM active with the name: \"%s\" id: %d "),
- def->name,def->id);
+ _("Already an OpenNebula VM active with the name: '%s' id: %d "),
+ def->name,def->id);
goto return_point;
}
-
+
if (!(vm = virDomainAssignDef(conn, &driver->domains, def))) {
virDomainDefFree(def);
goto return_point;
vm=NULL;
goto return_point;
}
-
+
vm->def->id=driver->nextid++;
vm->persistent=0;
vm->pid=oneid;
if (dom) {
dom->id = vm->def->id;
}
-
+
return_point:
if(vm)
virDomainObjUnlock(vm);
oneDriverUnlock(driver);
-
+
return dom;
}
goto return_point;
}
oneError(dom->conn, dom, VIR_ERR_OPERATION_FAILED,
- "Wrong state to perform action");
+ _("Wrong state to perform action"));
goto return_point;
}
oneError(dom->conn,dom, VIR_ERR_INVALID_DOMAIN,
- _("no domain with id %d"), dom->id);
- goto return_point;
+ _("no domain with id %d"), dom->id);
+ goto return_point;
if (!vm->persistent) {
- virDomainRemoveInactive(&driver->domains, vm);
+ virDomainRemoveInactive(&driver->domains, vm);
vm = NULL;
}
return_point:
if(vm)
virDomainObjUnlock(vm);
oneDriverUnlock(driver);
-
+
return ret;
}
vm= virDomainFindByID(&driver->domains, dom->id);
if (!vm) {
oneError(dom->conn, dom, VIR_ERR_INVALID_DOMAIN,
- "no domain with id %d", dom->id);
+ _("no domain with id %d"), dom->id);
goto return_point;
}
if(c_oneCancel(vm->pid)) {
- /* VM not running, delete the instance at ONE DB */
- if(c_oneFinalize(vm->pid)){
- oneError(dom->conn, dom, VIR_ERR_OPERATION_FAILED,
- "Wrong state to perform action");
- goto return_point;
+ /* VM not running, delete the instance at ONE DB */
+ if(c_oneFinalize(vm->pid)){
+ oneError(dom->conn, dom, VIR_ERR_OPERATION_FAILED,
+ _("Wrong state to perform action"));
+ goto return_point;
}
}
if(!vm->persistent) {
virDomainObjUnlock(vm);
oneDriverUnlock(driver);
-
+
return ret;
}
one_driver_t* driver=dom->conn->privateData;
virDomainObjPtr vm;
int ret=-1;
-
+
oneDriverLock(driver);
if ((vm=virDomainFindByID(&driver->domains,dom->id))){
- if (vm->state == VIR_DOMAIN_RUNNING) {
- if( !(c_oneSuspend(vm->pid)) ) {
- vm->state=VIR_DOMAIN_PAUSED;
- ret=0;
+ if (vm->state == VIR_DOMAIN_RUNNING) {
+ if( !(c_oneSuspend(vm->pid)) ) {
+ vm->state=VIR_DOMAIN_PAUSED;
+ ret=0;
+ goto return_point;
+ }
+ oneError(dom->conn, dom, VIR_ERR_OPERATION_FAILED,
+ _("Wrong state to perform action"));
goto return_point;
}
- oneError(dom->conn, dom, VIR_ERR_OPERATION_FAILED,
- "Wrong state to perform action");
- goto return_point;
- }
- oneError(dom->conn,dom,VIR_ERR_OPERATION_FAILED,
- "domain is not running");
+ oneError(dom->conn,dom,VIR_ERR_OPERATION_FAILED,
+ _("domain is not running"));
} else {
oneError(dom->conn, dom, VIR_ERR_INVALID_DOMAIN,
- "no domain with matching id %d", dom->id);
+ _("no domain with matching id %d"), dom->id);
}
return_point:
if(vm)
virDomainObjUnlock(vm);
oneDriverUnlock(driver);
-
+
return ret;
};
vm->state=VIR_DOMAIN_RUNNING;
ret=0;
goto return_point;
- }
+ }
oneError(dom->conn, dom, VIR_ERR_OPERATION_FAILED,
- "Wrong state to perform action");
+ _("Wrong state to perform action"));
goto return_point;
- }
+ }
oneError(dom->conn,dom,VIR_ERR_OPERATION_FAILED,
- "domain is not paused ");
+ _("domain is not paused "));
} else {
oneError(dom->conn, dom, VIR_ERR_INVALID_DOMAIN,
- "no domain with matching id %d", dom->id);
-}
+ _("no domain with matching id %d"), dom->id);
+ }
return_point:
if(vm)
virDomainObjUnlock(vm);
oneDriverUnlock(driver);
-
+
return ret;
};
VIR_FREE(one_driver);
return -1;
}
-
+
c_oneStart();
oneDriverLock(one_driver);
one_driver->nextid=1;
VIR_FREE(one_driver);
return -1;
}
- oneDriverUnlock(one_driver);
-
+ oneDriverUnlock(one_driver);
+
return 0;
}
static int oneActive(void){
unsigned int i;
- int active = 0;
+ int active = 0;
if (one_driver == NULL)
return(0);
for (i = 0 ; i < one_driver->domains.count ; i++) {
virDomainObjLock(one_driver->domains.objs[i]);
if (virDomainIsActive(one_driver->domains.objs[i]))
- active = 1;
+ active = 1;
virDomainObjUnlock(one_driver->domains.objs[i]);
- }
+ }
oneDriverUnlock(one_driver);
return active;
static int oneGetAutostart(virDomainPtr domain ATTRIBUTE_UNUSED, int *autostart)
{
- autostart=0;
+ autostart=0;
return 0;
}
static char* oneGetCapabilities(virConnectPtr conn){
- one_driver_t* privconn=conn->privateData;
+ one_driver_t* privconn=conn->privateData;
char *xml;
oneDriverLock(privconn);
if ((xml = virCapabilitiesFormatXML(privconn->caps)) == NULL)
NULL, /* nodeDeviceReAttach; */
NULL, /* nodeDeviceReset; */
};
-
+
static virStateDriver oneStateDriver = {
.initialize = oneStartup,
.cleanup = oneShutdown,
/*---------------------------------------------------------------------------*/
-/* Copyright 2002-2009, Distributed Systems Architecture Group, Universidad
- * Complutense de Madrid (dsa-research.org)
- *
+/* Copyright 2002-2009, Distributed Systems Architecture Group, Universidad
+ * Complutense de Madrid (dsa-research.org)
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
+ */
/*---------------------------------------------------------------------------*/