Skip to content

Commit db089ea

Browse files
authored
[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
1 parent 77597d6 commit db089ea

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

x-pack/plugins/monitoring/server/kibana_monitoring/collectors/get_settings_collector.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,7 @@ export function getSettingsCollector(server) {
6565

6666
// skip everything if defaultAdminEmail === undefined
6767
if (defaultAdminEmail || (defaultAdminEmail === null && shouldUseNull)) {
68-
kibanaSettingsData = {
69-
xpack: {
70-
default_admin_email: defaultAdminEmail
71-
}
72-
};
68+
kibanaSettingsData = this.getEmailValueStructure(defaultAdminEmail);
7369
this.log.debug(`[${defaultAdminEmail}] default admin email setting found, sending [${KIBANA_SETTINGS_TYPE}] monitoring document.`);
7470
} else {
7571
this.log.debug(`not sending [${KIBANA_SETTINGS_TYPE}] monitoring document because [${defaultAdminEmail}] is null or invalid.`);
@@ -80,6 +76,13 @@ export function getSettingsCollector(server) {
8076

8177
// returns undefined if there was no result
8278
return kibanaSettingsData;
79+
},
80+
getEmailValueStructure(email) {
81+
return {
82+
xpack: {
83+
default_admin_email: email
84+
}
85+
};
8386
}
8487
});
8588
}

x-pack/plugins/xpack_main/server/routes/api/v1/settings.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ export function settingsRoute(server, kbnServer) {
2626
const { collectorSet } = server.usage;
2727
const settingsCollector = collectorSet.getCollectorByType(KIBANA_SETTINGS_TYPE);
2828

29-
const settings = await settingsCollector.fetch(callCluster);
29+
let settings = await settingsCollector.fetch(callCluster);
30+
if (!settings) {
31+
settings = settingsCollector.getEmailValueStructure(null);
32+
}
3033
const uuid = await getClusterUuid(callCluster);
3134

3235
const kibana = getKibanaInfoForStats(server, kbnServer);

x-pack/test/api_integration/apis/xpack_main/settings/settings.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export default function ({ getService }) {
3535
expect(body.settings.kibana.transport_address.length > 0).to.eql(true);
3636
expect(body.settings.kibana.version.length > 0).to.eql(true);
3737
expect(body.settings.kibana.status.length > 0).to.eql(true);
38+
expect(body.settings.xpack.default_admin_email).to.eql(null);
3839
});
3940
});
4041
});

0 commit comments

Comments
 (0)