[pve-devel] [PATCH manager v2 3/7] add GuestStatusView and TemplateStatusView
Dominik Csapak
d.csapak at proxmox.com
Fri Aug 19 10:47:49 CEST 2016
this implements the new StatusView class for
guests and templates
using the new pveStatusView, we do not split the status
panels per lxc/qemu, but for Template/Guest
this makes more sense, since the information which lxc
and qemu guests have are more similar than what you want
to display for templates/guests
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
changes from v1:
changed width from 394 to 398
added explaining comments
www/manager6/panel/GuestStatusView.js | 94 ++++++++++++++++++++++++++++++++
www/manager6/panel/TemplateStatusView.js | 69 +++++++++++++++++++++++
2 files changed, 163 insertions(+)
create mode 100644 www/manager6/panel/GuestStatusView.js
create mode 100644 www/manager6/panel/TemplateStatusView.js
diff --git a/www/manager6/panel/GuestStatusView.js b/www/manager6/panel/GuestStatusView.js
new file mode 100644
index 0000000..9e86ddf
--- /dev/null
+++ b/www/manager6/panel/GuestStatusView.js
@@ -0,0 +1,94 @@
+Ext.define('PVE.panel.GuestStatusView', {
+ extend: 'PVE.panel.StatusView',
+ alias: 'widget.pveGuestStatusView',
+
+ height: 300,
+
+ defaults: {
+ xtype: 'pveInfoWidget',
+ padding: '0 30 5 30',
+ // parent panel is 400 wide
+ // minus 2 pixels for the border
+ width: 398
+ },
+ items: [
+ {
+ xtype: 'box',
+ height: 30
+ },
+ {
+ itemId: 'status',
+ title: gettext('Status'),
+ printBar: false,
+ textField: 'status'
+ },
+ {
+ itemId: 'hamanaged',
+ title: gettext('Managed by HA'),
+ printBar: false,
+ textField: 'ha',
+ renderer: PVE.Utils.format_ha
+ },
+ {
+ itemId: 'node',
+ title: gettext('Node'),
+ printBar: false
+ },
+ {
+ xtype: 'box',
+ height: 20
+ },
+ {
+ itemId: 'cpu',
+ title: gettext('CPU usage'),
+ valueField: 'cpu',
+ maxField: 'cpus',
+ renderer: PVE.Utils.render_cpu_usage,
+ // in this specific api call
+ // we already have the correct value for the usage
+ calculate: Ext.identityFn
+ },
+ {
+ itemId: 'memory',
+ title: gettext('Memory usage'),
+ valueField: 'mem',
+ maxField: 'maxmem'
+ },
+ {
+ itemId: 'swap',
+ title: gettext('SWAP usage'),
+ valueField: 'swap',
+ maxField: 'maxswap'
+ },
+ {
+ itemId: 'rootfs',
+ title: gettext('Bootdisk Size'),
+ textField: 'maxdisk',
+ printBar: false,
+ renderer: PVE.Utils.render_size
+ }
+ ],
+
+ updateTitle: function() {
+ var me = this;
+ var uptime = me.getRecordValue('uptime');
+
+ var text = "";
+ if (Number(uptime) > 0) {
+ text = " (" + gettext('Uptime') + ': ' + PVE.Utils.format_duration_long(uptime)
+ + ')';
+ }
+
+ me.setTitle(me.getRecordValue('name') + text);
+ },
+
+ initComponent: function() {
+ var me = this;
+
+ me.callParent();
+ if (me.pveSelNode.data.type !== 'lxc') {
+ me.remove(me.getComponent('swap'));
+ }
+ me.getComponent('node').updateValue(me.pveSelNode.data.node);
+ }
+});
diff --git a/www/manager6/panel/TemplateStatusView.js b/www/manager6/panel/TemplateStatusView.js
new file mode 100644
index 0000000..5226996
--- /dev/null
+++ b/www/manager6/panel/TemplateStatusView.js
@@ -0,0 +1,69 @@
+Ext.define('PVE.panel.TemplateStatusView',{
+ extend: 'PVE.panel.StatusView',
+ alias: 'widget.pveTemplateStatusView',
+
+ defaults: {
+ xtype: 'pveInfoWidget',
+ printBar: false,
+ padding: '5 0 0 20',
+ width: 400
+ },
+ items: [
+ {
+ xtype: 'box',
+ padding: '20 0 0 0'
+ },
+ {
+ itemId: 'node',
+ title: gettext('Node')
+ },
+ {
+ xtype: 'box',
+ padding: '20 0 0 0'
+ },
+ {
+ itemId: 'cpus',
+ title: gettext('Processors'),
+ textField: 'cpus'
+ },
+ {
+ itemId: 'memory',
+ title: gettext('Memory'),
+ textField: 'maxmem',
+ renderer: PVE.Utils.render_size
+ },
+ {
+ itemId: 'swap',
+ title: gettext('Swap'),
+ textField: 'maxswap',
+ renderer: PVE.Utils.render_size
+ },
+ {
+ itemId: 'disk',
+ title: gettext('Bootdisk size'),
+ textField: 'maxdisk',
+ renderer: PVE.Utils.render_size
+ },
+ {
+ xtype: 'box',
+ padding: '25 0 0 0'
+ }
+ ],
+
+ initComponent: function() {
+ var me = this;
+
+ var name = me.pveSelNode.data.name;
+ if (!name) {
+ throw "no name specified";
+ }
+
+ me.title = name;
+
+ me.callParent();
+ if (me.pveSelNode.data.type !== 'lxc') {
+ me.remove(me.getComponent('swap'));
+ }
+ me.getComponent('node').updateValue(me.pveSelNode.data.node);
+ }
+});
--
2.1.4
More information about the pve-devel
mailing list