monasca-kibana-plugin/server/mt/kibana/defaultIndexPattern/index.js

85 lines
3.7 KiB
JavaScript

/*
* Copyright 2020 FUJITSU LIMITED
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
import {createEventsIndexPattern, createLogsIndexPattern} from './_create';
import {defaultEventsIndexExists, defaultLogsIndexExists} from './_exists';
import {deleteDefaultEventsIndex, deleteDefaultLogsIndex} from './_delete';
import {updateEventsConfig, updateLogsConfig} from './_set_default_index_pattern';
export default (server, userObj) => {
return () => {
const project = userObj.project.id;
return defaultLogsIndexExists(server, userObj)
.then((logsExists) => {
if (server.config().get('monasca-kibana-plugin.logs')) {
server.log(['status', 'info', 'keystone'],
'Default logs-index pattern is enabled in kibana config file');
if (!logsExists) {
server.log(['status', 'warning', 'keystone'],
`Default logs-index pattern for ${project} does not exist`);
return createLogsIndexPattern(server, userObj)
.then(() => {
return updateLogsConfig(server, userObj);
});
} else {
server.log(['status', 'info', 'keystone'],
`Default logs-index pattern for ${project} already exists`);
}
} else {
server.log(['status', 'info', 'keystone'],
'Default logs-index pattern is disabled in kibana config file');
if (logsExists) {
server.log(['status', 'warning', 'keystone'],
`Default logs-index pattern for ${project} exists, but it should not`);
return deleteDefaultLogsIndex(server, userObj);
} else {
server.log(['status', 'info', 'keystone'],
`Default logs-index pattern for ${project} does not exist`);
}
}
})
.then(() => {
defaultEventsIndexExists(server, userObj)
.then((eventsExists) => {
if (server.config().get('monasca-kibana-plugin.events')) {
server.log(['status', 'info', 'keystone'],
'Default events-index pattern is enabled in kibana config file');
if (!eventsExists) {
server.log(['status', 'warning', 'keystone'],
`Default events-index pattern for ${project} does not exist`);
return createEventsIndexPattern(server, userObj)
.then(() => {
return updateEventsConfig(server, userObj);
});
} else {
server.log(['status', 'info', 'keystone'],
`Default events-index pattern for ${project} already exists`);
}
} else {
server.log(['status', 'info', 'keystone'],
'Default events-index pattern is disabled in kibana config file');
if (eventsExists) {
server.log(['status', 'warning', 'keystone'],
`Default events-index pattern for ${project} exists, but it should not`);
return deleteDefaultEventsIndex(server, userObj);
} else {
server.log(['status', 'info', 'keystone'],
`Default events-index pattern for ${project} does not exist`);
}
}
});
});
};
};