]>
git.proxmox.com Git - pve-manager.git/blob - www/manager/qemu/Config.js
1 Ext
.define('PVE.qemu.Config', {
2 extend
: 'PVE.panel.Config',
3 alias
: 'widget.PVE.qemu.Config',
5 initComponent: function() {
8 var nodename
= me
.pveSelNode
.data
.node
;
10 throw "no node name specified";
13 var vmid
= me
.pveSelNode
.data
.vmid
;
15 throw "no VM ID specified";
18 me
.statusStore
= Ext
.create('PVE.data.ObjectStore', {
19 url
: "/api2/json/nodes/" + nodename
+ "/qemu/" + vmid
+ "/status/current",
23 var vm_command = function(cmd
, params
) {
24 PVE
.Utils
.API2Request({
26 url
: '/nodes/' + nodename
+ '/qemu/' + vmid
+ "/status/" + cmd
,
29 failure: function(response
, opts
) {
30 Ext
.Msg
.alert('Error', response
.htmlStatus
);
35 var startBtn
= Ext
.create('Ext.Button', {
36 text
: gettext('Start'),
42 var stopBtn
= Ext
.create('PVE.button.Button', {
43 text
: gettext('Stop'),
44 confirmMsg
: Ext
.String
.format(gettext("Do you really want to stop VM {0}?"), vmid
),
46 vm_command("stop", { timeout
: 30 });
50 var migrateBtn
= Ext
.create('Ext.Button', {
51 text
: gettext('Migrate'),
53 var win
= Ext
.create('PVE.window.Migrate', {
62 var resetBtn
= Ext
.create('PVE.button.Button', {
63 text
: gettext('Reset'),
64 confirmMsg
: Ext
.String
.format(gettext("Do you really want to reset VM {0}?"), vmid
),
70 var shutdownBtn
= Ext
.create('PVE.button.Button', {
71 text
: gettext('Shutdown'),
72 confirmMsg
: Ext
.String
.format(gettext("Do you really want to shutdown VM {0}?"), vmid
),
74 vm_command('shutdown', { timeout
: 30 });
78 var removeBtn
= Ext
.create('PVE.button.Button', {
79 text
: gettext('Remove'),
80 confirmMsg
: Ext
.String
.format(gettext('Are you sure you want to remove VM {0}? This will permanently erase all VM data.'), vmid
),
82 PVE
.Utils
.API2Request({
83 url
: '/nodes/' + nodename
+ '/qemu/' + vmid
,
86 failure: function(response
, opts
) {
87 Ext
.Msg
.alert('Error', response
.htmlStatus
);
93 var vmname
= me
.pveSelNode
.data
.name
;
95 var consoleBtn
= Ext
.create('Ext.Button', {
96 text
: gettext('Console'),
98 PVE
.Utils
.openConoleWindow('kvm', vmid
, nodename
, vmname
);
102 var descr
= vmid
+ " (" + (vmname
? "'" + vmname
+ "' " : "'VM " + vmid
+ "'") + ")";
105 title
: Ext
.String
.format(gettext("Virtual Machine {0} on node {1}"), descr
, "'" + nodename
+ "'"),
107 tbar
: [ startBtn
, shutdownBtn
, stopBtn
, resetBtn
,
108 removeBtn
, migrateBtn
, consoleBtn
],
109 defaults
: { statusStore
: me
.statusStore
},
112 title
: gettext('Summary'),
113 xtype
: 'pveQemuSummary',
117 title
: gettext('Hardware'),
119 xtype
: 'PVE.qemu.HardwareView'
122 title
: gettext('Options'),
124 xtype
: 'PVE.qemu.Options'
127 title
: gettext('Monitor'),
129 xtype
: 'pveQemuMonitor'
132 title
: gettext('Backup'),
133 xtype
: 'pveBackupView',
138 title
: gettext('Permissions'),
139 itemId
: 'permissions',
147 me
.statusStore
.on('load', function(s
, records
, success
) {
150 me
.workspace
.checkVmMigration(me
.pveSelNode
);
153 var rec
= s
.data
.get('status');
154 status
= rec
? rec
.data
.value
: 'unknown';
157 startBtn
.setDisabled(status
=== 'running');
158 resetBtn
.setDisabled(status
!== 'running');
159 shutdownBtn
.setDisabled(status
!== 'running');
160 stopBtn
.setDisabled(status
=== 'stopped');
161 removeBtn
.setDisabled(status
!== 'stopped');
164 me
.on('afterrender', function() {
165 me
.statusStore
.startUpdate();
168 me
.on('destroy', function() {
169 me
.statusStore
.stopUpdate();