]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/window/Migrate.js
rename manager5 to manager6
[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: 'PVE.form.NodeSelector',
60 name: 'target',
61 fieldLabel: gettext('Target node'),
62 allowBlank: false,
63 onlineValidator: true
64 },
65 {
66 xtype: 'pvecheckbox',
67 name: 'online',
68 uncheckedValue: 0,
69 defaultValue: 0,
70 checked: running,
71 fieldLabel: gettext('Online')
72 }
73 ]
74 });
75
76 var form = me.formPanel.getForm();
77
78 var submitBtn = Ext.create('Ext.Button', {
79 text: gettext('Migrate'),
80 handler: function() {
81 var values = form.getValues();
82 me.migrate(values.target, values.online);
83 }
84 });
85
86 Ext.apply(me, {
87 title: gettext('Migrate') + ' VM ' + me.vmid,
88 width: 350,
89 modal: true,
90 layout: 'auto',
91 border: false,
92 items: [ me.formPanel ],
93 buttons: [ submitBtn ]
94 });
95
96 me.callParent();
97 }
98 });