extend: 'Ext.grid.GridPanel',
alias: ['widget.pveHAStatusView'],
+ onlineHelp: 'chapter_ha_manager',
+
sortPriority: {
quorum: 1,
master: 2,
lrm: 3,
- service: 4
+ service: 4,
},
-
- initComponent : function() {
+
+ initComponent: function() {
var me = this;
- me.rstore = Ext.create('PVE.data.ObjectStore', {
- interval: me.interval,
- model: 'pve-ha-status',
- storeid: 'pve-store-' + (++Ext.idSeed),
- groupField: 'type',
- proxy: {
- type: 'pve',
- url: '/api2/json/cluster/ha/status/current'
- }
- });
+ if (!me.rstore) {
+ throw "no rstore given";
+ }
- PVE.Utils.monStoreErrors(me, me.rstore);
+ Proxmox.Utils.monStoreErrors(me, me.rstore);
- var store = Ext.create('PVE.data.DiffStore', {
+ var store = Ext.create('Proxmox.data.DiffStore', {
rstore: me.rstore,
sortAfterUpdate: true,
sorters: [{
var p1 = me.sortPriority[rec1.data.type];
var p2 = me.sortPriority[rec2.data.type];
return (p1 !== p2) ? ((p1 > p2) ? 1 : -1) : 0;
- }
- }]
+ },
+ }],
+ filters: {
+ property: 'type',
+ value: 'service',
+ operator: '!=',
+ },
});
Ext.apply(me, {
store: store,
stateful: false,
viewConfig: {
- trackOver: false
+ trackOver: false,
},
columns: [
{
header: gettext('Type'),
width: 80,
- dataIndex: 'type'
+ dataIndex: 'type',
},
{
header: gettext('Status'),
width: 80,
flex: 1,
- dataIndex: 'status'
- }
- ]
+ dataIndex: 'status',
+ },
+ ],
});
me.callParent();
me.on('activate', me.rstore.startUpdate);
- me.on('hide', me.rstore.stopUpdate);
- me.on('destroy', me.rstore.stopUpdate);
-
- }
+ me.on('destroy', me.rstore.stopUpdate);
+ },
}, function() {
-
Ext.define('pve-ha-status', {
extend: 'Ext.data.Model',
- fields: [
- 'id', 'type', 'node', 'status', 'sid'
+ fields: [
+ 'id', 'type', 'node', 'status', 'sid',
+ 'state', 'group', 'comment',
+ 'max_restart', 'max_relocate', 'type',
+ 'crm_state', 'request_state',
+ {
+ name: 'vname',
+ convert: function(value, record) {
+ let sid = record.data.sid;
+ if (!sid) return '';
+
+ let res = sid.match(/^(\S+):(\S+)$/);
+ if (res[1] !== 'vm' && res[1] !== 'ct') {
+ return '-';
+ }
+ let vmid = res[2];
+ return PVE.data.ResourceStore.guestName(vmid);
+ },
+ },
],
- idProperty: 'id'
+ idProperty: 'id',
});
-
});