]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/window/Migrate.js
do not show current node in migration window
[pve-manager.git] / www / manager6 / window / Migrate.js
1 Ext.define('PVE.window.Migrate', {
2 extend: 'Ext.window.Window',
3
4 resizable: false,
5
6 migrate: function(target, online) {
7 var me = this;
8 PVE.Utils.API2Request({
9 params: { target: target, online: online },
10 url: '/nodes/' + me.nodename + '/' + me.vmtype + '/' + me.vmid + "/migrate",
11 waitMsgTarget: me,
12 method: 'POST',
13 failure: function(response, opts) {
14 Ext.Msg.alert(gettext('Error'), response.htmlStatus);
15 },
16 success: function(response, options) {
17 var upid = response.result.data;
18
19 var win = Ext.create('PVE.window.TaskViewer', {
20 upid: upid
21 });
22 win.show();
23 me.close();
24 }
25 });
26 },
27
28 initComponent : function() {
29 var me = this;
30
31 if (!me.nodename) {
32 throw "no node name specified";
33 }
34
35 if (!me.vmid) {
36 throw "no VM ID specified";
37 }
38
39 if (!me.vmtype) {
40 throw "no VM type specified";
41 }
42
43 var running = false;
44 var vmrec = PVE.data.ResourceStore.findRecord('vmid', me.vmid,
45 0, false, false, true);
46 if (vmrec && vmrec.data && vmrec.data.running) {
47 running = true;
48 }
49
50 me.formPanel = Ext.create('Ext.form.Panel', {
51 bodyPadding: 10,
52 border: false,
53 fieldDefaults: {
54 labelWidth: 100,
55 anchor: '100%'
56 },
57 items: [
58 {
59 xtype: 'pveNodeSelector',
60 name: 'target',
61 fieldLabel: gettext('Target node'),
62 allowBlank: false,
63 disallowedNodes: [me.nodename],
64 onlineValidator: true
65 },
66 {
67 xtype: 'pvecheckbox',
68 name: 'online',
69 uncheckedValue: 0,
70 defaultValue: 0,
71 checked: running,
72 fieldLabel: gettext('Online')
73 }
74 ]
75 });
76
77 var form = me.formPanel.getForm();
78
79 var submitBtn = Ext.create('Ext.Button', {
80 text: gettext('Migrate'),
81 handler: function() {
82 var values = form.getValues();
83 me.migrate(values.target, values.online);
84 }
85 });
86
87 Ext.apply(me, {
88 title: gettext('Migrate') + ((me.vmtype === 'qemu')?' VM ':' CT ') + me.vmid,
89 width: 350,
90 modal: true,
91 layout: 'auto',
92 border: false,
93 items: [ me.formPanel ],
94 buttons: [ submitBtn ]
95 });
96
97 me.callParent();
98 }
99 });