[Monitoring] Ensure the settings api always return the xpack/default_admin_email (#22220)

* If the settings collector returns nothing, ensure the settings api still returns a null value for default_admin_email

* Update test

* Feedback from PR
This commit is contained in:
Chris Roberson 2018-08-23 09:04:16 -04:00 committed by GitHub
parent 77597d6288
commit db089ea5ce
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 6 deletions

View file

@ -65,11 +65,7 @@ export function getSettingsCollector(server) {
// skip everything if defaultAdminEmail === undefined
if (defaultAdminEmail || (defaultAdminEmail === null && shouldUseNull)) {
kibanaSettingsData = {
xpack: {
default_admin_email: defaultAdminEmail
}
};
kibanaSettingsData = this.getEmailValueStructure(defaultAdminEmail);
this.log.debug(`[${defaultAdminEmail}] default admin email setting found, sending [${KIBANA_SETTINGS_TYPE}] monitoring document.`);
} else {
this.log.debug(`not sending [${KIBANA_SETTINGS_TYPE}] monitoring document because [${defaultAdminEmail}] is null or invalid.`);
@ -80,6 +76,13 @@ export function getSettingsCollector(server) {
// returns undefined if there was no result
return kibanaSettingsData;
},
getEmailValueStructure(email) {
return {
xpack: {
default_admin_email: email
}
};
}
});
}

View file

@ -26,7 +26,10 @@ export function settingsRoute(server, kbnServer) {
const { collectorSet } = server.usage;
const settingsCollector = collectorSet.getCollectorByType(KIBANA_SETTINGS_TYPE);
const settings = await settingsCollector.fetch(callCluster);
let settings = await settingsCollector.fetch(callCluster);
if (!settings) {
settings = settingsCollector.getEmailValueStructure(null);
}
const uuid = await getClusterUuid(callCluster);
const kibana = getKibanaInfoForStats(server, kbnServer);

View file

@ -35,6 +35,7 @@ export default function ({ getService }) {
expect(body.settings.kibana.transport_address.length > 0).to.eql(true);
expect(body.settings.kibana.version.length > 0).to.eql(true);
expect(body.settings.kibana.status.length > 0).to.eql(true);
expect(body.settings.xpack.default_admin_email).to.eql(null);
});
});
});