From f0483862a5a25978e852135b53c1881d731408c2 Mon Sep 17 00:00:00 2001 From: badrAZ Date: Tue, 27 Nov 2018 10:12:47 +0100 Subject: [PATCH 1/3] fix(xo-server/xen-servers): a xapi object doesn't have an id --- .../xo-server/src/xo-mixins/xen-servers.js | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/packages/xo-server/src/xo-mixins/xen-servers.js b/packages/xo-server/src/xo-mixins/xen-servers.js index 9c02b5a31..fd994947c 100644 --- a/packages/xo-server/src/xo-mixins/xen-servers.js +++ b/packages/xo-server/src/xo-mixins/xen-servers.js @@ -20,7 +20,7 @@ import { Servers } from '../models/server' const log = createLogger('xo:xo-mixins:xen-servers') export default class { - constructor (xo, { xapiOptions }) { + constructor(xo, { xapiOptions }) { this._objectConflicts = { __proto__: null } // TODO: clean when a server is disconnected. const serversDb = (this._servers = new Servers({ connection: xo._redis, @@ -58,7 +58,7 @@ export default class { // TODO: disconnect servers on stop. } - async registerXenServer ({ + async registerXenServer({ allowUnauthorized, host, label, @@ -82,7 +82,7 @@ export default class { return server.properties } - async unregisterXenServer (id) { + async unregisterXenServer(id) { this.disconnectXenServer(id)::ignoreErrors() if (!(await this._servers.remove(id))) { @@ -90,7 +90,7 @@ export default class { } } - async updateXenServer ( + async updateXenServer( id, { allowUnauthorized, @@ -150,7 +150,7 @@ export default class { // TODO: this method will no longer be async when servers are // integrated to the main collection. - async _getXenServer (id) { + async _getXenServer(id) { const server = await this._servers.first(id) if (server === undefined) { throw noSuchObject(id, 'xenServer') @@ -159,7 +159,7 @@ export default class { return server } - _onXenAdd ( + _onXenAdd( newXapiObjects, xapiIdsToXo, toRetry, @@ -170,7 +170,7 @@ export default class { const conflicts = this._objectConflicts const objects = this._xo._objects - forEach(newXapiObjects, function handleObject (xapiObject, xapiId) { + forEach(newXapiObjects, function handleObject(xapiObject, xapiId) { const { $ref } = xapiObject const dependent = dependents[$ref] @@ -204,7 +204,7 @@ export default class { }) } - _onXenRemove (xapiObjects, xapiIdsToXo, toRetry, conId) { + _onXenRemove(xapiObjects, xapiIdsToXo, toRetry, conId) { const conflicts = this._objectConflicts const objects = this._xo._objects @@ -236,7 +236,7 @@ export default class { }) } - async connectXenServer (id) { + async connectXenServer(id) { const server = (await this._getXenServer(id)).properties const xapi = (this._xapis[server.id] = new Xapi({ @@ -311,7 +311,7 @@ export default class { return { httpRequest: this._xo.httpRequest.bind(this), - install () { + install() { objects.on('add', onAddOrUpdate) objects.on('update', onAddOrUpdate) objects.on('remove', onRemove) @@ -319,7 +319,7 @@ export default class { onAddOrUpdate(objects.all) }, - uninstall () { + uninstall() { objects.removeListener('add', onAddOrUpdate) objects.removeListener('update', onAddOrUpdate) objects.removeListener('remove', onRemove) @@ -362,7 +362,7 @@ export default class { ) } - async disconnectXenServer (id) { + async disconnectXenServer(id) { const xapi = this._xapis[id] if (!xapi) { throw noSuchObject(id, 'xenServer') @@ -371,20 +371,20 @@ export default class { delete this._xapis[id] const { pool } = xapi - if (pool) { - delete this._xapisByPool[pool.id] + if (pool !== null) { + delete this._xapisByPool[pool.uuid] } xapi.xo.uninstall() return xapi.disconnect() } - getAllXapis () { + getAllXapis() { return this._xapis } // Returns the XAPI connection associated to an object. - getXapi (object, type) { + getXapi(object, type) { if (isString(object)) { object = this._xo.getObject(object, type) } @@ -402,7 +402,7 @@ export default class { return xapi } - async getAllXenServers () { + async getAllXenServers() { const servers = await this._servers.get() const xapis = this._xapis forEach(servers, server => { @@ -423,19 +423,19 @@ export default class { return servers } - getXapiVmStats (vmId, granularity) { + getXapiVmStats(vmId, granularity) { return this._stats.getVmStats(this.getXapi(vmId), vmId, granularity) } - getXapiHostStats (hostId, granularity) { + getXapiHostStats(hostId, granularity) { return this._stats.getHostStats(this.getXapi(hostId), hostId, granularity) } - getXapiSrStats (srId, granularity) { + getXapiSrStats(srId, granularity) { return this._stats.getSrStats(this.getXapi(srId), srId, granularity) } - async mergeXenPools (sourceId, targetId, force = false) { + async mergeXenPools(sourceId, targetId, force = false) { const sourceXapi = this.getXapi(sourceId) const { _auth: { user, password }, From 197768875b4a75b73a525ef53b2718cbfdd046f8 Mon Sep 17 00:00:00 2001 From: badrAZ Date: Tue, 27 Nov 2018 10:21:39 +0100 Subject: [PATCH 2/3] fix error --- packages/xo-server/src/xo-mixins/xen-servers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/xo-server/src/xo-mixins/xen-servers.js b/packages/xo-server/src/xo-mixins/xen-servers.js index fd994947c..9db96f453 100644 --- a/packages/xo-server/src/xo-mixins/xen-servers.js +++ b/packages/xo-server/src/xo-mixins/xen-servers.js @@ -372,7 +372,7 @@ export default class { const { pool } = xapi if (pool !== null) { - delete this._xapisByPool[pool.uuid] + delete this._xapisByPool[pool.$id] } xapi.xo.uninstall() From 76c5ced1dd36016a4db3799df1e8d9d9f399f71f Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 27 Nov 2018 10:23:46 +0100 Subject: [PATCH 3/3] Update xen-servers.js --- packages/xo-server/src/xo-mixins/xen-servers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/xo-server/src/xo-mixins/xen-servers.js b/packages/xo-server/src/xo-mixins/xen-servers.js index 9db96f453..7c4f204cf 100644 --- a/packages/xo-server/src/xo-mixins/xen-servers.js +++ b/packages/xo-server/src/xo-mixins/xen-servers.js @@ -371,7 +371,7 @@ export default class { delete this._xapis[id] const { pool } = xapi - if (pool !== null) { + if (pool != null) { delete this._xapisByPool[pool.$id] }