这篇教程C++ virConnectClose函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中virConnectClose函数的典型用法代码示例。如果您正苦于以下问题:C++ virConnectClose函数的具体用法?C++ virConnectClose怎么用?C++ virConnectClose使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了virConnectClose函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: mymainstatic intmymain(void){ struct metadataTest test; int ret = EXIT_SUCCESS; if (!(test.conn = virConnectOpen("test:///default"))) return EXIT_FAILURE; if (!(test.dom = virDomainLookupByName(test.conn, "test"))) { virConnectClose(test.conn); return EXIT_FAILURE; } virtTestQuiesceLibvirtErrors(false); if (virtTestRun("Assign metadata ", testAssignMetadata, &test) < 0) ret = EXIT_FAILURE; if (virtTestRun("Rewrite Metadata ", testRewriteMetadata, &test) < 0) ret = EXIT_FAILURE; if (virtTestRun("Erase metadata ", testEraseMetadata, &test) < 0) ret = EXIT_FAILURE; virDomainFree(test.dom); virConnectClose(test.conn); return ret;}
开发者ID:CLisa,项目名称:libvirt,代码行数:28,
示例2: mainvoid main(int argc, char *argv[]) { char *myIP; if (argc<2) printf("arg1=myip/n"),exit(-128); myIP = argv[1]; if (fork() == 0) { // Child virConnectPtr localhost = virConnectOpen("qemu:///system"); while(1) { int alive = virConnectIsAlive(localhost); if (alive == 0) { printf("Connection lost, reopening./n"); virConnectClose(localhost); localhost = virConnectOpen("qemu:///system"); } else if (alive == -1) { printf("Connection dead./n"); virConnectClose(localhost); localhost = virConnectOpen("qemu:///system"); sleep(3); continue; } printf("*** connected/n"); run(myIP, localhost); sleep(1); } virConnectClose(localhost); } exit(0);}
开发者ID:pojoba02,项目名称:cherrypop,代码行数:30,
示例3: mymainstatic intmymain(void){ int id = 0; int ro = 0; virConnectPtr conn; virDomainPtr dom; int status; virCommandPtr cmd; struct utsname ut; /* Skip test if xend is not running. Calling xend on a non-xen kernel causes some versions of xend to issue a crash report, so we first probe uname results. */ uname(&ut); if (strstr(ut.release, "xen") == NULL) return EXIT_AM_SKIP; cmd = virCommandNewArgList("/usr/sbin/xend", "status", NULL); if (virCommandRun(cmd, &status) != 0 || status != 0) { virCommandFree(cmd); return EXIT_AM_SKIP; } virCommandFree(cmd); virSetErrorFunc(NULL, errorHandler); conn = virConnectOpen(NULL); if (conn == NULL) { ro = 1; conn = virConnectOpenReadOnly(NULL); } if (conn == NULL) { fprintf(stderr, "First virConnectOpen() failed/n"); return EXIT_FAILURE; } dom = virDomainLookupByID(conn, id); if (dom == NULL) { fprintf(stderr, "First lookup for domain %d failed/n", id); return EXIT_FAILURE; } virDomainFree(dom); virConnectClose(conn); if (ro == 1) conn = virConnectOpenReadOnly(NULL); else conn = virConnectOpen(NULL); if (conn == NULL) { fprintf(stderr, "Second virConnectOpen() failed/n"); return EXIT_FAILURE; } dom = virDomainLookupByID(conn, id); if (dom == NULL) { fprintf(stderr, "Second lookup for domain %d failed/n", id); return EXIT_FAILURE; } virDomainFree(dom); virConnectClose(conn); return EXIT_SUCCESS;}
开发者ID:ansisatteka,项目名称:libvirt-ovs,代码行数:60,
示例4: network_opstatic int network_op(char * name, int op){ virNetworkPtr net; virConnectPtr conn; int ret; conn = virConnectOpen("qemu:///system"); if (conn == NULL) { fprintf(stderr, "Failed to open connection to qemu:///system/n"); return -1; } net = virNetworkLookupByName(conn, name); if (net == NULL) { printf("network is not found/n"); virConnectClose(conn); return -1; } if (op == NETWORK_DESTROY) ret = virNetworkDestroy(net); else if (op == NETWORK_SET_AUTOSTART) ret = virNetworkSetAutostart(net, 1); else if (op == NETWORK_UNSET_AUTOSTART) ret = virNetworkSetAutostart(net, 0); else ret = -1; virNetworkFree(net); virConnectClose(conn); return ret;}
开发者ID:exuuwen,项目名称:study,代码行数:35,
示例5: cpg_virt_init_libvirtstatic voidcpg_virt_init_libvirt(struct cpg_info *info) { config_object_t *config = info->config; int i = 0; if (info->vp) { dbg_printf(2, "Lost libvirtd connection. Reinitializing./n"); for (i = 0 ; i < info->vp_count ; i++) virConnectClose(info->vp[i]); free(info->vp); info->vp = NULL; } info->vp_count = 0; do { virConnectPtr vp; virConnectPtr *vpl = NULL; char conf_attr[256]; char value[1024]; char *uri; if (i != 0) { snprintf(conf_attr, sizeof(conf_attr), "backends/cpg/@uri%d", i); } else snprintf(conf_attr, sizeof(conf_attr), "backends/cpg/@uri"); ++i; if (sc_get(config, conf_attr, value, sizeof(value)) != 0) break; uri = value; vp = virConnectOpen(uri); if (!vp) { dbg_printf(1, "[cpg-virt:INIT] Failed to connect to URI: %s/n", uri); continue; } vpl = realloc(info->vp, sizeof(*info->vp) * (info->vp_count + 1)); if (!vpl) { dbg_printf(1, "[cpg-virt:INIT] Out of memory allocating URI: %s/n", uri); virConnectClose(vp); continue; } info->vp = vpl; info->vp[info->vp_count++] = vp; if (i > 1) dbg_printf(1, "[cpg-virt:INIT] Added URI%d %s/n", i - 1, uri); else dbg_printf(1, "[cpg_virt:INIT] Added URI %s/n", uri); } while (1);}
开发者ID:ClusterLabs,项目名称:fence-virt,代码行数:55,
示例6: virDomainLookupByNametimearg GetVirtInfo::GetCpuTime(QString VM_name){ virDomainPtr vm_ptr = virDomainLookupByName(conn, qPrintable(VM_name)); if(vm_ptr == NULL) { printf("error finding domain/n"); virConnectClose(conn); exit(1); } virDomainInfo info_s; struct timeval real_time_s; timearg return_arg; if(virDomainGetInfo(vm_ptr, &info_s) != 0) { printf("error get domain info/n"); virDomainFree(vm_ptr); virConnectClose(conn); exit(1); } if(gettimeofday(&real_time_s, NULL) == -1) { printf("error get time of day/n"); virDomainFree(vm_ptr); virConnectClose(conn); exit(1); } return_arg.info = info_s; return_arg.real_time = real_time_s; virDomainFree(vm_ptr); return return_arg; /* sleep(1); if(virDomainGetInfo(vm_ptr, &info_e) !=0) { printf("error get domain info/n"); virDomainFree(vm_ptr); virConnectClose(conn); exit(1); } if(gettimeofday(&real_time_e, NULL) == -1) { printf("error get time of day/n"); virDomainFree(vm_ptr); virConnectClose(conn); exit(1); } cpu_diff = (info_e.cpuTime - info_s.cpuTime) / 1000; real_diff = 1000000 * (real_time_e.tv_sec - real_time_s.tv_sec) +(real_time_e.tv_usec - real_time_s.tv_usec); virDomainFree(vm_ptr); usage = cpu_diff / (float) (real_diff); return usage*100;*/}
开发者ID:ecular,项目名称:VmManager,代码行数:51,
示例7: libvirt_domain_saveint libvirt_domain_save(char * name, int idonweb){ virDomainPtr domain; domain = virDomainLookupByName(g_conn, name); if (domain == NULL) { logerror(_("%s: connect domain by name(%s) error./n"), __func__, name); return -1; } virDomainInfo info; if (virDomainGetInfo(dom, &info) < 0) { logprintfl(SCERROR, "Cannot check guest state/n"); return -3; } if (info.state == VIR_DOMAIN_SHUTOFF) { logprintfl(SCERROR, "Not saving guest that isn't running/n"); return -4; } const char *filename = ""; if (virDomainSave(dom, filename) < 0) { fprintf(stderr, "Unable to save guest to %s/n", filename); } fprintf(stdout, "Guest state saved to %s/n", filename); virConnectClose(conn); return 0;}
开发者ID:woerwin,项目名称:LuoYunCloud,代码行数:32,
示例8: libvirt_checkint libvirt_check(int driver){ virSetErrorFunc(NULL, __customErrorFunc); const char * URI; if (driver == HYPERVISOR_IS_KVM) URI = HYPERVISOR_URI_KVM; else if (driver == HYPERVISOR_IS_XEN) URI = HYPERVISOR_URI_XEN; else { logerror(_("unrecognized hypervisor driver(%d)./n"), driver); return -1; } virConnectPtr conn = virConnectOpen(URI); if (conn == NULL) { logerror(_("Connect to %s error./n"), URI); return -1; } int numDomains = virConnectNumOfDomains(conn); if (numDomains < 0) { logerror(_("Connect to %s error./n"), URI); return -1; } virConnectClose(conn); return 0;}
开发者ID:woerwin,项目名称:LuoYunCloud,代码行数:30,
示例9: getDomainInfostatic void getDomainInfo(int id) { virConnectPtr conn = NULL; /* the hypervisor connection */ virDomainPtr dom = NULL; /* the domain being checked */ virDomainInfo info; /* the information being fetched */ int ret; /* NULL means connect to local Xen hypervisor */ conn = virConnectOpenReadOnly(NULL); if (conn == NULL) { fprintf(stderr, "Failed to connect to hypervisor/n"); goto error; } /* Find the domain of the given id */ dom = virDomainLookupByID(conn, id); if (dom == NULL) { fprintf(stderr, "Failed to find Domain %d/n", id); goto error; } /* Get the information */ ret = virDomainGetInfo(dom, &info); if (ret < 0) { fprintf(stderr, "Failed to get information for Domain %d/n", id); goto error; } printf("Domains %d: %d CPUs/n", id, info.nrVirtCpu);error: if (dom != NULL) virDomainFree(dom); if (conn != NULL) virConnectClose(conn);}
开发者ID:seshagiriprabhu,项目名称:libvirt-assignment,代码行数:35,
示例10: mainint main(int argc, char **argv) { int id = 0; conn = virConnectOpenReadOnly(NULL); if (conn == NULL) { fprintf(stderr, "Failed to connect to hypervisor/n"); goto error; } if (argc > 1) { id = atoi(argv[1]); } if (id == 0) { int i, j, ids[10]; i = virConnectListDomains(conn, &ids[0], 10); if (i<0) { fprintf(stderr, "Failed to list the domains/n"); goto error; } for (j = 0;j < i;j++) { if (ids[j] != 0) { id = ids[j]; break; } } } if (id == 0) { fprintf(stderr, "Failed find a running guest domain/n"); goto error; }error: if (conn != NULL) virConnectClose(conn); return(0);}
开发者ID:AlanRelax,项目名称:openstack,代码行数:35,
示例11: ptrIsNullvoid spice_graphHlpThread::run(){ if ( NULL==ptr_ConnPtr || NULL==*ptr_ConnPtr ) { emit ptrIsNull(); return; }; if ( virConnectRef(*ptr_ConnPtr)<0 ) { sendConnErrors(); return; }; QStringList nets; virNetworkPtr *networks = NULL; unsigned int flags = VIR_CONNECT_LIST_NETWORKS_ACTIVE | VIR_CONNECT_LIST_NETWORKS_INACTIVE; int ret = virConnectListAllNetworks(*ptr_ConnPtr, &networks, flags); if ( ret<0 ) { sendConnErrors(); } else { // therefore correctly to use for() command, because networks[0] can not exist. for (int i = 0; i < ret; i++) { nets.append( virNetworkGetName(networks[i]) ); virNetworkFree(networks[i]); }; if (networks) free(networks); }; //int devs = virNodeNumOfDevices(ptr_ConnPtr, NULL, 0); if ( virConnectClose(*ptr_ConnPtr)<0 ) { sendConnErrors(); }; emit result(nets);}
开发者ID:Dravigon,项目名称:qt-virt-manager,代码行数:31,
示例12: libvirt_disconnectvoid libvirt_disconnect() { free(activeDomains); virConnectClose(conn); // directly exit from here exit(0);}
开发者ID:kimmoahokas,项目名称:slicetime,代码行数:7,
示例13: unregisterConnEventsvoid ConnAliveThread::closeConnection(){ //qDebug()<<"closeConnection0"<<*ptr_ConnPtr<<URI; if ( keep_alive ) { keep_alive = false; return; }; //qDebug()<<"closeConnection1"<<*ptr_ConnPtr<<URI; CONN_STATE state; if ( *ptr_ConnPtr!=NULL ) { //qDebug()<<"closeConnection2"<<*ptr_ConnPtr<<URI; unregisterConnEvents(); //qDebug()<<"closeConnection3"<<*ptr_ConnPtr<<URI; int ret = virConnectClose(*ptr_ConnPtr); //qDebug()<<"virConnectRef -1"<<"ConnAliveThread"<<URI<<(ret+1>0); if ( ret<0 ) { state = FAILED; sendConnErrors(); } else { emit connMsg( QString("close exit code: %1").arg(ret) ); state = CLOSED; emit connClosed(onView); }; *ptr_ConnPtr = NULL; } else { emit connMsg( QString("connect is NULL") ); state = FAILED; }; emit changeConnState(state);}
开发者ID:Dravigon,项目名称:qt-virt-manager,代码行数:30,
示例14: mainint main(int argc, char *argv[]){ virConnectPtr conn; int id; char *vm_name; if (argc < 2){ printf("Usage/n%s <virtual machine name/n", argv[0]); exit(1); } else { vm_name = argv[1]; } conn = connect_to_hypervisor(); id = find_a_domain(conn, vm_name); virConnectClose(conn); if (id > 0){ printf("Domain %s is running/n", vm_name); } else if (id < 0){ printf("Domain %s is NOT running/n", vm_name); } else { // If ID is 0, it means that the virtual machine does not exist // on the hypervisor printf("Domain %s not found on this hypervisor/n", vm_name); } return 0;}
开发者ID:jrziviani,项目名称:kvmsdk,代码行数:29,
示例15: dominfo_from_domstatic int dominfo_from_dom(const char *uri, const char *domain, struct domain **d){ virConnectPtr conn = NULL; virDomainPtr dom = NULL; int ret = 0; conn = virConnectOpen(uri); if (conn == NULL) { printf("Unable to connect to libvirt/n"); goto out; } dom = virDomainLookupByName(conn, domain); if (dom == NULL) { printf("Unable to find domain `%s'/n", domain); goto out; } ret = get_dominfo(dom, d); out: virDomainFree(dom); virConnectClose(conn); return ret;}
开发者ID:libvirt,项目名称:libvirt-cim,代码行数:28,
示例16: foreach //qDebug()<<URIs; foreach (QString uri, URIs) { virConnect *connPtr = virConnectOpenReadOnly(uri.toUtf8().data()); if ( Q_NULLPTR!=connPtr ) { // don't work for VBox // int num = virConnectNumOfDefinedDomains(connPtr); virDomainPtr *domains; int ret = virConnectListAllDomains( connPtr, &domains, 0); if ( ret+1 ) { for (int i = 0; i < ret; i++) { if ( virDomainFree(domains[i]) <0 ) sendConnErrors(); }; if (domains) free(domains); } else { sendConnErrors(); }; virConnectClose(connPtr); if ( ret ) { emit localConnFound(uri); }; } else { sendConnErrors(); }; //msleep(333); };
开发者ID:F1ash,项目名称:qt-virt-manager,代码行数:28,
示例17: nwfilterDriverReload/** * virNWFilterReload: * * Function to restart the nwfilter driver, it will recheck the configuration * files and update its state */static intnwfilterDriverReload(void) { virConnectPtr conn; if (!driverState) { return -1; } conn = virConnectOpen("qemu:///system"); if (conn) { /* shut down all threads -- they will be restarted if necessary */ virNWFilterLearnThreadsTerminate(true); nwfilterDriverLock(driverState); virNWFilterCallbackDriversLock(); virNWFilterLoadAllConfigs(conn, &driverState->nwfilters, driverState->configDir); virNWFilterCallbackDriversUnlock(); nwfilterDriverUnlock(driverState); virConnectClose(conn); } return 0;}
开发者ID:hw-claudio,项目名称:libvirt,代码行数:35,
示例18: mainint main(int argc, char *argv[]){virConnectPtr conn;int i;int numDomains;int *activeDomains;virDomainPtr dom;conn = virConnectOpen("qemu:///system");if (conn == NULL) {fprintf(stderr, "Failed to open connection to qemu:///system/n");}numDomains = virConnectNumOfDomains(conn);activeDomains = malloc(sizeof(int) * numDomains);numDomains = virConnectListDomains(conn, activeDomains, numDomains);printf("Active domain IDs:/n");for (i = 0 ; i < numDomains ; i++) {printf(" %d/n", activeDomains[i]);}printf("Terminating Domain/n");free(activeDomains);int domainName = "sudip";dom = virDomainLookupByName(conn,domainName);virDomainDestroy(dom);virDomainFree(dom);printf("Domain sudip terminated successfully/n");if (conn != NULL)virConnectClose(conn);return 0;}
开发者ID:hazrasudip9,项目名称:Mytest,代码行数:30,
示例19: mainint main (int argc, char **argv) { /* Local Vars */ virConnectPtr conn; const char *hvType; unsigned long libVer, libMajor, libMinor, libRelease; unsigned long hvVer, hvMajor, hvMinor, hvRelease; /* Set signal handling and alarm */ if (signal(SIGALRM, timeout_alarm_handler) == SIG_ERR) critical("Setup SIGALRM trap failed!"); /* Process check arguments */ if (process_arguments(argc, argv) != OK) unknown("Parsing arguments failed!"); /* Start plugin timeout */ alarm(mp_timeout); // PLUGIN CODE conn = virt_connect(); hvType = virConnectGetType(conn); if (hvType == NULL) { if (mp_verbose > 0) { virt_showError(conn); } critical("Failed to get hypervisor type."); } if (virConnectGetVersion(conn, &hvVer) != 0) { if (mp_verbose > 0) { virt_showError(conn); } critical("Failed to get hypervisor version."); } if (virConnectGetLibVersion(conn, &libVer) != 0) { if (mp_verbose > 0) { virt_showError(conn); } critical("Failed to get library version."); } virConnectClose(conn); hvMajor = hvVer / 1000000; hvVer %= 1000000; hvMinor = hvVer / 1000; hvRelease = hvVer % 1000; libMajor = libVer / 1000000; libVer %= 1000000; libMinor = libVer / 1000; libRelease = libVer % 1000; /* Output and return */ ok("libvirtd: v.%lu.%lu.%lu Hypervisor: %s (v.%lu.%lu.%lu)", libMajor, libMinor, libRelease, hvType, hvMajor, hvMinor, hvRelease);}
开发者ID:rjuju,项目名称:monitoringplug,代码行数:60,
示例20: enum_profilesCMPIStatus enum_profiles(const CMPIBroker *broker, const CMPIObjectPath *reference, const char **properties, struct inst_list *list){ CMPIStatus s = {CMPI_RC_OK, NULL}; virConnectPtr conn = NULL; int i; conn = connect_by_classname(broker, CLASSNAME(reference), &s); if (conn == NULL) goto out; for (i = 0; profiles[i] != NULL; i++) { CMPIInstance *inst = NULL; s = get_profile(broker, reference, properties, pfx_from_conn(conn), profiles[i], &inst); if (s.rc != CMPI_RC_OK) continue; inst_list_add(list, inst); } out: virConnectClose(conn); return s;}
开发者ID:libvirt,项目名称:libvirt-cim,代码行数:34,
示例21: ptrIsNullvoid pci_hostHlpThread::run(){ if ( NULL==ptr_ConnPtr || NULL==*ptr_ConnPtr ) { emit ptrIsNull(); return; }; if ( virConnectRef(*ptr_ConnPtr)<0 ) { sendConnErrors(); return; }; QStringList devices; virNodeDevice **nodeDevices = NULL; unsigned int flags = VIR_CONNECT_LIST_NODE_DEVICES_CAP_PCI_DEV; int ret = virConnectListAllNodeDevices(*ptr_ConnPtr, &nodeDevices, flags); if ( ret<0 ) { sendConnErrors(); } else { // therefore correctly to use for() command, because networks[0] can not exist. for (int i = 0; i < ret; i++) { devices.append( QString("%1/n") // flags: extra flags; not used yet, // so callers should always pass 0 .arg(virNodeDeviceGetXMLDesc(nodeDevices[i], 0))); virNodeDeviceFree(nodeDevices[i]); }; if (nodeDevices) free(nodeDevices); }; //int devs = virNodeNumOfDevices(ptr_ConnPtr, NULL, 0); if ( virConnectClose(*ptr_ConnPtr)<0 ) sendConnErrors(); emit result(devices);}
开发者ID:Dravigon,项目名称:qt-virt-manager,代码行数:33,
示例22: libvirt_closeint libvirt_close(void) { free_block_devices(); free_interface_devices(); free_domains(); if(conn != NULL) virConnectClose(conn); conn = NULL;}
开发者ID:imaxxs,项目名称:cyton,代码行数:8,
示例23: mainint main(int argc, char *argv[]){ virConnectPtr conn; virDomainPtr dom; char *xmlconfig = NULL; if(argc != 2) { printf("usage: ./define_domain domain.xml/n"); return -1; } if ((xmlconfig = GetXml(argv[1])) == NULL) { fprintf(stderr, "Failed to get xml/n"); return -1; } conn = virConnectOpen("qemu:///system"); if (conn == NULL) { fprintf(stderr, "Failed to open connection to qemu:///system/n"); free(xmlconfig); return -1; } dom = virDomainDefineXML(conn, xmlconfig); if (!dom) { printf("Domain is not found/n"); free(xmlconfig); virConnectClose(conn); return -1; } fprintf(stderr, "Guest %s is defined/n", virDomainGetName(dom)); free(xmlconfig); virDomainFree(dom); virConnectClose(conn); return 0;}
开发者ID:exuuwen,项目名称:study,代码行数:44,
示例24: mainint main(int argc, char *argv[]){ virConnectPtr conn; int i; int numDomains; int *activeDomains; char **inactiveDomains; conn = virConnectOpen("qemu:///system"); if (conn == NULL) { fprintf(stderr, "Failed to open connection to qemu:///system/n"); return -1; } numDomains = virConnectNumOfDomains(conn); if (numDomains == -1) { fprintf(stderr, "Failed to get domian num of qemu/n"); return -1; } activeDomains = malloc(sizeof(int) * numDomains); numDomains = virConnectListDomains(conn, activeDomains, numDomains); printf("%d Active domain list:/n", numDomains); for (i = 0 ; i < numDomains ; i++) { printf("ID = %d, Name = %s/n", activeDomains[i], virDomainGetName(virDomainLookupByID(conn, activeDomains[i]))); } free(activeDomains); printf("----------------------------/n"); numDomains = virConnectNumOfDefinedDomains(conn); if (numDomains == -1) { fprintf(stderr, "Failed to get defined domian num of qemu/n"); return -1; } inactiveDomains = malloc(sizeof(char *) * numDomains); numDomains = virConnectListDefinedDomains(conn, inactiveDomains, numDomains); printf("%d Inactive domain list:/n", numDomains); for (i = 0 ; i < numDomains ; i++) { /*All inactive domains's id should be 0*/ printf("ID = %d, Name = %s/n", virDomainGetID(virDomainLookupByName(conn, inactiveDomains[i])), inactiveDomains[i]); free(inactiveDomains[i]); } free(inactiveDomains); virConnectClose(conn); return 0;}
开发者ID:exuuwen,项目名称:study,代码行数:55,
示例25: mainintmain(int argc, char *argv[]){ int ret = 0; virConnectPtr conn; char *uri; printf("Attempting to connect to hypervisor/n"); uri = (argc > 0 ? argv[1] : NULL); /* virConnectOpenAuth is called here with all default parameters, * except, possibly, the URI of the hypervisor. */ conn = virConnectOpenAuth(uri, virConnectAuthPtrDefault, 0); if (!conn) { ret = 1; printf("No connection to hypervisor/n"); showError(conn); goto out; } uri = virConnectGetURI(conn); if (!uri) { ret = 1; printf("Failed to get URI for hypervisor connection/n"); showError(conn); goto disconnect; } printf("Connected to hypervisor at /"%s/"/n", uri); free(uri); if (0 != showHypervisorInfo(conn)) { ret = 1; goto disconnect; } if (0 != showDomains(conn)) { ret = 1; goto disconnect; }disconnect: if (0 != virConnectClose(conn)) { printf("Failed to disconnect from hypervisor/n"); showError(conn); ret = 1; } else { printf("Disconnected from hypervisor/n"); }out: return ret;}
开发者ID:avdv,项目名称:libvirt,代码行数:55,
示例26: mymainstatic intmymain(void){ struct metadataTest test; int ret = EXIT_SUCCESS; if (!(test.conn = virConnectOpen("test:///default"))) return EXIT_FAILURE; if (!(test.dom = virDomainLookupByName(test.conn, "test"))) { virConnectClose(test.conn); return EXIT_FAILURE; } virtTestQuiesceLibvirtErrors(false); if (virtTestRun("Assign metadata ", testAssignMetadata, &test) < 0) ret = EXIT_FAILURE; if (virtTestRun("Rewrite Metadata ", testRewriteMetadata, &test) < 0) ret = EXIT_FAILURE; if (virtTestRun("Erase metadata ", testEraseMetadata, &test) < 0) ret = EXIT_FAILURE; TEST_TITLE("1", "qwert"); TEST_TITLE("2", NULL); TEST_TITLE("3", "blah"); TEST_TITLE_FAIL("4", "qwe/nrt"); TEST_TITLE("5", ""); TEST_TITLE_FAIL("6", "qwert/n"); TEST_TITLE_FAIL("7", "/n"); TEST_DESCR("1", "qwert/nqwert"); TEST_DESCR("2", NULL); TEST_DESCR("3", "qwert"); TEST_DESCR("4", "/n"); TEST_DESCR("5", ""); virDomainFree(test.dom); virConnectClose(test.conn); return ret;}
开发者ID:6WIND,项目名称:libvirt,代码行数:42,
示例27: virshReconnect/* * virshReconnect: * * Reconnect after a disconnect from libvirtd * */static intvirshReconnect(vshControl *ctl, const char *name, bool readonly, bool force){ bool connected = false; virshControlPtr priv = ctl->privData; /* If the flag was not specified, then it depends on whether we are * reconnecting to the current URI (in which case we want to keep the * readonly flag as it was) or to a specified URI in which case it * should stay false */ if (!readonly && !name) readonly = priv->readonly; if (priv->conn) { int ret; connected = true; virConnectUnregisterCloseCallback(priv->conn, virshCatchDisconnect); ret = virConnectClose(priv->conn); if (ret < 0) vshError(ctl, "%s", _("Failed to disconnect from the hypervisor")); else if (ret > 0) vshError(ctl, "%s", _("One or more references were leaked after " "disconnect from the hypervisor")); } priv->conn = virshConnect(ctl, name ? name : ctl->connname, readonly); if (!priv->conn) { if (disconnected) vshError(ctl, "%s", _("Failed to reconnect to the hypervisor")); else vshError(ctl, "%s", _("failed to connect to the hypervisor")); return -1; } else { if (name) { VIR_FREE(ctl->connname); ctl->connname = vshStrdup(ctl, name); } priv->readonly = readonly; if (virConnectRegisterCloseCallback(priv->conn, virshCatchDisconnect, ctl, NULL) < 0) vshError(ctl, "%s", _("Unable to register disconnect callback")); if (connected && !force) vshError(ctl, "%s", _("Reconnected to the hypervisor")); } disconnected = 0; priv->useGetInfo = false; priv->useSnapshotOld = false; priv->blockJobNoBytes = false; return 0;}
开发者ID:libvirt,项目名称:libvirt,代码行数:60,
示例28: libvirt_closevoid libvirt_close(void){ if (g_conn == NULL) return; virConnectClose(g_conn); __this_lock(); g_conn = NULL; __this_unlock(); return;}
开发者ID:woerwin,项目名称:LuoYunCloud,代码行数:11,
示例29: mainint main(int argc, char **argv){ if(argc < 4) { exit(1); //error } user_id=atoi(argv[1]); clust_id=atoi(argv[2]); node_id=atoi(argv[3]); clusterCfgRead(); //virSetErrorFunc(NULL, customGlobalErrorFunc); virConnectPtr conn; if (virInitialize() < 0) { fprintf(stderr, "Failed to initialize libvirt"); return 12; } //virEventRegisterDefaultImpl(); conn = virConnectOpen("qemu:///system"); //xen+unix:/// if (!conn) { printf("error opening/n"); return 13; } /* coming here we have to restore the snapshot of the vm */ // Build the path to restore the saved snapshot snap$.img [$=node_id] char path[512]; memset(path,0,512); sprintf(path,"%s/%d/%d/snap%d.img",clusterHomeDir,user_id,clust_id,node_id); if( virDomainRestore(conn,path)!=0) { exit(21); } /*---------------------------------------------------------- */ if (conn && virConnectClose(conn) < 0){ printf("error closing/n"); return 16; } return 0;}
开发者ID:shrikantnjagtap,项目名称:Implementation-of-cloud-environment,代码行数:53,
示例30: mainint main(int argc, char *argv[]){ virConnectPtr conn; virNetworkPtr net; if(argc != 2) { printf("usage: ./start_network domain_network/n"); return -1; } conn = virConnectOpen("qemu:///system"); if (conn == NULL) { fprintf(stderr, "Failed to open connection to qemu:///system/n"); return -1; } net = virNetworkLookupByName(conn, argv[1]); if (!net) { fprintf(stderr, "Network is not found/n"); virConnectClose(conn); return -1; } if (virNetworkCreate(net) < 0) { virNetworkFree(net); virConnectClose(conn); fprintf(stderr, "Cannot start network/n"); return -1; } fprintf(stderr, "Network %s has started/n", argv[1]); virNetworkFree(net); virConnectClose(conn); return 0;}
开发者ID:exuuwen,项目名称:study,代码行数:40,
注:本文中的virConnectClose函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ virDomainDefFormat函数代码示例 C++ virConfGetValue函数代码示例 |