libxlVmStart(libxlDriverPrivatePtr driver, virDomainObjPtr vm,
bool start_paused, int restore_fd);
+
+/* Function definitions */
+static virDomainObjPtr
+libxlDomObjFromDomain(virDomainPtr dom)
+{
+ virDomainObjPtr vm;
+ libxlDriverPrivatePtr driver = dom->conn->privateData;
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
+
+ vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
+ if (!vm) {
+ virUUIDFormat(dom->uuid, uuidstr);
+ virReportError(VIR_ERR_NO_DOMAIN,
+ _("no domain with matching uuid '%s' (%s)"),
+ uuidstr, dom->name);
+ return NULL;
+ }
+
+ return vm;
+}
+
static void
libxlDomainEventQueue(libxlDriverPrivatePtr driver, virDomainEventPtr event)
{
virDomainEventPtr event = NULL;
int ret = -1;
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("No domain with matching uuid '%s'"), uuidstr);
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainSuspendEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
virDomainEventPtr event = NULL;
int ret = -1;
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("No domain with matching uuid '%s'"), uuidstr);
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainResumeEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
static int
libxlDomainShutdownFlags(virDomainPtr dom, unsigned int flags)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
virDomainObjPtr vm;
int ret = -1;
libxlDomainObjPrivatePtr priv;
virCheckFlags(0, -1);
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("No domain with matching uuid '%s'"), uuidstr);
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainShutdownFlagsEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
static int
libxlDomainReboot(virDomainPtr dom, unsigned int flags)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
virDomainObjPtr vm;
int ret = -1;
libxlDomainObjPrivatePtr priv;
virCheckFlags(0, -1);
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("No domain with matching uuid '%s'"), uuidstr);
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainRebootEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
virCheckFlags(0, -1);
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("No domain with matching uuid '%s'"), uuidstr);
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainDestroyFlagsEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
static char *
libxlDomainGetOSType(virDomainPtr dom)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
virDomainObjPtr vm;
char *type = NULL;
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("No domain with matching uuid '%s'"), uuidstr);
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainGetOSTypeEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
static unsigned long long
libxlDomainGetMaxMemory(virDomainPtr dom)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
virDomainObjPtr vm;
unsigned long long ret = 0;
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- virReportError(VIR_ERR_NO_DOMAIN, "%s", _("no domain with matching uuid"));
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainGetMaxMemoryEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
VIR_DOMAIN_MEM_CONFIG |
VIR_DOMAIN_MEM_MAXIMUM, -1);
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- virReportError(VIR_ERR_NO_DOMAIN, "%s", _("no domain with matching uuid"));
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainSetMemoryFlagsEnsureACL(dom->conn, vm->def, flags) < 0)
goto cleanup;
static int
libxlDomainGetInfo(virDomainPtr dom, virDomainInfoPtr info)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
virDomainObjPtr vm;
libxl_dominfo d_info;
libxlDomainObjPrivatePtr priv;
int ret = -1;
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- virReportError(VIR_ERR_NO_DOMAIN, "%s",
- _("no domain with matching uuid"));
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainGetInfoEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
int *reason,
unsigned int flags)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
virDomainObjPtr vm;
int ret = -1;
virCheckFlags(0, -1);
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- virReportError(VIR_ERR_NO_DOMAIN, "%s",
- _("no domain with matching uuid"));
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainGetStateEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
return -1;
}
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("No domain with matching uuid '%s'"), uuidstr);
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainSaveFlagsEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
virCheckFlags(VIR_DUMP_LIVE | VIR_DUMP_CRASH, -1);
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("No domain with matching uuid '%s'"), uuidstr);
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainCoreDumpEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
virCheckFlags(0, -1);
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("No domain with matching uuid '%s'"), uuidstr);
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainManagedSaveEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
static int
libxlDomainHasManagedSaveImage(virDomainPtr dom, unsigned int flags)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
virDomainObjPtr vm = NULL;
int ret = -1;
virCheckFlags(0, -1);
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("No domain with matching uuid '%s'"), uuidstr);
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainHasManagedSaveImageEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
virCheckFlags(0, -1);
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("No domain with matching uuid '%s'"), uuidstr);
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainManagedSaveRemoveEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
return -1;
}
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- virReportError(VIR_ERR_NO_DOMAIN, "%s", _("no domain with matching uuid"));
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainSetVcpusFlagsEnsureACL(dom->conn, vm->def, flags) < 0)
goto cleanup;
static int
libxlDomainGetVcpusFlags(virDomainPtr dom, unsigned int flags)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
virDomainObjPtr vm;
virDomainDefPtr def;
int ret = -1;
VIR_DOMAIN_VCPU_CONFIG |
VIR_DOMAIN_VCPU_MAXIMUM, -1);
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- virReportError(VIR_ERR_NO_DOMAIN, "%s", _("no domain with matching uuid"));
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainGetVcpusFlagsEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
int ret = -1;
libxl_bitmap map;
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- virReportError(VIR_ERR_NO_DOMAIN, "%s", _("no domain with matching uuid"));
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainPinVcpuEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
libxlDomainGetVcpus(virDomainPtr dom, virVcpuInfoPtr info, int maxinfo,
unsigned char *cpumaps, int maplen)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
libxlDomainObjPrivatePtr priv;
virDomainObjPtr vm;
int ret = -1;
size_t i;
unsigned char *cpumap;
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- virReportError(VIR_ERR_NO_DOMAIN, "%s", _("no domain with matching uuid"));
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainGetVcpusEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
static char *
libxlDomainGetXMLDesc(virDomainPtr dom, unsigned int flags)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
virDomainObjPtr vm;
char *ret = NULL;
/* Flags checked by virDomainDefFormat */
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- virReportError(VIR_ERR_NO_DOMAIN, "%s",
- _("no domain with matching uuid"));
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainGetXMLDescEnsureACL(dom->conn, vm->def, flags) < 0)
goto cleanup;
virCheckFlags(VIR_DOMAIN_START_PAUSED, -1);
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("No domain with matching uuid '%s'"), uuidstr);
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainCreateWithFlagsEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
virCheckFlags(VIR_DOMAIN_UNDEFINE_MANAGED_SAVE, -1);
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
-
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("no domain with matching uuid '%s'"), uuidstr);
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainUndefineFlagsEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
virCheckFlags(VIR_DOMAIN_DEVICE_MODIFY_LIVE |
VIR_DOMAIN_DEVICE_MODIFY_CONFIG, -1);
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- virReportError(VIR_ERR_NO_DOMAIN, "%s", _("no domain with matching uuid"));
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainAttachDeviceFlagsEnsureACL(dom->conn, vm->def, flags) < 0)
goto cleanup;
virCheckFlags(VIR_DOMAIN_DEVICE_MODIFY_LIVE |
VIR_DOMAIN_DEVICE_MODIFY_CONFIG, -1);
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- virReportError(VIR_ERR_NO_DOMAIN, "%s", _("no domain with matching uuid"));
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainDetachDeviceFlagsEnsureACL(dom->conn, vm->def, flags) < 0)
goto cleanup;
virCheckFlags(VIR_DOMAIN_DEVICE_MODIFY_LIVE |
VIR_DOMAIN_DEVICE_MODIFY_CONFIG, -1);
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- virReportError(VIR_ERR_NO_DOMAIN, "%s", _("no domain with matching uuid"));
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainUpdateDeviceFlagsEnsureACL(dom->conn, vm->def, flags) < 0)
goto cleanup;
static int
libxlDomainGetAutostart(virDomainPtr dom, int *autostart)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
virDomainObjPtr vm;
int ret = -1;
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("No domain with matching uuid '%s'"), uuidstr);
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainGetAutostartEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
char *configFile = NULL, *autostartLink = NULL;
int ret = -1;
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("No domain with matching uuid '%s'"), uuidstr);
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainSetAutostartEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
static char *
libxlDomainGetSchedulerType(virDomainPtr dom, int *nparams)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
libxlDomainObjPrivatePtr priv;
virDomainObjPtr vm;
char * ret = NULL;
const char *name = NULL;
libxl_scheduler sched_id;
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- virReportError(VIR_ERR_NO_DOMAIN, "%s", _("no domain with matching uuid"));
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainGetSchedulerTypeEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
int *nparams,
unsigned int flags)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
libxlDomainObjPrivatePtr priv;
virDomainObjPtr vm;
libxl_domain_sched_params sc_info;
/* We don't return strings, and thus trivially support this flag. */
flags &= ~VIR_TYPED_PARAM_STRING_OKAY;
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- virReportError(VIR_ERR_NO_DOMAIN, "%s",
- _("no domain with matching uuid"));
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainGetSchedulerParametersFlagsEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
int nparams,
unsigned int flags)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
libxlDomainObjPrivatePtr priv;
virDomainObjPtr vm;
libxl_domain_sched_params sc_info;
NULL) < 0)
return -1;
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- virReportError(VIR_ERR_NO_DOMAIN, "%s", _("no domain with matching uuid"));
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainSetSchedulerParametersFlagsEnsureACL(dom->conn, vm->def, flags) < 0)
goto cleanup;
virStreamPtr st,
unsigned int flags)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
virDomainObjPtr vm = NULL;
int ret = -1;
virDomainChrDefPtr chr = NULL;
goto cleanup;
}
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- char uuidstr[VIR_UUID_STRING_BUFLEN];
- virUUIDFormat(dom->uuid, uuidstr);
- virReportError(VIR_ERR_NO_DOMAIN,
- _("No domain with matching uuid '%s'"), uuidstr);
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainOpenConsoleEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
int *nparams,
unsigned int flags)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
libxlDomainObjPrivatePtr priv;
virDomainObjPtr vm;
libxl_bitmap nodemap;
* the filtering on behalf of older clients that can't parse it. */
flags &= ~VIR_TYPED_PARAM_STRING_OKAY;
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- virReportError(VIR_ERR_NO_DOMAIN, "%s",
- _("no domain with matching uuid"));
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainGetNumaParametersEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
static int
libxlDomainIsActive(virDomainPtr dom)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
virDomainObjPtr obj;
int ret = -1;
- obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!obj) {
- virReportError(VIR_ERR_NO_DOMAIN, NULL);
+ if (!(obj = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainIsActiveEnsureACL(dom->conn, obj->def) < 0)
goto cleanup;
static int
libxlDomainIsPersistent(virDomainPtr dom)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
virDomainObjPtr obj;
int ret = -1;
- obj = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!obj) {
- virReportError(VIR_ERR_NO_DOMAIN, NULL);
+ if (!(obj = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainIsPersistentEnsureACL(dom->conn, obj->def) < 0)
goto cleanup;
static int
libxlDomainIsUpdated(virDomainPtr dom)
{
- libxlDriverPrivatePtr driver = dom->conn->privateData;
virDomainObjPtr vm;
int ret = -1;
- vm = virDomainObjListFindByUUID(driver->domains, dom->uuid);
- if (!vm) {
- virReportError(VIR_ERR_NO_DOMAIN, NULL);
+ if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
- }
if (virDomainIsUpdatedEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;