Commit 3eaa25db authored by Dietmar Maurer's avatar Dietmar Maurer

implemente migrate UI

parent 26bcb13b
......@@ -63,6 +63,7 @@ JSSRC= \
node/Tasks.js \
node/Config.js \
qemu/StatusView.js \
qemu/Migrate.js \
qemu/Summary.js \
qemu/OSTypeEdit.js \
qemu/ProcessorEdit.js \
......
Ext.define('PVE.qemu.Migrate', {
extend: 'Ext.window.Window',
resizable: false,
migrate: function(vmid, nodename, target, online) {
var me = this;
PVE.Utils.API2Request({
params: { target: target, online: online },
url: '/nodes/' + nodename + '/qemu/' + vmid + "/migrate",
waitMsgTarget: me,
method: 'POST',
failure: function(response, opts) {
Ext.Msg.alert('Error', response.htmlStatus);
},
success: function(response, options) {
var upid = response.result.data;
var win = Ext.create('PVE.window.TaskViewer', {
upid: upid
});
win.show();
me.close();
me.workspace.selectById('root');
}
});
},
initComponent : function() {
var me = this;
var nodename = me.pveSelNode.data.node;
if (!nodename) {
throw "no node name specified";
}
var vmid = me.pveSelNode.data.vmid;
if (!vmid) {
throw "no VM ID specified";
}
if (!me.workspace) {
throw "no Workspace specified";
}
me.formPanel = Ext.create('Ext.form.Panel', {
bodyPadding: 10,
border: false,
fieldDefaults: {
labelWidth: 100,
anchor: '100%'
},
items: [
{
xtype: 'PVE.form.NodeSelector',
name: 'target',
fieldLabel: 'Target node',
allowBlank: false,
onlineValidator: true
},
{
xtype: 'pvecheckbox',
name: 'online',
uncheckedValue: 0,
defaultValue: 0,
fieldLabel: 'Online'
}
]
});
var form = me.formPanel.getForm();
var submitBtn = Ext.create('Ext.Button', {
text: 'Migrate',
handler: function() {
var values = form.getValues();
console.log("STARTMIGRATE " + vmid + " " + values.target + " " + values.online);
me.migrate(vmid, nodename, values.target, values.online);
}
});
Ext.apply(me, {
title: "Migrate KVM " + vmid,
width: 350,
modal: true,
layout: 'auto',
border: false,
items: [ me.formPanel ],
buttons: [ submitBtn ],
});
me.callParent();
}
});
......@@ -59,6 +59,17 @@ Ext.define('PVE.qemu.Summary', {
});
}
},
{
itemId: 'migrate',
text: 'Migrate',
handler: function() {
var win = Ext.create('PVE.qemu.Migrate', {
pveSelNode: me.pveSelNode,
workspace: me.up('pveStdWorkspace')
});
win.show();
}
},
{
text: 'Reset',
itemId: 'reset',
......
......@@ -103,15 +103,21 @@ Ext.define('PVE.window.TaskViewer', {
border: false
});
var lastStatus = 'unknown';
me.mon(statstore, 'load', function() {
var status = statgrid.getObjectValue('status');
if (status === 'stopped') {
statstore.stopUpdate();
}
if (status === 'running') {
if (status === 'running' || lastStatus === 'running') {
store.load();
}
lastStatus = status;
stop_btn1.setDisabled(status !== 'running');
stop_btn2.setDisabled(status !== 'running');
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment