showProgress: true,
setNode: function(nodename) {
- var me = this;
-
+ let me = this;
me.nodename = nodename;
- me.url = "/nodes/" + nodename + "/ceph/" + me.type + "/" + nodename;
+ me.url = `/nodes/${nodename}/ceph/${me.type}/${nodename}`;
},
method: 'POST',
allowBlank: false,
listeners: {
change: function(f, value) {
- var me = this.up('pveCephCreateService');
- me.setNode(value);
+ let view = this.up('pveCephCreateService');
+ view.setNode(value);
},
},
},
],
initComponent: function() {
- var me = this;
+ let me = this;
if (!me.nodename) {
throw "no node name specified";
}
-
if (!me.type) {
throw "no type specified";
}
-
me.setNode(me.nodename);
me.callParent();
xclass: 'Ext.app.ViewController',
render_version: function(value, metadata, rec) {
- let me = this.getView();
- let host = rec.data.host;
- let icon = "";
- let v = value;
- let nodev = [0];
- if (me.nodeversions[host] !== undefined) {
- nodev = me.nodeversions[host].version.parts;
+ let view = this.getView();
+ let host = rec.data.host, nodev = [0];
+ if (view.nodeversions[host] !== undefined) {
+ nodev = view.nodeversions[host].version.parts;
}
- let maxv = me.maxversion;
- if (PVE.Utils.compare_ceph_versions(maxv, nodev) > 0) {
+ let icon = '';
+ if (PVE.Utils.compare_ceph_versions(view.maxversion, nodev) > 0) {
icon = PVE.Utils.get_ceph_icon_html('HEALTH_UPGRADE');
- } else if (PVE.Utils.compare_ceph_versions(nodev, v) > 0) {
+ } else if (PVE.Utils.compare_ceph_versions(nodev, value) > 0) {
icon = PVE.Utils.get_ceph_icon_html('HEALTH_OLD');
- } else if (me.mixedversions) {
+ } else if (view.mixedversions) {
icon = PVE.Utils.get_ceph_icon_html('HEALTH_OK');
}
-
- return icon + v;
+ return icon + value;
},
getMaxVersions: function(store, records, success) {
view.nodeversions = records[0].data.node;
view.maxversion = [];
view.mixedversions = false;
- for (const [nodename, data] of Object.entries(view.nodeversions)) {
+ for (const [_nodename, data] of Object.entries(view.nodeversions)) {
let res = PVE.Utils.compare_ceph_versions(data.version.parts, view.maxversion);
if (res !== 0 && view.maxversion.length > 0) {
view.mixedversions = true;
view.versionsstore = Ext.create('Proxmox.data.UpdateStore', {
autoStart: true,
interval: 10000,
- storeid: 'ceph-versions-' + view.type + '-list' + view.nodename,
+ storeid: `ceph-versions-${view.type}-list${view.nodename}`,
proxy: {
type: 'proxmox',
url: "/api2/json/cluster/ceph/metadata?scope=versions",
},
});
-
view.versionsstore.on('load', this.getMaxVersions, this);
view.on('destroy', view.versionsstore.stopUpdate);
view.rstore = Ext.create('Proxmox.data.UpdateStore', {
autoStart: true,
interval: 3000,
- storeid: 'ceph-' + view.type + '-list' + view.nodename,
+ storeid: `ceph-${view.type}-list${view.nodename}`,
model: 'ceph-service-list',
proxy: {
type: 'proxmox',
- url: "/api2/json/nodes/" + view.nodename + "/ceph/" + view.type,
+ url: `/api2/json/nodes/${view.nodename}/ceph/${view.type}`,
},
});
},
service_cmd: function(rec, cmd) {
- var view = this.getView();
+ let view = this.getView();
if (!rec.data.host) {
Ext.Msg.alert(gettext('Error'), "entry has no host");
return;
}
Proxmox.Utils.API2Request({
- url: "/nodes/" + rec.data.host + "/ceph/" + cmd,
+ url: `/nodes/${rec.data.host}/ceph/${cmd}`,
method: 'POST',
params: { service: view.type + '.' + rec.data.name },
success: function(response, options) {
- var upid = response.result.data;
- var win = Ext.create('Proxmox.window.TaskProgress', {
- upid: upid,
- taskDone: function() {
- view.rstore.load();
- },
+ Ext.create('Proxmox.window.TaskProgress', {
+ autoShow: true,
+ upid: response.result.data,
+ taskDone: () => view.rstore.load(),
});
- win.show();
- },
- failure: function(response, opts) {
- Ext.Msg.alert(gettext('Error'), response.htmlStatus);
},
+ failure: (response, _opts) => Ext.Msg.alert(gettext('Error'), response.htmlStatus),
});
},
- onChangeService: function(btn) {
- var me = this;
- var view = this.getView();
- var cmd = btn.action;
- var rec = view.getSelection()[0];
- me.service_cmd(rec, cmd);
+ onChangeService: function(button) {
+ let me = this;
+ let record = me.getView().getSelection()[0];
+ me.service_cmd(record, button.action);
},
showSyslog: function() {
- var view = this.getView();
- var rec = view.getSelection()[0];
- var servicename = 'ceph-' + view.type + '@' + rec.data.name;
- var url = "/api2/extjs/nodes/" + rec.data.host + "/syslog?service=" + encodeURIComponent(servicename);
- var win = Ext.create('Ext.window.Window', {
- title: gettext('Syslog') + ': ' + servicename,
+ let view = this.getView();
+ let rec = view.getSelection()[0];
+ let service = `ceph-${view.type}@${rec.data.name}`;
+ Ext.create('Ext.window.Window', {
+ title: `${gettext('Syslog')}: ${service}`,
+ autoShow: true,
modal: true,
width: 800,
height: 400,
layout: 'fit',
items: [{
xtype: 'proxmoxLogView',
- url: url,
+ url: `/api2/extjs/nodes/${rec.data.host}/syslog?service=${encodeURIComponent(service)}`,
log_select_timespan: 1,
}],
});
- win.show();
},
onCreate: function() {
- var view = this.getView();
- var win = Ext.create('PVE.CephCreateService', {
+ let view = this.getView();
+ Ext.create('PVE.CephCreateService', {
autoShow: true,
nodename: view.nodename,
subject: view.getTitle(),
type: view.type,
- taskDone: function() {
- view.rstore.load();
- },
+ taskDone: () => view.rstore.load(),
});
},
},
iconCls: 'fa fa-play',
action: 'start',
disabled: true,
- enableFn: function(rec) {
- return rec.data.state === 'stopped' ||
- rec.data.state === 'unknown';
- },
+ enableFn: rec => rec.data.state === 'stopped' || rec.data.state === 'unknown',
handler: 'onChangeService',
},
{
text: gettext('Stop'),
iconCls: 'fa fa-stop',
action: 'stop',
- enableFn: function(rec) {
- return rec.data.state !== 'stopped';
- },
+ enableFn: rec => rec.data.state !== 'stopped',
disabled: true,
handler: 'onChangeService',
},
iconCls: 'fa fa-refresh',
action: 'restart',
disabled: true,
- enableFn: function(rec) {
- return rec.data.state !== 'stopped';
- },
+ enableFn: rec => rec.data.state !== 'stopped',
handler: 'onChangeService',
},
'-',
text: gettext('Destroy'),
xtype: 'proxmoxStdRemoveButton',
getUrl: function(rec) {
- var view = this.up('grid');
+ let view = this.up('grid');
if (!rec.data.host) {
- Ext.Msg.alert(gettext('Error'), "entry has no host");
- return;
+ Ext.Msg.alert(gettext('Error'), "entry has no host, cannot build API url");
+ return '';
}
- return "/nodes/" + rec.data.host + "/ceph/" + view.type + "/" + rec.data.name;
+ return `/nodes/${rec.data.host}/ceph/${view.type}/${rec.data.name}`;
},
callback: function(options, success, response) {
- var view = this.up('grid');
+ let view = this.up('grid');
if (!success) {
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
return;
}
- var upid = response.result.data;
- var win = Ext.create('Proxmox.window.TaskProgress', {
- upid: upid,
- taskDone: function() {
- view.rstore.load();
- },
+ Ext.create('Proxmox.window.TaskProgress', {
+ autoShow: true,
+ upid: response.result.data,
+ taskDone: () => view.rstore.load(),
});
- win.show();
},
},
'-',
],
initComponent: function() {
- var me = this;
+ let me = this;
if (me.additionalColumns) {
me.columns = me.columns.concat(me.additionalColumns);
}, function() {
Ext.define('ceph-service-list', {
extend: 'Ext.data.Model',
- fields: ['addr', 'name', 'rank', 'host', 'quorum', 'state',
- 'ceph_version', 'ceph_version_short',
+ fields: [
+ 'addr',
+ 'name',
+ 'rank',
+ 'host',
+ 'quorum',
+ 'state',
+ 'ceph_version',
+ 'ceph_version_short',
{
- type: 'string', name: 'version', calculate: function(data) {
- return PVE.Utils.parse_ceph_version(data);
+ type: 'string',
+ name: 'version',
+ calculate: data => PVE.Utils.parse_ceph_version(data),
},
-},
],
idProperty: 'name',
});