triggers panel: update migrations
This commit is contained in:
31
dist/panel-triggers/migrations.js
vendored
31
dist/panel-triggers/migrations.js
vendored
@@ -3,22 +3,31 @@
|
||||
System.register([], function (_export, _context) {
|
||||
"use strict";
|
||||
|
||||
var CURRENT_SCHEMA_VERSION;
|
||||
function migratePanelSchema(panel) {
|
||||
if (isEmptyPanel(panel)) {
|
||||
return panel;
|
||||
}
|
||||
|
||||
var schemaVersion = getSchemaVersion(panel);
|
||||
switch (schemaVersion) {
|
||||
case 1:
|
||||
panel.datasources = [panel.datasource];
|
||||
panel.targets = {};
|
||||
panel.targets[panel.datasources[0]] = panel.triggers;
|
||||
panel.schemaVersion = CURRENT_SCHEMA_VERSION;
|
||||
|
||||
// delete old props
|
||||
delete panel.triggers;
|
||||
delete panel.datasource;
|
||||
break;
|
||||
if (schemaVersion < 2) {
|
||||
panel.datasources = [panel.datasource];
|
||||
panel.targets = {};
|
||||
panel.targets[panel.datasources[0]] = panel.triggers;
|
||||
|
||||
// delete old props
|
||||
delete panel.triggers;
|
||||
delete panel.datasource;
|
||||
}
|
||||
|
||||
if (schemaVersion < 3) {
|
||||
// delete old props
|
||||
delete panel.lastChangeField;
|
||||
delete panel.ageField;
|
||||
delete panel.infoField;
|
||||
delete panel.scroll;
|
||||
}
|
||||
|
||||
return panel;
|
||||
@@ -35,7 +44,9 @@ System.register([], function (_export, _context) {
|
||||
}
|
||||
return {
|
||||
setters: [],
|
||||
execute: function () {}
|
||||
execute: function () {
|
||||
CURRENT_SCHEMA_VERSION = 3;
|
||||
}
|
||||
};
|
||||
});
|
||||
//# sourceMappingURL=migrations.js.map
|
||||
|
||||
2
dist/panel-triggers/migrations.js.map
vendored
2
dist/panel-triggers/migrations.js.map
vendored
@@ -1 +1 @@
|
||||
{"version":3,"sources":["../../src/panel-triggers/migrations.js"],"names":["migratePanelSchema","panel","isEmptyPanel","schemaVersion","getSchemaVersion","datasources","datasource","targets","triggers"],"mappings":";;;;;AAAO,WAASA,kBAAT,CAA4BC,KAA5B,EAAmC;AACxC,QAAIC,aAAaD,KAAb,CAAJ,EAAyB;AACvB,aAAOA,KAAP;AACD;;AAED,QAAME,gBAAgBC,iBAAiBH,KAAjB,CAAtB;AACA,YAAQE,aAAR;AACE,WAAK,CAAL;AACEF,cAAMI,WAAN,GAAoB,CAACJ,MAAMK,UAAP,CAApB;AACAL,cAAMM,OAAN,GAAgB,EAAhB;AACAN,cAAMM,OAAN,CAAcN,MAAMI,WAAN,CAAkB,CAAlB,CAAd,IAAsCJ,MAAMO,QAA5C;;AAEA;AACA,eAAOP,MAAMO,QAAb;AACA,eAAOP,MAAMK,UAAb;AACA;AATJ;;AAYA,WAAOL,KAAP;AACD;;gCAnBeD,kB;;AAqBhB,WAASI,gBAAT,CAA0BH,KAA1B,EAAiC;AAC/B,WAAOA,MAAME,aAAN,IAAuB,CAA9B;AACD;;AAED,WAASD,YAAT,CAAsBD,KAAtB,EAA6B;AAC3B,WAAO,CAACA,MAAMK,UAAP,IAAqB,CAACL,MAAMI,WAA5B,IAA2C,CAACJ,MAAMO,QAAlD,IAA8D,CAACP,MAAMM,OAA5E;AACD","file":"migrations.js","sourcesContent":["export function migratePanelSchema(panel) {\n if (isEmptyPanel(panel)) {\n return panel;\n }\n\n const schemaVersion = getSchemaVersion(panel);\n switch (schemaVersion) {\n case 1:\n panel.datasources = [panel.datasource];\n panel.targets = {};\n panel.targets[panel.datasources[0]] = panel.triggers;\n\n // delete old props\n delete panel.triggers;\n delete panel.datasource;\n break;\n }\n\n return panel;\n}\n\nfunction getSchemaVersion(panel) {\n return panel.schemaVersion || 1;\n}\n\nfunction isEmptyPanel(panel) {\n return !panel.datasource && !panel.datasources && !panel.triggers && !panel.targets;\n}\n"]}
|
||||
{"version":3,"sources":["../../src/panel-triggers/migrations.js"],"names":["migratePanelSchema","panel","isEmptyPanel","schemaVersion","getSchemaVersion","CURRENT_SCHEMA_VERSION","datasources","datasource","targets","triggers","lastChangeField","ageField","infoField","scroll"],"mappings":";;;;;;AAGO,WAASA,kBAAT,CAA4BC,KAA5B,EAAmC;AACxC,QAAIC,aAAaD,KAAb,CAAJ,EAAyB;AACvB,aAAOA,KAAP;AACD;;AAED,QAAME,gBAAgBC,iBAAiBH,KAAjB,CAAtB;AACAA,UAAME,aAAN,GAAsBE,sBAAtB;;AAEA,QAAIF,gBAAgB,CAApB,EAAuB;AACrBF,YAAMK,WAAN,GAAoB,CAACL,MAAMM,UAAP,CAApB;AACAN,YAAMO,OAAN,GAAgB,EAAhB;AACAP,YAAMO,OAAN,CAAcP,MAAMK,WAAN,CAAkB,CAAlB,CAAd,IAAsCL,MAAMQ,QAA5C;;AAEA;AACA,aAAOR,MAAMQ,QAAb;AACA,aAAOR,MAAMM,UAAb;AACD;;AAED,QAAIJ,gBAAgB,CAApB,EAAuB;AACrB;AACA,aAAOF,MAAMS,eAAb;AACA,aAAOT,MAAMU,QAAb;AACA,aAAOV,MAAMW,SAAb;AACA,aAAOX,MAAMY,MAAb;AACD;;AAED,WAAOZ,KAAP;AACD;;gCA3BeD,kB;;AA6BhB,WAASI,gBAAT,CAA0BH,KAA1B,EAAiC;AAC/B,WAAOA,MAAME,aAAN,IAAuB,CAA9B;AACD;;AAED,WAASD,YAAT,CAAsBD,KAAtB,EAA6B;AAC3B,WAAO,CAACA,MAAMM,UAAP,IAAqB,CAACN,MAAMK,WAA5B,IAA2C,CAACL,MAAMQ,QAAlD,IAA8D,CAACR,MAAMO,OAA5E;AACD;;;;AArCKH,4B,GAAyB,C","file":"migrations.js","sourcesContent":["// Actual schema version\nconst CURRENT_SCHEMA_VERSION = 3;\n\nexport function migratePanelSchema(panel) {\n if (isEmptyPanel(panel)) {\n return panel;\n }\n\n const schemaVersion = getSchemaVersion(panel);\n panel.schemaVersion = CURRENT_SCHEMA_VERSION;\n\n if (schemaVersion < 2) {\n panel.datasources = [panel.datasource];\n panel.targets = {};\n panel.targets[panel.datasources[0]] = panel.triggers;\n\n // delete old props\n delete panel.triggers;\n delete panel.datasource;\n }\n\n if (schemaVersion < 3) {\n // delete old props\n delete panel.lastChangeField;\n delete panel.ageField;\n delete panel.infoField;\n delete panel.scroll;\n }\n\n return panel;\n}\n\nfunction getSchemaVersion(panel) {\n return panel.schemaVersion || 1;\n}\n\nfunction isEmptyPanel(panel) {\n return !panel.datasource && !panel.datasources && !panel.triggers && !panel.targets;\n}\n"]}
|
||||
26
dist/panel-triggers/specs/migrations.spec.js
vendored
26
dist/panel-triggers/specs/migrations.spec.js
vendored
@@ -10,6 +10,8 @@ describe('Triggers Panel schema migration', () => {
|
||||
get: () => Promise.resolve({})
|
||||
};
|
||||
|
||||
let timeoutMock = () => {};
|
||||
|
||||
beforeEach(() => {
|
||||
ctx = {
|
||||
scope: {
|
||||
@@ -39,29 +41,25 @@ describe('Triggers Panel schema migration', () => {
|
||||
});
|
||||
|
||||
it('should update old panel schema', () => {
|
||||
let updatedPanelCtrl = new TriggerPanelCtrl(ctx.scope, {}, {}, datasourceSrvMock, {}, {}, {});
|
||||
let updatedPanelCtrl = new TriggerPanelCtrl(ctx.scope, {}, timeoutMock, datasourceSrvMock, {}, {}, {});
|
||||
|
||||
let expected = {
|
||||
schemaVersion: 2,
|
||||
schemaVersion: 3,
|
||||
datasources: ['zabbix'],
|
||||
targets: {
|
||||
'zabbix': DEFAULT_TARGET
|
||||
},
|
||||
hostField: true,
|
||||
hostTechNameField: false,
|
||||
statusField: false,
|
||||
severityField: false,
|
||||
lastChangeField: true,
|
||||
ageField: true,
|
||||
infoField: true,
|
||||
hideHostsInMaintenance: false,
|
||||
showTriggers: 'all triggers',
|
||||
sortTriggersBy: { text: 'last change', value: 'lastchange' },
|
||||
showEvents: { text: 'Problems', value: '1' },
|
||||
limit: 10,
|
||||
fontSize: '100%',
|
||||
fontColor: null,
|
||||
pageSize: 10,
|
||||
scroll: true,
|
||||
customLastChangeFormat: false,
|
||||
lastChangeFormat: "",
|
||||
triggerSeverity: DEFAULT_SEVERITY,
|
||||
@@ -77,26 +75,22 @@ describe('Triggers Panel schema migration', () => {
|
||||
let updatedPanelCtrl = new TriggerPanelCtrl(ctx.scope, {}, {}, datasourceSrvMock, {}, {}, {});
|
||||
|
||||
let expected = {
|
||||
schemaVersion: 2,
|
||||
schemaVersion: 3,
|
||||
datasources: ['zabbix_default'],
|
||||
targets: {
|
||||
'zabbix_default': DEFAULT_TARGET
|
||||
},
|
||||
hostField: true,
|
||||
statusField: false,
|
||||
severityField: false,
|
||||
lastChangeField: true,
|
||||
ageField: true,
|
||||
infoField: true,
|
||||
hostTechNameField: false,
|
||||
statusField: true,
|
||||
severityField: true,
|
||||
hideHostsInMaintenance: false,
|
||||
showTriggers: 'all triggers',
|
||||
sortTriggersBy: { text: 'last change', value: 'lastchange' },
|
||||
showEvents: { text: 'Problems', value: '1' },
|
||||
limit: 10,
|
||||
limit: 100,
|
||||
fontSize: '100%',
|
||||
fontColor: null,
|
||||
pageSize: 10,
|
||||
scroll: true,
|
||||
customLastChangeFormat: false,
|
||||
lastChangeFormat: "",
|
||||
triggerSeverity: DEFAULT_SEVERITY,
|
||||
|
||||
10
dist/panel-triggers/specs/panel_ctrl.spec.js
vendored
10
dist/panel-triggers/specs/panel_ctrl.spec.js
vendored
@@ -1,10 +1,13 @@
|
||||
import _ from 'lodash';
|
||||
import {TriggerPanelCtrl} from '../triggers_panel_ctrl';
|
||||
import {PANEL_DEFAULTS, DEFAULT_TARGET} from '../triggers_panel_ctrl';
|
||||
// import { create } from 'domain';
|
||||
|
||||
describe('TriggerPanelCtrl', () => {
|
||||
let ctx = {};
|
||||
let datasourceSrvMock, zabbixDSMock;
|
||||
let timeoutMock = () => {};
|
||||
let createPanelCtrl;
|
||||
|
||||
beforeEach(() => {
|
||||
ctx = {scope: {panel: PANEL_DEFAULTS}};
|
||||
@@ -26,12 +29,13 @@ describe('TriggerPanelCtrl', () => {
|
||||
},
|
||||
get: () => Promise.resolve(zabbixDSMock)
|
||||
};
|
||||
createPanelCtrl = () => new TriggerPanelCtrl(ctx.scope, {}, timeoutMock, datasourceSrvMock, {}, {}, {});
|
||||
});
|
||||
|
||||
describe('When adding new panel', () => {
|
||||
it('should suggest all zabbix data sources', () => {
|
||||
ctx.scope.panel = {};
|
||||
let panelCtrl = new TriggerPanelCtrl(ctx.scope, {}, {}, datasourceSrvMock, {}, {}, {});
|
||||
let panelCtrl = createPanelCtrl();
|
||||
expect(panelCtrl.available_datasources).toEqual([
|
||||
'zabbix_default', 'zabbix'
|
||||
]);
|
||||
@@ -39,7 +43,7 @@ describe('TriggerPanelCtrl', () => {
|
||||
|
||||
it('should load first zabbix data source as default', () => {
|
||||
ctx.scope.panel = {};
|
||||
let panelCtrl = new TriggerPanelCtrl(ctx.scope, {}, {}, datasourceSrvMock, {}, {}, {});
|
||||
let panelCtrl = createPanelCtrl();
|
||||
expect(panelCtrl.panel.datasources).toEqual([
|
||||
'zabbix_default'
|
||||
]);
|
||||
@@ -63,7 +67,7 @@ describe('TriggerPanelCtrl', () => {
|
||||
});
|
||||
|
||||
it('should sort triggers', (done) => {
|
||||
let panelCtrl = new TriggerPanelCtrl(ctx.scope, {}, {}, datasourceSrvMock, {}, {}, {});
|
||||
let panelCtrl = createPanelCtrl();
|
||||
panelCtrl.onRefresh().then(() => {
|
||||
let trigger_ids = _.map(panelCtrl.triggerList, 'triggerid');
|
||||
expect(trigger_ids).toEqual([
|
||||
|
||||
2
dist/panel-triggers/triggers_panel_ctrl.js
vendored
2
dist/panel-triggers/triggers_panel_ctrl.js
vendored
@@ -162,7 +162,7 @@ System.register(['lodash', 'jquery', 'moment', '../datasource-zabbix/utils', 'ap
|
||||
_inherits(TriggerPanelCtrl, _PanelCtrl);
|
||||
|
||||
/** @ngInject */
|
||||
function TriggerPanelCtrl($scope, $injector, $element, $timeout, datasourceSrv, templateSrv, contextSrv, dashboardSrv) {
|
||||
function TriggerPanelCtrl($scope, $injector, $timeout, datasourceSrv, templateSrv, contextSrv, dashboardSrv) {
|
||||
_classCallCheck(this, TriggerPanelCtrl);
|
||||
|
||||
var _this = _possibleConstructorReturn(this, (TriggerPanelCtrl.__proto__ || Object.getPrototypeOf(TriggerPanelCtrl)).call(this, $scope, $injector));
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,19 +1,30 @@
|
||||
// Actual schema version
|
||||
const CURRENT_SCHEMA_VERSION = 3;
|
||||
|
||||
export function migratePanelSchema(panel) {
|
||||
if (isEmptyPanel(panel)) {
|
||||
return panel;
|
||||
}
|
||||
|
||||
const schemaVersion = getSchemaVersion(panel);
|
||||
switch (schemaVersion) {
|
||||
case 1:
|
||||
panel.datasources = [panel.datasource];
|
||||
panel.targets = {};
|
||||
panel.targets[panel.datasources[0]] = panel.triggers;
|
||||
panel.schemaVersion = CURRENT_SCHEMA_VERSION;
|
||||
|
||||
// delete old props
|
||||
delete panel.triggers;
|
||||
delete panel.datasource;
|
||||
break;
|
||||
if (schemaVersion < 2) {
|
||||
panel.datasources = [panel.datasource];
|
||||
panel.targets = {};
|
||||
panel.targets[panel.datasources[0]] = panel.triggers;
|
||||
|
||||
// delete old props
|
||||
delete panel.triggers;
|
||||
delete panel.datasource;
|
||||
}
|
||||
|
||||
if (schemaVersion < 3) {
|
||||
// delete old props
|
||||
delete panel.lastChangeField;
|
||||
delete panel.ageField;
|
||||
delete panel.infoField;
|
||||
delete panel.scroll;
|
||||
}
|
||||
|
||||
return panel;
|
||||
|
||||
@@ -10,6 +10,8 @@ describe('Triggers Panel schema migration', () => {
|
||||
get: () => Promise.resolve({})
|
||||
};
|
||||
|
||||
let timeoutMock = () => {};
|
||||
|
||||
beforeEach(() => {
|
||||
ctx = {
|
||||
scope: {
|
||||
@@ -39,29 +41,25 @@ describe('Triggers Panel schema migration', () => {
|
||||
});
|
||||
|
||||
it('should update old panel schema', () => {
|
||||
let updatedPanelCtrl = new TriggerPanelCtrl(ctx.scope, {}, {}, datasourceSrvMock, {}, {}, {});
|
||||
let updatedPanelCtrl = new TriggerPanelCtrl(ctx.scope, {}, timeoutMock, datasourceSrvMock, {}, {}, {});
|
||||
|
||||
let expected = {
|
||||
schemaVersion: 2,
|
||||
schemaVersion: 3,
|
||||
datasources: ['zabbix'],
|
||||
targets: {
|
||||
'zabbix': DEFAULT_TARGET
|
||||
},
|
||||
hostField: true,
|
||||
hostTechNameField: false,
|
||||
statusField: false,
|
||||
severityField: false,
|
||||
lastChangeField: true,
|
||||
ageField: true,
|
||||
infoField: true,
|
||||
hideHostsInMaintenance: false,
|
||||
showTriggers: 'all triggers',
|
||||
sortTriggersBy: { text: 'last change', value: 'lastchange' },
|
||||
showEvents: { text: 'Problems', value: '1' },
|
||||
limit: 10,
|
||||
fontSize: '100%',
|
||||
fontColor: null,
|
||||
pageSize: 10,
|
||||
scroll: true,
|
||||
customLastChangeFormat: false,
|
||||
lastChangeFormat: "",
|
||||
triggerSeverity: DEFAULT_SEVERITY,
|
||||
@@ -77,26 +75,22 @@ describe('Triggers Panel schema migration', () => {
|
||||
let updatedPanelCtrl = new TriggerPanelCtrl(ctx.scope, {}, {}, datasourceSrvMock, {}, {}, {});
|
||||
|
||||
let expected = {
|
||||
schemaVersion: 2,
|
||||
schemaVersion: 3,
|
||||
datasources: ['zabbix_default'],
|
||||
targets: {
|
||||
'zabbix_default': DEFAULT_TARGET
|
||||
},
|
||||
hostField: true,
|
||||
statusField: false,
|
||||
severityField: false,
|
||||
lastChangeField: true,
|
||||
ageField: true,
|
||||
infoField: true,
|
||||
hostTechNameField: false,
|
||||
statusField: true,
|
||||
severityField: true,
|
||||
hideHostsInMaintenance: false,
|
||||
showTriggers: 'all triggers',
|
||||
sortTriggersBy: { text: 'last change', value: 'lastchange' },
|
||||
showEvents: { text: 'Problems', value: '1' },
|
||||
limit: 10,
|
||||
limit: 100,
|
||||
fontSize: '100%',
|
||||
fontColor: null,
|
||||
pageSize: 10,
|
||||
scroll: true,
|
||||
customLastChangeFormat: false,
|
||||
lastChangeFormat: "",
|
||||
triggerSeverity: DEFAULT_SEVERITY,
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
import _ from 'lodash';
|
||||
import {TriggerPanelCtrl} from '../triggers_panel_ctrl';
|
||||
import {PANEL_DEFAULTS, DEFAULT_TARGET} from '../triggers_panel_ctrl';
|
||||
// import { create } from 'domain';
|
||||
|
||||
describe('TriggerPanelCtrl', () => {
|
||||
let ctx = {};
|
||||
let datasourceSrvMock, zabbixDSMock;
|
||||
let timeoutMock = () => {};
|
||||
let createPanelCtrl;
|
||||
|
||||
beforeEach(() => {
|
||||
ctx = {scope: {panel: PANEL_DEFAULTS}};
|
||||
@@ -26,12 +29,13 @@ describe('TriggerPanelCtrl', () => {
|
||||
},
|
||||
get: () => Promise.resolve(zabbixDSMock)
|
||||
};
|
||||
createPanelCtrl = () => new TriggerPanelCtrl(ctx.scope, {}, timeoutMock, datasourceSrvMock, {}, {}, {});
|
||||
});
|
||||
|
||||
describe('When adding new panel', () => {
|
||||
it('should suggest all zabbix data sources', () => {
|
||||
ctx.scope.panel = {};
|
||||
let panelCtrl = new TriggerPanelCtrl(ctx.scope, {}, {}, datasourceSrvMock, {}, {}, {});
|
||||
let panelCtrl = createPanelCtrl();
|
||||
expect(panelCtrl.available_datasources).toEqual([
|
||||
'zabbix_default', 'zabbix'
|
||||
]);
|
||||
@@ -39,7 +43,7 @@ describe('TriggerPanelCtrl', () => {
|
||||
|
||||
it('should load first zabbix data source as default', () => {
|
||||
ctx.scope.panel = {};
|
||||
let panelCtrl = new TriggerPanelCtrl(ctx.scope, {}, {}, datasourceSrvMock, {}, {}, {});
|
||||
let panelCtrl = createPanelCtrl();
|
||||
expect(panelCtrl.panel.datasources).toEqual([
|
||||
'zabbix_default'
|
||||
]);
|
||||
@@ -63,7 +67,7 @@ describe('TriggerPanelCtrl', () => {
|
||||
});
|
||||
|
||||
it('should sort triggers', (done) => {
|
||||
let panelCtrl = new TriggerPanelCtrl(ctx.scope, {}, {}, datasourceSrvMock, {}, {}, {});
|
||||
let panelCtrl = createPanelCtrl();
|
||||
panelCtrl.onRefresh().then(() => {
|
||||
let trigger_ids = _.map(panelCtrl.triggerList, 'triggerid');
|
||||
expect(trigger_ids).toEqual([
|
||||
|
||||
@@ -61,7 +61,7 @@ const triggerStatusMap = {
|
||||
export class TriggerPanelCtrl extends PanelCtrl {
|
||||
|
||||
/** @ngInject */
|
||||
constructor($scope, $injector, $element, $timeout, datasourceSrv, templateSrv, contextSrv, dashboardSrv) {
|
||||
constructor($scope, $injector, $timeout, datasourceSrv, templateSrv, contextSrv, dashboardSrv) {
|
||||
super($scope, $injector);
|
||||
this.datasourceSrv = datasourceSrv;
|
||||
this.templateSrv = templateSrv;
|
||||
|
||||
Reference in New Issue
Block a user