本文整理汇总了C++中virDomainDefFormat函数的典型用法代码示例。如果您正苦于以下问题:C++ virDomainDefFormat函数的具体用法?C++ virDomainDefFormat怎么用?C++ virDomainDefFormat使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了virDomainDefFormat函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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,代码来源:vmware_driver.c
示例2: testQemuHotplugCheckResult
static int
testQemuHotplugCheckResult(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,代码来源:qemuhotplugtest.c
示例3: testCompareXMLToXMLFiles
static int
testCompareXMLToXMLFiles(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,代码来源:qemuxml2xmltest.c
示例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,代码来源:bhyve_driver.c
示例5: testQemuHotplugCheckResult
static int
testQemuHotplugCheckResult(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,代码来源:qemuhotplugtest.c
示例6: testCompareXMLToXMLFiles
static int
testCompareXMLToXMLFiles(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,代码来源:qemuxml2xmltest.c
示例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,代码来源:qemuxml2xmltest.c
示例8: testCompareFiles
static int
testCompareFiles(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,代码来源:vmx2xmltest.c
示例9: virLXCProcessReconnectDomain
static int
virLXCProcessReconnectDomain(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,代码来源:lxc_process.c
示例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,代码来源:vmware_driver.c
示例11: testCompareFiles
static int
testCompareFiles(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,代码来源:sexpr2xmltest.c
示例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,代码来源:qemuargv2xmltest.c
示例13: testCompareFormatXML
static int
testCompareFormatXML(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,代码来源:xmconfigtest.c
示例14: testCompareFiles
static int
testCompareFiles(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,代码来源:vmx2xmltest.c
示例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,代码来源:qemuargv2xmltest.c
示例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,代码来源:libxl_migration.c
示例17: testCompareFormatXML
static int
testCompareFormatXML(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,代码来源:xmconfigtest.c
示例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,代码来源:bhyve_driver.c
示例19: testCompareXMLToConfigFiles
static int
testCompareXMLToConfigFiles(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,代码来源:lxcconf2xmltest.c
示例20: load_profile
/*
* load (add) a profile. Will create one if necessary
*/
static int
load_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,代码来源:security_apparmor.c
注:本文中的virDomainDefFormat函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论