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

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

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

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

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

示例1: vmwareDomainGetXMLDesc

static char *vmwareDomainGetXMLDesc(virDomainPtr dom, unsigned int flags){    struct vmware_driver *driver = dom->conn->privateData;    virDomainObjPtr vm;    char *ret = NULL;    /* Flags checked by virDomainDefFormat */    vmwareDriverLock(driver);    vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);    vmwareDriverUnlock(driver);    if (!vm) {        virReportError(VIR_ERR_NO_DOMAIN, "%s",                       _("no domain with matching uuid"));        goto cleanup;    }    ret = virDomainDefFormat(vm->def, flags);  cleanup:    if (vm)        virObjectUnlock(vm);    return ret;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:26,


示例2: testQemuHotplugCheckResult

static inttestQemuHotplugCheckResult(virDomainObjPtr vm,                           const char *expected,                           const char *expectedFile,                           bool fail){    char *actual;    int ret;    vm->def->id = -1;    actual = virDomainDefFormat(vm->def, driver.caps,                                VIR_DOMAIN_DEF_FORMAT_SECURE);    if (!actual)        return -1;    vm->def->id = QEMU_HOTPLUG_TEST_DOMAIN_ID;    if (STREQ(expected, actual)) {        if (fail)            VIR_TEST_VERBOSE("domain XML should not match the expected result/n");        ret = 0;    } else {        if (!fail)            virtTestDifferenceFull(stderr,                                   expected, expectedFile,                                   actual, NULL);        ret = -1;    }    VIR_FREE(actual);    return ret;}
开发者ID:FrankYu,项目名称:libvirt,代码行数:31,


示例3: 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,


示例4: bhyveDomainGetXMLDesc

static char *bhyveDomainGetXMLDesc(virDomainPtr domain, unsigned int flags){    bhyveConnPtr privconn = domain->conn->privateData;    virDomainObjPtr vm;    virCapsPtr caps = NULL;    char *ret = NULL;    if (!(vm = bhyveDomObjFromDomain(domain)))        goto cleanup;    if (virDomainGetXMLDescEnsureACL(domain->conn, vm->def, flags) < 0)        goto cleanup;    caps = bhyveDriverGetCapabilities(privconn);    if (!caps)        goto cleanup;    ret = virDomainDefFormat(vm->def, caps,                             virDomainDefFormatConvertXMLFlags(flags));    virObjectUnref(caps); cleanup:    if (vm)        virObjectUnlock(vm);    return ret;}
开发者ID:FrankYu,项目名称:libvirt,代码行数:27,


示例5: testQemuHotplugCheckResult

static inttestQemuHotplugCheckResult(virDomainObjPtr vm,                           const char *expected,                           bool fail){    char *actual;    int ret;    actual = virDomainDefFormat(vm->def, VIR_DOMAIN_XML_SECURE);    if (!actual)        return -1;    if (STREQ(expected, actual)) {        if (fail && virTestGetVerbose())            fprintf(stderr, "domain XML should not match the expected result/n");        ret = 0;    } else {        if (!fail)            virtTestDifference(stderr, expected, actual);        ret = -1;    }    VIR_FREE(actual);    return ret;}
开发者ID:ISI-apex,项目名称:libvirt-ARM,代码行数:25,


示例6: 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,


示例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: 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,


示例9: virLXCProcessReconnectDomain

static intvirLXCProcessReconnectDomain(virDomainObjPtr vm,                             void *opaque){    virLXCDriverPtr driver = opaque;    virLXCDomainObjPrivatePtr priv;    int ret = -1;    virObjectLock(vm);    VIR_DEBUG("Reconnect id=%d pid=%d state=%d", vm->def->id, vm->pid, vm->state.state);    priv = vm->privateData;    if (vm->pid != 0) {        vm->def->id = vm->pid;        virDomainObjSetState(vm, VIR_DOMAIN_RUNNING,                             VIR_DOMAIN_RUNNING_UNKNOWN);        if (!driver->nactive && driver->inhibitCallback)            driver->inhibitCallback(true, driver->inhibitOpaque);        driver->nactive++;        if (!(priv->monitor = virLXCProcessConnectMonitor(driver, vm)))            goto error;        if (virLXCUpdateActiveUsbHostdevs(driver, vm->def) < 0)            goto error;        if (virSecurityManagerReserveLabel(driver->securityManager,                                           vm->def, vm->pid) < 0)            goto error;        /* now that we know it's reconnected call the hook if present */        if (virHookPresent(VIR_HOOK_DRIVER_LXC)) {            char *xml = virDomainDefFormat(vm->def, 0);            int hookret;            /* we can't stop the operation even if the script raised an error */            hookret = virHookCall(VIR_HOOK_DRIVER_LXC, vm->def->name,                                  VIR_HOOK_LXC_OP_RECONNECT, VIR_HOOK_SUBOP_BEGIN,                                  NULL, xml, NULL);            VIR_FREE(xml);            if (hookret < 0)                goto error;        }    } else {        vm->def->id = -1;    }    ret = 0;cleanup:    virObjectUnlock(vm);    return ret;error:    virLXCProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_FAILED);    virDomainAuditStop(vm, "failed");    goto cleanup;}
开发者ID:bigclouds,项目名称:libvirt,代码行数:60,


示例10: 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,


示例11: 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,


示例12: 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,


示例13: 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,


示例14: 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,


示例15: 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,


示例16: 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,


示例17: 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,


示例18: bhyveDomainGetXMLDesc

static char *bhyveDomainGetXMLDesc(virDomainPtr domain, unsigned int flags){    virDomainObjPtr vm;    char *ret = NULL;    if (!(vm = bhyveDomObjFromDomain(domain)))        goto cleanup;    if (virDomainGetXMLDescEnsureACL(domain->conn, vm->def, flags) < 0)        goto cleanup;    ret = virDomainDefFormat(vm->def, flags); cleanup:    virObjectUnlock(vm);    return ret;}
开发者ID:vikhyath,项目名称:libvirt-hyperv-r2-2012,代码行数:18,


示例19: testCompareXMLToConfigFiles

static inttestCompareXMLToConfigFiles(const char *xml,                            const char *configfile,                            bool expectError){    int ret = -1;    char *config = NULL;    char *expectxml = NULL;    char *actualxml = NULL;    virDomainDefPtr vmdef = NULL;    if (virtTestLoadFile(configfile, &config) < 0)        goto fail;    vmdef = lxcParseConfigString(config, caps, xmlopt);    if ((vmdef && expectError) || (!vmdef && !expectError))        goto fail;    if (vmdef) {        if (!(actualxml = virDomainDefFormat(vmdef, 0)))            goto fail;        if (virtTestLoadFile(xml, &expectxml) < 0)            goto fail;        if (blankProblemElements(expectxml) < 0 ||            blankProblemElements(actualxml) < 0)            goto fail;        if (STRNEQ(expectxml, actualxml)) {            virtTestDifferenceFull(stderr, expectxml, xml, actualxml, NULL);            goto fail;        }    }    ret = 0; fail:    VIR_FREE(expectxml);    VIR_FREE(actualxml);    VIR_FREE(config);    virDomainDefFree(vmdef);    return ret;}
开发者ID:Nemati,项目名称:libvirt,代码行数:44,


示例20: load_profile

/* * load (add) a profile. Will create one if necessary */static intload_profile(virSecurityManagerPtr mgr,             const char *profile,             virDomainDefPtr def,             const char *fn,             bool append){    int rc = -1;    bool create = true;    char *xml = NULL;    virCommandPtr cmd = NULL;    const char *probe = virSecurityManagerGetAllowDiskFormatProbing(mgr)        ? "1" : "0";    xml = virDomainDefFormat(def, VIR_DOMAIN_XML_SECURE);    if (!xml)        goto cleanup;    if (profile_status_file(profile) >= 0)        create = false;    cmd = virCommandNewArgList(VIRT_AA_HELPER, "-p", probe,                               create ? "-c" : "-r",                               "-u", profile, NULL);    if (!create && fn) {        if (append) {            virCommandAddArgList(cmd, "-F", fn, NULL);        } else {            virCommandAddArgList(cmd, "-f", fn, NULL);        }    }    virCommandSetInputBuffer(cmd, xml);    rc = virCommandRun(cmd, NULL); cleanup:    VIR_FREE(xml);    virCommandFree(cmd);    return rc;}
开发者ID:hitchiker42,项目名称:libvirt,代码行数:44,


示例21: testCompareFormatXML

/* * Parses xl.cfg(5) config to virDomainDef object, which is then converted to * domXML and compared to expected XML. */static inttestCompareFormatXML(const char *xlcfg, const char *xml){    char *xlcfgData = NULL;    char *gotxml = NULL;    virConfPtr conf = NULL;    int ret = -1;    virConnectPtr conn;    virDomainDefPtr def = NULL;    conn = virGetConnect();    if (!conn) goto fail;    if (virtTestLoadFile(xlcfg, &xlcfgData) < 0)        goto fail;    if (!(conf = virConfReadMem(xlcfgData, strlen(xlcfgData), 0)))        goto fail;    if (!(def = xenParseXL(conf, caps, xmlopt)))        goto fail;    if (!(gotxml = virDomainDefFormat(def, caps, VIR_DOMAIN_XML_INACTIVE |                                      VIR_DOMAIN_XML_SECURE)))        goto fail;    if (virtTestCompareToFile(gotxml, xml) < 0)        goto fail;    ret = 0; fail:    if (conf)        virConfFree(conf);    VIR_FREE(xlcfgData);    VIR_FREE(gotxml);    virDomainDefFree(def);    virObjectUnref(conn);    return ret;}
开发者ID:FrankYu,项目名称:libvirt,代码行数:45,


示例22: 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, caps, xmlopt,                                        1 << VIR_DOMAIN_VIRT_LXC,                                        live ? 0 : VIR_DOMAIN_DEF_PARSE_INACTIVE)))        goto fail;    if (!virDomainDefCheckABIStability(def, def)) {        fprintf(stderr, "ABI stability check failed on %s", inxml);        goto fail;    }    if (!(actual = virDomainDefFormat(def, VIR_DOMAIN_DEF_FORMAT_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:SvenDowideit,项目名称:clearlinux,代码行数:40,


示例23: testXML2XMLHelper

static inttestXML2XMLHelper(const char *inxml,                  const char *inXmlData,                  const char *outxml,                  const char *outXmlData,                  bool live){    char *actual = NULL;    int ret = -1;    virDomainDefPtr def = NULL;    unsigned int parse_flags = live ? 0 : VIR_DOMAIN_DEF_PARSE_INACTIVE;    unsigned int format_flags = VIR_DOMAIN_DEF_FORMAT_SECURE;    if (!live)        format_flags |= VIR_DOMAIN_DEF_FORMAT_INACTIVE;    if (!(def = virDomainDefParseString(inXmlData, driver.caps, driver.xmlopt,                                        parse_flags)))        goto fail;    if (!virDomainDefCheckABIStability(def, def)) {        fprintf(stderr, "ABI stability check failed on %s", inxml);        goto fail;    }    if (!(actual = virDomainDefFormat(def, format_flags)))        goto fail;    if (STRNEQ(outXmlData, actual)) {        virtTestDifferenceFull(stderr, outXmlData, outxml, actual, inxml);        goto fail;    }    ret = 0; fail:    VIR_FREE(actual);    virDomainDefFree(def);    return ret;}
开发者ID:withtreasure,项目名称:libvirt,代码行数:39,


示例24: testCompareXMLToXMLFiles

static inttestCompareXMLToXMLFiles(const char *inxml, const char *outxml){    char *inXmlData = NULL;    char *outXmlData = NULL;    char *actual = NULL;    virDomainDefPtr def = NULL;    int ret = -1;    if (virtTestLoadFile(inxml, &inXmlData) < 0)        goto fail;    if (virtTestLoadFile(outxml, &outXmlData) < 0)        goto fail;    if (!(def = virDomainDefParseString(inXmlData, driver.caps, driver.xmlopt,                                        1 << VIR_DOMAIN_VIRT_BHYVE,                                        VIR_DOMAIN_DEF_PARSE_INACTIVE)))        goto fail;    if (!(actual = virDomainDefFormat(def, VIR_DOMAIN_DEF_FORMAT_INACTIVE)))        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:SvenDowideit,项目名称:clearlinux,代码行数:37,


示例25: testCompareXMLToConfigFiles

static inttestCompareXMLToConfigFiles(const char *xmlfile,                            const char *configfile,                            bool expectError){    int ret = -1;    char *config = NULL;    char *actualxml = NULL;    virDomainDefPtr vmdef = NULL;    if (virTestLoadFile(configfile, &config) < 0)        goto fail;    vmdef = lxcParseConfigString(config, caps, xmlopt);    if ((vmdef && expectError) || (!vmdef && !expectError))        goto fail;    if (vmdef) {        if (testSanitizeDef(vmdef) < 0)            goto fail;        if (!(actualxml = virDomainDefFormat(vmdef, caps, 0)))            goto fail;        if (virTestCompareToFile(actualxml, xmlfile) < 0)            goto fail;    }    ret = 0; fail:    VIR_FREE(actualxml);    VIR_FREE(config);    virDomainDefFree(vmdef);    return ret;}
开发者ID:Archer-sys,项目名称:libvirt,代码行数:36,


示例26: vmwareDomainDumpXML

static char *vmwareDomainDumpXML(virDomainPtr dom, int flags){    struct vmware_driver *driver = dom->conn->privateData;    virDomainObjPtr vm;    char *ret = NULL;    vmwareDriverLock(driver);    vm = virDomainFindByUUID(&driver->domains, dom->uuid);    vmwareDriverUnlock(driver);    if (!vm) {        vmwareError(VIR_ERR_NO_DOMAIN, "%s",                    _("no domain with matching uuid"));        goto cleanup;    }    ret = virDomainDefFormat(vm->def, flags);  cleanup:    if (vm)        virDomainObjUnlock(vm);    return ret;}
开发者ID:rbu,项目名称:libvirt,代码行数:24,


示例27: testCompareXMLToArgvFiles

static int testCompareXMLToArgvFiles(const char *xmlfile,                                     const char *cmdfile,                                     virQemuXML2ArgvTestFlags flags){    char *actualxml = NULL;    char *cmd = NULL;    char *log = NULL;    int ret = -1;    virDomainDefPtr vmdef = NULL;    if (virtTestLoadFile(cmdfile, &cmd) < 0)        goto fail;    if (!(vmdef = qemuParseCommandLineString(driver.caps, driver.xmlopt,                                             cmd, NULL, NULL, NULL)))        goto fail;    if (!virtTestOOMActive()) {        if ((log = virtTestLogContentAndReset()) == NULL)            goto fail;        if (flags & FLAG_EXPECT_WARNING) {            if (*log) {                VIR_TEST_DEBUG("Got expected warning from "                            "qemuParseCommandLineString:/n%s",                            log);            } else {                VIR_TEST_DEBUG("qemuParseCommandLineString "                        "should have logged a warning/n");                goto fail;            }        } else { /* didn't expect a warning */            if (*log) {                VIR_TEST_DEBUG("Got unexpected warning from "                            "qemuParseCommandLineString:/n%s",                            log);                goto fail;            }        }    }    if (testSanitizeDef(vmdef) < 0)        goto fail;    if (!virDomainDefCheckABIStability(vmdef, vmdef)) {        VIR_TEST_DEBUG("ABI stability check failed on %s", xmlfile);        goto fail;    }    if (!(actualxml = virDomainDefFormat(vmdef, driver.caps, 0)))        goto fail;    if (virtTestCompareToFile(actualxml, xmlfile) < 0)        goto fail;    ret = 0; fail:    VIR_FREE(actualxml);    VIR_FREE(cmd);    VIR_FREE(log);    virDomainDefFree(vmdef);    return ret;}
开发者ID:JGulic,项目名称:libvirt,代码行数:63,


示例28: hypervDomainGetXMLDesc

//.........这里部分代码省略.........                      "ResultClass = Msvm_VirtualSystemSettingData",                      uuid_string);    if (hypervGetMsvmVirtualSystemSettingDataList(priv, &query,                                                  &virtualSystemSettingData) < 0) {        goto cleanup;    }    if (virtualSystemSettingData == NULL) {        virReportError(VIR_ERR_INTERNAL_ERROR,                       _("Could not lookup %s for domain %s"),                       "Msvm_VirtualSystemSettingData",                       computerSystem->data->ElementName);        goto cleanup;    }    /* Get Msvm_ProcessorSettingData */    virBufferAsprintf(&query,                      "associators of "                      "{Msvm_VirtualSystemSettingData.InstanceID=/"%s/"} "                      "where AssocClass = Msvm_VirtualSystemSettingDataComponent "                      "ResultClass = Msvm_ProcessorSettingData",                      virtualSystemSettingData->data->InstanceID);    if (hypervGetMsvmProcessorSettingDataList(priv, &query,                                              &processorSettingData) < 0) {        goto cleanup;    }    if (processorSettingData == NULL) {        virReportError(VIR_ERR_INTERNAL_ERROR,                       _("Could not lookup %s for domain %s"),                       "Msvm_ProcessorSettingData",                       computerSystem->data->ElementName);        goto cleanup;    }    /* Get Msvm_MemorySettingData */    virBufferAsprintf(&query,                      "associators of "                      "{Msvm_VirtualSystemSettingData.InstanceID=/"%s/"} "                      "where AssocClass = Msvm_VirtualSystemSettingDataComponent "                      "ResultClass = Msvm_MemorySettingData",                      virtualSystemSettingData->data->InstanceID);    if (hypervGetMsvmMemorySettingDataList(priv, &query,                                           &memorySettingData) < 0) {        goto cleanup;    }    if (memorySettingData == NULL) {        virReportError(VIR_ERR_INTERNAL_ERROR,                       _("Could not lookup %s for domain %s"),                       "Msvm_MemorySettingData",                       computerSystem->data->ElementName);        goto cleanup;    }    /* Fill struct */    def->virtType = VIR_DOMAIN_VIRT_HYPERV;    if (hypervIsMsvmComputerSystemActive(computerSystem, NULL)) {        def->id = computerSystem->data->ProcessID;    } else {        def->id = -1;    }    if (virUUIDParse(computerSystem->data->Name, def->uuid) < 0) {        virReportError(VIR_ERR_INTERNAL_ERROR,                       _("Could not parse UUID from string '%s'"),                       computerSystem->data->Name);        return NULL;    }    if (VIR_STRDUP(def->name, computerSystem->data->ElementName) < 0)        goto cleanup;    def->mem.max_balloon = memorySettingData->data->Limit * 1024; /* megabyte to kilobyte */    def->mem.cur_balloon = memorySettingData->data->VirtualQuantity * 1024; /* megabyte to kilobyte */    def->vcpus = processorSettingData->data->VirtualQuantity;    def->maxvcpus = processorSettingData->data->VirtualQuantity;    if (VIR_STRDUP(def->os.type, "hvm") < 0)        goto cleanup;    /* FIXME: devices section is totally missing */    xml = virDomainDefFormat(def, flags); cleanup:    virDomainDefFree(def);    hypervFreeObject(priv, (hypervObject *)computerSystem);    hypervFreeObject(priv, (hypervObject *)virtualSystemSettingData);    hypervFreeObject(priv, (hypervObject *)processorSettingData);    hypervFreeObject(priv, (hypervObject *)memorySettingData);    return xml;}
开发者ID:vikhyath,项目名称:libvirt-hyperv-r2-2012,代码行数:101,


示例29: virLXCProcessCleanup

/** * virLXCProcessCleanup: * @driver: pointer to driver structure * @vm: pointer to VM to clean up * @reason: reason for switching the VM to shutoff state * * Cleanout resources associated with the now dead VM * */static void virLXCProcessCleanup(virLXCDriverPtr driver,                                 virDomainObjPtr vm,                                 virDomainShutoffReason reason){    size_t i;    virLXCDomainObjPrivatePtr priv = vm->privateData;    virNetDevVPortProfilePtr vport = NULL;    virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver);    VIR_DEBUG("Stopping VM name=%s pid=%d reason=%d",              vm->def->name, (int)vm->pid, (int)reason);    /* now that we know it's stopped call the hook if present */    if (virHookPresent(VIR_HOOK_DRIVER_LXC)) {        char *xml = virDomainDefFormat(vm->def, 0);        /* we can't stop the operation even if the script raised an error */        virHookCall(VIR_HOOK_DRIVER_LXC, vm->def->name,                    VIR_HOOK_LXC_OP_STOPPED, VIR_HOOK_SUBOP_END,                    NULL, xml, NULL);        VIR_FREE(xml);    }    /* Stop autodestroy in case guest is restarted */    virCloseCallbacksUnset(driver->closeCallbacks, vm,                           lxcProcessAutoDestroy);    if (priv->monitor) {        virLXCMonitorClose(priv->monitor);        virObjectUnref(priv->monitor);        priv->monitor = NULL;    }    virPidFileDelete(cfg->stateDir, vm->def->name);    virDomainDeleteConfig(cfg->stateDir, NULL, vm);    virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF, reason);    vm->pid = -1;    vm->def->id = -1;    if (virAtomicIntDecAndTest(&driver->nactive) && driver->inhibitCallback)        driver->inhibitCallback(false, driver->inhibitOpaque);    virLXCDomainReAttachHostDevices(driver, vm->def);    for (i = 0; i < vm->def->nnets; i++) {        virDomainNetDefPtr iface = vm->def->nets[i];        vport = virDomainNetGetActualVirtPortProfile(iface);        if (iface->ifname) {            if (vport &&                vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH)                ignore_value(virNetDevOpenvswitchRemovePort(                                virDomainNetGetActualBridgeName(iface),                                iface->ifname));            ignore_value(virNetDevVethDelete(iface->ifname));        }        networkReleaseActualDevice(vm->def, iface);    }    virDomainConfVMNWFilterTeardown(vm);    if (priv->cgroup) {        virCgroupRemove(priv->cgroup);        virCgroupFree(&priv->cgroup);    }    /* Get machined to terminate the machine as it may not have cleaned it     * properly. See https://bugs.freedesktop.org/show_bug.cgi?id=68370 for     * the bug we are working around here.     */    virSystemdTerminateMachine(vm->def->name, "lxc", true);    /* The "release" hook cleans up additional resources */    if (virHookPresent(VIR_HOOK_DRIVER_LXC)) {        char *xml = virDomainDefFormat(vm->def, 0);        /* we can't stop the operation even if the script raised an error */        virHookCall(VIR_HOOK_DRIVER_LXC, vm->def->name,                    VIR_HOOK_LXC_OP_RELEASE, VIR_HOOK_SUBOP_END,                    NULL, xml, NULL);        VIR_FREE(xml);    }    if (vm->newDef) {        virDomainDefFree(vm->def);        vm->def = vm->newDef;        vm->def->id = -1;        vm->newDef = NULL;    }    virObjectUnref(cfg);//.........这里部分代码省略.........
开发者ID:i-ninth,项目名称:libvirt,代码行数:101,


示例30: virLXCProcessStart

//.........这里部分代码省略.........    }    if (!vm->def->resource) {        virDomainResourceDefPtr res;        if (VIR_ALLOC(res) < 0)            goto cleanup;        if (VIR_STRDUP(res->partition, "/machine") < 0) {            VIR_FREE(res);            goto cleanup;        }        vm->def->resource = res;    }    if (virAsprintf(&logfile, "%s/%s.log",                    cfg->logDir, vm->def->name) < 0)        return -1;    if (!(caps = virLXCDriverGetCapabilities(driver, false)))        goto cleanup;    /* Do this up front, so any part of the startup process can add     * runtime state to vm->def that won't be persisted. This let's us     * report implicit runtime defaults in the XML, like vnc listen/socket     */    VIR_DEBUG("Setting current domain def as transient");    if (virDomainObjSetDefTransient(caps, driver->xmlopt, vm, true) < 0)        goto cleanup;    /* Run an early hook to set-up missing devices */    if (virHookPresent(VIR_HOOK_DRIVER_LXC)) {        char *xml = virDomainDefFormat(vm->def, 0);        int hookret;        hookret = virHookCall(VIR_HOOK_DRIVER_LXC, vm->def->name,                              VIR_HOOK_LXC_OP_PREPARE, VIR_HOOK_SUBOP_BEGIN,                              NULL, xml, NULL);        VIR_FREE(xml);        /*         * If the script raised an error abort the launch         */        if (hookret < 0)            goto cleanup;    }    if (virLXCProcessEnsureRootFS(vm) < 0)        goto cleanup;    /* Must be run before security labelling */    VIR_DEBUG("Preparing host devices");    if (virLXCPrepareHostDevices(driver, vm->def) < 0)        goto cleanup;    /* Here we open all the PTYs we need on the host OS side.     * The LXC controller will open the guest OS side PTYs     * and forward I/O between them.     */    nttyFDs = vm->def->nconsoles;    if (VIR_ALLOC_N(ttyFDs, nttyFDs) < 0)        goto cleanup;    for (i = 0; i < vm->def->nconsoles; i++)        ttyFDs[i] = -1;
开发者ID:i-ninth,项目名称:libvirt,代码行数:66,



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


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