From ee8553e15651e49c43d67bb98dbbac1ccc843f40 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Thu, 28 May 2009 13:11:22 +0000 Subject: [PATCH] Fix misc syntax problems with open nebula driver --- ChangeLog | 11 ++ Makefile.maint | 1 + po/POTFILES.in | 2 + src/opennebula/one_conf.c | 202 ++++++++++++++++++------------------ src/opennebula/one_conf.h | 16 +-- src/opennebula/one_driver.c | 184 ++++++++++++++++---------------- src/opennebula/one_driver.h | 8 +- 7 files changed, 219 insertions(+), 205 deletions(-) diff --git a/ChangeLog b/ChangeLog index 13aed85220..bcf070dc1e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +Thu May 28 14:11:30 BST 2009 Daniel P. Berrange + + 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 * src/logging.c: Include function name & line number in all diff --git a/Makefile.maint b/Makefile.maint index 16eb882d84..2c5d396a05 100644 --- a/Makefile.maint +++ b/Makefile.maint @@ -332,6 +332,7 @@ msg_gen_function += errorf 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 diff --git a/po/POTFILES.in b/po/POTFILES.in index 78f7cbcc34..925cd29393 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -16,6 +16,8 @@ src/network_driver.c 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 diff --git a/src/opennebula/one_conf.c b/src/opennebula/one_conf.c index 3d28197d28..dc0eff0879 100644 --- a/src/opennebula/one_conf.c +++ b/src/opennebula/one_conf.c @@ -1,7 +1,7 @@ /*----------------------------------------------------------------------------------*/ -/* 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 @@ -15,7 +15,7 @@ * 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 @@ -73,7 +73,7 @@ virCapsPtr oneCapsInit(void) } - if ((guest = virCapabilitiesAddGuest(caps, + if ((guest = virCapabilitiesAddGuest(caps, "hvm", "x86_64", 64, @@ -114,22 +114,22 @@ no_memory: * @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); @@ -147,113 +147,113 @@ int oneSubmitVM(virConnectPtr conn, */ 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 ; indisks ; 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; -}; +}; diff --git a/src/opennebula/one_conf.h b/src/opennebula/one_conf.h index 3355c25541..b80922099e 100644 --- a/src/opennebula/one_conf.h +++ b/src/opennebula/one_conf.h @@ -1,7 +1,7 @@ /*----------------------------------------------------------------------------------*/ -/* 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 @@ -15,7 +15,7 @@ * 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 @@ -34,7 +34,7 @@ struct one_driver{ virCapsPtr caps; virDomainObjList domains; int nextid; -}; +}; typedef struct one_driver one_driver_t; @@ -44,9 +44,9 @@ int oneSubmitVM(virConnectPtr conn ,one_driver_t* driver, virDomainObjPtr vm); 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 */ diff --git a/src/opennebula/one_driver.c b/src/opennebula/one_driver.c index d279ec1554..70da4fa91d 100644 --- a/src/opennebula/one_driver.c +++ b/src/opennebula/one_driver.c @@ -1,7 +1,7 @@ /*---------------------------------------------------------------------------*/ -/* 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 @@ -15,7 +15,7 @@ * 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 @@ -66,7 +66,7 @@ static virDrvOpenStatus oneOpen(virConnectPtr conn, 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) { @@ -78,7 +78,7 @@ static virDrvOpenStatus oneOpen(virConnectPtr conn, goto declineConnection; } conn->privateData = one_driver; - + return VIR_DRV_OPEN_SUCCESS; declineConnection: @@ -86,7 +86,7 @@ declineConnection: } static int oneClose(virConnectPtr conn) -{ +{ conn->privateData = NULL; return 0; } @@ -116,7 +116,7 @@ return_point: if(vm) { virDomainObjUnlock(vm); } - + return dom; } @@ -144,7 +144,7 @@ return_point: if(vm) { virDomainObjUnlock(vm); } - + return dom; } @@ -172,7 +172,7 @@ return_point: if(vm) { virDomainObjUnlock(vm); } - + return dom; } @@ -204,7 +204,7 @@ static int oneNumDomains(virConnectPtr conn) if (virDomainIsActive(driver->domains.objs[i])) n++; virDomainObjUnlock(driver->domains.objs[i]); - } + } oneDriverUnlock(driver); return n; @@ -217,25 +217,25 @@ static int oneListDefinedDomains(virConnectPtr conn, 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; } @@ -250,7 +250,7 @@ static int oneNumDefinedDomains(virConnectPtr conn) if (!virDomainIsActive(driver->domains.objs[i])) n++; virDomainObjUnlock(driver->domains.objs[i]); - } + } oneDriverUnlock(driver); return n; @@ -264,7 +264,7 @@ static virDomainPtr oneDomainDefine(virConnectPtr conn, const char *xml) 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; @@ -292,18 +292,18 @@ static int oneDomainUndefine(virDomainPtr dom) 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); @@ -332,7 +332,7 @@ static int oneDomainGetInfo(virDomainPtr dom, 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; } @@ -347,24 +347,24 @@ static int oneDomainGetInfo(virDomainPtr dom, 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"); @@ -380,7 +380,7 @@ static int oneDomainGetInfo(virDomainPtr dom, info->cpuTime = (tv.tv_sec - starttime) *1000ll *1000ll *1000ll; } - + info->state = vm->state; info->maxMem = vm->def->maxmem; info->memory = vm->def->memory; @@ -416,13 +416,13 @@ static int oneDomainStart(virDomainPtr dom) 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) { @@ -437,7 +437,7 @@ return_point: if(vm) virDomainObjUnlock(vm); oneDriverUnlock(driver); - + return ret; } @@ -449,21 +449,21 @@ oneDomainCreateAndStart(virConnectPtr conn, 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; @@ -473,7 +473,7 @@ oneDomainCreateAndStart(virConnectPtr conn, vm=NULL; goto return_point; } - + vm->def->id=driver->nextid++; vm->persistent=0; vm->pid=oneid; @@ -483,12 +483,12 @@ oneDomainCreateAndStart(virConnectPtr conn, if (dom) { dom->id = vm->def->id; } - + return_point: if(vm) virDomainObjUnlock(vm); oneDriverUnlock(driver); - + return dom; } @@ -506,22 +506,22 @@ static int oneDomainShutdown(virDomainPtr 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; } @@ -535,15 +535,15 @@ static int oneDomainDestroy(virDomainPtr dom) 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) { @@ -557,7 +557,7 @@ return_point: virDomainObjUnlock(vm); oneDriverUnlock(driver); - + return ret; } @@ -566,32 +566,32 @@ static int oneDomainSuspend(virDomainPtr dom) 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; }; @@ -608,23 +608,23 @@ static int oneDomainResume(virDomainPtr dom) 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; }; @@ -638,7 +638,7 @@ static int oneStartup(void){ VIR_FREE(one_driver); return -1; } - + c_oneStart(); oneDriverLock(one_driver); one_driver->nextid=1; @@ -647,8 +647,8 @@ static int oneStartup(void){ VIR_FREE(one_driver); return -1; } - oneDriverUnlock(one_driver); - + oneDriverUnlock(one_driver); + return 0; } @@ -670,7 +670,7 @@ static int oneShutdown(void){ static int oneActive(void){ unsigned int i; - int active = 0; + int active = 0; if (one_driver == NULL) return(0); @@ -679,9 +679,9 @@ static int oneActive(void){ 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; @@ -697,12 +697,12 @@ static int oneVersion(virConnectPtr conn ATTRIBUTE_UNUSED, unsigned long *hvVer) 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) @@ -778,7 +778,7 @@ static virDriver oneDriver = { NULL, /* nodeDeviceReAttach; */ NULL, /* nodeDeviceReset; */ }; - + static virStateDriver oneStateDriver = { .initialize = oneStartup, .cleanup = oneShutdown, diff --git a/src/opennebula/one_driver.h b/src/opennebula/one_driver.h index c00f146b88..393edc6259 100644 --- a/src/opennebula/one_driver.h +++ b/src/opennebula/one_driver.h @@ -1,7 +1,7 @@ /*---------------------------------------------------------------------------*/ -/* 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 @@ -15,7 +15,7 @@ * 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 - */ + */ /*---------------------------------------------------------------------------*/ -- GitLab