mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-18 10:35:20 +00:00
libxl: Don't pass virDomainObjPtr to libxlBuildDomainConfig
To make it easier to unit test, change libxlBuildDomainConfig so that it takes 'virDomainDefPtr' and 'libxl_ctx *' objects as separate parameters. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
parent
5bf670323e
commit
5da28f2405
@ -567,10 +567,10 @@ libxlMakeChrdevStr(virDomainChrDefPtr def, char **buf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
libxlMakeDomBuildInfo(virDomainObjPtr vm, libxl_domain_config *d_config)
|
libxlMakeDomBuildInfo(virDomainDefPtr def,
|
||||||
|
libxl_ctx *ctx,
|
||||||
|
libxl_domain_config *d_config)
|
||||||
{
|
{
|
||||||
virDomainDefPtr def = vm->def;
|
|
||||||
libxlDomainObjPrivatePtr priv = vm->privateData;
|
|
||||||
libxl_domain_build_info *b_info = &d_config->b_info;
|
libxl_domain_build_info *b_info = &d_config->b_info;
|
||||||
int hvm = STREQ(def->os.type, "hvm");
|
int hvm = STREQ(def->os.type, "hvm");
|
||||||
size_t i;
|
size_t i;
|
||||||
@ -583,7 +583,7 @@ libxlMakeDomBuildInfo(virDomainObjPtr vm, libxl_domain_config *d_config)
|
|||||||
libxl_domain_build_info_init_type(b_info, LIBXL_DOMAIN_TYPE_PV);
|
libxl_domain_build_info_init_type(b_info, LIBXL_DOMAIN_TYPE_PV);
|
||||||
|
|
||||||
b_info->max_vcpus = def->maxvcpus;
|
b_info->max_vcpus = def->maxvcpus;
|
||||||
if (libxl_cpu_bitmap_alloc(priv->ctx, &b_info->avail_vcpus, def->maxvcpus))
|
if (libxl_cpu_bitmap_alloc(ctx, &b_info->avail_vcpus, def->maxvcpus))
|
||||||
goto error;
|
goto error;
|
||||||
libxl_bitmap_set_none(&b_info->avail_vcpus);
|
libxl_bitmap_set_none(&b_info->avail_vcpus);
|
||||||
for (i = 0; i < def->vcpus; i++)
|
for (i = 0; i < def->vcpus; i++)
|
||||||
@ -1306,17 +1306,16 @@ libxlMakeCapabilities(libxl_ctx *ctx)
|
|||||||
|
|
||||||
int
|
int
|
||||||
libxlBuildDomainConfig(libxlDriverPrivatePtr driver,
|
libxlBuildDomainConfig(libxlDriverPrivatePtr driver,
|
||||||
virDomainObjPtr vm, libxl_domain_config *d_config)
|
virDomainDefPtr def,
|
||||||
|
libxl_ctx *ctx,
|
||||||
|
libxl_domain_config *d_config)
|
||||||
{
|
{
|
||||||
virDomainDefPtr def = vm->def;
|
|
||||||
libxlDomainObjPrivatePtr priv = vm->privateData;
|
|
||||||
|
|
||||||
libxl_domain_config_init(d_config);
|
libxl_domain_config_init(d_config);
|
||||||
|
|
||||||
if (libxlMakeDomCreateInfo(priv->ctx, def, &d_config->c_info) < 0)
|
if (libxlMakeDomCreateInfo(ctx, def, &d_config->c_info) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (libxlMakeDomBuildInfo(vm, d_config) < 0)
|
if (libxlMakeDomBuildInfo(def, ctx, d_config) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (libxlMakeDiskList(def, d_config) < 0)
|
if (libxlMakeDiskList(def, d_config) < 0)
|
||||||
|
@ -160,7 +160,9 @@ libxlMakePCI(virDomainHostdevDefPtr hostdev, libxl_device_pci *pcidev);
|
|||||||
|
|
||||||
int
|
int
|
||||||
libxlBuildDomainConfig(libxlDriverPrivatePtr driver,
|
libxlBuildDomainConfig(libxlDriverPrivatePtr driver,
|
||||||
virDomainObjPtr vm, libxl_domain_config *d_config);
|
virDomainDefPtr def,
|
||||||
|
libxl_ctx *ctx,
|
||||||
|
libxl_domain_config *d_config);
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
libxlDriverLock(libxlDriverPrivatePtr driver)
|
libxlDriverLock(libxlDriverPrivatePtr driver)
|
||||||
|
@ -1151,7 +1151,8 @@ libxlDomainStart(libxlDriverPrivatePtr driver, virDomainObjPtr vm,
|
|||||||
|
|
||||||
libxl_domain_config_init(&d_config);
|
libxl_domain_config_init(&d_config);
|
||||||
|
|
||||||
if (libxlBuildDomainConfig(driver, vm, &d_config) < 0)
|
if (libxlBuildDomainConfig(driver, vm->def,
|
||||||
|
priv->ctx, &d_config) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
|
|
||||||
if (cfg->autoballoon && libxlDomainFreeMem(priv, &d_config) < 0) {
|
if (cfg->autoballoon && libxlDomainFreeMem(priv, &d_config) < 0) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user