您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ virDomainDefFree函数代码示例

51自学网 2021-06-03 09:41:53
  C++
这篇教程C++ virDomainDefFree函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中virDomainDefFree函数的典型用法代码示例。如果您正苦于以下问题:C++ virDomainDefFree函数的具体用法?C++ virDomainDefFree怎么用?C++ virDomainDefFree使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了virDomainDefFree函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: xenInotifyXendDomainsDirLookup

static intxenInotifyXendDomainsDirLookup(virConnectPtr conn,                               const char *filename,                               char **name,                               unsigned char *uuid){    size_t i;    virDomainDefPtr def;    const char *uuid_str;    unsigned char rawuuid[VIR_UUID_BUFLEN];    xenUnifiedPrivatePtr priv = conn->privateData;    /* xend is managing domains. we will get    * a filename in the manner:    * /var/lib/xend/domains/<uuid>/    */    uuid_str = filename + strlen(XEND_DOMAINS_DIR) + 1;    if (virUUIDParse(uuid_str, rawuuid) < 0) {        virReportError(VIR_ERR_INTERNAL_ERROR,                       _("parsing uuid %s"), uuid_str);        return -1;    }    /* call directly into xend here, as driver may not yet       be set during open while we are building our       initial list of domains */    VIR_DEBUG("Looking for dom with uuid: %s", uuid_str);    if (!(def = xenDaemonLookupByUUID(conn, rawuuid))) {        /* If we are here, the domain has gone away.           search for, and create a domain from the stored           list info */        for (i = 0; i < priv->configInfoList->count; i++) {            if (!memcmp(rawuuid, priv->configInfoList->doms[i]->uuid, VIR_UUID_BUFLEN)) {                if (VIR_STRDUP(*name, priv->configInfoList->doms[i]->name) < 0)                    return -1;                memcpy(uuid, priv->configInfoList->doms[i]->uuid, VIR_UUID_BUFLEN);                VIR_DEBUG("Found dom on list");                return 0;            }        }        virReportError(VIR_ERR_INTERNAL_ERROR,                       "%s", _("finding dom on config list"));        return -1;    }    if (VIR_STRDUP(*name, def->name) < 0) {        virDomainDefFree(def);        return -1;    }    memcpy(uuid, def->uuid, VIR_UUID_BUFLEN);    virDomainDefFree(def);    /* succeeded too find domain by uuid */    return 0;}
开发者ID:miurahr,项目名称:libvirt,代码行数:55,


示例2: bhyveParseCommandLineString

virDomainDefPtrbhyveParseCommandLineString(const char* nativeConfig,                            unsigned caps,                            virDomainXMLOptionPtr xmlopt){    virDomainDefPtr def = NULL;    int bhyve_argc = 0;    char **bhyve_argv = NULL;    int loader_argc = 0;    char **loader_argv = NULL;    if (!(def = virDomainDefNew()))        goto cleanup;    /* Initialize defaults. */    def->virtType = VIR_DOMAIN_VIRT_BHYVE;    if (virUUIDGenerate(def->uuid) < 0) {        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",                       _("Failed to generate uuid"));        virDomainDefFree(def);        def = NULL;        goto cleanup;    }    def->id = -1;    def->clock.offset = VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME;    if (bhyveCommandLineToArgv(nativeConfig,                               &loader_argc, &loader_argv,                               &bhyve_argc, &bhyve_argv)) {        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",                       _("Failed to convert the command string to argv-lists"));        goto error;    }    if (bhyveParseBhyveCommandLine(def, xmlopt, caps, bhyve_argc, bhyve_argv))        goto error;    if (loader_argv && STREQ(loader_argv[0], "/usr/sbin/bhyveload")) {        if (bhyveParseBhyveLoadCommandLine(def, loader_argc, loader_argv))            goto error;    } else if (loader_argv) {        if (bhyveParseCustomLoaderCommandLine(def, loader_argc, loader_argv))            goto error;    } cleanup:    virStringFreeList(loader_argv);    virStringFreeList(bhyve_argv);    return def; error:    virDomainDefFree(def);    def = NULL;    goto cleanup;}
开发者ID:eskultety,项目名称:libvirt,代码行数:53,


示例3: lightosDomainDefineXML

static virDomainPtrlightosDomainDefineXML(virConnectPtr conn,const char * xml){    lightosConnPtr privconn = conn->privateData;    virDomainPtr dom = NULL;    virDomainDefPtr def = NULL;    virDomainDefPtr oldDef = NULL;    virDomainObjPtr vm = NULL;    if((def = virDomainDefParseString(xml,privconn->caps,privconn->xmlopt,                                    1<<VIR_DOMAIN_VIRT_LIGHTOS,                                     VIR_DOMAIN_XML_INACTIVE)) == NULL)    {        goto cleanup;    }    if(!(vm = virDomainObjListAdd(privconn->domains,def,privconn->xmlopt,                                0,&olddef)))        goto cleanup;    def = NULL;    vm->persistent = 1;    dom = virGetDomain(conn,vm->def->name,vm->def->uuid);    if(dom)        dom->id = vm->def->id;    if(virDomainSaveConfig(LIGHTOS_CONFIG_DIR,vm->def)<0)        goto cleanup;cleanup:    virDomainDefFree(def);    virObjectUnlock(vm);    return dom;}
开发者ID:lzjqsdd,项目名称:lightos,代码行数:35,


示例4: xenParseXL

virDomainDefPtrxenParseXL(virConfPtr conf, virCapsPtr caps, int xendConfigVersion){    virDomainDefPtr def = NULL;    if (!(def = virDomainDefNew()))        return NULL;    def->virtType = VIR_DOMAIN_VIRT_XEN;    def->id = -1;    if (xenParseConfigCommon(conf, def, caps, xendConfigVersion) < 0)        goto cleanup;    if (xenParseXLOS(conf, def, caps) < 0)        goto cleanup;    if (xenParseXLDisk(conf, def) < 0)        goto cleanup;    if (xenParseXLSpice(conf, def) < 0)        goto cleanup;    if (xenParseXLInputDevs(conf, def) < 0)        goto cleanup;    return def; cleanup:    virDomainDefFree(def);    return NULL;}
开发者ID:AGSaidi,项目名称:hacked-libvirt,代码行数:32,


示例5: libxlDomainMigrationPrepareDef

virDomainDefPtrlibxlDomainMigrationPrepareDef(libxlDriverPrivatePtr driver,                               const char *dom_xml,                               const char *dname){    libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);    virDomainDefPtr def;    char *name = NULL;    if (!dom_xml) {        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",                       _("no domain XML passed"));        return NULL;    }    if (!(def = virDomainDefParseString(dom_xml, cfg->caps, driver->xmlopt,                                        1 << VIR_DOMAIN_VIRT_XEN,                                        VIR_DOMAIN_XML_INACTIVE)))        goto cleanup;    if (dname) {        name = def->name;        if (VIR_STRDUP(def->name, dname) < 0) {            virDomainDefFree(def);            def = NULL;        }    } cleanup:    virObjectUnref(cfg);    VIR_FREE(name);    return def;}
开发者ID:aurex-linux,项目名称:libvirt,代码行数:33,


示例6: testCompareXMLToXMLFiles

static inttestCompareXMLToXMLFiles(const char *inxml, const char *outxml, bool live){    char *inXmlData = NULL;    char *outXmlData = NULL;    char *actual = NULL;    int ret = -1;    virDomainDefPtr def = NULL;    if (virtTestLoadFile(inxml, &inXmlData) < 0)        goto fail;    if (virtTestLoadFile(outxml, &outXmlData) < 0)        goto fail;    if (!(def = virDomainDefParseString(inXmlData, driver.caps, driver.xmlopt,                                        QEMU_EXPECTED_VIRT_TYPES,                                        live ? 0 : VIR_DOMAIN_XML_INACTIVE)))        goto fail;    if (!(actual = virDomainDefFormat(def, VIR_DOMAIN_XML_SECURE)))        goto fail;    if (STRNEQ(outXmlData, actual)) {        virtTestDifference(stderr, outXmlData, actual);        goto fail;    }    ret = 0; fail:    VIR_FREE(inXmlData);    VIR_FREE(outXmlData);    VIR_FREE(actual);    virDomainDefFree(def);    return ret;}
开发者ID:hzguanqiang,项目名称:libvirt,代码行数:35,


示例7: testCompareXMLToXMLFiles

static int testCompareXMLToXMLFiles(const char *xml) {    char xmlData[MAX_FILE];    char *xmlPtr = &(xmlData[0]);    char *actual = NULL;    int ret = -1;    virDomainDefPtr vmdef = NULL;    if (virtTestLoadFile(xml, &xmlPtr, MAX_FILE) < 0)        goto fail;    if (!(vmdef = virDomainDefParseString(driver.caps, xmlData,                                          VIR_DOMAIN_XML_INACTIVE)))        goto fail;    if (!(actual = virDomainDefFormat(vmdef, 0)))        goto fail;    if (STRNEQ(xmlData, actual)) {        virtTestDifference(stderr, xmlData, actual);        goto fail;    }    ret = 0; fail:    free(actual);    virDomainDefFree(vmdef);    return ret;}
开发者ID:hjwsm1989,项目名称:libvirt,代码行数:29,


示例8: testBuildDomainDef

static virDomainDefPtrtestBuildDomainDef(bool dynamic,                   const char *label,                   const char *baselabel){    virDomainDefPtr def;    virSecurityLabelDefPtr secdef;    if (VIR_ALLOC(def) < 0)        goto error;    if (VIR_ALLOC_N(def->seclabels, 1) < 0)        goto error;    if (VIR_ALLOC(secdef) < 0)        goto error;    def->virtType = VIR_DOMAIN_VIRT_KVM;    def->seclabels[0] = secdef;    def->seclabels[0]->type = dynamic ? VIR_DOMAIN_SECLABEL_DYNAMIC : VIR_DOMAIN_SECLABEL_STATIC;    if (label &&        VIR_STRDUP(def->seclabels[0]->label, label) < 0)        goto error;    if (baselabel &&        VIR_STRDUP(def->seclabels[0]->baselabel, baselabel) < 0)        goto error;    return def;error:    virDomainDefFree(def);    return NULL;}
开发者ID:hzguanqiang,项目名称:libvirt,代码行数:35,


示例9: vmwareDomainXMLFromNative

static char *vmwareDomainXMLFromNative(virConnectPtr conn, const char *nativeFormat,                          const char *nativeConfig,                          unsigned int flags){    struct vmware_driver *driver = conn->privateData;    virVMXContext ctx;    virDomainDefPtr def = NULL;    char *xml = NULL;    virCheckFlags(0, NULL);    if (STRNEQ(nativeFormat, "vmware-vmx")) {        virReportError(VIR_ERR_INVALID_ARG,                       _("Unsupported config format '%s'"), nativeFormat);        return NULL;    }    ctx.parseFileName = vmwareCopyVMXFileName;    def = virVMXParseConfig(&ctx, driver->caps, nativeConfig);    if (def != NULL)        xml = virDomainDefFormat(def, VIR_DOMAIN_XML_INACTIVE);    virDomainDefFree(def);    return xml;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:29,


示例10: testCompareFiles

static inttestCompareFiles(const char *vmx, const char *xml){    int ret = -1;    char *vmxData = NULL;    char *formatted = NULL;    virDomainDefPtr def = NULL;    if (virtTestLoadFile(vmx, &vmxData) < 0)        goto cleanup;    if (!(def = virVMXParseConfig(&ctx, xmlopt, vmxData)))        goto cleanup;    if (!virDomainDefCheckABIStability(def, def)) {        fprintf(stderr, "ABI stability check failed on %s", vmx);        goto cleanup;    }    if (!(formatted = virDomainDefFormat(def, VIR_DOMAIN_DEF_FORMAT_SECURE)))        goto cleanup;    if (virtTestCompareToFile(formatted, xml) < 0)        goto cleanup;    ret = 0; cleanup:    VIR_FREE(vmxData);    VIR_FREE(formatted);    virDomainDefFree(def);    return ret;}
开发者ID:carriercomm,项目名称:libvirt,代码行数:34,


示例11: testCompareXMLToXMLFiles

static inttestCompareXMLToXMLFiles(const char *inxml, const char *outxml){    char *inXmlData = NULL;    char *outXmlData = NULL;    char *actual = NULL;    int ret = -1;    virDomainDefPtr def = NULL;    if (virtTestLoadFile(inxml, &inXmlData) < 0)        goto fail;    if (virtTestLoadFile(outxml, &outXmlData) < 0)        goto fail;    if (!(def = virDomainDefParseString(driver.caps, inXmlData,                                          VIR_DOMAIN_XML_INACTIVE)))        goto fail;    if (!(actual = virDomainDefFormat(def, VIR_DOMAIN_XML_SECURE)))        goto fail;    if (STRNEQ(outXmlData, actual)) {        virtTestDifference(stderr, outXmlData, actual);        goto fail;    }    ret = 0; fail:    free(inXmlData);    free(outXmlData);    free(actual);    virDomainDefFree(def);    return ret;}
开发者ID:hw-claudio,项目名称:libvirt,代码行数:35,


示例12: testCompareFiles

static inttestCompareFiles(const char *xml, const char *sexpr){    char *gotsexpr = NULL;    int ret = -1;    virDomainDefPtr def = NULL;    if (!(def = virDomainDefParseFile(xml, caps, xmlopt, NULL,                                      VIR_DOMAIN_DEF_PARSE_INACTIVE)))        goto fail;    if (!virDomainDefCheckABIStability(def, def, xmlopt)) {        fprintf(stderr, "ABI stability check failed on %s", xml);        goto fail;    }    if (!(gotsexpr = xenFormatSxpr(NULL, def)))        goto fail;    if (virTestCompareToFile(gotsexpr, sexpr) < 0)        goto fail;    ret = 0; fail:    VIR_FREE(gotsexpr);    virDomainDefFree(def);    return ret;}
开发者ID:Antique,项目名称:libvirt,代码行数:30,


示例13: xenParseXM

/* * Convert an XM config record into a virDomainDef object. */virDomainDefPtrxenParseXM(virConfPtr conf,           virCapsPtr caps,           virDomainXMLOptionPtr xmlopt){    virDomainDefPtr def = NULL;    if (!(def = virDomainDefNew()))        return NULL;    def->virtType = VIR_DOMAIN_VIRT_XEN;    def->id = -1;    if (xenParseConfigCommon(conf, def, caps) < 0)        goto cleanup;    if (xenParseXMOS(conf, def) < 0)         goto cleanup;    if (xenParseXMDisk(conf, def) < 0)         goto cleanup;    if (xenParseXMInputDevs(conf, def) < 0)         goto cleanup;    if (virDomainDefPostParse(def, caps, VIR_DOMAIN_DEF_PARSE_ABI_UPDATE,                              xmlopt) < 0)        goto cleanup;    return def; cleanup:    virDomainDefFree(def);    return NULL;}
开发者ID:eight-pack-abdominals,项目名称:libvirt,代码行数:38,


示例14: bhyveConnectDomainXMLToNative

static char *bhyveConnectDomainXMLToNative(virConnectPtr conn,                              const char *format,                              const char *xmlData,                              unsigned int flags){    virBuffer buf = VIR_BUFFER_INITIALIZER;    bhyveConnPtr privconn = conn->privateData;    virDomainDefPtr def = NULL;    virCommandPtr cmd = NULL, loadcmd = NULL;    virCapsPtr caps = NULL;    char *ret = NULL;    virCheckFlags(0, NULL);    if (virConnectDomainXMLToNativeEnsureACL(conn) < 0)        goto cleanup;    if (STRNEQ(format, BHYVE_CONFIG_FORMAT_ARGV)) {        virReportError(VIR_ERR_INVALID_ARG,                       _("Unsupported config type %s"), format);        goto cleanup;    }    if (!(caps = bhyveDriverGetCapabilities(privconn)))        goto cleanup;    if (!(def = virDomainDefParseString(xmlData, caps, privconn->xmlopt,                                  1 << VIR_DOMAIN_VIRT_BHYVE,                                  VIR_DOMAIN_XML_INACTIVE)))        goto cleanup;    if (bhyveDomainAssignAddresses(def, NULL) < 0)        goto cleanup;    if (!(loadcmd = virBhyveProcessBuildLoadCmd(privconn, def)))        goto cleanup;    if (!(cmd = virBhyveProcessBuildBhyveCmd(privconn, def, true)))        goto cleanup;    virBufferAdd(&buf, virCommandToString(loadcmd), -1);    virBufferAddChar(&buf, '/n');    virBufferAdd(&buf, virCommandToString(cmd), -1);    if (virBufferError(&buf)) {        virReportOOMError();        goto cleanup;    }    ret = virBufferContentAndReset(&buf); cleanup:    virCommandFree(loadcmd);    virCommandFree(cmd);    virDomainDefFree(def);    virObjectUnref(caps);    return ret;}
开发者ID:hitchiker42,项目名称:libvirt,代码行数:59,


示例15: testCompareParseXML

static inttestCompareParseXML(const char *xmcfg, const char *xml, int xendConfigVersion){    char *xmlData = NULL;    char *xmcfgData = NULL;    char *gotxmcfgData = NULL;    virConfPtr conf = NULL;    int ret = -1;    virConnectPtr conn = NULL;    int wrote = 4096;    struct _xenUnifiedPrivate priv;    virDomainDefPtr def = NULL;    if (VIR_ALLOC_N(gotxmcfgData, wrote) < 0)        goto fail;    conn = virGetConnect();    if (!conn) goto fail;    if (virtTestLoadFile(xml, &xmlData) < 0)        goto fail;    if (virtTestLoadFile(xmcfg, &xmcfgData) < 0)        goto fail;    /* Many puppies died to bring you this code. */    priv.xendConfigVersion = xendConfigVersion;    priv.caps = caps;    conn->privateData = &priv;    if (!(def = virDomainDefParseString(caps, xmlData, 1 << VIR_DOMAIN_VIRT_XEN,                                        VIR_DOMAIN_XML_INACTIVE)))        goto fail;    if (!(conf = xenFormatXM(conn, def, xendConfigVersion)))        goto fail;    if (virConfWriteMem(gotxmcfgData, &wrote, conf) < 0)        goto fail;    gotxmcfgData[wrote] = '/0';    if (STRNEQ(xmcfgData, gotxmcfgData)) {        virtTestDifference(stderr, xmcfgData, gotxmcfgData);        goto fail;    }    ret = 0; fail:    free(xmlData);    free(xmcfgData);    free(gotxmcfgData);    if (conf)        virConfFree(conf);    virDomainDefFree(def);    virUnrefConnect(conn);    return ret;}
开发者ID:ansisatteka,项目名称:libvirt-ovs,代码行数:59,


示例16: testCompareFiles

static inttestCompareFiles(const char *xml, const char *sexpr){  char *sexprData = NULL;  char *gotxml = NULL;  int id;  char * tty;  int vncport;  int ret = -1;  virDomainDefPtr def = NULL;  virConnectPtr conn;  struct _xenUnifiedPrivate priv;  conn = virGetConnect();  if (!conn) goto fail;  if (virTestLoadFile(sexpr, &sexprData) < 0)      goto fail;  memset(&priv, 0, sizeof(priv));  /* Many puppies died to bring you this code. */  priv.caps = caps;  conn->privateData = &priv;  if (virMutexInit(&priv.lock) < 0)      goto fail;  if (xenGetDomIdFromSxprString(sexprData, &id) < 0)      goto fail;  xenUnifiedLock(&priv);  tty = xenStoreDomainGetConsolePath(conn, id);  vncport = xenStoreDomainGetVNCPort(conn, id);  xenUnifiedUnlock(&priv);  if (!(def = xenParseSxprString(sexprData,                                 tty, vncport, caps, xmlopt)))      goto fail;  if (!virDomainDefCheckABIStability(def, def)) {      fprintf(stderr, "ABI stability check failed on %s", xml);      goto fail;  }  if (!(gotxml = virDomainDefFormat(def, caps, 0)))      goto fail;  if (virTestCompareToFile(gotxml, xml) < 0)      goto fail;  ret = 0; fail:  VIR_FREE(sexprData);  VIR_FREE(gotxml);  virDomainDefFree(def);  virObjectUnref(conn);  return ret;}
开发者ID:Archer-sys,项目名称:libvirt,代码行数:59,


示例17: testCompareXMLToArgvFiles

static int testCompareXMLToArgvFiles(const char *xml,                                     const char *cmdline,                                     const char *ldcmdline,                                     const char *dmcmdline){    char *actualargv = NULL, *actualld = NULL, *actualdm = NULL;    virDomainDefPtr vmdef = NULL;    virCommandPtr cmd = NULL, ldcmd = NULL;    virConnectPtr conn;    int ret = -1;    if (!(conn = virGetConnect()))        goto out;    if (!(vmdef = virDomainDefParseFile(xml, driver.caps, driver.xmlopt,                                        VIR_DOMAIN_DEF_PARSE_INACTIVE)))        goto out;    conn->privateData = &driver;    if (!(cmd = virBhyveProcessBuildBhyveCmd(conn, vmdef, false)))        goto out;    if (!(actualargv = virCommandToString(cmd)))        goto out;    if (!(ldcmd = virBhyveProcessBuildLoadCmd(conn, vmdef, "<device.map>",                                              &actualdm)))        goto out;    if (actualdm != NULL)        virTrimSpaces(actualdm, NULL);    if (!(actualld = virCommandToString(ldcmd)))        goto out;    if (virtTestCompareToFile(actualargv, cmdline) < 0)        goto out;    if (virtTestCompareToFile(actualld, ldcmdline) < 0)        goto out;    if (virFileExists(dmcmdline) || actualdm) {        if (virtTestCompareToFile(actualdm, dmcmdline) < 0)            goto out;    }    ret = 0; out:    VIR_FREE(actualargv);    VIR_FREE(actualld);    VIR_FREE(actualdm);    virCommandFree(cmd);    virCommandFree(ldcmd);    virDomainDefFree(vmdef);    return ret;}
开发者ID:carriercomm,项目名称:libvirt,代码行数:58,


示例18: testCompareXMLToArgvFiles

static int testCompareXMLToArgvFiles(const char *xml,                                     const char *cmdfile,                                     bool expect_warning) {    char *expectxml = NULL;    char *actualxml = NULL;    char *cmd = NULL;    int ret = -1;    virDomainDefPtr vmdef = NULL;    if (virtTestLoadFile(cmdfile, &cmd) < 0)        goto fail;    if (virtTestLoadFile(xml, &expectxml) < 0)        goto fail;    if (!(vmdef = qemuParseCommandLineString(driver.caps, driver.xmlopt,                                             cmd, NULL, NULL, NULL)))        goto fail;    if (!virtTestOOMActive()) {        char *log;        if ((log = virtTestLogContentAndReset()) == NULL)            goto fail;        if ((*log != '/0') != expect_warning) {            VIR_FREE(log);            goto fail;        }        VIR_FREE(log);    }    if (!virDomainDefCheckABIStability(vmdef, vmdef)) {        fprintf(stderr, "ABI stability check failed on %s", xml);        goto fail;    }    if (!(actualxml = virDomainDefFormat(vmdef, 0)))        goto fail;    if (blankProblemElements(expectxml) < 0 ||        blankProblemElements(actualxml) < 0)        goto fail;    if (STRNEQ(expectxml, actualxml)) {        virtTestDifference(stderr, expectxml, actualxml);        goto fail;    }    ret = 0; fail:    VIR_FREE(expectxml);    VIR_FREE(actualxml);    VIR_FREE(cmd);    virDomainDefFree(vmdef);    return ret;}
开发者ID:TelekomCloud,项目名称:libvirt,代码行数:55,


示例19: testCompareFormatXML

static inttestCompareFormatXML(const char *xmcfg, const char *xml, int xendConfigVersion){    char *xmlData = NULL;    char *xmcfgData = NULL;    char *gotxml = NULL;    virConfPtr conf = NULL;    int ret = -1;    virConnectPtr conn;    struct _xenUnifiedPrivate priv;    virDomainDefPtr def = NULL;    conn = virGetConnect();    if (!conn) goto fail;    if (virtTestLoadFile(xml, &xmlData) < 0)        goto fail;    if (virtTestLoadFile(xmcfg, &xmcfgData) < 0)        goto fail;    /* Many puppies died to bring you this code. */    priv.xendConfigVersion = xendConfigVersion;    priv.caps = caps;    conn->privateData = &priv;    if (!(conf = virConfReadMem(xmcfgData, strlen(xmcfgData), 0)))        goto fail;    if (!(def = xenParseXM(conf, priv.xendConfigVersion, priv.caps)))        goto fail;    if (!(gotxml = virDomainDefFormat(def, VIR_DOMAIN_XML_SECURE)))        goto fail;    if (STRNEQ(xmlData, gotxml)) {        virtTestDifference(stderr, xmlData, gotxml);        goto fail;    }    ret = 0; fail:    if (conf)        virConfFree(conf);    VIR_FREE(xmlData);    VIR_FREE(xmcfgData);    VIR_FREE(gotxml);    virDomainDefFree(def);    virObjectUnref(conn);    return ret;}
开发者ID:miurahr,项目名称:libvirt,代码行数:53,


示例20: testSELinuxGenLabel

static inttestSELinuxGenLabel(const void *opaque){    const struct testSELinuxGenLabelData *data = opaque;    int ret = -1;    virDomainDefPtr def;    context_t con = NULL;    context_t imgcon = NULL;    if (setcon_raw((security_context_t)data->pidcon) < 0) {        perror("Cannot set process security context");        return -1;    }    if (!(def = testBuildDomainDef(data->dynamic,                                   data->label,                                   data->baselabel)))        goto cleanup;    if (virSecurityManagerGenLabel(data->mgr, def) < 0) {        virErrorPtr err = virGetLastError();        fprintf(stderr, "Cannot generate label: %s/n", err->message);        goto cleanup;    }    VIR_DEBUG("label=%s imagelabel=%s",              def->seclabels[0]->label, def->seclabels[0]->imagelabel);    if (!(con = context_new(def->seclabels[0]->label)))        goto cleanup;    if (!(imgcon = context_new(def->seclabels[0]->imagelabel)))        goto cleanup;    if (!testSELinuxCheckCon(con,                             data->user, data->role, data->type,                             data->sensMin, data->sensMax,                             data->catMin, data->catMax))        goto cleanup;    if (!testSELinuxCheckCon(imgcon,                             data->user, data->imagerole, data->imagetype,                             data->sensMin, data->sensMax,                             data->catMin, data->catMax))        goto cleanup;    ret = 0;cleanup:    context_free(con);    context_free(imgcon);    virDomainDefFree(def);    return ret;}
开发者ID:hzguanqiang,项目名称:libvirt,代码行数:53,


示例21: testCompareParseXML

static inttestCompareParseXML(const char *xmcfg, const char *xml){    char *gotxmcfgData = NULL;    virConfPtr conf = NULL;    int ret = -1;    virConnectPtr conn = NULL;    int wrote = 4096;    struct _xenUnifiedPrivate priv;    virDomainDefPtr def = NULL;    if (VIR_ALLOC_N(gotxmcfgData, wrote) < 0)        goto fail;    conn = virGetConnect();    if (!conn) goto fail;    /* Many puppies died to bring you this code. */    priv.caps = caps;    conn->privateData = &priv;    if (!(def = virDomainDefParseFile(xml, caps, xmlopt, NULL,                                      VIR_DOMAIN_DEF_PARSE_INACTIVE)))        goto fail;    if (!virDomainDefCheckABIStability(def, def, xmlopt)) {        fprintf(stderr, "ABI stability check failed on %s", xml);        goto fail;    }    if (!(conf = xenFormatXM(conn, def)))        goto fail;    if (virConfWriteMem(gotxmcfgData, &wrote, conf) < 0)        goto fail;    gotxmcfgData[wrote] = '/0';    if (virTestCompareToFile(gotxmcfgData, xmcfg) < 0)        goto fail;    ret = 0; fail:    VIR_FREE(gotxmcfgData);    if (conf)        virConfFree(conf);    virDomainDefFree(def);    virObjectUnref(conn);    return ret;}
开发者ID:ehabkost,项目名称:libvirt,代码行数:51,


示例22: testCompareFiles

static inttestCompareFiles(const char *xml, const char *vmx, int virtualHW_version){    int result = -1;    char *xmlData = NULL;    char *vmxData = NULL;    char *formatted = NULL;    virDomainDefPtr def = NULL;    if (virtTestLoadFile(xml, &xmlData) < 0) {        goto failure;    }    if (virtTestLoadFile(vmx, &vmxData) < 0) {        goto failure;    }    def = virDomainDefParseString(xmlData, caps, xmlopt,                                  1 << VIR_DOMAIN_VIRT_VMWARE,                                  VIR_DOMAIN_XML_INACTIVE);    if (def == NULL) {        goto failure;    }    if (!virDomainDefCheckABIStability(def, def)) {        fprintf(stderr, "ABI stability check failed on %s", xml);        goto failure;    }    formatted = virVMXFormatConfig(&ctx, xmlopt, def, virtualHW_version);    if (formatted == NULL) {        goto failure;    }    if (STRNEQ(vmxData, formatted)) {        virtTestDifference(stderr, vmxData, formatted);        goto failure;    }    result = 0; failure:    VIR_FREE(xmlData);    VIR_FREE(vmxData);    VIR_FREE(formatted);    virDomainDefFree(def);    return result;}
开发者ID:CLisa,项目名称:libvirt,代码行数:51,


示例23: testCompareXMLToArgvFiles

static int testCompareXMLToArgvFiles(const char *xml,                                     const char *cmdline){    char *expectargv = NULL;    int len;    char *actualargv = NULL;    virDomainDefPtr vmdef = NULL;    virDomainObj vm;    virCommandPtr cmd = NULL;    virConnectPtr conn;    int ret = -1;    if (!(conn = virGetConnect()))        goto out;    if (!(vmdef = virDomainDefParseFile(xml, driver.caps, driver.xmlopt,                                        1 << VIR_DOMAIN_VIRT_BHYVE,                                        VIR_DOMAIN_XML_INACTIVE)))        goto out;    vm.def = vmdef;    if (!(cmd = virBhyveProcessBuildBhyveCmd(conn, vmdef, false)))        goto out;    if (!(actualargv = virCommandToString(cmd)))        goto out;    len = virtTestLoadFile(cmdline, &expectargv);    if (len < 0)        goto out;    if (len && expectargv[len - 1] == '/n')        expectargv[len - 1] = '/0';    if (STRNEQ(expectargv, actualargv)) {        virtTestDifference(stderr, expectargv, actualargv);        goto out;    }    ret = 0; out:    VIR_FREE(expectargv);    VIR_FREE(actualargv);    virCommandFree(cmd);    virDomainDefFree(vmdef);    return ret;}
开发者ID:carriercomm,项目名称:libvirt-1,代码行数:49,


示例24: testCompareFiles

static inttestCompareFiles(const char *vmx, const char *xml){    int result = -1;    char *vmxData = NULL;    char *xmlData = NULL;    char *formatted = NULL;    virDomainDefPtr def = NULL;    virErrorPtr err = NULL;    if (virtTestLoadFile(vmx, &vmxData) < 0) {        goto failure;    }    if (virtTestLoadFile(xml, &xmlData) < 0) {        goto failure;    }    def = virVMXParseConfig(&ctx, xmlopt, vmxData);    if (def == NULL) {        err = virGetLastError();        fprintf(stderr, "ERROR: %s/n", err != NULL ? err->message : "<unknown>");        goto failure;    }    formatted = virDomainDefFormat(def, VIR_DOMAIN_XML_SECURE);    if (formatted == NULL) {        err = virGetLastError();        fprintf(stderr, "ERROR: %s/n", err != NULL ? err->message : "<unknown>");        goto failure;    }    if (STRNEQ(xmlData, formatted)) {        virtTestDifference(stderr, xmlData, formatted);        goto failure;    }    result = 0;  failure:    VIR_FREE(vmxData);    VIR_FREE(xmlData);    VIR_FREE(formatted);    virDomainDefFree(def);    return result;}
开发者ID:kawamuray,项目名称:libvirt,代码行数:49,


示例25: testCompareXMLToArgvFiles

static int testCompareXMLToArgvFiles(const char *xml,                                     const char *cmdfile,                                     bool expect_warning) {    char *expectxml = NULL;    char *actualxml = NULL;    char *cmd = NULL;    int ret = -1;    virDomainDefPtr vmdef = NULL;    char *log;    if (virtTestLoadFile(cmdfile, &cmd) < 0)        goto fail;    if (virtTestLoadFile(xml, &expectxml) < 0)        goto fail;    if (!(vmdef = qemuParseCommandLineString(driver.caps, cmd)))        goto fail;    if ((log = virtTestLogContentAndReset()) == NULL)        goto fail;    if ((*log != '/0') != expect_warning) {        free(log);        goto fail;    }    free(log);    if (!(actualxml = virDomainDefFormat(vmdef, 0)))        goto fail;    if (blankProblemElements(expectxml) < 0 ||        blankProblemElements(actualxml) < 0)        goto fail;    if (STRNEQ(expectxml, actualxml)) {        virtTestDifference(stderr, expectxml, actualxml);        goto fail;    }    ret = 0; fail:    free(expectxml);    free(actualxml);    free(cmd);    virDomainDefFree(vmdef);    return ret;}
开发者ID:hw-claudio,项目名称:libvirt,代码行数:47,


示例26: libxlDomainMigrationBegin

char *libxlDomainMigrationBegin(virConnectPtr conn,                          virDomainObjPtr vm,                          const char *xmlin){    libxlDriverPrivatePtr driver = conn->privateData;    libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);    virDomainDefPtr tmpdef = NULL;    virDomainDefPtr def;    char *xml = NULL;    if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0)        goto cleanup;    if (xmlin) {        if (!(tmpdef = virDomainDefParseString(xmlin, cfg->caps,                                               driver->xmlopt,                                               1 << VIR_DOMAIN_VIRT_XEN,                                               VIR_DOMAIN_XML_INACTIVE)))            goto endjob;        if (!libxlDomainDefCheckABIStability(driver, vm->def, tmpdef))            goto endjob;        def = tmpdef;    } else {        def = vm->def;    }    if (!libxlDomainMigrationIsAllowed(def))        goto endjob;    xml = virDomainDefFormat(def, VIR_DOMAIN_XML_SECURE); cleanup:    if (vm)        virObjectUnlock(vm);    virDomainDefFree(tmpdef);    virObjectUnref(cfg);    return xml; endjob:    if (!libxlDomainObjEndJob(driver, vm))        vm = NULL;    goto cleanup;}
开发者ID:aurex-linux,项目名称:libvirt,代码行数:47,


示例27: testCompareParseXML

/* * Parses domXML to virDomainDef object, which is then converted to xl.cfg(5) * config and compared with expected config. */static inttestCompareParseXML(const char *xlcfg, const char *xml){    char *gotxlcfgData = NULL;    virConfPtr conf = NULL;    virConnectPtr conn = NULL;    int wrote = 4096;    int ret = -1;    virDomainDefPtr def = NULL;    if (VIR_ALLOC_N(gotxlcfgData, wrote) < 0)        goto fail;    conn = virGetConnect();    if (!conn) goto fail;    if (!(def = virDomainDefParseFile(xml, caps, xmlopt,                                      VIR_DOMAIN_XML_INACTIVE)))        goto fail;    if (!virDomainDefCheckABIStability(def, def)) {        fprintf(stderr, "ABI stability check failed on %s", xml);        goto fail;    }    if (!(conf = xenFormatXL(def, conn)))        goto fail;    if (virConfWriteMem(gotxlcfgData, &wrote, conf) < 0)        goto fail;    gotxlcfgData[wrote] = '/0';    if (virtTestCompareToFile(gotxlcfgData, xlcfg) < 0)        goto fail;    ret = 0; fail:    VIR_FREE(gotxlcfgData);    if (conf)        virConfFree(conf);    virDomainDefFree(def);    virObjectUnref(conn);    return ret;}
开发者ID:FrankYu,项目名称:libvirt,代码行数:50,


示例28: testCompareFormatXML

static inttestCompareFormatXML(const char *xmcfg, const char *xml){    char *xmcfgData = NULL;    char *gotxml = NULL;    virConfPtr conf = NULL;    int ret = -1;    virConnectPtr conn;    struct _xenUnifiedPrivate priv;    virDomainDefPtr def = NULL;    conn = virGetConnect();    if (!conn) goto fail;    if (virTestLoadFile(xmcfg, &xmcfgData) < 0)        goto fail;    /* Many puppies died to bring you this code. */    priv.caps = caps;    conn->privateData = &priv;    if (!(conf = virConfReadString(xmcfgData, 0)))        goto fail;    if (!(def = xenParseXM(conf, caps, xmlopt)))        goto fail;    if (!(gotxml = virDomainDefFormat(def, caps, VIR_DOMAIN_DEF_FORMAT_SECURE)))        goto fail;    if (virTestCompareToFile(gotxml, xml) < 0)        goto fail;    ret = 0; fail:    if (conf)        virConfFree(conf);    VIR_FREE(xmcfgData);    VIR_FREE(gotxml);    virDomainDefFree(def);    virObjectUnref(conn);    return ret;}
开发者ID:ehabkost,项目名称:libvirt,代码行数:45,



注:本文中的virDomainDefFree函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ virDomainFindByUUID函数代码示例
C++ virDomainDefFormat函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。