From e893439e32653e970d9f08fd56ad4ccbeb890bff Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Thu, 27 Sep 2012 08:13:51 +0200 Subject: [PATCH] use API call to get next free VMID We cant use the ResourceStore, because it only contains VM accessable for actual user. --- www/manager/data/ResourceStore.js | 11 ----------- www/manager/form/VMIDSelector.js | 12 ++++++++++++ www/manager/openvz/CreateWizard.js | 5 ++--- www/manager/qemu/CreateWizard.js | 5 ++--- www/manager/window/Restore.js | 3 ++- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/www/manager/data/ResourceStore.js b/www/manager/data/ResourceStore.js index 34c0b72a..8910c38a 100644 --- a/www/manager/data/ResourceStore.js +++ b/www/manager/data/ResourceStore.js @@ -2,22 +2,11 @@ Ext.define('PVE.data.ResourceStore', { extend: 'PVE.data.UpdateStore', singleton: true, - findNextVMID: function() { - var me = this, i; - - for (i = 100; i < 10000; i++) { - if (me.findExact('vmid', i) < 0) { - return i; - } - } - }, - findVMID: function(vmid) { var me = this, i; return (me.findExact('vmid', parseInt(vmid, 10)) >= 0); }, - constructor: function(config) { // fixme: how to avoid those warnings diff --git a/www/manager/form/VMIDSelector.js b/www/manager/form/VMIDSelector.js index dc6414fd..e2de2292 100644 --- a/www/manager/form/VMIDSelector.js +++ b/www/manager/form/VMIDSelector.js @@ -10,6 +10,8 @@ Ext.define('PVE.form.VMIDSelector', { validateExists: undefined, + loadNextFreeVMID: false, + initComponent: function() { var me = this; @@ -40,5 +42,15 @@ Ext.define('PVE.form.VMIDSelector', { }); me.callParent(); + + if (me.loadNextFreeVMID) { + PVE.Utils.API2Request({ + url: '/cluster/nextid', + method: 'GET', + success: function(response, opts) { + me.setRawValue(response.result.data); + } + }); + } } }); diff --git a/www/manager/openvz/CreateWizard.js b/www/manager/openvz/CreateWizard.js index 65b882ea..d30f743b 100644 --- a/www/manager/openvz/CreateWizard.js +++ b/www/manager/openvz/CreateWizard.js @@ -5,8 +5,6 @@ Ext.define('PVE.openvz.CreateWizard', { initComponent: function() { var me = this; - var nextvmid = PVE.data.ResourceStore.findNextVMID(); - var summarystore = Ext.create('Ext.data.Store', { model: 'KeyValue', sorters: [ @@ -79,7 +77,8 @@ Ext.define('PVE.openvz.CreateWizard', { { xtype: 'pveVMIDSelector', name: 'vmid', - value: nextvmid, + value: '', + loadNextFreeVMID: true, validateExists: false }, { diff --git a/www/manager/qemu/CreateWizard.js b/www/manager/qemu/CreateWizard.js index 8d156d1c..50f36969 100644 --- a/www/manager/qemu/CreateWizard.js +++ b/www/manager/qemu/CreateWizard.js @@ -6,8 +6,6 @@ Ext.define('PVE.qemu.CreateWizard', { initComponent: function() { var me = this; - var nextvmid = PVE.data.ResourceStore.findNextVMID(); - var summarystore = Ext.create('Ext.data.Store', { model: 'KeyValue', sorters: [ @@ -59,7 +57,8 @@ Ext.define('PVE.qemu.CreateWizard', { { xtype: 'pveVMIDSelector', name: 'vmid', - value: nextvmid, + value: '', + loadNextFreeVMID: true, validateExists: false }, { diff --git a/www/manager/window/Restore.js b/www/manager/window/Restore.js index 5285ecdc..da5a2591 100644 --- a/www/manager/window/Restore.js +++ b/www/manager/window/Restore.js @@ -45,7 +45,8 @@ Ext.define('PVE.window.Restore', { xtype: me.vmid ? 'displayfield' : 'pveVMIDSelector', name: 'vmid', fieldLabel: 'VM ID', - value: me.vmid || PVE.data.ResourceStore.findNextVMID(), + value: me.vmid, + loadNextFreeVMID: me.vmid ? false: true, validateExists: false } ]