Various updates.

This commit is contained in:
Julien Fontanet 2013-10-09 15:24:28 +02:00
parent 02ae845bab
commit 3ca027fa69
2 changed files with 21 additions and 27 deletions

View File

@ -585,11 +585,8 @@ Api.fn.xapi = {
throw Api.err.NO_SUCH_OBJECT; throw Api.err.NO_SUCH_OBJECT;
} }
return xobjs.pool.first(vm.get('pool_uuid')); var xapi = xo.connections[vm.get('pool')];
}).then(function (pool) { return xapi.call('VM.pause', p_id);
var xapi = xo.connections[pool.get('uuid')];
return xapi.call('VM.pause', vm.get('ref'));
}).thenResolve(true); }).thenResolve(true);
}, },
@ -601,9 +598,10 @@ Api.fn.xapi = {
} }
var xo = this.xo; var xo = this.xo;
var xobjs = xo.xobjs;
var vm; var vm;
return this.checkPermission(session, 'write').then(function () { return this.checkPermission(session, 'write').then(function () {
return xo.vms.first(p_id); return xobjs.VM.first(p_id);
}).then(function (tmp) { }).then(function (tmp) {
vm = tmp; vm = tmp;
@ -612,11 +610,8 @@ Api.fn.xapi = {
throw Api.err.NO_SUCH_OBJECT; throw Api.err.NO_SUCH_OBJECT;
} }
return xo.pools.first(vm.get('pool_uuid')); var xapi = xo.connections[vm.get('pool')];
}).then(function (pool) { return xapi.call('VM.unpause', p_id);
var xapi = xo.connections[pool.get('uuid')];
return xapi.call('VM.unpause', vm.get('ref'));
}).thenResolve(true); }).thenResolve(true);
}, },
@ -628,9 +623,10 @@ Api.fn.xapi = {
} }
var xo = this.xo; var xo = this.xo;
var xobjs = xo.xobjs;
var vm; var vm;
return this.checkPermission(session, 'write').then(function () { return this.checkPermission(session, 'write').then(function () {
return xo.vms.first(p_id); return xobjs.VM.first(p_id);
}).then(function (tmp) { }).then(function (tmp) {
vm = tmp; vm = tmp;
@ -639,12 +635,10 @@ Api.fn.xapi = {
throw Api.err.NO_SUCH_OBJECT; throw Api.err.NO_SUCH_OBJECT;
} }
return xo.pools.first(vm.get('pool_uuid')); var xapi = xo.connections[vm.get('pool')];
}).then(function (pool) {
var xapi = xo.connections[pool.get('uuid')];
// @todo If XS tools are unavailable, do a hard reboot. // @todo If XS tools are unavailable, do a hard reboot.
return xapi.call('VM.clean_reboot', vm.get('ref')); return xapi.call('VM.clean_reboot', p_id);
}).thenResolve(true); }).thenResolve(true);
}, },
@ -656,9 +650,10 @@ Api.fn.xapi = {
} }
var xo = this.xo; var xo = this.xo;
var xobjs = xo.xobjs;
var vm; var vm;
return this.checkPermission(session, 'write').then(function () { return this.checkPermission(session, 'write').then(function () {
return xo.vms.first(p_id); return xobjs.VM.first(p_id);
}).then(function (tmp) { }).then(function (tmp) {
vm = tmp; vm = tmp;
@ -667,12 +662,10 @@ Api.fn.xapi = {
throw Api.err.NO_SUCH_OBJECT; throw Api.err.NO_SUCH_OBJECT;
} }
return xo.pools.first(vm.get('pool_uuid')); var xapi = xo.connections[vm.get('pool')];
}).then(function (pool) {
var xapi = xo.connections[pool.get('uuid')];
// @todo If XS tools are unavailable, do a hard shutdown. // @todo If XS tools are unavailable, do a hard shutdown.
return xapi.call('VM.clean_shutdown', vm.get('ref')); return xapi.call('VM.clean_shutdown', p_id);
}).thenResolve(true); }).thenResolve(true);
}, },
@ -686,9 +679,10 @@ Api.fn.xapi = {
} }
var xo = this.xo; var xo = this.xo;
var xobjs = xo.xobjs;
var vm; var vm;
return this.checkPermission(session, 'write').then(function () { return this.checkPermission(session, 'write').then(function () {
return xo.vms.first(p_id); return xobjs.VM.first(p_id);
}).then(function (tmp) { }).then(function (tmp) {
vm = tmp; vm = tmp;
@ -697,11 +691,8 @@ Api.fn.xapi = {
throw Api.err.NO_SUCH_OBJECT; throw Api.err.NO_SUCH_OBJECT;
} }
return xo.pools.first(vm.get('pool_uuid')); var xapi = xo.connections[vm.get('pool')];
}).then(function (pool) { return xapi.call('VM.start', p_id, false, false);
var xapi = xo.connections[pool.get('uuid')];
return xapi.call('VM.start', vm.get('ref'), false, false);
}).thenResolve(true); }).thenResolve(true);
}, },
}, },

View File

@ -249,6 +249,8 @@ Xo.prototype.start = function (cfg) {
'indexes': ['email'], 'indexes': ['email'],
}); });
xo.connections = {};
xo.xclasses = [ xo.xclasses = [
'console', 'console',
'crashdump', 'crashdump',
@ -292,6 +294,7 @@ Xo.prototype.start = function (cfg) {
var connect = function (server) { var connect = function (server) {
var pool_id = server.id; var pool_id = server.id;
var xapi = new Xapi(server.host, server.username, server.password); var xapi = new Xapi(server.host, server.username, server.password);
xo.connections[pool_id] = xapi;
var xclasses = xo.xclasses; var xclasses = xo.xclasses;
var xobjs = xo.xobjs; var xobjs = xo.xobjs;