#include #include #include static virConnectPtr conn = NULL; int main(int argc, char **argv) { char xml[4096],*p,uuid[VIR_UUID_STRING_BUFLEN]; FILE *f; virDomainPtr dom,dom1; int i; f = fopen("sample_domain.xml","rb"); if(!f) { fprintf(stderr, "Error opening XML\n"); exit(1); } p=xml; while(1) { int c = fgetc(f); if(c==EOF) { *p='\0'; break; } else *p++=(char)c; } fclose(f); conn = virConnectOpen(NULL); if(!conn) { fprintf(stderr, "Failed to connect to hypervisor\n"); exit(1); } for(i=0;i<2;i++) { fprintf(stderr,"Attempt %d:\n",i); fprintf(stderr,"define\n"); dom =virDomainDefineXML (conn, xml); if(!dom) { fprintf(stderr, "Failed to define domain\n"); virConnectClose(conn); exit(1); } if(0!=virDomainGetUUIDString(dom, uuid)) { fprintf(stderr, "Failed to get UUID\n"); virConnectClose(conn); exit(1); } fprintf(stderr,"Domain defined with UUID %s\n",uuid); fprintf(stderr,"lookup by UUID %s\n",uuid); dom1 = virDomainLookupByUUIDString(conn, uuid); if(!dom1) { fprintf(stderr, "Failed to lookup by UUID string domain\n"); virConnectClose(conn); exit(1); } if(0!=virDomainGetUUIDString(dom1, uuid)) { fprintf(stderr, "Failed to get UUID\n"); virConnectClose(conn); exit(1); } fprintf(stderr,"Lookup found domain with UUID %s\n",uuid); fprintf(stderr,"undefine\n"); if(0!=virDomainUndefine(dom)) { fprintf(stderr, "Failed to undefine domain\n"); virConnectClose(conn); exit(1); } } virConnectClose(conn); }