Correctly handle patch upload error.

This commit is contained in:
Julien Fontanet 2015-05-05 18:55:46 +02:00
parent 8592ead0e3
commit 53e94378ae

View File

@ -183,29 +183,31 @@ export default class Xapi extends XapiBase {
async _installHostPatch (host, stream, length) {
const taskRef = await this._createTask('Patch upload from XO')
got.put('http://' + host.address + '/pool_patch_upload', {
body: stream,
query: {
session_id: this.sessionId,
task_id: taskRef
},
headers: {
'content-length': length
}
})
await Promise.all([
gotPromise('http://' + host.address + '/pool_patch_upload', {
method: 'put',
body: stream,
query: {
session_id: this.sessionId,
task_id: taskRef
},
headers: {
'content-length': length
}
}),
this._watchTask(taskRef).then(
(patchRef) => {
debug('patch upload succeeded')
await this._watchTask(taskRef).then(
(patchRef) => {
debug('patch upload succeeded')
return this.call('pool_patch.apply', patchRef, host.ref)
},
(error) => {
debug('patch upload failed', error.stack || error)
return this.call('pool_patch.apply', patchRef, host.ref)
},
(error) => {
debug('patch upload failed', error.stack || error)
throw error
}
)
throw error
}
)
])
}
async installHostPatchFromUrl (host, patchUrl) {