diff --git a/packages/xo-server/src/api/xosan.mjs b/packages/xo-server/src/api/xosan.mjs index f2082cffc..7e5508c70 100644 --- a/packages/xo-server/src/api/xosan.mjs +++ b/packages/xo-server/src/api/xosan.mjs @@ -965,7 +965,9 @@ async function _importGlusterVM(xapi, template, lvmsrId) { namespace: 'xosan', version: template.version, }) - const newVM = await xapi.VM_import(templateStream, this.getObject(lvmsrId, 'SR')._xapiRef) + const newVM = await xapi._getOrWaitObject( + await xapi.VM_import(templateStream, this.getObject(lvmsrId, 'SR')._xapiRef) + ) await xapi.editVm(newVM, { autoPoweron: true, name_label: 'XOSAN imported VM', diff --git a/packages/xo-server/src/xo-mixins/proxies.mjs b/packages/xo-server/src/xo-mixins/proxies.mjs index 6aea932d9..0784198c8 100644 --- a/packages/xo-server/src/xo-mixins/proxies.mjs +++ b/packages/xo-server/src/xo-mixins/proxies.mjs @@ -271,13 +271,15 @@ export default class Proxy { [namespace]: { xva }, } = await app.getResourceCatalog() const xapi = app.getXapi(srId) - const vm = await xapi.VM_import( - await app.requestResource({ - id: xva.id, - namespace, - version: xva.version, - }), - srId && app.getObject(srId, 'SR')._xapiRef + const vm = await xapi.getOrWaitObject( + await xapi.VM_import( + await app.requestResource({ + id: xva.id, + namespace, + version: xva.version, + }), + srId && app.getObject(srId, 'SR')._xapiRef + ) ) $defer.onFailure(() => xapi.VM_destroy(vm.$ref))